Nikolaj Bjorner
304b316314
move bounded division lemmas to nla solver/ nla_divisions.
2023-01-30 11:11:04 -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
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
e41dd91893
add module for handling axioms for powers
2023-01-25 13:34:13 -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
981c82c814
fix initialization order
2022-07-13 18:11:18 -07:00
Nikolaj Bjorner
894fb836e2
fix build break (debug assertion) and isolate gomory functionality
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-13 17:26:56 -07:00
Nikolaj Bjorner
b81f70f6fc
split nla_grobner to separate file
2022-07-13 13:05:57 -07:00
Nikolaj Bjorner
316ed778e0
Tune Grobner equations
...
\brief convert p == 0 into a solved form v == r, such that
v has bounds [lo, oo) iff r has bounds [lo', oo)
v has bounds (oo,hi] iff r has bounds (oo,hi']
The solved form allows the Grobner solver identify more bounds conflicts.
A bad leading term can miss bounds conflicts.
For example for x + y + z == 0 where x, y : [0, oo) and z : (oo,0]
we prefer to solve z == -x - y instead of x == -z - y
because the solution -z - y has neither an upper, nor a lower bound.
The Grobner solver is augmented with a notion of a substitution that is applied before the solver is run.
2022-07-11 16:14:26 -07:00
Nikolaj Bjorner
b68af0c1e5
working on reconciling perf for arithmetic solvers
...
this update integrates inferences to smt.arith.solver=6 related to grobner basis computation and handling of div/mod axioms to reconcile performance with smt.arith.solver=2.
The default of smt.arth.nl.grobner_subs_fixed is changed to 1 to make comparison with solver=2 more direct.
The selection of cluster equalities for solver=6 was reconciled with how it is done for solver=2.
2022-07-11 07:38:51 -07:00
Nikolaj Bjorner
55daa2424c
fix #5362
2021-06-22 12:26:27 -07:00
Nikolaj Bjorner
8412ecbdbf
fixes to new solver, add mode for using nlsat solver eagerly from nla_core
2021-03-14 13:57:04 -07:00
Nikolaj Bjorner
8546cf97d7
on #4702
...
Add weighting function to cycle more fairly through nla solvers.
Handles anomaly from https://github.com/Z3Prover/z3/files/5361721/pero.txt
2020-12-24 03:07:25 -08:00
Nikolaj Bjorner
5ee9edf46b
fix incorrect bound in order-lemma
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-06-13 14:28:42 -07:00
Lev Nachmanson
c967b4aead
more efficient patching
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-05-31 20:20:49 -07:00
Lev Nachmanson
e7bb8e57cb
fixes in patch blocking
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-05-31 20:20:49 -07:00
Lev Nachmanson
91d9b0319e
toward full patching in nl
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-05-31 20:20:49 -07:00
Lev Nachmanson
c58bd3105b
adding more aggressive patching in nl
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-05-31 20:20:49 -07:00
Lev Nachmanson
6a5579341d
add restore_patched_values
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-05-31 20:20:49 -07:00
Lev Nachmanson
47d5515b78
change try_patch to a template
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-05-31 20:20:49 -07:00
Lev Nachmanson
18016a7100
rename
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-05-31 20:20:49 -07:00
Lev Nachmanson
caa384f6c9
make m_inf_set private and cosmetic improvements in nla patching
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-05-26 12:44:47 -07:00
Lev Nachmanson
bfd2407e0f
Debug ( #4415 )
...
* fix it explanation.h
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* fix explanation.h
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* add options to run bound propagation on monomials etc.
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-05-21 09:55:01 -07:00
Nikolaj Bjorner
31a96b3afa
review of monotonicity lemma
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-15 15:16:46 -07:00
Lev Nachmanson
30ce6f20f2
move nla stats to nla_core
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-05-15 13:03:18 -07:00
Lev Nachmanson
01279582ff
move nla stats to nla_core
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-05-15 12:58:34 -07:00
Nikolaj Bjorner
4e51633e6f
adding monomial bounds
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-13 18:45:47 -07:00
Lev Nachmanson
bdecbe4ed7
remove a duplicate method
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-05-13 15:38:20 -07:00
Lev Nachmanson
6b28973799
nla review ( #4321 )
...
* simplify the nla_solver interface
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* more simplifications
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* init m_use_nra_model
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* work on NSB comments
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* work on NSB comments
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-13 13:52:42 -07:00
Nikolaj Bjorner
bda29ca26a
outline for monomial bound propagation
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-13 10:37:46 -07:00
Lev Nachmanson
b2dc21b107
simplify the nla_solver interface ( #4312 )
...
* simplify the nla_solver interface
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* more simplifications
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* init m_use_nra_model
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-12 19:34:03 -07:00
Nikolaj Bjorner
32055a31db
pass resource limits by reference
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-12 10:49:16 -07:00
Lev Nachmanson
3e4a4c6df2
rebase with master branch
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-05-11 19:12:02 -07:00
Lev Nachmanson
e32a6714a5
call nlsat
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-05-11 19:12:02 -07:00
Lev Nachmanson
7a79397769
nra to nla
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-05-11 19:12:02 -07:00
Nikolaj Bjorner
16478b415b
disable order and tangent lemmas on reals
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-11 13:46:25 -07:00
Nikolaj Bjorner
81b3c440ce
fix mixup between constraint indices and lpvar explanations fixes various newly reported unsoundness bugs
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-11 13:07:28 -07:00
Nikolaj Bjorner
9c972521c4
priority code
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-10 21:09:14 -07:00
Nikolaj Bjorner
99043399ce
na
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-10 20:28:35 -07:00
Nikolaj Bjorner
179c9c2da2
consolidate methods that add lemma specific information to under "new_lemma"
2020-05-10 18:31:57 -07:00
Nikolaj Bjorner
e74faf42ad
code review
2020-05-10 12:58:05 -07:00
Nikolaj Bjorner
30de76b529
add occurs check to other nla_basic lemmas
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-09 20:50:27 -07:00
Nikolaj Bjorner
4890c3ce31
fix #4230
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-09 18:49:00 -07:00
Nikolaj Bjorner
fdc87f286f
na ( #4254 )
...
* 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>
* fix #4251
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix #4255
* fix #4257
* add code to debug #4246
* restore new solver as default
* na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* fix #4246
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-09 17:40:02 -07:00
Lev Nachmanson
a34c5a9450
bail out on big rational numbers in nla monotone lemmas
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-05-04 14:21:48 -07:00
Lev Nachmanson
8921ed56b5
fix a bug in Horner heuristic
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-04-23 15:58:53 -07:00
Lev Nachmanson
5208b64a6b
expose only necessary methods of lar_solver
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-04-16 12:58:39 -07:00
Lev Nachmanson
c846902285
simplify patch_blocker()
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-04-06 17:31:56 -07:00
Lev Nachmanson
e90ff4b992
fix the patch of real vars
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-04-06 17:31:56 -07:00
Lev Nachmanson
55329ea935
more fixes in patching of monomials
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-04-02 14:47:06 -07:00