Jakob Rath
fa036ae486
track clause name for debugging
2023-01-11 10:50:14 +01:00
Jakob Rath
5f2fd039ba
Perform clause simplification earlier
2022-12-22 13:07:38 +01:00
Nikolaj Bjorner
a8d401864b
review
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-20 12:46:15 -08:00
Jakob Rath
ca373836af
Merge remote-tracking branch 'origin/polysat' into polysat
2022-12-16 14:26:38 +01:00
Jakob Rath
3b3636b30e
Remove conflict::set
2022-12-16 14:25:41 +01:00
Jakob Rath
06e6f27614
refactor
2022-12-16 14:22:50 +01:00
Jakob Rath
afde0e993c
Add bitblasting fallback to viable::query
...
(integration between conflict/viable is still messy)
2022-12-16 13:02:54 +01:00
Clemens Eisenhofer
71211f3134
Some bugfixes and unit-tests for variable elimination
2022-12-16 10:12:34 +01:00
Nikolaj Bjorner
a5f12e9d57
add parity constraint for disequality
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-12 19:40:19 -08:00
Jakob Rath
917e1b6a4c
When adding clauses, prioritize bool-propagation over evaluation
...
See test_band1 and clause: v2 == v0 & v1 --> v2 <= 0
2022-12-12 14:48:13 +01:00
Nikolaj Bjorner
a6b49d8b4e
provide access to saturation for selected constraints
2022-12-08 19:17:35 -08:00
Jakob Rath
3c8718615a
yes, no need for plugins to be mutually exclusive
2022-12-08 16:19:11 +01:00
Jakob Rath
5ad961029d
Rename revert_decision -> revert_pvar, and enable it.
...
Also rename resolve_with_assignment to resolve_evaluated
2022-12-08 16:19:11 +01:00
Jakob Rath
71acba20e2
Assertion was too strong (via test_ineq1)
2022-12-07 16:13:24 +01:00
Nikolaj Bjorner
754cb540d0
disable new code paths for commit
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-07 02:23:43 -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
066b7d2d71
add review comments based on debugging
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-12-04 03:49:17 -08:00
Jakob Rath
630276dbad
Re-enable saturation
2022-11-29 10:00:25 +01:00
Jakob Rath
4aa04fa475
Lemma names
2022-11-28 19:13:38 +01:00
Jakob Rath
3d79cddf33
Update saturation inferences
2022-11-28 18:02:18 +01:00
Jakob Rath
5c63a67634
disable for now
2022-11-23 16:59:26 +01:00
Jakob Rath
0e32077321
Use insert_eval for potentially new constraints
2022-11-23 16:54:35 +01:00
Jakob Rath
2787a22007
Backtrack/backjump based on accumulated lemmas
2022-11-23 12:49:36 +01:00
Jakob Rath
85a633a3e0
Update resolve_value
2022-11-22 13:47:31 +01:00
Jakob Rath
f12ae0af12
clause_builder: rename push to insert
2022-11-17 17:37:52 +01:00
Jakob Rath
dbe814d568
Add forbidden interval lemma separately
2022-11-17 15:00:16 +01:00
Jakob Rath
38a43bd087
Remove conflict_kind
2022-11-17 12:25:28 +01:00
Jakob Rath
00e8c53f9a
Remove unused code
2022-11-17 12:22:40 +01:00
Jakob Rath
aa59de9056
Track max jump level from side lemmas
2022-11-14 15:43:46 +01:00
Jakob Rath
cd83a6ec69
Remove bailout state from conflict
2022-11-14 15:15:35 +01:00
Jakob Rath
e2804c3db2
Remove bail_vars
2022-11-14 15:02:58 +01:00
Jakob Rath
eec8e8ebe4
Fix name: value propagation -> evaluation (for boolean literals)
2022-11-14 14:58:20 +01:00
Jakob Rath
436881c18c
print lemmas
2022-11-14 14:51:54 +01:00
Jakob Rath
01af25ca02
Remove backjump state from conflict
2022-11-14 14:33:19 +01:00
Jakob Rath
406696f0a3
Remove unused code
2022-11-11 10:25:49 +01:00
Jakob Rath
d3f70c0fb8
Rename: explain -> superposition
2022-11-10 14:42:13 +01:00
Jakob Rath
586ffdf402
Remove unnecessary argument
2022-11-07 14:04:28 +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
2d8b7b5ac6
deal with compiler warnings
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-10-13 17:55:47 +02:00
Jakob Rath
4406652c7b
Narrow conflicting constraint after backjumping
2022-10-07 18:01:54 +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
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
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
9cc9d1fac4
count
2022-10-04 14:08:44 +02:00