Skip to content

Commit 8a95dd4

Browse files
A slice solver option for interactive use case
A slice solver prunes the set of active assertions based on symbol occurrences in a goal that is tracked as a @query. Ground assertions that have symbols intersecting with the query are included in the solver state, and quantifiers that with patterns that intersect with the slice are included. The slice is the fixedpoint of including symbols from all included assertions. Enable the functionality for command-line use by setting solver.slice=true
1 parent 0fec7ef commit 8a95dd4

File tree

4 files changed

+465
-0
lines changed

4 files changed

+465
-0
lines changed

src/params/solver_params.pyg

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ def_module_params('solver',
88
('lemmas2console', BOOL, False, 'print lemmas during search'),
99
('instantiations2console', BOOL, False, 'print quantifier instantiations to the console'),
1010
('axioms2files', BOOL, False, 'print negated theory axioms to separate files during search'),
11+
('slice', BOOL, False, 'use slice solver that filters assertions to use symbols occuring in @query formulas'),
1112
('proof.log', SYMBOL, '', 'log clause proof trail into a file'),
1213
('proof.check', BOOL, True, 'check proof logs'),
1314
('proof.check_rup', BOOL, True, 'check proof RUP inference in proof logs'),

src/solver/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ z3_add_component(solver
66
mus.cpp
77
parallel_tactical.cpp
88
simplifier_solver.cpp
9+
slice_solver.cpp
910
smt_logics.cpp
1011
solver.cpp
1112
solver_na2as.cpp

0 commit comments

Comments
 (0)