Nikolaj Bjorner
17d47ca8c7
fix #7493
2025-02-02 15:00:31 -08:00
Nuno Lopes
3586b613f7
remove default destructors
2024-10-02 22:20:12 +01:00
Nikolaj Bjorner
01e47bfe26
fix #7245
2024-06-15 02:29:32 -07:00
Nikolaj Bjorner
b40e3015ef
fix #7053
2023-12-13 19:25:18 -08:00
Nikolaj Bjorner
0e651eee04
#6421
2022-10-28 14:12:28 -07: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
d14f00d61a
with no last model
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-01-06 13:02:13 -08:00
Nikolaj Bjorner
130a0c4aa0
resurrect infinitesimals from maximization function #5720
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-01-06 08:34:45 -08:00
Nikolaj Bjorner
122b0fec0f
fix #5710
2021-12-16 12:30:29 -08:00
Nikolaj Bjorner
8384f38eb5
fix #5254
2021-05-17 15:42:01 -07:00
Nikolaj Bjorner
a19e469cc2
fix #5212
2021-04-24 13:27: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
c0e74f946b
patch to fix #5145
...
underlying issue is that model updates for multi-objective and single objective solving are too brittle to serve its use cases among different plugins.
For maxlex, the last model is always the best and it doesn't use multiple objectives.
2021-04-02 12:23:01 -07:00
Nikolaj Bjorner
fc3a642876
fix #4948
2021-01-11 19:26:16 -08:00
Nikolaj Bjorner
0aac7e54a9
fix #4942
...
Patching model update. Could use a more thorough revision.
2021-01-11 15:48:49 -08:00
Nikolaj Bjorner
cfa7c733db
fixing #4670 ( #4682 )
...
* fixing #4670
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* init
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* arrays
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* arrays
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* arrays
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-09-10 04:35:11 -07:00
Nuno Lopes
bb26f219fe
remove unneeded constructors (last round)
2020-07-12 17:41:57 +01: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
becf423c77
remove level of indirection for context and ast_manager in smt_theory ( #4253 )
...
* remove level of indirection for context and ast_manager in smt_theory
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* add request by #4252
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* move to def
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* int
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-08 16:46:03 -07:00
Nikolaj Bjorner
236edad8dc
fix #4111
2020-04-26 14:44:50 -07:00
Nikolaj Bjorner
40b4ca7f86
fix #3950
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-04-15 15:07:53 -07:00
Nikolaj Bjorner
044d6316ca
fix #3417
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-03-19 09:39:21 -07:00
Nikolaj Bjorner
b3e1e302f7
fix #3320
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-03-18 13:22:17 -07:00
Nikolaj Bjorner
19cdf08818
fix #3396
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-03-18 12:45:37 -07:00
Nikolaj Bjorner
6ad261e24c
fix #3330
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-03-15 09:49:44 -07:00
Nikolaj Bjorner
82273da630
fix #2945
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-02-09 15:43:21 -08:00
Nikolaj Bjorner
918846a97e
fix #2814
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-12-20 16:35:38 -08:00
Nikolaj Bjorner
1fca76b0a1
relax restriction on infinitesimal for rdl, #2410
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-07-18 08:26:23 -07:00
Nikolaj Bjorner
5820b16800
mark assumption literals to be skolem to hide them from models #2406
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-07-18 08:25:42 -07:00
Nikolaj Bjorner
7aa8b4ac2a
restrict idiv-bound checks to bounded terms
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-03-03 19:11:22 -08:00
Nikolaj Bjorner
8d20310758
adding trail/levels
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-01-29 14:45:51 -08:00
Nikolaj Bjorner
498864c582
adding dump facility for cancelation #2095 , easing dimacs in/out
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-01-24 12:21:23 -08:00
Nikolaj Bjorner
8744c62fca
fix #1755
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-07-16 10:55:25 +01: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
c513f3ca09
merge with master
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-03-25 14:57:01 -07:00
Nikolaj Bjorner
205d77d591
save last model to ensure it is available fixes #1514
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-03-03 19:26:31 -08:00
Bruce Mitchener
76eb7b9ede
Use nullptr.
2018-02-12 14:05:55 +07:00
Nikolaj Bjorner
0d15b6abb7
add stubs for converting assertions, consolidate filter_model_converter
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-11-17 14:51:13 -08:00
Nikolaj Bjorner
fd49a0c89c
added facility to persist model transformations
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-11-02 00:05:52 -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
e4b595d490
add solver pool abstraction for Spacer
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-10-28 16:10:20 -07:00
Nikolaj Bjorner
2897b98ed2
remove simplify dependencies
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-08-26 00:37:22 -07: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
Nikolaj Bjorner
911b24784a
merge LRA
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-05-09 10:46:11 -07:00
Nikolaj Bjorner
c56c7fd649
add handlers for dense difference logic
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-03-24 01:31:00 -07:00
Nikolaj Bjorner
a0237ed2a6
fix crash reported in #946
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-03-16 18:56:43 -07:00
Nikolaj Bjorner
0aa912371b
Another fix for #847 . Reset wmax theory solver state between lex calls, otherwise it uses stale constraints
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-01-17 14:19:24 -08:00
Nikolaj Bjorner
aaf6e67ec8
add restart.max parameter to control cancellation based on restart count
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-12-25 17:43:47 -08:00
Nikolaj Bjorner
2bd29548da
improve parser error message over API, streamline names of statistics for arithmetic solver
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2016-12-25 17:27:56 -08:00