Nikolaj Bjorner
b783879752
#6687
2023-04-13 08:45:17 -07:00
Nikolaj Bjorner
7cd8edce1f
perf and memory smash fixes to internal node count routine
2023-04-12 21:01:05 -07:00
Nikolaj Bjorner
f0afbcbb87
fix #6686
2023-04-12 20:13:24 -07:00
Nikolaj Bjorner
eba0732629
fix #6675
...
disable remove_unused_defs from pb-solver until it is integrated with model reconstruction.
2023-04-12 19:50:13 -07:00
Nikolaj Bjorner
e8222433c3
count internal nodes, use to block expanding use of hoist, #6683
2023-04-12 19:40:31 -07:00
Nikolaj Bjorner
444238bc53
formatting updates
2023-04-12 19:40:31 -07:00
Nikolaj Bjorner
f61168cd53
module for maintaining probability distributions
2023-04-12 19:40:31 -07:00
Nikolaj Bjorner
0b5c38dea5
fix #6676 get rid of rem0 declare it to be mod0 semantics to simplify code paths
2023-04-11 16:46:43 -07:00
Nikolaj Bjorner
58a2a9c79c
fix #6680
2023-04-11 14:42:47 -07:00
Nikolaj Bjorner
ccc4f2d382
fix #6682
2023-04-11 05:10:03 -07:00
Nikolaj Bjorner
368d60f553
add branch / cut selection heuristic from solver=2
...
disabled for testing.
2023-04-10 22:14:16 -07:00
Nikolaj Bjorner
bb44b91e45
fix #6677
2023-04-10 15:11:10 -07:00
Clemens Eisenhofer
98d3fabc24
Bugfix relevancy propagation + UP (old core) ( #6678 )
...
* Some UP bugfixes in the new core
* Bugfix relevancy propagation + UP (old core)
* Revert smt_context.cpp
2023-04-10 12:57:59 -07:00
Nikolaj Bjorner
4a142b0f81
fix #6623
2023-04-09 21:10:24 -07:00
Nikolaj Bjorner
e6ea81546e
fix #6662
2023-04-08 17:14:39 -07:00
Nikolaj Bjorner
af9c760a68
fix #6670
2023-04-08 16:55:23 -07:00
Nikolaj Bjorner
ccb250c32b
fix #6671
2023-04-08 16:39:40 -07:00
Clemens Eisenhofer
7b513b4a40
Some UP bugfixes in the new core ( #6673 )
2023-04-08 12:50:46 -07:00
Nikolaj Bjorner
84b9204616
inherit and reset rlimit counter on children limits
...
addresses rlimit leak reported by @mtzguido
2023-04-05 16:39:21 -07:00
Nikolaj Bjorner
f8242c58dd
fix regression from Grobner port
...
- scan_for_linear returns true if it finds a new linear equation. It then should break GB.
- if scan_for_linear returns false, it should still allow try_modify_eqs.
This behavior was masked by requiring scan_for_linear to always be true before
allowing try_to_modify_eqs.
based on repro from Guido Martinez @mtzguido
2023-04-04 22:29:22 -07:00
Nikolaj Bjorner
479f844200
fix #6661
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-04-02 11:14:20 -07:00
Nikolaj Bjorner
def83ed26e
fix #6661
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-04-02 11:13:37 -07:00
Nikolaj Bjorner
5b385bd2fe
fix #6665
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-04-02 10:58:21 -07:00
Hari Govind V K
6324db207b
Only print func-decl names for indexed parameters ( #6663 )
2023-04-02 10:39:13 -07:00
Nikolaj Bjorner
e0a066efa3
#6654
...
fix reflexivity for tree-order
2023-03-31 15:38:29 -07:00
Nikolaj Bjorner
7664429fda
remove cast expression
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-03-31 12:51:23 -07:00
Nikolaj Bjorner
a62e4b2893
extract multi-patterns when pattern can be decomposed
...
deals with fluke regression for F* reported by Guido Martinez
Background:
The automatic pattern inference facility looks for terms that contains all bound variables of a quantifier. It may end up with a term that contains all bound variables but the extracted term can be simplified.
Example. The pattern
(ApplyTT (ApplyTT @x3!1 (ApplyTT @x4!0 (:var 1))) (ApplyTT @x4!0 (:var 0)))
can be decomposed into a multi-pattern
(ApplyTT @x4!0 (:var 1))) (ApplyTT @x4!0 (:var 0))
The multi-pattern may enable a quantifier instantiation while the original pattern does not. The multi-pattern should be preferred.
The regression showed up based on a change that should not be considered harmful but turned out to be noticeable.
The change was a simplification of and-or expressions based on sorting. This played with the case split queue used by F* (smt.case_split = 3) that uses a top-level case split of clauses to avoid redundant branches. The net effect was that without sorting, the benchmarks would always choose the opportune branch that enabled matching against the larger term. With sorting it would mostly choose inopportune branches.
2023-03-31 12:45:51 -07:00
Nikolaj Bjorner
a849a29b4f
fix #6659
2023-03-31 10:31:18 -07:00
Nikolaj Bjorner
996e5b1755
fix #6655
2023-03-31 03:25:20 -07:00
Nikolaj Bjorner
b386b84f34
#6658
2023-03-31 02:56:44 -07:00
권승완
6670807103
update ocaml binding to support more string apis ( #6656 )
2023-03-29 05:49:33 -07:00
Lev Nachmanson
130400d76e
Remove non feasible costs ( #6653 )
...
* before rm lu
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* rm get_column_in_lu_mode
* rm lu
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* rm lu
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* rm_lp
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* rm_lu
* rm lu
* rm lu
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* rm lu
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* rm lu
* rm lu
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* rm lu
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* rm lu
* cleanup
* rm breakpoints
* rm dealing with doubles
* Revert "rm dealing with doubles"
This reverts commit 547254abe7
.
* rm lu
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* rm lu
* rm lu
* rm scaler
* rm square_sparse_matrix
* more cleanup
* rm dead code
* rp precise
* remove many methods dealing with double
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* rm lu related fields from lp_core_solver_base.h
* remove dead code
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* more dead code removal
* remove more dead code
* more dead code
* rm dead code
* more dead code
* fix lp_tst
* more dead code
* replace lp_assert(false) with UNREACHABLE
* rm non feas costs
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* fix the build
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
---------
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2023-03-28 08:55:52 -07:00
Nikolaj Bjorner
fe348b84c9
fix #6652
2023-03-27 16:20:33 -07:00
Nikolaj Bjorner
adec937296
fix #6650
2023-03-27 14:02:23 -07:00
Nikolaj Bjorner
f366772f0c
use field 'm' for streamlined representation
2023-03-27 14:02:22 -07:00
Patrick LaFontaine
0a59617bac
Fix Ocaml bindings FuncEntry to_string ( #6639 )
...
Hello, I was looking at the different api string conversions for FuncEntry and I believe that the ml version is incorrect? Clearly we want the argument(`c`) to be comma separated from the accumulated string `p`. The current implementation just so happens to have most of the arguments separated, but the order is flipped and one of the commas is misplaced.
2023-03-27 13:04:32 -07:00
Nikolaj Bjorner
b4ad747e0b
fix #6644
2023-03-27 09:00:38 -07:00
Nikolaj Bjorner
8a3a3dc91b
fix #6648
2023-03-26 15:31:37 -07:00
Nikolaj Bjorner
ce501e0b6e
#6646
...
- always enable special-relations theory to deal with default setting and push
- fix bugs related to equality and transitivity.
2023-03-25 17:37:59 -07:00
Nikolaj Bjorner
cd2ea6b703
add parameter access to C++ API
2023-03-25 18:14:08 +01:00
Nikolaj Bjorner
9ca0faa091
enable interactive example
2023-03-25 18:13:44 +01:00
Nikolaj Bjorner
50bd6efea4
fix #6624
2023-03-22 14:00:09 +01:00
Nikolaj Bjorner
03a44803b6
fix #6635
2023-03-22 13:38:02 +01:00
Nikolaj Bjorner
2683a2d6ed
fix #6637
2023-03-22 08:49:33 +01:00
Nikolaj Bjorner
53ca65a62e
fix unsound rewrite
2023-03-20 18:55:40 +01:00
Nikolaj Bjorner
f075dc2882
remove experimental files
2023-03-20 17:07:48 +01:00
Nikolaj Bjorner
48de7c2da8
missing updates
2023-03-20 17:07:04 +01:00
Nikolaj Bjorner
c6e3fb446a
print lemmas2console faster
...
- add option pp.no_lets (default = false) to print formulas without let (used by the low-level SMT2 printer).
- print lemmas2console faster by using the low level printer
2023-03-20 17:07:04 +01:00
Nikolaj Bjorner
a9e6e567b0
make generation of "some" Boolean value fair
2023-03-20 17:07:04 +01:00
Nikolaj Bjorner
d1c7ff1a36
add unconstrained elimination for sequences
2023-03-20 17:07:04 +01:00
Nuno Lopes
a0f3727e90
BV: add missing neg internalizer
...
usually bvneg is eliminated during rewriting, but it can be left behind during e.g. a badly-timed timeout
2023-03-12 19:26:47 +00:00
Declan Hwang
cf4df08fd0
fix typo ( #6628 )
2023-03-09 09:29:30 -08:00
Bram V
1612b57e1a
Make all methods show in java API ( #6626 )
...
* Make all methods show in java API
* Add final modifier to all generic methods
2023-03-08 13:43:51 -08:00
igcontreras
4b3408696d
use uintptr_t instead of size_t (tptr) for portability ( #6627 )
2023-03-08 21:13:38 +00:00
Lev Nachmanson
8b0aa22631
replace lp_assert(false) with UNREACHABLE
2023-03-08 10:27:05 -08:00
Lev Nachmanson
3efe91c3e3
more dead code
2023-03-08 10:27:05 -08:00
Lev Nachmanson
1fb24ebc35
fix lp_tst
2023-03-08 10:27:05 -08:00
Lev Nachmanson
11eab94321
more dead code
2023-03-08 10:27:05 -08:00
Lev Nachmanson
13549aff66
rm dead code
2023-03-08 10:27:05 -08:00
Lev Nachmanson
c6be67bf3b
more dead code
2023-03-08 10:27:05 -08:00
Lev Nachmanson
c8c0a00190
remove more dead code
2023-03-08 10:27:05 -08:00
Lev Nachmanson
748c75275f
more dead code removal
2023-03-08 10:27:05 -08:00
Lev Nachmanson
e430f28813
remove dead code
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2023-03-08 10:27:05 -08:00
Lev Nachmanson
f6445891f3
rm lu related fields from lp_core_solver_base.h
2023-03-08 10:27:05 -08:00
Lev Nachmanson
f351eb3ab2
remove many methods dealing with double
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2023-03-08 10:27:05 -08:00
Lev Nachmanson
9ec82632a3
rp precise
2023-03-08 10:27:05 -08:00
Lev Nachmanson
569f5be91f
rm dead code
2023-03-08 10:27:05 -08:00
Lev Nachmanson
f33f8c265e
more cleanup
2023-03-08 10:27:05 -08:00
Lev Nachmanson
0fb65dea3f
rm square_sparse_matrix
2023-03-08 10:27:05 -08:00
Lev Nachmanson
178135486c
rm scaler
2023-03-08 10:27:05 -08:00
Lev Nachmanson
6eedbd4f35
rm lu
2023-03-08 10:27:05 -08:00
Lev Nachmanson
e04e726f45
rm lu
2023-03-08 10:27:05 -08:00
Lev Nachmanson
2e9dc3d090
rm lu
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2023-03-08 10:27:05 -08:00
Lev Nachmanson
d00fcc87c9
Revert "rm dealing with doubles"
...
This reverts commit 547254abe7
.
2023-03-08 10:27:05 -08:00
Lev Nachmanson
a4189186cc
rm dealing with doubles
2023-03-08 10:27:05 -08:00
Lev Nachmanson
6201eda055
rm breakpoints
2023-03-08 10:27:05 -08:00
Lev Nachmanson
73224adc48
cleanup
2023-03-08 10:27:05 -08:00
Lev Nachmanson
377ceba6d5
rm lu
2023-03-08 10:27:05 -08:00
Lev Nachmanson
6132bf93f7
rm lu
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2023-03-08 10:27:05 -08:00
Lev Nachmanson
bfe73c01a6
rm lu
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2023-03-08 10:27:05 -08:00
Lev Nachmanson
1da4c018e4
rm lu
2023-03-08 10:27:05 -08:00
Lev Nachmanson
62bd3bd1e6
rm lu
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2023-03-08 10:27:05 -08:00
Lev Nachmanson
5f03c93270
rm lu
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2023-03-08 10:27:05 -08:00
Lev Nachmanson
9a7c99da33
rm lu
2023-03-08 10:27:05 -08:00
Lev Nachmanson
c251151d66
rm_lu
2023-03-08 10:27:05 -08:00
Lev Nachmanson
25f103db1a
rm_lp
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2023-03-08 10:27:05 -08:00
Lev Nachmanson
527f0d1242
rm lu
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2023-03-08 10:27:05 -08:00
Lev Nachmanson
a38be43264
rm lu
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2023-03-08 10:27:05 -08:00
Lev Nachmanson
97c1ba4641
rm get_column_in_lu_mode
2023-03-08 10:27:05 -08:00
Lev Nachmanson
ea16f6608c
before rm lu
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2023-03-08 10:27:05 -08:00
Hari Govind V K
f7c9c9ef72
fix unsound slice criteria ( #6625 )
...
* rename for readability
* bug fix #6617 . Don't slice op args that are values
2023-03-06 19:28:22 -08:00
Nikolaj Bjorner
42076a3c13
bug fixes to new core, elim_predicates and elim_unconstrained
2023-03-05 22:26:37 -08:00
Nuno Lopes
b9a87e493b
minor code simplifications
2023-03-05 19:08:41 +00:00
Lev Nachmanson
92fe8c5968
restore the previous state
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2023-03-03 18:30:17 -08:00
Lev Nachmanson
ff1dc0424c
rm lp_solver
2023-03-03 16:32:49 -08:00
Lev Nachmanson
5e4bca3d26
small removals
2023-03-03 15:58:25 -08:00
Lev Nachmanson
2dd30fa350
rm lp_primal_simplex
2023-03-03 15:44:50 -08:00
Lev Nachmanson
8989e10e71
rm lp_dual_simplex
2023-03-03 15:41:30 -08:00
Lev Nachmanson
d2e8297d41
remove includes of lp_dual_simplex
2023-03-03 15:38:47 -08:00
Lev Nachmanson
2ec09944d7
removals
2023-03-03 15:32:44 -08:00
Lev Nachmanson
a44772424c
more removals
2023-03-03 15:30:15 -08:00
Lev Nachmanson
8db2f1409b
lp_dual_simplex.cpp removed from CMakeLists.txt
2023-03-03 15:27:57 -08:00
Lev Nachmanson
cd24c99739
remove a lp_primal_simplex.cpp from CMakeLists
2023-03-03 15:26:06 -08:00
Lev Nachmanson
f986ac6a75
remove mps_reader
2023-03-03 14:50:10 -08:00
Hari Govind V K
55d45e0c0c
bug fix. Prevent resetting gg stats #6062 ( #6618 )
2023-03-03 12:32:23 -08:00
Nikolaj Bjorner
b82d177276
fix build
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-03-03 11:26:13 -08:00
Nikolaj Bjorner
aa75ba8a6b
remove parenthesis
2023-03-01 21:03:41 -08:00
Nikolaj Bjorner
fd97be0e3e
move sat.smt.proof.check_rup into solver.proof.check_rup #6616
2023-03-01 21:03:27 -08:00
Nikolaj Bjorner
94b79eefea
add back max_occs parameter dependency to solve-eqs
2023-03-01 20:40:22 -08:00
Nikolaj Bjorner
acd2eaa390
add (disabled) code path to enable nested conjunctions
...
for experiments with disabling flat-and-or dependency
2023-03-01 20:39:39 -08:00
Nikolaj Bjorner
46d37b6e30
fix #6615
...
make rewriting exception safe (for cancelation).
The state during restart in smt_context is not exception safe.
2023-03-01 17:30:07 -08:00
Nikolaj Bjorner
027770930e
fix bug in quasi macro identification: require quantifiers
2023-03-01 17:03:15 -08:00
Nikolaj Bjorner
25d45a3500
fixes and tests for arith-sls
2023-02-28 17:40:09 -08:00
Nikolaj Bjorner
e87fa1c299
remove stale file
2023-02-28 17:40:08 -08:00
Nikolaj Bjorner
79d47eb302
add preprocessor parameter whether to use bound simplifier
2023-02-28 17:40:08 -08:00
Nikolaj Bjorner
76aad689c6
Update smt_context_pp.cpp
...
print units in statistics
2023-02-28 17:40:08 -08:00
Nikolaj Bjorner
5974a2dc58
remove m_b from lar_core_solver
...
the column vector is pure overhead for the way the lar solver uses lp.
Some other solver modules use column vectors b and integrate with the lp_core_solver_base. The interaction model should be reviewed.
Unused solvers should be removed to make it easier to maintain this code.
2023-02-28 17:40:08 -08:00
Julian Parsert
6e7d80633d
Documentation on how to add z3 to CMake project using FetchContent and documentation to recdef function. ( #6613 )
...
* Added overloaded versions of context::recfun in the c++ api that allow for the declaration of recursive functions where the domain is given by a z3::sort_vector instead of an arity and sort*
* added documentation to recdef function
* added a section in the README-CMake.md that explains how z3 can be added to a CMake project as a dependency
---------
Co-authored-by: Julian Parsert <julian.parsert@uibk.ac.at>
2023-02-28 11:44:21 -08:00
hgvk94
828fff9684
fix #6543 . don't assume order on bindings
2023-02-23 17:35:55 -05:00
Nikolaj Bjorner
146f0eae06
wip - arith local search
2023-02-20 12:17:14 -08:00
Nikolaj Bjorner
4aa05b2b57
remove limiting error mode #6600
2023-02-20 12:16:43 -08:00
Nikolaj Bjorner
755b517001
fix #6600
...
ensure that semantics of last-indexof(t,"") = len(t)
2023-02-19 14:02:37 -08:00
Nikolaj Bjorner
0758c93086
fix #6591
...
- add check for lambdas similar to as-array in context of quantifiers. MBQI is not a decision procedure for this combination and can then incorrectly conclude satisfiabiltiy.
Scenario
The formula contains assertions
- bv = (map or (lambda ..) t)
- forall y (not (select bv (pair s y)))
Since bv is extensionally equal to a term that depends on a lambda, MBQI cannot just take the current finite approximation of bv when checking the quantifier for satisfiability.
2023-02-19 11:09:52 -08:00
Nikolaj Bjorner
6454e7fa3f
apply rewriting if result of destructive equality resolution is simplified
2023-02-19 11:03:04 -08:00
Nikolaj Bjorner
bc6037464d
clean up build warnings
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-19 10:08:31 -08:00
Nikolaj Bjorner
9b6ac45e02
compile warnings
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-19 10:03:38 -08:00
Nikolaj Bjorner
6352340478
update do logging
2023-02-19 09:59:33 -08:00
Nikolaj Bjorner
a6eed9f00c
Update api.cpp
...
fix test
2023-02-18 18:43:20 -08:00
Nikolaj Bjorner
cb81473260
add destructive equality resolution to the main simplifier.
2023-02-18 17:54:26 -08:00
Nikolaj Bjorner
c0f80f92ba
deal with compiler warnings (unused variables etc)
2023-02-18 17:53:37 -08:00
Nikolaj Bjorner
6092bf534c
fix #6599
2023-02-18 14:18:02 -08:00
Nikolaj Bjorner
daeaed1e82
revert debug only changes to sat-solver
2023-02-18 14:13:40 -08:00
Nikolaj Bjorner
c5e33b79b5
wip - arith sls
...
overhaul to tier inequalities with Boolean variables instead of literals
2023-02-18 14:11:48 -08:00
Nikolaj Bjorner
f66a082de9
fix #6595
2023-02-18 14:11:48 -08:00
Ding Fei
828ff98c77
fix tpl instantiation issue for mingw ( #6597 )
2023-02-17 09:26:45 -08:00
Nikolaj Bjorner
bd10ddf6ae
wip - local search - use dispatch model from bool local search instead of separate phases.
2023-02-16 09:17:11 -08:00
Nikolaj Bjorner
ac068888e7
add trichotomy for sequence comparison. #6586
2023-02-16 08:59:55 -08:00
Nikolaj Bjorner
554a9e8efe
fix #6346
2023-02-16 08:53:08 -08:00
Nikolaj Bjorner
7c08e53e94
fixes for #6590
2023-02-15 15:11:44 -08:00
Nikolaj Bjorner
c1ecc49021
wip - local search - move to plugin model
2023-02-15 13:32:30 -08:00
Nikolaj Bjorner
a1f73d3805
wip - local search - fix build
2023-02-15 08:48:37 -08:00
Nikolaj Bjorner
4f20b8e2ba
wip - local search
2023-02-15 08:36:10 -08:00
Nikolaj Bjorner
8ce0c56ff5
fix #6590
2023-02-15 08:36:01 -08:00
Nikolaj Bjorner
c2fe76569f
remove dependency on bool-rewriter in hoist rewriter
...
deal with regression reported in
cac5052685 (commitcomment-100606067)
and unit tests doc.cpp
2023-02-14 17:48:02 -08:00
Nikolaj Bjorner
a976b781a0
fix #6585
2023-02-14 15:33:17 -08:00
Nikolaj Bjorner
44fcf60a72
wip experiments with sls
2023-02-14 15:06:26 -08:00
Nikolaj Bjorner
9ce5fe707d
track assumptions when parsing into a solver. This enables solver.from_file/solver.from_string to support assumptions/cores #6587
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-14 11:09:11 -08:00
Nikolaj Bjorner
3dc91de531
fix #6582
2023-02-13 13:21:30 -08:00
Nikolaj Bjorner
2b77012993
fix build
2023-02-13 08:36:12 -08:00
Nikolaj Bjorner
52804b5c8f
save on dtt
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-13 08:29:32 -08:00
Nikolaj Bjorner
7956cf1201
annotate arith_sls
2023-02-12 20:55:44 -08:00
Nikolaj Bjorner
bb81bc5452
fix #6580
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-12 20:21:53 -08:00
Nikolaj Bjorner
102eee77dc
patch regressions
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-12 20:12:01 -08:00
Nikolaj Bjorner
cac5052685
fixes related to #6577
...
- enforce elim-and in bool-rewriter when invoking hoisting.
- make cnf tactic more resilient to non-normalized input.
- enable eliminate predicates on ground formulas
2023-02-12 13:43:44 -08:00
Walden Yan
ede9e5ffc2
[WIP] More TS Binding Features ( #6412 )
...
* feat: basic quantfier support
* feat: added isQuantifier
* feat: expanded functions
* wip: (lambda broken)
* temp fix to LambdaImpl typing issue
* feat: function type inference
* formatting with prettier
* fix: imported from invalid module
* fix isBool bug and dumping to smtlib
* substitution and model.updateValue
* api to add custom func interps to model
* fix: building
* properly handling uint32 -> number conversion in z3 TS wrapper
* added simplify
* remame Add->Sum and Mul->Product
* formatting
2023-02-11 15:48:29 -08:00
Nikolaj Bjorner
5e30323b1a
wip - bounded local search for arithmetic
2023-02-11 15:46:39 -08:00
Nikolaj Bjorner
4b2c166e8b
fixes to build
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-11 10:19:24 -08:00
Nikolaj Bjorner
7bef2f3e6f
wip - local search for euf/arithmetic
2023-02-11 09:33:43 -08:00
Nikolaj Bjorner
46c8d78ece
fixes for #6577
...
- the literal false should not appear in clauses
- the literal true forces a tautology
- fix early return in is_cnf check. It should check all clauses for nested Booleans.
2023-02-11 09:33:42 -08:00
Nikolaj Bjorner
d22e4aa525
wip - integrating arithmetic local search
2023-02-11 09:33:42 -08:00
Nikolaj Bjorner
1b0c76e3f0
fixes to mbqi in the new core based on #6575
2023-02-10 16:56:06 -08:00
Julian Parsert
d52e893528
Added overloaded versions of context::recfun in the c++ api that allow for the declaration of recursive functions where the domain is given by a z3::sort_vector instead of an arity and sort* ( #6576 )
...
Co-authored-by: Julian Parsert <julian.parsert@uibk.ac.at>
2023-02-10 10:00:26 -08:00
Nikolaj Bjorner
02d48adae5
fix #6573
2023-02-08 08:24:52 -08:00
Nikolaj Bjorner
a8335f2d5e
use phase
2023-02-07 19:50:45 -08:00
Nikolaj Bjorner
b3ebce3966
fix compilation
2023-02-07 19:30:45 -08:00
Nikolaj Bjorner
96d815b904
adding arith sls
2023-02-07 19:27:19 -08:00
Nikolaj Bjorner
6a2d60a6ba
fix #6571
...
most solvers don't support background properties
2023-02-07 11:04:58 -08:00
Nikolaj Bjorner
601e506d54
remove debug out
2023-02-07 10:40:49 -08:00
Nikolaj Bjorner
90a75866fb
elaborating on local-search rephase strategy
2023-02-07 03:17:52 -08:00
Nikolaj Bjorner
c1c26f0726
restart after sat solution
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-06 09:21:35 -08:00
Nikolaj Bjorner
03a4920f3d
fix build
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-05 21:41:07 -08:00
Nikolaj Bjorner
75c573877d
updates to ddfw, initial local search phase option
2023-02-05 21:35:22 -08:00
Nikolaj Bjorner
3712cbdbfd
fix #6559
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-04 13:33:40 -08:00
Jakob Rath
d69155b9e9
Shared features from polysat branch ( #6567 )
...
* Allow setting default debug action
* Fix dlist and add iterator
* Add var_queue iterator
* Add some helpers
* rational: machine_div2k and pseudo_inverse
* Basic support for non-copyable types in map
* tbv helpers
* pdd updates
* Remove duplicate functions
gcc doesn't like having both versions
2023-02-03 13:08:47 -08:00
Frederick Robinson
be44ace995
fix typo ( #6569 )
2023-02-03 13:08:35 -08:00
Nikolaj Bjorner
cb72b962d1
Merge branch 'master' of https://github.com/z3prover/z3
2023-02-02 20:50:58 -08:00
Nikolaj Bjorner
839f87a10c
don't apply tactics in parse mode
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-02 20:50:53 -08:00
Nikolaj Bjorner
39d2818923
compiler warnings/bugs
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-02 19:36:22 -08:00
Nikolaj Bjorner
0d05104d8c
remove unused field
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-02 19:33:23 -08:00
Nikolaj Bjorner
741634b703
compiler warning fix
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-02 19:26:51 -08:00
Nikolaj Bjorner
efbecb19b1
compiler warning
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-02 19:23:30 -08:00
Nikolaj Bjorner
ed4a84e5d3
compiler warning
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-02 19:21:34 -08:00
Nikolaj Bjorner
4143c54257
add simplifier to java API
2023-02-02 19:06:26 -08:00
Nikolaj Bjorner
2e068e3f56
add simplifiers to .net API
2023-02-02 17:41:00 -08:00
Nikolaj Bjorner
72e7a8a481
fix incremental pre-processing to work with consequences/cubes
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-01 20:00:38 -08:00
Nikolaj Bjorner
6c7dd4a863
fix incremental pre-processing to work with assumptions/cores and consequences
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-01 19:47:58 -08:00
Nikolaj Bjorner
7767144051
fix test
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-01 11:07:47 -08:00
Nikolaj Bjorner
30fa37e393
fix warnings
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-01 10:31:34 -08:00
Nikolaj Bjorner
38d526ee45
fix warning
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-01 10:18:14 -08:00
Nikolaj Bjorner
682e868129
initialize field
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-01 10:18:14 -08:00
Nikolaj Bjorner
0f86a00229
use setter method to easier track updates to settings.
2023-02-01 10:18:14 -08:00
Nikolaj Bjorner
19fed09122
protecting add_simplifier API against mis-use
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-02-01 08:35:32 -08:00
Nikolaj Bjorner
63c0f35978
update ml api
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-31 19:27:17 -08:00
Nikolaj Bjorner
d51d518f96
update ml api
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-31 19:24:45 -08:00
Nikolaj Bjorner
1289937d1a
update ml api
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-31 19:19:41 -08:00
Nikolaj Bjorner
9a94a9aa6f
update ml api
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-31 19:14:24 -08:00
Nikolaj Bjorner
17bae9b4c1
update ml api
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-31 19:09:37 -08:00
Nikolaj Bjorner
162fa3dc96
disambiguate overloaded with for Julia bindings
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-31 19:06:20 -08:00
Nikolaj Bjorner
4c6d44f974
add ocaml signature for simplifier
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-31 18:58:18 -08:00
Nikolaj Bjorner
550619bfcf
add API for creating and attaching simplifiers
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-31 17:06:03 -08:00
Nikolaj Bjorner
ebc2cd572b
fix build
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-31 14:53:04 -08:00
Nikolaj Bjorner
88bf3c6e51
check if trail is empty to avoid collecting variables
2023-01-31 13:35:43 -08:00
Nikolaj Bjorner
8495be11f9
add shortcut filter to avoid traversing model reconstruction trail if there are no intersections with model
2023-01-31 13:34:52 -08:00
Nikolaj Bjorner
e6f8fe359e
remove empty file
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-31 12:32:28 -08:00
Nikolaj Bjorner
d263b373ed
update release notes
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-31 12:19:33 -08:00
Nikolaj Bjorner
971b9d4081
fix #6564
...
fixes to simplifier command front-end
2023-01-31 09:32:34 -08:00
Nikolaj Bjorner
238d604a10
android 16 byte alignment for stack allocated memory?
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-30 23:00:44 -08:00
Nikolaj Bjorner
6022c17131
Add simplification customization for SMTLIB2
...
Add the ability to customize incremental pre-processing simplification for the SMTLIB2 front-end. The main new capability is to use pre-processing tactics in incremental mode that were previously not available. The main new capabilities are
- solve-eqs
- reduce-args
- elim-unconstrained
There are several more. Documentation and exposed simplifiers are populated incrementally. The current set of supported simplifiers can be inspected by using z3 with the --simplifiers flag or referring to https://microsoft.github.io/z3guide/docs/strategies/simplifiers
Some pending features are:
- add the ability to update parameters to simplifiers similar to how tactics can be controlled using parameters.
- expose simplification solvers over the binary API.
2023-01-30 22:38:51 -08:00
Nikolaj Bjorner
dd0decfe5d
create simplifier_solver wrapper to supply simplifier layer
...
move sat_smt_preprocess to solver
fix bugs in model_reconstruction_trail for dependency replay
This is a preparatory step for exposing pre-processing as tactics.
2023-01-30 16:12:25 -08:00
Nikolaj Bjorner
304b316314
move bounded division lemmas to nla solver/ nla_divisions.
2023-01-30 11:11:04 -08:00
Nikolaj Bjorner
03ca330926
fix division filter
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-30 08:23:17 -08:00
Nikolaj Bjorner
2c4a9c2f5c
fix division filter
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-30 08:20:26 -08:00
Nikolaj Bjorner
8e37e2f913
handle non-linear division axioms, consolidate backtracking state in nla_core
...
this update enables new incremental linear axioms based on division terms.
It also consolidates some of the backtracking state in nla_core / emons to use stack traces instead of custom backtracking state.
2023-01-29 17:22:57 -08:00
Nikolaj Bjorner
4ffe3fab05
fix build
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-28 21:51:51 -08:00
Nikolaj Bjorner
8ea49eed8e
convert reduce-args to a simplifier
...
- convert reduce-args to a simplifier. Currently exposed as reduce-args2 tactic until the old tactic code gets removed.
- bug fixes in model_reconstruction trail
- allow multiple defs to be added with same pool of removed formulas
- fix tracking of function symbols instead of expressions to filter replay
- add nla_divisions to track (cheap) divisibility lemmas.
-
2023-01-28 20:12:14 -08:00
Nikolaj Bjorner
246d6f7b77
fix #6561
2023-01-28 03:47:18 -08:00
Nikolaj Bjorner
fb1f4f3a2c
add pragma
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-27 18:03:06 -08:00
Nikolaj Bjorner
91d6082f2f
Move modular interval to interval directory
2023-01-27 17:55:36 -08:00
Nikolaj Bjorner
0f3c56213e
move dominator simplifier functionality to rewriter and simplifier, move bv_bounds simplifier functionality to simplifier
2023-01-27 17:11:48 -08:00
Nikolaj Bjorner
d4ca7e5374
#6555
2023-01-26 21:39:52 -08:00
Nikolaj Bjorner
ae24b73b19
bugfixes to incremental linearization for expanding power
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-26 21:19:45 -08:00
Nikolaj Bjorner
8be43ca68b
reshuffle pre-conditions for powers
2023-01-25 13:51:19 -08:00
Nikolaj Bjorner
e41dd91893
add module for handling axioms for powers
2023-01-25 13:34:13 -08:00
Nikolaj Bjorner
9e2ec9d018
add stubs for proof production in elim_unconstrained
2023-01-25 13:32:51 -08:00
Nikolaj Bjorner
b3de7ac595
remove passing proof parameter to expr-inverter
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-25 11:15:09 -08:00
Nikolaj Bjorner
f100d2f4de
add contextual simplification to bv-bounds-tactic
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-24 17:49:55 -08:00
Nikolaj Bjorner
6a7343aab4
update julia bindings to use 64-bit mk_real (real_val)
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-24 13:06:41 -08:00
Nikolaj Bjorner
fa72ec5405
switch to expose fresh function instead of changing legacy function
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-24 13:05:34 -08:00
Nikolaj Bjorner
eac7d7576f
force to_fp to disambiguate +zero and -zero, #6548 , filter unsupported on relevancy
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-24 12:29:42 -08:00
Nikolaj Bjorner
47c7ed3b17
update ml example to 64 bit
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-24 04:33:52 -08:00
Nikolaj Bjorner
15d853dc04
add trail to avoid stale references in expr2var
2023-01-24 04:15:52 -08:00
Nikolaj Bjorner
3f1b7866ca
convert caml mk_real to int64
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-24 03:53:42 -08:00
Nikolaj Bjorner
4601d1d664
fix #6550
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-24 03:37:09 -08:00
Nikolaj Bjorner
2ae476416c
initial outline of exponentiation
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-23 17:38:34 -08:00
Nikolaj Bjorner
3032c9315d
handle to-real in variable mapping
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-23 14:31:24 -08:00
Nikolaj Bjorner
d9f9cceea4
use intervals for tracking bounds on arithmetic variables
...
leverage interval propagation for bounds.
merge functionality with propagate-ineqs tactic
remove the new propagate-bounds tactic and instead use propagate-ineqs
2023-01-23 14:13:03 -08:00
Nikolaj Bjorner
eb751bec4c
fix riscv/aarch/powerpc build warnings
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-22 23:57:59 -08:00
Nikolaj Bjorner
3b5ae285d9
add outline for interval reasoning
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-22 23:28:36 -08:00
Nikolaj Bjorner
273aff5ed6
remove debug out
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-22 22:21:23 -08:00
Nikolaj Bjorner
db79346ef7
Add new tactic bound-simplifier for integer-based bit-vector reasoning.
2023-01-22 22:07:28 -08:00
Nikolaj Bjorner
83662701b6
Update theory_lra.cpp
...
remove spurious output
2023-01-22 16:27:48 -08:00
Nikolaj Bjorner
dbc299efbb
revise bv-bounds-tactic
...
- share common functionality
- rename propagate-bv-bounds-new to propagate-bv-bound2 for now
- expose configuration options in bounds propagation
2023-01-22 14:41:53 -08:00
Nikolaj Bjorner
e2a6376ddf
detect bounds from mod
2023-01-22 14:40:36 -08:00
Nikolaj Bjorner
021ef699af
detect bounds from mod
2023-01-22 14:40:19 -08:00
Nikolaj Bjorner
7d364bf786
Allow building AC functions without requiring arity check from API
2023-01-22 14:39:58 -08:00
Nikolaj Bjorner
806a4772bc
revert effect of filtering unsupported
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-20 17:28:24 -08:00
Nikolaj Bjorner
4e6d498a60
adding placeholder for refining power of 2
2023-01-20 14:37:05 -08:00
Nikolaj Bjorner
0f4f32c5d0
apply relevancy filtering on unsupported ops, fix term construction bug in bv2fpa_converter fix #6548
2023-01-20 13:05:01 -08:00
Nuno Lopes
37652e7e17
fix tactic name in docs
2023-01-20 17:30:40 +00:00
Nikolaj Bjorner
f3d6856736
remove msf example, add option to make model converter not reduce models
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-01-19 20:24:31 -08:00