Nikolaj Bjorner
eca72ffda1
debug simplify_clause
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-10-14 12:12:21 +02:00
Nuno Lopes
87e45221fd
add missing break stmt to example
...
Reported by Henrique Preto
2022-10-14 09:43:18 +01: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
Nikolaj Bjorner
e2cfc53c9f
#6364
...
skip proof hint unless proofs are on
2022-10-13 15:31:58 +02:00
Nikolaj Bjorner
9bf5e3f5fc
fixes for #6388
2022-10-13 15:22:19 +02:00
Nikolaj Bjorner
2449ba93c5
add (disabled) experiment to use quot-rem instead of division circuit
2022-10-13 15:20:43 +02:00
Nikolaj Bjorner
8a30128933
formatting updates
2022-10-13 15:20:24 +02:00
Nikolaj Bjorner
93e1db0b0b
fix #6398
2022-10-13 11:16:14 +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
Nikolaj Bjorner
ddf4895c2f
admit timeouts and other resource limits for get-core #6310
2022-10-12 12:09:52 +02:00
Nuno Lopes
a7f018aa03
fix compiler warnings
2022-10-12 10:02:21 +01:00
Nuno Lopes
8ad480ab59
fix compiler warnings
2022-10-12 09:43:50 +01:00
Nikolaj Bjorner
a2e0646eed
wip - proof checker
2022-10-12 09:34:49 +02:00
Nikolaj Bjorner
ace727ee0f
fix #6391
2022-10-12 09:34:49 +02:00
Nuno Lopes
a41520acf1
mpf: fix some string copies
2022-10-11 11:59:29 +01:00
Nikolaj Bjorner
1b3684c9c1
wip - fixes to implied-eq proof hints
2022-10-11 09:54:00 +02:00
Nikolaj Bjorner
ffeb8f4572
wip - tseitin check
...
```
(set-option :sat.euf true)
(set-option :sat.smt.proof tseitinproof.smt2)
(set-option :tactic.default_tactic smt)
(declare-const a1 Bool)
(declare-const a2 Bool)
(declare-const a3 Bool)
(declare-const a4 Bool)
(declare-const a5 Bool)
(declare-const a6 Bool)
(declare-const a7 Bool)
(declare-const a8 Bool)
(declare-const a9 Bool)
(declare-const a10 Bool)
(declare-const a11 Bool)
(declare-const a12 Bool)
(declare-const a13 Bool)
(declare-const a14 Bool)
(declare-const a15 Bool)
(declare-const a16 Bool)
(declare-const a17 Bool)
(declare-const a18 Bool)
(declare-const a19 Bool)
(declare-const x1 Bool)
(declare-const x2 Bool)
(declare-const x3 Bool)
(declare-const x4 Bool)
(declare-const x5 Bool)
(declare-const x6 Bool)
(declare-const x7 Bool)
(declare-const x8 Bool)
(declare-const x9 Bool)
(declare-const b1 Int)
(declare-const b2 Int)
(declare-const b3 Int)
(declare-const b4 Int)
(assert (= x1 (and a1 a2)))
(assert (= x2 (or a3 a4)))
(assert (= x3 (=> a5 a6)))
(assert (= x4 (= a7 a8)))
(assert (= x5 (if a9 a10 a11)))
(assert (= x6 (=> a12 a13)))
(assert (= x7 (xor a1 a2 a3)))
(assert (= x7 (xor a1 a2 a3 a4 a5 (not a6))))
(assert (= x8 (= (ite a1 b1 b2) b3)))
(check-sat)
(exit)
```
2022-10-11 09:21:36 +02:00
Nikolaj Bjorner
62438da0f5
wip - add xor and non-bool ite tseitin rules
2022-10-11 09:15:18 +02:00
Nikolaj Bjorner
cd8b8b603a
tseitin rule checking - wip
...
Unit test
```
(set-option :sat.euf true)
(set-option :sat.smt.proof tseitinproof.smt2)
(declare-const a1 Bool)
(declare-const a2 Bool)
(declare-const a3 Bool)
(declare-const a4 Bool)
(declare-const a5 Bool)
(declare-const a6 Bool)
(declare-const a7 Bool)
(declare-const a8 Bool)
(declare-const a9 Bool)
(declare-const a10 Bool)
(declare-const a11 Bool)
(declare-const a12 Bool)
(declare-const a13 Bool)
(declare-const a14 Bool)
(declare-const a15 Bool)
(declare-const a16 Bool)
(declare-const a17 Bool)
(declare-const a18 Bool)
(declare-const a19 Bool)
(declare-const x1 Bool)
(declare-const x2 Bool)
(declare-const x3 Bool)
(declare-const x4 Bool)
(declare-const x5 Bool)
(declare-const x6 Bool)
(declare-const x7 Bool)
(declare-const x8 Bool)
(declare-const x9 Bool)
(assert (= x1 (and a1 a2)))
(assert (= x2 (or a3 a4)))
(assert (= x3 (=> a5 a6)))
(assert (= x4 (= a7 a8)))
(assert (= x5 (if a9 a10 a11)))
(assert (= x6 (=> a12 a13)))
(check-sat)
```
Output proof
```
(declare-fun a1 () Bool)
(declare-fun a2 () Bool)
(define-const $26 Bool (and a1 a2))
(declare-fun tseitin (Bool Bool) Proof)
(define-const $60 Bool (not $26))
(define-const $61 Proof (tseitin $60 a1))
(infer a1 (not $26) $61)
(define-const $62 Proof (tseitin $60 a2))
(infer a2 (not $26) $62)
(declare-fun tseitin (Bool Bool Bool) Proof)
(define-const $64 Bool (not a2))
(define-const $63 Bool (not a1))
(define-const $65 Proof (tseitin $63 $64 $26))
(infer (not a1) (not a2) $26 $65)
(declare-fun x1 () Bool)
(assume (not x1) $26)
(assume x1 (not $26))
(declare-fun a3 () Bool)
(declare-fun a4 () Bool)
(define-const $31 Bool (or a3 a4))
(define-const $66 Bool (not a3))
(define-const $67 Proof (tseitin $66 $31))
(infer (not a3) $31 $67)
(define-const $68 Bool (not a4))
(define-const $69 Proof (tseitin $68 $31))
(infer (not a4) $31 $69)
(define-const $70 Bool (not $31))
(define-const $71 Proof (tseitin a3 a4 $70))
(infer a3 a4 (not $31) $71)
(declare-fun x2 () Bool)
(assume (not x2) $31)
(assume x2 (not $31))
(declare-fun a6 () Bool)
(declare-fun a5 () Bool)
(define-const $38 Bool (not a5))
(define-const $39 Bool (or a6 $38))
(define-const $72 Bool (not a6))
(define-const $73 Proof (tseitin $72 $39))
(infer (not a6) $39 $73)
(define-const $74 Proof (tseitin a5 $39))
(infer a5 $39 $74)
(define-const $75 Bool (not $39))
(define-const $76 Proof (tseitin a6 $38 $75))
(infer a6 (not a5) (not $39) $76)
(declare-fun x3 () Bool)
(assume (not x3) $39)
(assume x3 (not $39))
(declare-fun a7 () Bool)
(declare-fun a8 () Bool)
(define-const $44 Bool (= a7 a8))
(define-const $78 Bool (not a7))
(define-const $77 Bool (not $44))
(define-const $79 Proof (tseitin $77 a8 $78))
(infer (not a7) a8 (not $44) $79)
(define-const $80 Bool (not a8))
(define-const $81 Proof (tseitin $77 $80 a7))
(infer a7 (not a8) (not $44) $81)
(define-const $82 Proof (tseitin $44 a8 a7))
(infer a7 a8 $44 $82)
(define-const $83 Proof (tseitin $44 $80 $78))
(infer (not a7) (not a8) $44 $83)
(declare-fun x4 () Bool)
(assume (not x4) $44)
(assume x4 (not $44))
(declare-fun a9 () Bool)
(declare-fun a10 () Bool)
(declare-fun a11 () Bool)
(define-const $50 Bool (ite a9 a10 a11))
(define-const $85 Bool (not a9))
(define-const $84 Bool (not $50))
(define-const $86 Proof (tseitin $84 $85 a10))
(infer (not a9) a10 (not $50) $86)
(define-const $87 Proof (tseitin $84 a9 a11))
(infer a9 a11 (not $50) $87)
(define-const $88 Bool (not a10))
(define-const $89 Proof (tseitin $50 $85 $88))
(infer (not a9) (not a10) $50 $89)
(define-const $90 Bool (not a11))
(define-const $91 Proof (tseitin $50 a9 $90))
(infer a9 (not a11) $50 $91)
(define-const $92 Proof (tseitin $88 $90 $50))
(infer (not a10) (not a11) $50 $92)
(define-const $93 Proof (tseitin a10 a11 $84))
(infer a10 a11 (not $50) $93)
(declare-fun x5 () Bool)
(assume (not x5) $50)
(assume x5 (not $50))
(declare-fun a13 () Bool)
(declare-fun a12 () Bool)
(define-const $57 Bool (not a12))
(define-const $58 Bool (or a13 $57))
(define-const $94 Bool (not a13))
(define-const $95 Proof (tseitin $94 $58))
(infer (not a13) $58 $95)
(define-const $96 Proof (tseitin a12 $58))
(infer a12 $58 $96)
(define-const $97 Bool (not $58))
(define-const $98 Proof (tseitin a13 $57 $97))
(infer a13 (not a12) (not $58) $98)
(declare-fun x6 () Bool)
(assume (not x6) $58)
(assume x6 (not $58))
```
2022-10-10 23:44:03 +02:00
Nikolaj Bjorner
fceedf60dc
wip - proofs
2022-10-10 16:41:09 +02:00
Nikolaj Bjorner
de69874076
wip - adding proof checkers, fixes to quantifier proof certificates
2022-10-10 09:46:22 +02:00
Nikolaj Bjorner
4623117af8
wip - proof hints
2022-10-08 20:12:57 +02:00
Nikolaj Bjorner
6796ea7e49
add new files
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-10-07 19:22:36 +02:00
Nikolaj Bjorner
35639c5ac0
adding q proof hints
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-10-07 19:21:21 +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
Nuno Lopes
661a1624b4
avoid string copying in mpf_manager::set
2022-10-07 14:03:13 +01: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
Nikolaj Bjorner
5c9f69829b
fixes to trim
2022-10-07 09:58:12 +02:00
Nuno Lopes
a792251a82
remove old compat code
2022-10-06 17:22:17 +01:00
Nikolaj Bjorner
9f78a96c1d
wip - trim
2022-10-06 18:19:03 +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
Nikolaj Bjorner
4e780d0cc8
trim
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-10-05 05:43:48 +02:00
Nikolaj Bjorner
f8ca692dee
fixes to trim
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-10-05 04:32:00 +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