Nikolaj Bjorner
2d7a38e95e
fix #6488
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-13 16:07:41 -08:00
Nikolaj Bjorner
aded8e5bf4
fix #6488
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-12 11:40:59 -08:00
Nikolaj Bjorner
4598af70c8
fix #6488
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-12 11:04:46 -08:00
Nikolaj Bjorner
a3e6885680
fix #6488
2022-12-12 09:50:44 -08:00
Nikolaj Bjorner
039de6a2c8
build issues
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-11 15:05:13 -08:00
Nuno Lopes
cb8603177e
fix build
2022-12-11 22:17:11 +00:00
Nikolaj Bjorner
2520dcb04b
merge
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-11 14:03:22 -08:00
Nuno Lopes
2d43ccc4c6
Revert "fix crashes in elim-uncnstr2"
...
This reverts commit a302c2f15e
.
2022-12-11 21:37:25 +00:00
Nikolaj Bjorner
6a1b3f7344
move debug output to before state update
2022-12-11 12:51:46 -08:00
Nikolaj Bjorner
f7269bb60a
update doc
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-11 10:16:17 -08:00
Nikolaj Bjorner
a9f52b0069
doc fixes
2022-12-11 10:04:01 -08:00
Nuno Lopes
a302c2f15e
fix crashes in elim-uncnstr2
...
This would crash before:
(declare-fun x () (_ BitVec 4))
(assert (not (bvule x #x1)))
(apply elim-uncnstr2)
That's because the index_set iterator was querying qtail to compute the end of the iteration
But the problem is that elim-uncnstr2 may add new fmls to the goal, as in this case.
The bvule is replaced with an 'or', but since it's negated, it turns into 2 goals
Solve the issue by freezing the qtail for the iteration loop.
This is the right behavior for elim-uncnstr2, as it can't rewrite exprs that haven't been analyzed before
@NikolajBjorner please check if this the right behavior for the other simplifiers. Thank you
2022-12-11 15:21:23 +00:00
Nuno Lopes
c6f9c09d70
cleanup more in dependent_expr_state_tactic to reduce mem consumption
2022-12-09 11:34:53 +00:00
Nikolaj Bjorner
7e69dab8f6
distribute forall cpp code
2022-12-06 18:15:18 -08:00
Nikolaj Bjorner
c33e58ee1a
update distribute forall
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-06 17:59:33 -08:00
Nikolaj Bjorner
80033e8744
cave in to supporting proofs (partially) in simplifiers, updated doc
2022-12-06 17:02:04 -08:00
Nikolaj Bjorner
5a5758baaa
add documentation to initial selection of tactics
2022-12-05 20:05:06 -08:00
Nuno Lopes
eb8c53c164
simplify factory of dependent_expr_state_tactic
...
And as a side-effect, remove heap allocations for factories
2022-12-05 14:07:57 +00:00
Nikolaj Bjorner
de916f50d6
add demodulator tactic based on demodulator-simplifier
...
- some handling for commutative operators
- fix bug in demodulator_index where fwd and bwd are swapped
2022-12-05 03:20:46 -08:00
Nikolaj Bjorner
ead2a46a88
build
2022-12-04 10:38:24 -08:00
Nikolaj Bjorner
b76ed6a47f
proper fix to #6476
2022-12-04 10:19:39 -08:00
Nikolaj Bjorner
1974c224ab
add demodulator simplifier
...
refactor demodulator-rewriter a bit to separate reusable features.
2022-12-04 09:39:28 -08:00
Nikolaj Bjorner
79e6d4e32d
tune and debug elim-unconstrained (v2 - for simplifiers infrastructure)
2022-12-04 03:53:31 -08:00
Nikolaj Bjorner
3ebbb8472a
fix perf bugs in new value propagation
2022-12-04 03:53:30 -08:00
Nikolaj Bjorner
758c3b2c3b
fix filtering for recursive functions
2022-12-04 03:53:30 -08:00
Nikolaj Bjorner
a96b7d243a
remove incorrect check for quantifier
2022-12-01 00:04:08 -08:00
Nikolaj Bjorner
e5984dd397
add cnf/nnf simplifier
2022-11-30 23:04:38 -08:00
Nikolaj Bjorner
e3e2c21632
Create cnf_nnf.h
2022-11-30 22:53:14 -08:00
Nikolaj Bjorner
f24ecde35c
wip - fixes to simplifiers
2022-12-01 09:31:52 +09:00
Nikolaj Bjorner
cfc8e19baf
add more simplifiers, fix model reconstruction order for elim_unconstrained
...
- enable sat.smt in smt_tactic that
is invoked by default on first goals
add flatten-clauses
add push-ite
have tptp5 front-end pretty print SMT2 formulas a little nicer.
2022-12-01 02:35:43 +09:00
Nikolaj Bjorner
edb0fc394b
rewrite some simplifiers
2022-11-30 23:15:32 +09:00
Nikolaj Bjorner
23c53c6820
fix build
2022-11-30 19:36:13 +09:00
Nikolaj Bjorner
c1ff3d3192
wip - adding quasi macro detection
2022-11-30 13:46:00 +07:00
Nikolaj Bjorner
b084821a0c
wip - dependent expr simpliifer
...
- simplify iterator over current indices
- add more simplifiers used by asserted_formulas
- improve diagnostics printing
2022-11-30 13:41:40 +07:00
Nikolaj Bjorner
bec3acd146
consolidate freeze functionality into dependent_expr_state
...
rename size() to qtail() and introduce shortcuts
ensure tactic goals are not updated if they are in inconsistent state (because indices could be invalidated)
2022-11-30 08:35:29 +07:00
Nikolaj Bjorner
73a652cf4b
some fixes to backtracking restore points in new solver
2022-11-29 16:42:42 +07:00
Nikolaj Bjorner
dd1ca8f6bd
move qhead to attribute on the state instead of the simplifier,
...
- add sat.smt option to enable the new incremental core (it is not ready for mainstream consumption as cloning and other features are not implemented and it hasn't been tested in any detail yet).
- move "name" into attribute on simplifier so it can be reused for diagnostics by the seq-simplifier.
2022-11-29 16:36:02 +07:00
Nikolaj Bjorner
82d9e4a4fc
update goal2sat interface to use explicit initialization
2022-11-28 15:04:12 +07:00
Nikolaj Bjorner
500626e814
add sat-smt-preprocess module
...
self-contained pre-processing initialization
2022-11-28 12:13:00 +07:00
Nikolaj Bjorner
85f9c7eefa
replace restore_size_trail by more generic restore_vector
...
other updates:
- change signature of advance_qhead to simplify call sites
- have model reconstruction replay work on a tail of dependent_expr state, while adding formulas to the tail.
2022-11-28 11:45:56 +07:00
Nikolaj Bjorner
6454014119
enable incrementality for model reconstruction
2022-11-25 15:28:38 +07:00
Nikolaj Bjorner
4e9f21c2a1
add rewriter and seq simplifiers
2022-11-25 15:16:14 +07:00
Nikolaj Bjorner
a152f9cfd6
port bit-blaster to simplifiers
...
inc_sat_solver uses bit-blaster, card2bv and max_bv_sharing.
By turning these into simplifiers it will be possible to remove
dependencies on tactics and goals in inc_sat_simplifier and instead use a modular and general incremental pre-processing infrastructure.
2022-11-25 13:37:16 +07:00
Nikolaj Bjorner
f0570fbc0e
remove tactic exception dependency
2022-11-25 11:48:44 +07:00
Nikolaj Bjorner
e95b0bd2cd
remove include of tactical
2022-11-25 11:47:38 +07:00
Nikolaj Bjorner
8184e7fe0a
keep track of qhead
2022-11-25 11:42:16 +07:00
Nikolaj Bjorner
5af6e1a046
make max_bv_sharing a simplifier
2022-11-25 11:38:41 +07:00
Nikolaj Bjorner
db74e23de1
make card2bv a simplifier
2022-11-25 11:07:31 +07:00
Nikolaj Bjorner
cb789f6ca8
add arithmetical macros
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-11-24 23:44:35 +07:00
Nikolaj Bjorner
eb812e47be
cleanup
2022-11-24 22:46:35 +07:00