Nikolaj Bjorner
|
c7af97364a
|
fixes for #7402
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
|
2024-10-01 15:15:47 -07:00 |
|
Nikolaj Bjorner
|
a9f8ec1bcb
|
updated handling of value initialization for bit-vectors
|
2024-09-22 21:30:11 +03:00 |
|
Nikolaj Bjorner
|
0c48a50d59
|
Add support for initializing variable values in solver and optimize contexts in Z3
|
2024-09-20 18:28:26 +03:00 |
|
Nikolaj Bjorner
|
4896edfb04
|
Add tracking of values size in scoped_state push method in opt_context
|
2024-09-19 11:27:17 +03:00 |
|
Nikolaj Bjorner
|
48712b4f60
|
Add initial value setting for variables in Z3 API, solver, and optimize modules
|
2024-09-18 16:13:15 +03:00 |
|
Nikolaj Bjorner
|
69f9640fdf
|
fix #7018
|
2023-11-28 13:14:44 -08:00 |
|
Nikolaj Bjorner
|
fdd5c923ed
|
use only maxres if there is a lexicographic objective, fix #6697
- maxlex.enable heuristic does not work if it is chained among multiple objectives. Only maxres is set up to commit the proper constraints.
|
2023-04-24 20:20:26 -07:00 |
|
Nikolaj Bjorner
|
6297c001ee
|
remove legacy solve_eqs_tactic entirely
also, bug fixes to elim_unconstrained (elim_uncnstr2) which is to replace legacy tactic for eliminating unconstrained constants.
|
2022-11-14 18:57:16 -08:00 |
|
Nikolaj Bjorner
|
3a37cfca30
|
switch to solve_eqs2 tactic
|
2022-11-08 12:23:36 -08:00 |
|
Nikolaj Bjorner
|
1dca6402fb
|
move model and proof converters to self-contained module
|
2022-11-03 05:23:01 -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
|
42945de240
|
#6319
align use of optsmt and the new core (they should not be used together)
|
2022-09-21 12:09:31 -07:00 |
|
Nikolaj Bjorner
|
ac822acb0f
|
add parameter incremental to ensure preprocessing does not interefere with adding constraints during search
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
|
2022-07-05 08:10:20 -07:00 |
|
Nikolaj Bjorner
|
c3d2120bdd
|
add totalizer version of rc2
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
|
2022-06-29 23:10:42 -07:00 |
|
Nikolaj Bjorner
|
61f5489223
|
fix #6107
|
2022-06-27 16:53:18 -07:00 |
|
Nikolaj Bjorner
|
386c511f54
|
core opt
|
2022-05-21 10:27:37 -04:00 |
|
Nikolaj Bjorner
|
d9f3625f93
|
change default output to print objective value
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
|
2022-04-20 17:11:46 +01:00 |
|
Nikolaj Bjorner
|
3f5eb7fcf2
|
re-enable pre-process
|
2022-04-13 11:24:24 +02:00 |
|
Nikolaj Bjorner
|
405a26c585
|
allow adding constraints during on_model
|
2022-04-09 09:55:02 +02:00 |
|
Nikolaj Bjorner
|
d6d9b25c68
|
Allow adding constraints in the model_eh callback
|
2022-04-08 17:12:20 +02:00 |
|
Nikolaj Bjorner
|
994c7ef52d
|
format
|
2022-01-31 12:00:26 -08:00 |
|
Nikolaj Bjorner
|
6eed885379
|
print bounded terms for better efficiency
|
2021-10-21 10:42:39 -04:00 |
|
Nikolaj Bjorner
|
f9dde2e8a4
|
#5605
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
|
2021-10-19 12:21:54 -04:00 |
|
Nikolaj Bjorner
|
b1bc890992
|
fix #5515
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
|
2021-08-28 18:05:51 -07:00 |
|
Nikolaj Bjorner
|
37d2ed646d
|
#5324
disable euf for opt
|
2021-06-04 15:28:52 -07:00 |
|
Nikolaj Bjorner
|
8384f38eb5
|
fix #5254
|
2021-05-17 15:42:01 -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
|
56478f917b
|
enable sat.euf in opt, enable smt legacy for lns
|
2021-03-02 06:21:20 -08:00 |
|
Nikolaj Bjorner
|
13f05ae9dc
|
enable wcnf output for weighted maxsat problems
|
2021-02-28 09:59:36 -08:00 |
|
Nikolaj Bjorner
|
08f55f9d1f
|
start wcnf
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
|
2021-02-26 11:13:44 -08:00 |
|
Nikolaj Bjorner
|
16448104eb
|
add new model event handler for incremental optimization
|
2021-02-05 17:11:04 -08:00 |
|
Nikolaj Bjorner
|
8f577d3943
|
remove ast_manager get_sort method entirely
|
2021-02-02 13:57:01 -08:00 |
|
Nikolaj Bjorner
|
3ae4c6e9de
|
refactor get_sort
|
2021-02-02 04:45:54 -08:00 |
|
Nikolaj Bjorner
|
9f6a0a868a
|
fix #4389 fix #4859
The bugs are duplicates
|
2020-12-07 14:57:50 -08:00 |
|
Nikolaj Bjorner
|
796e2fd9eb
|
arrays (#4684)
* 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>
* arrays
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fill
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* update drat and fix euf bugs
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* const qualifiers
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* reorg ba
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* reorg
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* build warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
|
2020-09-13 19:29:59 -07: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
|
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
|
6b380811b8
|
fix #4524
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
|
2020-07-09 15:05:55 -07:00 |
|
Nikolaj Bjorner
|
a32fabf5ee
|
fix #4403
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
|
2020-06-05 13:51:31 -07:00 |
|
Nikolaj Bjorner
|
6a61e8dd5b
|
fix #4234
|
2020-05-07 10:47:46 -07:00 |
|
Nikolaj Bjorner
|
426e4cc75c
|
fix #3557
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
|
2020-04-03 16:37:59 -07:00 |
|
Nikolaj Bjorner
|
b3c863fb15
|
fix #3660
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
|
2020-04-01 11:05:03 -07:00 |
|
Nikolaj Bjorner
|
1155db383e
|
fix #3540
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
|
2020-03-29 10:55:47 -07:00 |
|
Nikolaj Bjorner
|
5da2169a0e
|
fix #3524
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
|
2020-03-26 10:38:13 -07:00 |
|
Nikolaj Bjorner
|
504a7550b3
|
fix #3509
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
|
2020-03-25 02:42:30 -07:00 |
|
Nikolaj Bjorner
|
752b498254
|
fix #3384
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
|
2020-03-17 18:02:30 -07:00 |
|
Nikolaj Bjorner
|
d418467089
|
can't validate when benchmarks use strict bounds
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
|
2020-02-03 08:26:13 -08:00 |
|
Nikolaj Bjorner
|
773b27296f
|
translate optimize from c++ API #2859
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
|
2020-01-15 04:24:51 -08:00 |
|
Nikolaj Bjorner
|
ebc9b7fb4e
|
fix #2841
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
|
2020-01-06 11:05:00 -08:00 |
|
Nikolaj Bjorner
|
85fb6f59de
|
disable ackermannize on goal
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
|
2019-09-07 17:56:21 +03:00 |
|