3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-28 08:58:44 +00:00
Commit graph

24 commits

Author SHA1 Message Date
Nikolaj Bjorner
1b0c76e3f0 fixes to mbqi in the new core based on #6575 2023-02-10 16:56:06 -08:00
Nikolaj Bjorner
4623117af8 wip - proof hints 2022-10-08 20:12:57 +02:00
Nikolaj Bjorner
e2f4fc2307 overhaul of proof format for new solver
This commit overhauls the proof format (in development) for the new core.

NOTE: this functionality is work in progress with a long way to go.
It is shielded by the sat.euf option, which is off by default and in pre-release state.
It is too early to fuzz or use it. It is pushed into master to shed light on road-map for certifying inferences of sat.euf.

It retires the ad-hoc extension of DRUP used by the SAT solver.
Instead it relies on SMT with ad-hoc extensions for proof terms.
It adds the following commands (consumed by proof_cmds.cpp):

- assume  - for input clauses
- learn   - when a clause is learned (or redundant clause is added)
- del     - when a clause is deleted.

The commands take a list of expressions of type Bool and the
last argument can optionally be of type Proof.
When the last argument is of type Proof it is provided as a hint
to justify the learned clause.

Proof hints can be checked using a self-contained proof
checker. The sat/smt/euf_proof_checker.h class provides
a plugin dispatcher for checkers.
It is instantiated with a checker for arithmetic lemmas,
so far for Farkas proofs.

Use example:
```
(set-option :sat.euf true)
(set-option :tactic.default_tactic smt)
(set-option :sat.smt.proof f.proof)
(declare-const x Int)
(declare-const y Int)
(declare-const z Int)
(declare-const u Int)
(assert (< x y))
(assert (< y z))
(assert (< z x))
(check-sat)
```

Run z3 on a file with above content.
Then run z3 on f.proof

```
(verified-smt)
(verified-smt)
(verified-smt)
(verified-farkas)
(verified-smt)
```
2022-08-28 17:44:33 -07:00
Nikolaj Bjorner
a628e4c4e5 updates to printer to get instantiations, take 1 2022-08-25 11:22:35 -07:00
Nikolaj Bjorner
fb8532bf55 succinct logging
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-23 21:06:04 -07:00
Nikolaj Bjorner
786280c646 print skolem declarations only for lemma tracing 2022-08-11 11:34:54 +03:00
Nikolaj Bjorner
1028c80851 update pretty printer for recursive function filtering
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-15 11:59:41 -07: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
a083633ab4 fix #4749
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-10-22 12:01:40 -07:00
Nikolaj Bjorner
8bb2442a3f make smt2 log scope aware
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-10-08 18:14:32 -07:00
Nikolaj Bjorner
f6f3ca1507 adding SMT2 log file for solver interaction #867
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-10-08 11:44:47 -07:00
Nikolaj Bjorner
0f0287d129 prepare release notes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-10-28 17:42:16 -05:00
Nikolaj Bjorner
c513f3ca09 merge with master
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-03-25 14:57:01 -07:00
Nikolaj Bjorner
246941f2d3 fix #1522
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-03-07 14:26:38 -08:00
Nikolaj Bjorner
0bbdee810d fix #1488
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-02-14 21:46:20 -08:00
Bruce Mitchener
76eb7b9ede Use nullptr. 2018-02-12 14:05:55 +07:00
Nikolaj Bjorner
caaf0ba33c model-add/del
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-11-01 22:32:22 -05:00
Nikolaj Bjorner
3de8c193ea implementing model updates
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-10-30 16:11:51 -05:00
Nikolaj Bjorner
ba53fc1230 fix scc omitting blocked clauses
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-10-27 17:29:26 -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
Nikolaj Bjorner
622d8c951c remove redundant data-type function declarations from pretty-printed output. #1034
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-05-22 14:40:42 -07:00
Nikolaj Bjorner
c7649088e7 have solver pretty print declarations, include also datatype declarations
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2015-08-07 08:54:03 +02:00
Nikolaj Bjorner
052ac51ed7 have solver pretty print declarations, include also datatype declarations
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2015-08-07 08:52:27 +02:00
Nikolaj Bjorner
7f517c625f have solver pretty print declarations, include also datatype declarations
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2015-08-07 08:48:24 +02:00