3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-07-15 19:45:41 +00:00
z3/src/tactic
Nikolaj Bjorner 612fab1c9a
Parallel tactic (#9824) (#9825)
Add new parallel algorithm as a tactic (parallel_tactical2.cpp)
Don't port over old experiments from smt_parallel that we aren't using
(sls, inprocessing, failed_literal_mode for bb detection)
Fix bugs: lease cancellation/reslimit race condition, involves changing
lease epoch to simple boolean flag
Also, now there is a single shared set of params for the tactic and
smt_parallel

**Test runs for the parallel_tactical2 vs old smt_parallel version:**
run-2747-Z3-threads-4-qflia-30s-stats.md
run-2746-Z3-threads-4-qflia-30s-parallel_tactic-stats.md
run-2745-Z3-threads-1-qfbv-30s-stats.md
run-3013-Z3-threads-4-qfbv-30s-parallel_tactic-stats.md --> note this is
indeed run-3013, I reran after a bugfix in inc_sat_solver
run-2743-Z3-threads-4-qfnia-30s-stats.md
run-2742-Z3-threads-4-qfnia-30s-parallel_tactic-stats.md

**Test runs for the new smt_parallel with bugfixes:**
run-2801-Z3-threads-4-qflia-30s-smtparallel-bugfixes-stats.md,
run-2800-Z3-threads-4-qflia-30s-smtparallel-bugfixes-stats.md
run-2797-Z3-threads-4-qfnia-30s-smtparallel-bugfixes-stats.md
compare to old smt_parallel:
run-2747-Z3-threads-4-qflia-30s-stats.md
run-2743-Z3-threads-4-qfnia-30s-stats.md

Note that there is a slight regression on lia in run-2800. The source of
this appears to be the new new LP largest-cube LIA heuristic param,
which is enabled by default. disabling this param in run-2801 restored
performance (I didn't change this in this PR though, just something to
note)

http://mtzguido.tplinkdns.com:8081/z3/compare_stats.html

---------

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
Co-authored-by: Ilana Shapiro <ilanashapiro@Ilanas-MacBook-Pro.local>
Co-authored-by: Ilana Shapiro <ilanashapiro@Ilanas-MBP.localdomain>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-06-26 10:36:15 -06:00
..
aig Standardize for-loop increments to prefix form (++i) (#8199) 2026-01-14 19:55:31 -08:00
arith Fix reference to recfun::util in lia2card_tactic.cpp 2026-06-16 14:02:24 -06:00
bv Rename bv1-blast2 to bv1-blast, remove old tactic source 2026-02-26 20:06:14 +00:00
core revert updates 2026-06-14 15:57:23 -07:00
fd_solver Parallel tactic (#9824) (#9825) 2026-06-26 10:36:15 -06:00
fpa Standardize for-loop increments to prefix form (++i) (#8199) 2026-01-14 19:55:31 -08:00
portfolio Parallel tactic (#9824) (#9825) 2026-06-26 10:36:15 -06:00
sls Standardize for-loop increments to prefix form (++i) (#8199) 2026-01-14 19:55:31 -08:00
smtlogics Throttle lia2card in QF_LIA preamble (mk_preamble_tactic) (#9489) 2026-05-11 12:03:09 -04:00
ufbv Standardize for-loop increments to prefix form (++i) (#8199) 2026-01-14 19:55:31 -08:00
CMakeLists.txt move horn_subsume_model_converter to ast/converters 2022-11-03 20:26:02 -07:00
dependency_converter.cpp call it data instead of c_ptr for approaching C++11 std::vector convention. 2021-04-13 18:17:35 -07:00
dependency_converter.h move model and proof converters to self-contained module 2022-11-03 05:23:01 -07:00
dependent_expr_state_tactic.h add an option to register callback on quantifier instantiation 2025-08-06 21:11:55 -07:00
goal.cpp Add initializer_list overloads and update all call sites 2026-02-16 01:27:08 +00:00
goal.h Standardize for-loop increments to prefix form (++i) (#8199) 2026-01-14 19:55:31 -08:00
goal_num_occurs.cpp Standardize for-loop increments to prefix form (++i) (#8199) 2026-01-14 19:55:31 -08:00
goal_num_occurs.h booyah 2020-07-04 15:56:30 -07:00
goal_proof_converter.h Fix some typos. (#7115) 2024-02-07 23:06:43 -08:00
goal_shared_occs.cpp Standardize for-loop increments to prefix form (++i) (#8199) 2026-01-14 19:55:31 -08:00
goal_shared_occs.h booyah 2020-07-04 15:56:30 -07:00
goal_util.cpp port to inherit from std::exception 2024-11-04 13:25:14 -08:00
goal_util.h booyah 2020-07-04 15:56:30 -07:00
probe.cpp Standardize for-loop increments to prefix form (++i) (#8199) 2026-01-14 19:55:31 -08:00
probe.h remove default destructors & some default constructors 2024-09-04 22:30:23 +01:00
tactic.cpp Standardize for-loop increments to prefix form (++i) (#8199) 2026-01-14 19:55:31 -08:00
tactic.h fix #7404, relates to #7400. 2024-09-27 11:36:10 +01:00
tactic_exception.h add noexcept 2024-11-04 11:21:55 -08:00
tactical.cpp convert z3_exception to tactic exception in try_for 2026-04-26 16:37:39 -07:00
tactical.h booyah 2020-07-04 15:56:30 -07:00
user_propagator_base.h add an option to register callback on quantifier instantiation 2025-08-06 21:11:55 -07:00