3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 00:55:31 +00:00
Commit graph

18075 commits

Author SHA1 Message Date
Jakob Rath
e33f728128 hm 2022-10-31 15:54:56 +01:00
Jakob Rath
29695391de First pass at free variable elimination 2022-10-31 15:22:03 +01:00
Jakob Rath
4cdd3bf77d Add overload for conflict::add_lemma 2022-10-31 15:19:36 +01:00
Jakob Rath
6a03df9017 Track set of variables that occur in conflict constraints 2022-10-31 15:18:48 +01:00
Jakob Rath
eba59356f3 Disable problematic resolve_with_assignment 2022-10-31 15:17:32 +01:00
Nikolaj Bjorner
eca72ffda1 debug simplify_clause
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-10-14 12:12:21 +02:00
Nikolaj Bjorner
e711808d3e throttle on degree bounds
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-10-13 20:04:21 +02:00
Nikolaj Bjorner
7036dd826f update defaults to make it easier to test polysat
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-10-13 19:46:45 +02:00
Nikolaj Bjorner
2d8b7b5ac6 deal with compiler warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-10-13 17:55:47 +02:00
Jakob Rath
66469bb678 Don't leave propagation loop too early (cause of unsoundness in bench0) 2022-10-12 13:20:34 +02:00
Jakob Rath
4406652c7b Narrow conflicting constraint after backjumping 2022-10-07 18:01:54 +02:00
Jakob Rath
54ed6d4413 Don't cut off output arbitrarily 2022-10-07 17:49:03 +02:00
Jakob Rath
714c71ab88 Try to fix lemma_invariant 2022-10-07 17:48:22 +02:00
Jakob Rath
05f1b4dd1a Update note on subsumption (for later) 2022-10-07 16:32:56 +02:00
Jakob Rath
b2d926362c Move some functions; delete old comments 2022-10-07 16:32:29 +02:00
Jakob Rath
e7c9a99d08 Add note as comment 2022-10-07 16:29:14 +02:00
Jakob Rath
23a747235d Some assertions are now too strict
If possible, we should set the new constraint to l_true;
and revert most of this change later.
Or we adjust the conflict invariant:
- l_true constraints is the default case as before,
- l_undef constraints are new and justified by some side lemma, but
  should be treated by the conflict resolution methods like l_true
  constraints,
- l_false constraints are disallowed in the conflict (as before).
2022-10-07 16:24:14 +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
8b4a36e3bd Simplify clause_builder 2022-10-07 15:22:49 +02:00
Jakob Rath
e18bc46de1 Move on_scope_exit to util.h 2022-10-07 14:23:26 +02:00
Jakob Rath
dcd6c01a90 revive polynomial superposition (wip) 2022-10-07 10:34:07 +02:00
Jakob Rath
155b746e03 side lemmas 2022-10-07 10:18:29 +02:00
Jakob Rath
bef1be8cb5 should not happen anymore 2022-10-07 10:11:00 +02:00
Jakob Rath
af368b39c9 less output 2022-10-07 10:10:44 +02:00
Jakob Rath
f184545aca Debug dlist insertion
Found because of assertion failure in
test_polysat::test_fixed_point_arith_div_mul_inverse()
2022-10-05 17:24:28 +02:00
Jakob Rath
e58815884f Remove debugging leftover 2022-10-04 17:10:10 +02:00
Jakob Rath
dc9373dcbd Change old solver::propagate method 2022-10-04 17:09:09 +02:00
Jakob Rath
a0fe568561 Another possible case for subsumption 2022-10-04 14:13:51 +02:00
Jakob Rath
e18dfb2253 revert_bool_decision 2022-10-04 14:13:39 +02:00
Jakob Rath
ad5c4145c1 pop non-asserting lemmas 2022-10-04 14:10:54 +02:00
Jakob Rath
46c69766d1 output 2022-10-04 14:09:57 +02:00
Jakob Rath
9cc9d1fac4 count 2022-10-04 14:08:44 +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
811843cf45 Fix interval check 2022-10-03 15:35:07 +02:00
Jakob Rath
e09cf4faa5 Remove broken method 2022-10-03 11:05:07 +02:00
Jakob Rath
6caa3ba1b7 Skip redundant intervals in viable::resolve (disabled for now) 2022-10-03 11:03:05 +02:00
Jakob Rath
0b560e5117 Improve sharing 2022-10-03 10:57:56 +02:00
Jakob Rath
cd2d197bb9 Add compact version of std::all_of 2022-10-03 10:55:13 +02:00
Jakob Rath
0bea276e82 Add dll_iterator 2022-10-03 10:54:24 +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
9b907d709f minor 2022-09-29 18:25:28 +02:00
Jakob Rath
8242069ba6 One more case for ule_constraint::is_always_false 2022-09-29 18:22:31 +02:00
Jakob Rath
6218931dde We only need one of is_true/is_false 2022-09-29 17:19:47 +02:00
Jakob Rath
79c82a3d97 update ule_constraint::is_currently_true 2022-09-29 17:02:30 +02:00
Jakob Rath
8d803a1266 Move unfinished make_asserting code 2022-09-28 19:19:33 +02:00
Jakob Rath
0dae3bad6a Fix subsumption terminology 2022-09-28 15:35:05 +02:00
Jakob Rath
7be82a36f2 Recognize x != k among new literals in lemma 2022-09-28 15:16:05 +02:00
Jakob Rath
6715058876 Simplify equations into canonical form
Also simplify constraints that are always false due to parity
2022-09-28 13:22:17 +02:00