Lev Nachmanson
935f076a05
continue PIMPL refactor in lar_solver
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-05-08 16:45:00 -07:00
Lev Nachmanson
d4f45e1528
implement imp of lar_solver as lar_solver::imp
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-05-07 13:53:28 -07:00
Lev Nachmanson
97c6074156
remove a function from lar_solver
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-05-07 13:33:46 -07:00
Lev Nachmanson
67652dd8eb
test
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-05-07 13:14:23 -07:00
Lev Nachmanson
5487c5a963
shuffle more functionality from lar_solver.h to lar_solver::imp
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-05-07 12:59:49 -07:00
Lev Nachmanson
fdcde925d6
apply the slack idea in a loop
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-05-05 16:21:37 -07:00
Lev Nachmanson
d413468dce
slack
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-05-02 12:10:29 -07:00
Nikolaj Bjorner
792ffeeda7
fix latent sign bug
2025-04-23 17:22:57 -07:00
Nikolaj Bjorner
fe1fff3b7e
add scaffolding for experiments with slack
2025-04-23 17:07:50 -07:00
Nikolaj Bjorner
e41acd7b50
convert m_r_upper and m_r_lower bounds to plain vectors
...
manage backtracking state together with backtracking of column data.
2025-04-23 16:33:38 -07:00
Nikolaj Bjorner
7641393f8a
use inlined functions
2025-04-23 14:28:31 -07:00
Nikolaj Bjorner
5cc57b8958
coalesce updates to bounds
2025-04-23 14:05:17 -07:00
Nikolaj Bjorner
8035edbe65
remove lp_assert
2025-04-14 11:10:26 -07:00
Lev Nachmanson
0a3c118701
more aggressive term tightening
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-03-24 07:44:13 -10:00
Lev Nachmanson
f501aea3eb
add comments and renaming
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-03-24 07:44:13 -10:00
Lev Nachmanson
6f7b749ff9
improved dio handler
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-03-24 07:44:13 -10:00
Nikolaj Bjorner
b784b748d4
fix #7550
2025-02-27 14:43:11 -08:00
Nikolaj Bjorner
f977b48161
adjust solve_for to handle rationals
2025-02-17 13:59:23 -08:00
Lev Nachmanson
bedc95c4c7
use static_cast to avoid the warnings
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-02-13 07:07:12 -10:00
Lev Nachmanson
3e7e903d19
use the trail to undo add_term
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-02-11 12:23:00 -10:00
Lev Nachmanson
89eec4cc80
test dio
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-02-11 12:23:00 -10:00
Lev Nachmanson
5a72117528
debug dio
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-02-11 12:23:00 -10:00
Lev Nachmanson
083926c658
debug dio
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-02-11 12:23:00 -10:00
Lev Nachmanson
c1ece49694
track changed columns in dio\
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-02-11 12:23:00 -10:00
Lev Nachmanson
862dc91cb2
work on incremental dio
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-02-11 12:23:00 -10:00
Lev Nachmanson
7fe703e229
simplify column
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-02-11 12:23:00 -10:00
Lev Nachmanson
30f5599064
use fixed vars to explain tightening
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-02-11 12:23:00 -10:00
Lev Nachmanson
36293ac773
test that pivoting is correct in dioph_eq.cpp
2025-02-11 12:23:00 -10:00
Lev Nachmanson
44fd0e48a8
fixes in dio
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-02-11 12:23:00 -10:00
Lev Nachmanson
798f0e2e8a
test tightening with S
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-02-11 12:23:00 -10:00
Lev Nachmanson
193116bf84
handle sat with tightening
2025-02-11 12:23:00 -10:00
Lev Nachmanson
52653e6e43
a version with less pointers: got a conflict
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-02-11 12:23:00 -10:00
Nikolaj Bjorner
8d2b9b41fd
fix compiler warnings
2025-01-12 13:39:13 -08:00
Nikolaj Bjorner
85356c5548
enable propagation when there are changed columns
...
- to fix bug reported by Nikhil Swamy/F*
- deal with some compiler warnings by adding annotations
2025-01-12 13:30:31 -08:00
Nikolaj Bjorner
9a237d55ca
fix misc build warnings
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-11 17:41:24 -08:00
Nikolaj Bjorner
270c127407
sketch fixed variable callback mechanism
2025-01-08 12:50:46 -08:00
Nikolaj Bjorner
87f7a20e14
Add (updated and general) solve_for functionality for arithmetic, add congruence_explain to API to retrieve explanation for why two terms are congruent Tweak handling of smt.qi.max_instantations
...
Add API solve_for(vars).
It takes a list of variables and returns a triangular solved form for the variables.
Currently for arithmetic. The solved form is a list with elements of the form (var, term, guard).
Variables solved in the tail of the list do not occur before in the list.
For example it can return a solution [(x, z, True), (y, x + z, True)] because first x was solved to be z,
then y was solved to be x + z which is the same as 2z.
Add congruent_explain that retuns an explanation for congruent terms.
Terms congruent in the final state after calling SimpleSolver().check() can be queried for
an explanation, i.e., a list of literals that collectively entail the equality under congruence closure.
The literals are asserted in the final state of search.
Adjust smt_context cancellation for the smt.qi.max_instantiations parameter.
It gets checked when qi-queue elements are consumed.
Prior it was checked on insertion time, which didn't allow for processing as many
instantations as there were in the queue. Moreover, it would not cancel the solver.
So it would keep adding instantations to the queue when it was full / depleted the
configuration limit.
2024-12-19 23:27:57 +01:00
Nikolaj Bjorner
8f5658b77d
add another baseline heuristic for string equalities, add cases for array axioms.
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-12-09 15:55:19 -08:00
Nikolaj Bjorner
1ab0962d43
partial fix to make computed term integer well-formed for solve_for functionality
2024-12-05 17:10:52 -08:00
Nikolaj Bjorner
05e053247d
add facility to solve for a linear term over API
2024-11-30 09:34:27 -08:00
Nikolaj Bjorner
d686e92bfa
disambiguate
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-10-02 10:45:16 -07: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
361e04a18e
port fixes to intblast
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-03-09 10:27:12 -08:00
Nikolaj Bjorner
bdb9106f99
Api ( #7097 )
...
* rename ul_pair to column
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* t
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* simple test passed
* remove an assert
* relax an assertion
* remove an obsolete function
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* access a term by the term column
* remove the column index from colunm.h
* remove an unused method
* remove debug code
* fix the build of lp_tst
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
---------
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
Co-authored-by: Lev Nachmanson <levnach@hotmail.com>
2024-01-24 16:05:18 -08:00
Lev Nachmanson
d084a19630
take care of strategy undecided, Nikolaj's comments
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2024-01-17 14:17:07 -10:00
Lev Nachmanson
c591a7a3e7
force int bound on int columns, call term_is_int() after subst
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2024-01-17 13:53:59 -10:00
Bruce Mitchener
e90a844508
Use override
more. ( #7059 )
2023-12-15 08:44:57 +00:00
Nikolaj Bjorner
585d027668
remove assert #7032
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-02 14:12:41 -08:00
Nikolaj Bjorner
e6385f8c85
disable bound validation in debug mode
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-11-07 20:49:26 +01:00
Nikolaj Bjorner
9f0b3cdc25
Add utility to expand sub-terms
2023-11-07 19:58:32 +01:00