Nikolaj Bjorner
6d6752b2aa
#6364
2022-10-20 16:39:43 -07:00
Nikolaj Bjorner
e2cfc53c9f
#6364
...
skip proof hint unless proofs are on
2022-10-13 15:31:58 +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
107981f099
update proof formats for new core
...
- update proof format for quantifier instantiation to track original literals
- update proof replay tools with ability to extract proof object
The formats and features are subject to heavy revisions.
Example
```
(set-option :sat.euf true)
(set-option :sat.smt.proof eufproof.smt2)
(declare-fun f (Int) Int)
(declare-const x Int)
(assert (or (= (f (f (f x))) x) (= (f (f x)) x)))
(assert (not (= (f (f (f (f (f (f x)))))) x)))
(check-sat)
```
eufproof.smt2 is:
```
(declare-fun x () Int)
(declare-fun f (Int) Int)
(define-const $24 Int (f x))
(define-const $25 Int (f $24))
(define-const $26 Int (f $25))
(define-const $27 Bool (= $26 x))
(define-const $28 Bool (= $25 x))
(assume $27 $28)
(define-const $30 Int (f $26))
(define-const $31 Int (f $30))
(define-const $32 Int (f $31))
(define-const $33 Bool (= $32 x))
(assume (not $33))
(declare-fun rup () Proof)
(infer (not $33) rup)
(declare-fun euf (Bool Bool Proof Proof Proof Proof) Proof)
(declare-fun cc (Bool) Proof)
(define-const $42 Bool (= $32 $30))
(define-const $43 Proof (cc $42))
(define-const $40 Bool (= $31 $24))
(define-const $41 Proof (cc $40))
(define-const $38 Bool (= $30 $25))
(define-const $39 Proof (cc $38))
(define-const $36 Bool (= $24 $26))
(define-const $37 Proof (cc $36))
(define-const $34 Bool (not $33))
(define-const $44 Proof (euf $34 $28 $37 $39 $41 $43))
(infer (not $28) $33 $44)
(infer (not $28) rup)
(infer $27 rup)
(declare-fun euf (Bool Bool Proof Proof Proof) Proof)
(define-const $49 Bool (= $32 $26))
(define-const $50 Proof (cc $49))
(define-const $47 Bool (= $31 $25))
(define-const $48 Proof (cc $47))
(define-const $45 Bool (= $24 $30))
(define-const $46 Proof (cc $45))
(define-const $51 Proof (euf $34 $27 $46 $48 $50))
(infer $33 $51)
(infer rup)
```
Example of inspecting proof from Python:
```
from z3 import *
def parse(file):
s = Solver()
set_option("solver.proof.save", True)
set_option("solver.proof.check", False)
s.from_file(file)
for step in s.proof().children():
print(step)
parse("../eufproof.smt2")
```
Proof checking (self-validation) is on by default.
Proof saving is off by default.
You can use the proof logs and the proof terms to retrieve quantifier instantiations from the new core.
The self-checker contains a few built-in tuned checkers but falls back to self-checking inferred clauses using SMT.
2022-09-28 10:40:43 -07:00
Nikolaj Bjorner
d7b9cc70d0
smc
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-09-25 18:03:16 -07:00
Nikolaj Bjorner
1f150ecd52
#6319
...
#6319 - fix incompleteness in propagation of default to all array terms in the equivalence class.
Fix bug with q_mbi where domain restrictions are not using values because the current model does not evaluate certain bound variables to values. Set model completion when adding these bound variables to the model to ensure their values are not missed.
Add better propagation of diagnostics when tactics and the new solver return unknown. The reason for unknown can now be traced to what theory was culprit (currently no additional information)
2022-09-23 22:22:34 -05:00
Nikolaj Bjorner
e54635e0ed
rename statistics to something more meaningful: instantiations from MBQI are tagged with mbi
2022-09-18 17:23:00 -07:00
Nikolaj Bjorner
ac5b190a72
track instantiations from MBQI in proof logging for new solver
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-09-01 08:51:53 -07:00
Nikolaj Bjorner
ce1f3987d9
fix unsoundness in quantifier propagation #6116 and add initial lemma logging
2022-08-23 19:10:01 -07:00
Nikolaj Bjorner
2fedcbd41e
#5778
2022-04-02 01:27:56 -07:00
Nikolaj Bjorner
90fd3d82fc
enable propagation
2022-01-08 19:00:56 -08:00
Nikolaj Bjorner
9cbec3b0ca
#5641
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-01-02 19:15:23 -08:00
Nikolaj Bjorner
43e449a805
#5641
2022-01-02 17:53:26 -08:00
Nikolaj Bjorner
d0fb3cba15
#5641 - projection that skips interpreted functions can violate model evaluation.
2022-01-02 17:45:43 -08:00
Nikolaj Bjorner
b87b464e69
set relevancy flag on enode
2021-12-29 17:57:28 -08:00
Nikolaj Bjorner
a90b66134d
make roots uniform for theory lemmas
2021-12-29 13:42:11 -08:00
Nikolaj Bjorner
6f31d83633
fix #5541
2021-09-20 10:10:28 -07:00
Nikolaj Bjorner
fea14245a0
#5454
2021-08-11 19:43:42 -07:00
Nikolaj Bjorner
7ae4e93e86
Sharon & Neta notes
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-08-03 16:45:25 -07:00
Nikolaj Bjorner
bcf0f671b8
disable drat inside of quantifier elaboration
2021-07-30 23:27:37 -07:00
Nikolaj Bjorner
b8a437bd8a
#5429
...
relevancy propagation applies to quantifier unfolding.
2021-07-29 15:05:06 -07:00
Nikolaj Bjorner
16413b4f9a
#5429
2021-07-27 17:18:22 -07:00
Nikolaj Bjorner
574246ff7a
#5420
2021-07-20 15:29:24 -07:00
Nikolaj Bjorner
36d265a32c
na
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-07-18 12:06:45 +02:00
Nikolaj Bjorner
6f2bf37268
#5336 missing theory variable creation in fpa_solver
2021-07-17 20:31:11 +02:00
Nikolaj Bjorner
ed9341e3b0
#5336
2021-06-19 22:22:56 -07:00
Nikolaj Bjorner
df9084ba23
#5336
2021-06-16 19:12:50 -05:00
Nikolaj Bjorner
c6f0afa008
#5324
2021-06-08 12:29:16 -07:00
Nikolaj Bjorner
85b672ee85
#5324
2021-06-04 17:54:19 -07:00
Nuno Lopes
5e034e495f
fix compiler warnings
2021-02-19 10:33:41 +00:00
Nikolaj Bjorner
83f4a006c6
wreckfun
2021-02-12 19:46:47 -08:00
Nikolaj Bjorner
25f53c0467
deal with warnings reported in https://launchpadlibrarian.net/522361319/buildlog_ubuntu-groovy-s390x.z3_4.8.10-1ubuntu4ppa1_BUILDING.txt.gz
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-02-11 13:49:47 -08:00
Nikolaj Bjorner
a152bb1e80
remove template Context dependency in every trail object
2021-02-08 15:41:57 -08:00
Nikolaj Bjorner
937b61fc88
fix build, refactor
2021-02-02 05:26:57 -08:00
Nikolaj Bjorner
3ae4c6e9de
refactor get_sort
2021-02-02 04:45:54 -08:00
Nikolaj Bjorner
80033a5527
na
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-01-19 23:21:47 -08:00
Nikolaj Bjorner
7c34a54e8a
try different command-line
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-01-19 04:28:22 -08:00
Nikolaj Bjorner
01418a06a3
better staging of mbi based on generation
2021-01-18 16:55:58 -08:00
Nikolaj Bjorner
d1dab327cd
fix build
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-01-11 23:51:40 -08:00
Nikolaj Bjorner
0173359a50
debugging/testing mbi
2021-01-07 17:32:05 -08:00
Nikolaj Bjorner
523578e3f6
working on new solver core
2020-12-30 14:38:41 -08:00
Nikolaj Bjorner
374ae52d70
testing mbi
2020-12-26 13:49:59 -08:00
Nikolaj Bjorner
372e5ca569
fixes in new solver
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-12-25 11:19:31 -08:00
Nikolaj Bjorner
a4354c960c
na
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-11-08 17:18:17 -08:00
Nikolaj Bjorner
ab199dedf9
debug arith/mbi
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-11-02 12:13:19 -08:00
Nikolaj Bjorner
fb6e7e146b
test mbi
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-10-30 17:03:04 -07:00
Nikolaj Bjorner
a764d528a1
'clean
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-10-30 13:14:48 -07:00
Nikolaj Bjorner
d64bc795f0
wrong assert, compiler warnings
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-10-30 10:10:59 -07:00
Nikolaj Bjorner
2e684d58d2
redo purification
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-10-29 11:06:31 -07:00