3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-04-16 09:13:24 +00:00
z3/src/api
Copilot 68e528eaf7
Go/OCaml API gaps: substitution, AST introspection, Spacer, Goal completion (#9277)
* fix: address issues 1,2,4,5 and add Goal API to Go bindings

Issue 2 (Go): Add Substitute, SubstituteVars, SubstituteFuns to Expr
Issue 4 (Go): Add GetDecl, NumArgs, Arg to Expr for AST app introspection
Goal API (Go): Add IsInconsistent and ToDimacsString to Goal
ASTVector (Go): Add public Size, Get, String methods
ASTMap (Go): Add ASTMap type with full CRUD API in spacer.go
Issue 1 (Go): Add Spacer fixedpoint methods QueryFromLvl, GetGroundSatAnswer,
  GetRulesAlongTrace, GetRuleNamesAlongTrace, AddInvariant, GetReachable
Issue 1 (Go): Add context-level QE functions ModelExtrapolate, QeLite,
  QeModelProject, QeModelProjectSkolem, QeModelProjectWithWitness
Issue 5 (OCaml): Add substitute_funs to z3.ml and z3.mli

Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/afa18588-47af-4720-8cea-55fe0544ae55

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>

* fix: add substitute_funs to Expr module sig in z3.ml

The internal sig...end block in z3.ml (the module type declaration for Expr)
was missing val substitute_funs, causing OCaml compiler error:
  The value substitute_funs is required but not provided

Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/c6662702-46a3-4aa0-b225-d6b73c2a2505

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-04-12 14:00:03 -07:00
..
c++ Fix high and medium priority API coherence issues (Go, Java, C++, TypeScript) (#8983) 2026-03-14 10:46:03 -07:00
dll Tabs, formatting. 2017-09-17 14:54:09 +01:00
dotnet Add Z3_mk_polymorphic_datatype to Python, .NET, Go, and TypeScript bindings (#9181) 2026-03-31 14:15:34 -07:00
go Go/OCaml API gaps: substitution, AST introspection, Spacer, Goal completion (#9277) 2026-04-12 14:00:03 -07:00
java Add numeral extraction helpers to Java API (#8978) 2026-03-15 10:36:17 -07:00
js Add Z3_mk_polymorphic_datatype to Python, .NET, Go, and TypeScript bindings (#9181) 2026-03-31 14:15:34 -07:00
julia Apply headerpad fix to build systems (Python and CMake) and fix validation test paths 2026-02-18 21:02:10 -08:00
mcp remove non-working ts mcp server, settle with python variant 2025-04-18 10:10:12 -07:00
ml Go/OCaml API gaps: substitution, AST introspection, Spacer, Goal completion (#9277) 2026-04-12 14:00:03 -07:00
python Add Z3_mk_polymorphic_datatype to Python, .NET, Go, and TypeScript bindings (#9181) 2026-03-31 14:15:34 -07:00
api_algebraic.cpp Standardize for-loop increments to prefix form (++i) (#8199) 2026-02-18 20:57:29 -08:00
api_arith.cpp Add check that argument of Z3_is_algebraic_number is_expr (#8027) 2026-02-18 20:55:56 -08:00
api_array.cpp Fix API bugs exercised by test/deep_api_bugs.cpp 2026-03-12 22:58:53 +00:00
api_ast.cpp Fix API bugs exercised by test/deep_api_bugs.cpp 2026-03-12 22:58:53 +00:00
api_ast_map.cpp Add [[nodiscard]] to AST factory functions and modernize iterator loops (#8143) 2026-02-18 20:57:08 -08:00
api_ast_map.h booyah 2020-07-04 15:56:30 -07:00
api_ast_vector.cpp Modern C++: Add std::span overload for mk_or, adopt std::clamp, optimize stream output (#8507) 2026-02-18 20:58:05 -08:00
api_ast_vector.h Remove empty leaf destructors. (#6211) 2022-07-30 10:07:03 +01:00
api_bv.cpp fix #7572 and fix #7574 2025-03-07 10:46:29 -08:00
api_config_params.cpp fix #7622 2025-04-17 11:05:49 -07:00
api_context.cpp Refactor mk_and and mk_app to use std::span API (#8285) 2026-02-18 20:57:52 -08:00
api_context.h Add finite set API functions to access term constructors from finite_set_decl_plugin.h (#7996) 2025-10-23 17:10:47 +02:00
api_datalog.cpp Adopt std::optional for try_get_value and try_get_size functions (#8268) 2026-02-18 20:57:50 -08:00
api_datalog.h move smt params to params directory, update release.yml 2025-06-09 10:47:22 -07:00
api_datatype.cpp Standardize for-loop increments to prefix form (++i) (#8199) 2026-02-18 20:57:29 -08:00
api_finite_set.cpp add parameter validation 2026-02-19 14:02:59 -08:00
api_fpa.cpp Fix API bugs exercised by test/deep_api_bugs.cpp 2026-03-12 22:58:53 +00:00
api_goal.cpp fix #7609 2025-04-04 18:40:15 -07:00
api_goal.h Remove empty leaf destructors. (#6211) 2022-07-30 10:07:03 +01:00
api_log.cpp api: avoid some string copies when using mk_external_string 2024-12-28 09:42:54 +00:00
api_model.cpp Fix indentation: use spaces instead of tabs in api_model.cpp CHECK_NON_NULL 2026-03-12 23:00:07 +00:00
api_model.h Remove empty leaf destructors. (#6211) 2022-07-30 10:07:03 +01:00
api_numeral.cpp Note that Z3_get_numeral_small is essentially redundant (#7599) 2025-03-29 10:02:32 -07:00
api_opt.cpp Fix API bugs exercised by test/deep_api_bugs.cpp 2026-03-12 22:58:53 +00:00
api_params.cpp Modern C++: Add std::span overload for mk_or, adopt std::clamp, optimize stream output (#8507) 2026-02-18 20:58:05 -08:00
api_parsers.cpp add py_value to selected classes in python bindings, add mode for input-assertion based lookahead solving 2025-01-04 13:40:49 -08:00
api_pb.cpp call it data instead of c_ptr for approaching C++11 std::vector convention. 2021-04-13 18:17:35 -07:00
api_polynomial.cpp preserve the initial state of the solver with push/pop for multiple objectives (#8264) 2026-02-18 20:57:53 -08:00
api_polynomial.h remove a hundred implicit constructors/destructors 2021-05-23 14:25:01 +01:00
api_qe.cpp filter out terms that are not solved 2025-04-30 09:40:45 -07:00
api_quant.cpp Fix API bugs exercised by test/deep_api_bugs.cpp 2026-03-12 22:58:53 +00:00
api_rcf.cpp Standardize for-loop increments to prefix form (++i) (#8199) 2026-02-18 20:57:29 -08:00
api_seq.cpp Fix API bugs exercised by test/deep_api_bugs.cpp 2026-03-12 22:58:53 +00:00
api_solver.cpp Fix API bugs exercised by test/deep_api_bugs.cpp 2026-03-12 22:58:53 +00:00
api_solver.h add API for creating and attaching simplifiers 2023-01-31 17:06:03 -08:00
api_special_relations.cpp remove '#include <iostream>' from headers and from unneeded places 2022-06-17 14:10:19 +01:00
api_stats.cpp fix infinite loop in internalize 2022-09-14 11:50:53 +01:00
api_stats.h Remove empty leaf destructors. (#6211) 2022-07-30 10:07:03 +01:00
api_tactic.cpp Revert "Refactor find_tactic_cmd to use std::optional<tactic_cmd*> (#8331)" 2026-02-18 20:57:56 -08:00
api_tactic.h add API for creating and attaching simplifiers 2023-01-31 17:06:03 -08:00
api_util.h Add parameter validation for selected API functions 2025-07-27 13:38:37 -07:00
CMakeLists.txt Add finite set API functions to access term constructors from finite_set_decl_plugin.h (#7996) 2025-10-23 17:10:47 +02:00
z3.h z3.h: Don't include stdio.h (#7014) 2023-11-24 16:46:32 +01:00
z3_algebraic.h fix grouping for latest doxygen (#5626) 2021-10-27 23:46:31 +02:00
z3_api.h Fix documentation for Z3_solver_to_dimacs_string (#9053) 2026-03-20 10:18:13 -07:00
z3_ast_containers.h fix grouping for latest doxygen (#5626) 2021-10-27 23:46:31 +02:00
z3_fixedpoint.h Added function to select the next variable to split on (User-Propagator) (#6096) 2022-06-19 10:49:25 -07:00
z3_fpa.h Return sign from Z3_fpa_get_numeral_sign as bool instead of int (#8047) 2026-02-18 20:56:01 -08:00
z3_logger.h Make sure all headers do #pragma once. (#6188) 2022-07-23 10:41:14 -07:00
z3_macros.h Make sure all headers do #pragma once. (#6188) 2022-07-23 10:41:14 -07:00
z3_optimization.h Implement Z3_optimize_translate for context translation (#8072) 2026-02-18 20:56:58 -08:00
z3_polynomial.h fix grouping for latest doxygen (#5626) 2021-10-27 23:46:31 +02:00
z3_private.h remove '#include <iostream>' from headers and from unneeded places 2022-06-17 14:10:19 +01:00
z3_rcf.h Return bool instead of int from Z3_rcf_interval (#8046) 2026-02-18 20:56:01 -08:00
z3_replayer.cpp Add static linkage to internal functions 2026-02-18 20:58:05 -08:00
z3_replayer.h Return sign from Z3_fpa_get_numeral_sign as bool instead of int (#8047) 2026-02-18 20:56:01 -08:00
z3_spacer.h add projection with witnesses 2024-11-27 10:26:34 -08:00
z3_v1.h booyah 2020-07-04 15:56:30 -07:00