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
Bruce Mitchener
5d0dea05aa
Remove empty leaf destructors. ( #6211 )
2022-07-30 10:07:03 +01:00
Nikolaj Bjorner
f20db3e644
allow for toggling proof and core mode until the first assertion.
2022-07-02 09:31:36 -07:00
Nikolaj Bjorner
011c1b2dd2
remove refs to bare_str
2022-04-09 12:06:27 +02:00
Nuno Lopes
43f7636826
remove some copies/moves
2022-03-09 12:46:41 +00:00
Nikolaj Bjorner
a44a46a514
fix #5745
2021-12-31 16:41:51 -08:00
Nikolaj Bjorner
4a6083836a
call it data instead of c_ptr for approaching C++11 std::vector convention.
2021-04-13 18:17:35 -07:00
Nikolaj Bjorner
549ef0e052
fix typos #4573
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-07-20 10:22:57 -07:00
Nuno Lopes
23e6adcad3
fix a couple hundred deref-after-free bugs due to .c_str() on a temporary string
2020-07-11 20:24:45 +01:00
Nikolaj Bjorner
4e81085292
na
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-01-21 10:29:42 -06:00
Nikolaj Bjorner
c816d45a7d
share some equalities
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-01-20 16:22:38 -06:00
Nikolaj Bjorner
9179deb746
add get-interpolant command
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-01-20 16:22:38 -06:00
Nikolaj Bjorner
18b8089a1e
Revert "remove unused random seed parameter on cmd_context"
...
This reverts commit e2a9cb80e2
.
2019-10-29 11:05:50 -07:00
Nikolaj Bjorner
e2a9cb80e2
remove unused random seed parameter on cmd_context
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-10-22 08:42:18 -07:00
Nikolaj Bjorner
724a42b6f2
fix #2643
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-10-18 09:48:55 -07:00
Nikolaj Bjorner
f128398bf9
add clause proof module, small improvements to bapa
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-05-30 15:57:19 -07:00
Nikolaj Bjorner
cdc89b6193
add get-info :rlimit option to cmd-context to facilitate timeout based repros
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-03-24 12:57:08 -07:00
Nikolaj Bjorner
54a125063b
remove produce interpolants
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-01-14 15:00:25 -08:00
Bruce Mitchener
e570940662
Prefer using empty rather than size comparisons.
2018-11-27 21:42:04 +07:00
Nikolaj Bjorner
e391416855
fix include path for z3_version.h
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-09-21 20:30:50 -07:00
Nuno Lopes
cef17c22a1
remove some allocs from exceptions
2018-07-02 17:08:02 +01:00
Nikolaj Bjorner
335d672bf1
fix #1675 , regression in core processing in maxres
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-19 23:23:19 -07:00
Nikolaj Bjorner
74621e0b7d
first eufi example running
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-14 16:08:52 -07:00
Nikolaj Bjorner
c963f6f2df
merge with master
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-05-23 08:02:16 -07:00
Nikolaj Bjorner
50c93d1ad4
merge with 4.7.1
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-05-22 17:10:36 -07:00
Daniel Schemmel
f02d031d11
As of GCC8, the throw by value, catch by reference idiom is enforced via -Wcatch-value
2018-05-19 04:39:36 +02:00
Nikolaj Bjorner
f525f43e43
merge
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-04-30 09:30:43 -07:00
Nikolaj Bjorner
5dbba8bd53
fix #1599 . fix #1600
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-04-27 17:48:04 +02:00
Nikolaj Bjorner
c513f3ca09
merge with master
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-03-25 14:57:01 -07:00
Bruce Mitchener
76eb7b9ede
Use nullptr.
2018-02-12 14:05:55 +07:00
Bruce Mitchener
b7d1753843
Use override rather than virtual.
2018-02-09 21:19:27 +07:00
Nikolaj Bjorner
354c16454a
fix bug in translation of pbeq into sat
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-02-03 22:19:25 -08:00
Bruce Mitchener
ae8027e594
Fix typos.
2018-02-01 19:39:43 +07:00
Nikolaj Bjorner
7b8101c502
fix bugs related to model-converter
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-01-17 12:25:24 -08:00
Simon Cruanes
ed526b808d
add parameter to specify the file into which dot proofs are to be printed
2017-10-24 10:16:56 +02:00
Simon Cruanes
d630838b38
add a basic printer into graphviz ( http://graphviz.org/ ) for proofs
...
- proofs are output into file `proof.dot` if `(get-proof-graph)` is
in the input
- use `dot -Txlib proof.dot` to see the proof
- use `dot -Tsvg proof.dot` to get a svg file
2017-10-24 09:41:38 +02:00
Nikolaj Bjorner
06087c17be
support for legacy datatype test
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-09-05 10:28:11 -07:00
Dan Liew
a2d7b43554
Update header includes to be relative to src/
directory.
2017-08-17 18:26:53 +01:00
Nikolaj Bjorner
082936bca6
enable overloading resolution on define-fun declarations, fix #1199
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-08-08 09:21:06 +02:00
Nikolaj Bjorner
2b82fd5d0c
updated include directives
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-08-01 10:51:47 -07:00
Nikolaj Bjorner
b19f94ae5b
make include paths uniformly use path relative to src. #534
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-07-31 13:24:11 -07:00
Christoph M. Wintersteiger
a0b25147d9
Fix for the fix for #1062 .
2017-06-20 14:48:03 +01:00
Christoph M. Wintersteiger
ab21caf55f
Reverted fix for quoted echo strings when smtlib2_compliant=false. Kindly reported by Armael Gueneau. Fixes #1062 .
2017-06-20 14:39:22 +01:00
Christoph M. Wintersteiger
7b97688302
Whitespace, typo.
2017-06-20 14:36:40 +01:00
Nikolaj Bjorner
6bce173248
properly quote symbols #1061
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-12 18:35:02 -07:00
Nikolaj Bjorner
f0fa439c48
escaping names in get-assignment #1061
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-11 17:17:47 -07:00
Nikolaj Bjorner
f44a3e1bbc
print_core as a function
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-10 10:18:07 -07:00
Nikolaj Bjorner
d5f646929e
print success #1068
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-10 09:16:36 -07:00
Nikolaj Bjorner
668bad6121
print success after reset assertions #1057
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-06-04 11:04:54 -07:00
Nikolaj Bjorner
4cbf938cf3
enable get-unsat-assumptions command per request in #1048
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-05-29 16:26:22 -07:00