The stack-based approach is largely rooted in SMTLib, so I think it will be difficult to find a solver that will do exactly what you want. Although I agree that this will be a nice feature.
, . , . , , check-sat. , . , check-sat, , , . "" . , , , .
, , :
check-sat-
, , , . , , . , :
(assert complicated_expression)
; for each constraint ci, do this:
(declare-const ci Bool)
(assert (= ci complicated_expression))
; then, check with whatever subset you want
(check-sat-assuming (ci cj ck..))
, , "", . , , ; . . : https://github.com/Z3Prover/z3/issues/1048
reset -assertions : global-declarations
, check-sat. . , , , . , . :
(set-option :global-declarations true)
- . , "" , . . - , :
(reset-assertions)
(assert your-tracked-assertion-1)
(assert your-tracked-assertion-2)
;(assert your-tracked-assertion-3) <-- Note the comment, we're skipping
(assert your-tracked-assertion-4)
..etc
... "" , . , :global-declarations , , , reset-assertions, , .
, , .
- , , . SMTLib , , . . , , - . , , !
. , : Z3?