3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-19 07:09:03 +00:00
z3/src/opt
Nikolaj Bjorner 87f7a20e14 Add (updated and general) solve_for functionality for arithmetic, add congruence_explain to API to retrieve explanation for why two terms are congruent Tweak handling of smt.qi.max_instantations
Add API solve_for(vars).
It takes a list of variables and returns a triangular solved form for the variables.
Currently for arithmetic. The solved form is a list with elements of the form (var, term, guard).
Variables solved in the tail of the list do not occur before in the list.
For example it can return a solution [(x, z, True), (y, x + z, True)] because first x was solved to be z,
then y was solved to be x + z which is the same as 2z.

Add congruent_explain that retuns an explanation for congruent terms.
Terms congruent in the final state after calling SimpleSolver().check() can be queried for
an explanation, i.e., a list of literals that collectively entail the equality under congruence closure.
The literals are asserted in the final state of search.

Adjust smt_context cancellation for the smt.qi.max_instantiations parameter.
It gets checked when qi-queue elements are consumed.
Prior it was checked on insertion time, which didn't allow for processing as many
instantations as there were in the queue. Moreover, it would not cancel the solver.
So it would keep adding instantations to the queue when it was full / depleted the
configuration limit.
2024-12-19 23:27:57 +01:00
..
CMakeLists.txt adding totalizer 2022-06-29 08:20:01 -07:00
maxcore.cpp delete more default constructors 2024-09-23 12:59:04 +01:00
maxcore.h totalizer 2022-06-30 19:49:19 -07:00
maxlex.cpp re-enable pre-process 2022-04-13 11:24:24 +02:00
maxlex.h separate pre-processing, add callback parameter to push/pop in python API 2022-04-11 17:05:59 +02:00
maxsmt.cpp use std::exception as base class to z3_exception 2024-11-04 11:08:15 -08:00
maxsmt.h use only maxres if there is a lexicographic objective, fix #6697 2023-04-24 20:20:26 -07:00
opt_cmds.cpp Remove empty leaf destructors. (#6211) 2022-07-30 10:07:03 +01:00
opt_cmds.h booyah 2020-07-04 15:56:30 -07:00
opt_context.cpp Sls (#7439) 2024-11-02 12:32:48 -07:00
opt_context.h Add command to set initial value hints for solver in various components 2024-09-18 17:48:03 +03:00
opt_cores.cpp fixes to build warnings 2024-09-30 08:23:31 -07:00
opt_cores.h add option to "rotate" cores during core finding 2022-05-01 15:26:56 -07:00
opt_lns.cpp Sls (#7439) 2024-11-02 12:32:48 -07:00
opt_lns.h Use = default for virtual constructors. 2022-08-05 18:11:46 +03:00
opt_mux.h separate pre-processing, add callback parameter to push/pop in python API 2022-04-11 17:05:59 +02:00
opt_params.pyg spell check from https://github.com/microsoft/z3guide/pull/165 2024-01-12 09:57:46 -08:00
opt_pareto.cpp fix #4232 2020-05-07 10:36:53 -07:00
opt_pareto.h Use = default for virtual constructors. 2022-08-05 18:11:46 +03:00
opt_parse.cpp fix #7343 2024-08-14 09:17:05 -07:00
opt_parse.h booyah 2020-07-04 15:56:30 -07:00
opt_preprocess.cpp remove pragma from cpp file 2022-05-28 14:48:38 -07:00
opt_preprocess.h core opt 2022-05-21 10:27:37 -04:00
opt_sls_solver.h Use = default for virtual constructors. 2022-08-05 18:11:46 +03:00
opt_solver.cpp remove default destructors 2024-10-02 22:20:12 +01:00
opt_solver.h Add (updated and general) solve_for functionality for arithmetic, add congruence_explain to API to retrieve explanation for why two terms are congruent Tweak handling of smt.qi.max_instantations 2024-12-19 23:27:57 +01:00
optsmt.cpp build failure 2022-01-06 15:17:57 -08:00
optsmt.h fix #5254 2021-05-17 15:42:01 -07:00
pb_sls.cpp remove default destructors 2024-10-02 22:20:12 +01:00
pb_sls.h booyah 2020-07-04 15:56:30 -07:00
sortmax.cpp move model and proof converters to self-contained module 2022-11-03 05:23:01 -07:00
totalizer.cpp totalizer 2022-06-30 19:49:19 -07:00
totalizer.h totalizer 2022-06-30 19:49:19 -07:00
wmax.cpp weird latent bug in wmax: init() succeeds and it returns undef 2023-04-24 21:14:42 -07:00
wmax.h re-enable pre-process 2022-04-13 11:24:24 +02:00