3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-11-05 13:56:03 +00:00
Commit graph

63 commits

Author SHA1 Message Date
Jakob Rath
28810e55a0 pdd_linear_iterator 2023-07-08 20:08:03 +02:00
Jakob Rath
397acd0089 use manager reference as before 2023-07-08 20:06:24 +02:00
Jakob Rath
129039dc52 Add method to (explicitly) re-assign the pdd manager 2023-05-29 15:53:04 +02:00
Jakob Rath
2795ac5e90 Store pdd_manager as pointer 2023-05-29 15:53:04 +02:00
Nikolaj Bjorner
7b60c37ad8 remaining issue fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-04-01 10:30:49 -07:00
Jakob Rath
133661d81b guard pdd-AND against wrong semantics 2023-02-24 13:51:37 +01:00
Jakob Rath
ae8075e22d check and fix pdd manager confusion 2023-02-24 13:29:59 +01:00
Jakob Rath
a0f5386bdd Use parity helper functions 2023-02-08 15:11:39 +01: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
Jakob Rath
de6a0ab1a7 PDD operations 2022-08-01 18:37:11 +03:00
Nikolaj Bjorner
4ecb61aeaa neatify
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-15 09:53:56 -07:00
Nikolaj Bjorner
b29cdca936 integrate factorization to Grobner 2022-07-14 21:24:27 -07:00
Nikolaj Bjorner
4a192850f2 add var_factors
Add routine to partially factor polynomials. It factors out variables.
2022-07-14 11:06:53 -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
f33c933241 Add substitution routine to pdd
For Grobner we want to preserve directions of intervals for finding sign conflicts. This means that it makes sense to have external control over linear solutions.
2022-07-11 12:10:28 -07:00
Nikolaj Bjorner
770c79a939 prepare for std::vector 2021-04-20 09:24:24 -07:00
Nikolaj Bjorner
c2b353ba72 adding factorization 2021-03-26 14:58:24 -07:00
Nikolaj Bjorner
2fef6dc502 more scaffolding 2021-03-21 11:31:14 -07:00
Nikolaj Bjorner
b889b110ee bool_vector, some spacer tidy
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-04-05 12:59:04 -07:00
Lev Nachmanson
696c95e1cf remove duplicate lines
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-01-28 10:04:21 -08:00
Lev Nachmanson
7ad95aa5d2 Nikolaj fixes pdd_manager::reduce() to work with the changed order
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-01-28 10:04:21 -08:00
Lev Nachmanson
d6a246777a Nikolaj implemented lm_lt on dd::pdd
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-01-28 10:04:21 -08:00
Nikolaj Bjorner
a9a602c1aa memory throttling (#108)
* fixes to use list bookkeeping

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* fix reset logic

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* fix non-termination bug in simplifier

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* missing reset of values

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* add configuration to throttle memory usage

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-01-28 10:04:21 -08:00
Nikolaj Bjorner
c5187902ad reset also m_values (#107)
* fixes to use list bookkeeping

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* fix reset logic

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* fix non-termination bug in simplifier

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* missing reset of values

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-01-28 10:04:21 -08:00
Lev Nachmanson
5e19a52772 merge changes from Z3Prover
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-01-28 10:04:21 -08:00
Lev Nachmanson
ee255ef8b3 merge changes from Z3Prover repository
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2020-01-28 10:04:21 -08:00
Nikolaj Bjorner
301f9598a4 fixing leading term computation
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-01-08 12:10:23 -08:00
Nikolaj Bjorner
57846e50fa use variable id as level, separate cut-set updates, add missing reset in pdd 2020-01-08 02:15:45 -08:00
Nikolaj Bjorner
4c09b7d792 build warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-01-06 04:58:28 -08:00
Nikolaj Bjorner
2acab46388 anf translation
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-01-05 21:09:52 -08:00
Nikolaj Bjorner
e1fb74edc5 add ite-finder, profile
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-01-05 16:46:50 -08:00
Nikolaj Bjorner
40a4326ad4 add anf
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-01-05 16:46:49 -08:00
Nikolaj Bjorner
c1032c3403 remove watch, hoist orbit to track used variables
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-01-02 00:39:50 -08:00
Nikolaj Bjorner
1d0572354b add bit-matrix, avoid flattening and/or after bit-blasting, split pdd_grobner into solver/simplifier, add xlin, add smtfd option for incremental mode logic
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-01-01 20:14:20 -08:00
Nikolaj Bjorner
f5c7b9fb2f reset values 2019-12-30 12:56:52 -08:00
Nikolaj Bjorner
2f8303393b fix reset
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-12-28 16:57:22 -08:00
Nikolaj Bjorner
1fd4c91fbf fixes to reset
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-12-28 15:31:20 -08:00
Nikolaj Bjorner
1e99059a5d fix subtraction
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-12-27 15:49:54 -08:00
Nikolaj Bjorner
914856b9ba na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-12-26 14:31:05 -08:00
Nikolaj Bjorner
2c6e6b1fdb resolve
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-12-26 02:30:12 -08:00
Nikolaj Bjorner
50873c8094 reduce simplification
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-12-26 01:32:36 -08:00
Nikolaj Bjorner
65d818437a add simplification routines
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-12-25 19:31:18 -08:00
Nikolaj Bjorner
5a68fc8c07 fix pdd_stack for gc on reduce, add unit test for linear_simplify
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-12-25 11:05:59 -08:00
Nikolaj Bjorner
34ae55f4f5 fix gc bug 2019-12-23 18:29:42 -08:00
Nikolaj Bjorner
3df6080a27 Update dd_pdd.cpp
dbg
2019-12-23 15:53:10 -08:00
Nikolaj Bjorner
77868f3d96 added notes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-12-23 12:32:02 -08:00
Nikolaj Bjorner
25b98f497a adding level2var
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-12-22 11:51:04 -08:00
Nikolaj Bjorner
58be42d2a9 initial unit test for pdd_grobner
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-12-22 10:59:12 -08:00
Nikolaj Bjorner
c4da5caf69 update comment
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-12-21 17:59:00 -08:00
Nikolaj Bjorner
72b47ba519 use while loop for reduce
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-12-21 17:57:01 -08:00