Clemens Eisenhofer
47cb83f578
Merge branch 'polysat' of https://github.com/Z3Prover/z3 into polysat
2022-12-07 16:35:42 +01:00
Nikolaj Bjorner
ef811a3dd8
add propagation rule for strict inequality to force univariate polynomials
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-06 04:56:42 -08:00
Nikolaj Bjorner
f2c228f160
update function that propagates bounds on x*y = 0 to be more comprehensive
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-05 01:19:26 -08:00
Nikolaj Bjorner
5b8dcfb801
wip - adding saturation/propagations
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-03 15:38:01 -08:00
Nikolaj Bjorner
215a4e9bad
review and fix soundness bug in band rule
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-02 19:04:23 -08:00
Jakob Rath
91c6582bf7
pwatch
2022-12-01 15:50:03 +01:00
Jakob Rath
5069796755
Create clauses without adding them
2022-11-30 14:51:43 +01:00
Clemens Eisenhofer
2b7fd152c4
Merge branch 'polysat' of https://github.com/Z3Prover/z3 into polysat
2022-11-29 14:54:49 +01:00
Jakob Rath
0c44391b9e
Don't call assign_eh for internal constraints
2022-11-28 18:43:19 +01:00
Jakob Rath
3d79cddf33
Update saturation inferences
2022-11-28 18:02:18 +01:00
Jakob Rath
2787a22007
Backtrack/backjump based on accumulated lemmas
2022-11-23 12:49:36 +01:00
Jakob Rath
e4999b07aa
Remove active flag from constraint
...
Superseded by boolean assignment and pwatch
2022-11-22 14:45:51 +01:00
Jakob Rath
a144a09ede
Propagation must be justified by a prefix of Gamma
2022-11-22 13:42:31 +01:00
Jakob Rath
6e72a97727
Refactor assignment and search state
2022-11-21 17:25:15 +01:00
Clemens Eisenhofer
98d572b48b
First try to generalize variable elimination
2022-11-20 11:35:12 +01:00
Jakob Rath
adc9f7abe4
Add basic implementation of left shift
2022-11-17 17:37:52 +01:00
Jakob Rath
cd83a6ec69
Remove bailout state from conflict
2022-11-14 15:15:35 +01:00
Jakob Rath
01af25ca02
Remove backjump state from conflict
2022-11-14 14:33:19 +01:00
Jakob Rath
d3f70c0fb8
Rename: explain -> superposition
2022-11-10 14:42:13 +01:00
Jakob Rath
e7c77a22ab
Dedup quot_rem and lshr too
2022-11-07 15:25:05 +01:00
Jakob Rath
a1736473a4
Move bit-wise expressions to constraint_manager
2022-11-07 14:00:02 +01:00
Jakob Rath
7662427d92
Split constraint_manager into separate file
2022-11-07 13:33:48 +01:00
Jakob Rath
29695391de
First pass at free variable elimination
2022-10-31 15:22:03 +01:00
Jakob Rath
714c71ab88
Try to fix lemma_invariant
2022-10-07 17:48:22 +02:00
Jakob Rath
74b53c3323
Fix checking of lemma invariant
2022-10-07 16:20:44 +02:00
Jakob Rath
8333664433
Simplify handling of side lemmas in conflict
2022-10-07 16:19:41 +02:00
Jakob Rath
af368b39c9
less output
2022-10-07 10:10:44 +02:00
Jakob Rath
dc9373dcbd
Change old solver::propagate method
2022-10-04 17:09:09 +02:00
Jakob Rath
46c69766d1
output
2022-10-04 14:09:57 +02:00
Jakob Rath
3d27ec41d0
Bring back boolean decisions (wip)
...
The backtracking code doesn't know about boolean decisions yet
2022-10-03 18:36:16 +02:00
Jakob Rath
05442e8788
lemma_invariant
2022-09-30 13:12:47 +02:00
Jakob Rath
5e54cd3e44
Add basic support for not, or, xor, nand, nor via rewriting
2022-09-30 13:02:32 +02:00
Jakob Rath
8d803a1266
Move unfinished make_asserting code
2022-09-28 19:19:33 +02:00
Jakob Rath
a4f0e3a228
Add level to conflict
...
- reset conflict at correct level when popping user scopes
- functions as flag when handling inconsistent input (e.g., opposite literals)
- now all constraints in the conflict core should have bvalue == l_true
2022-09-23 16:06:14 +02:00
Jakob Rath
b43971bb4a
Connect conflict2
2022-09-21 12:14:44 +02:00
Jakob Rath
a416e16566
conflict2
2022-09-19 16:01:45 +02:00
Jakob Rath
acf9976df9
make it compile
2022-08-26 16:28:52 +02:00
Jakob Rath
e39e1dcc49
Extract inference_logger
2022-08-25 16:03:17 +02:00
Jakob Rath
53f276d225
apply
2022-08-22 12:44:56 +02:00
Jakob Rath
3e99828c3c
start make_asserting for non-unit coeff
2022-08-19 17:06:28 +02:00
Jakob Rath
c3e7bd34d0
make_asserting for unit coefficients
2022-08-19 16:02:56 +02:00
Jakob Rath
201d841a90
lit_pp with extra information
2022-08-17 09:29:00 +02:00
Jakob Rath
bab8d817ef
Remove decisions on lemmas
2022-08-04 14:24:20 +02:00
Jakob Rath
c67024d88b
unused for now
2022-08-04 13:52:29 +02:00
Jakob Rath
014fe4e3fd
fallback stats
2022-08-04 08:51:24 +02:00
Jakob Rath
b9588af07a
fix output
2022-08-03 10:01:54 +02:00
Jakob Rath
a76f977f85
Change univariate fallback solver to one-shot mode for now
2022-08-02 12:42:34 +02:00
Jakob Rath
48c6bea331
umul 2
2022-07-21 12:38:00 +02:00
Jakob Rath
d4592f2abf
umul
2022-07-21 11:57:27 +02:00
Jakob Rath
8d871bf8b5
dead code
2022-07-21 11:48:41 +02:00