3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-16 13:58:45 +00:00
Commit graph

206 commits

Author SHA1 Message Date
Clemens Eisenhofer 002d166f72
Xor (#6448)
* Added function to select the next variable to split on

* Fixed typo

* Small fixes

* uint -> int

* Fixed missing assignment for binary clauses

* Memory leak in .NET user-propagator
The user-propagator object has to be manually disposed (IDisposable), otherwise it stays in memory forever, as it cannot be garbage collected automatically

* Throw an exception if variable passed to decide is already assigned instead of running in an assertion violation

* Update (not compiling yet)

* #6429

* remove ternary clause optimization

Removing ternary clause optimization from sat_solver simplifies special case handling of ternary clauses throughout the sat solver and dependent solvers (pb_solver). Benchmarking on QF_BV suggests the ternary clause optimization does not have any effect. While removing ternary clause optimization two bugs in unit propagation were also uncovered: it missed propagations when the only a single undef literal remained in the non-watched literals and it did not update blocked literals in cases where it could in the watch list. These performance bugs were for general clauses, ternary clause propagation did not miss propagations (and don't use blocked literals), but fixing these issues for general clauses appear to have made ternary clause optimization irrelevant based on what was measured.

* Update: Missing data-structures (still not compiling)

* Nearly compiling

* Some missing arguments

* Polishing

* Only conflicts/propagations/justifications are missing for making it compile

* Added propagation (justifications for them are still missing)

* Use the right deallocation

* Use Z3's memory allocation system

* Ported "seen"

* Polishing

* Added 64-bit "1" counting

* More polishing

* minor fixes

- ensure mk_extract performs simplification to distribute over extract and removing extract if the range is the entire bit-vector
- ensure bool_rewriter simplifeis disjunctions when applicable.

* adding simplifiers layer

simplifiers layer is a common substrate for global non-incremental and incremental processing.
The first two layers are new, but others are to be ported form tactics.

- bv::slice - rewrites equations to cut-dice-slice bit-vector extractions until they align. It creates opportunities for rewriting portions of bit-vectors to common sub-expressions, including values.
- euf::completion - generalizes the KB simplifcation from asserted formulas to use the E-graph to establish a global and order-independent canonization.

The interface dependent_expr_simplifier is amenable to forming tactics. Plugins for asserted-formulas is also possible but not yet realized.

* Create bv_slice_tactic.cpp

missing file

* adding virtual destructor

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

* Added 64-bit "1" counting (#6434)

* Memory leak in .NET user-propagator
The user-propagator object has to be manually disposed (IDisposable), otherwise it stays in memory forever, as it cannot be garbage collected automatically

* Throw an exception if variable passed to decide is already assigned instead of running in an assertion violation

* Added 64-bit "1" counting

* remove incorrect assertion

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

* Added limit to "visit" to allow detecting multiple visits (#6435)

* Memory leak in .NET user-propagator
The user-propagator object has to be manually disposed (IDisposable), otherwise it stays in memory forever, as it cannot be garbage collected automatically

* Throw an exception if variable passed to decide is already assigned instead of running in an assertion violation

* Added limit to "visit" to allow detecting multiple visits

* Putting visit in a separate class
(Reason: We will probably need two of them in the sat::solver)

* Bugfix

* init solve_eqs

* working on solve_eqs

* Update .gitignore

* wip - converting the equation solver as a simplifier

* make visited_helper independent of literals

re-introduce shorthands in sat::solver for visited and have them convert literals to unsigned.

* build fix

* move model and proof converters to self-contained module

* Create solve_eqs2_tactic.h

* add converters module to python build

* move tactic_params to params

* move more converters

* move horn_subsume_model_converter to ast/converters

* add initial stubs for model reconstruction trail

* fixing build

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

* fixes #6439 #6436

* It's compiling (However, two important functions are commented out)

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-11-10 09:05:17 -08:00
Nikolaj Bjorner a90c4f65cf increment version per release notes
incrementing minor version because the API has a new function.
This breaks log replay against old dlls and inclusion against z3++.h.
2022-10-19 13:21:26 -07:00
Nikolaj Bjorner ea55f69a92 fix python build 2022-10-16 23:42:11 +02:00
Nikolaj Bjorner 6eb2d2acfa update dependencies for build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-09-28 11:25:36 -07:00
Nikolaj Bjorner ff679e0fce increment version number 2022-09-11 19:02:44 -07:00
Nikolaj Bjorner 8e6f17ebd0 inc version
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-09-03 15:47:12 -07:00
John Fleisher f72cdda5fb
Change to 4 digit assembly version (#6297)
* WiP: test build specific version number

* update mk_win_dist for assembly-version

* Add print statements for version

* remove stray semicolon

* undo quote change in projectstr

* nit fixes

* revert print formatting for Mac build

* fix spaces
2022-08-31 06:46:06 -07:00
Nikolaj Bjorner 4d29925c3f build fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-28 18:43:50 -07:00
Nikolaj Bjorner ce1f3987d9 fix unsoundness in quantifier propagation #6116 and add initial lemma logging 2022-08-23 19:10:01 -07:00
Nikolaj Bjorner 540e36e6cb roll version number
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-18 15:47:08 -07:00
Nikolaj Bjorner 78eaefe5a8 move solver-params to params 2022-08-08 11:34:41 +03:00
Nikolaj Bjorner a6fe260354 update minor versin number to ABI change to remove Z3_bool from z3_api.h
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-30 06:31:22 +02:00
Nikolaj Bjorner 591d485358 update versions
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-30 05:26:43 +02:00
Nikolaj Bjorner 3a8eb1e7ec increase version number
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-22 12:43:19 -07:00
Nikolaj Bjorner 845e852dba increment to include python fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-22 11:44:32 -07:00
Nikolaj Bjorner adcb3e8f86 set version number
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-21 20:27:50 -07:00
Nikolaj Bjorner 9d9414c111 inc version number 2022-07-06 14:00:40 -07:00
Nikolaj Bjorner cc841caf08 increment minor version for dev branch
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-06 10:15:34 -07:00
Nikolaj Bjorner 282c786f1c setting version to release
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-07-05 11:51:12 -07:00
Nikolaj Bjorner 3ae781039b inc version number
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-05 07:09:54 -07:00
Nikolaj Bjorner 33ffd464cf inc version number
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-04-24 12:17:07 +01:00
Nikolaj Bjorner a418678cd4 increment version number 2022-03-20 14:34:34 -07:00
Nikolaj Bjorner b259f46f85 dependencies 2022-01-13 12:34:58 -08:00
Nikolaj Bjorner 08294d62e5 separate dependencies for qe_lite 2022-01-12 03:26:22 -08:00
Nikolaj Bjorner ecf41972b1 increase minor version
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-12-23 14:41:52 -08:00
Nikolaj Bjorner 4587575649 if you read this commit message you probably are a programmer who has no life
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-11-18 20:25:47 -08:00
Nikolaj Bjorner a3010c8875 version inc, bvsort->bitvecsort 2021-07-13 17:14:47 +02:00
Nikolaj Bjorner 10ad5bae21 increment version
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-07-11 06:17:58 +02:00
Nikolaj Bjorner eb13ad14e5 python build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-03-17 16:26:44 -07:00
Nikolaj Bjorner ab0735fde2 separate component for asserted_formulas to break dependency cycles
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-03-17 15:51:38 -07:00
Nikolaj Bjorner 25343232ca add dependency 2021-03-17 15:36:02 -07:00
Nikolaj Bjorner ddbcd08d46 move asserted_formulas to solver scope 2021-03-17 15:02:16 -07:00
Nikolaj Bjorner d03fdf5fed more descriptive naming convention 2021-03-15 15:48:33 -07:00
Nikolaj Bjorner 4b3fecc35e remove dependency on ast from params 2021-03-15 15:40:41 -07:00
Nikolaj Bjorner 1cb0dbae51 missing dependency for python build 2021-03-14 20:45:30 -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 bef6f1a729 fix build 2021-03-02 13:51:58 -08:00
Nikolaj Bjorner 87cd3487e5 missing pattern dependency
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-01-29 16:44:47 -08:00
Nikolaj Bjorner fb48481860 update version
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-01-20 12:51:48 -08:00
Nikolaj Bjorner 72d407a49f
mbp (#4741)
* adding dt-solver

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

* dt

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

* move mbp to self-contained module

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

* files

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

* Create CMakeLists.txt

* dt

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

* rename to bool_var2expr to indicate type class

* mbp

* na

* add projection

* na

* na

* na

* na

* na

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

* deps

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

* testing arith/q

* na

* newline for model printing

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-10-21 15:48:40 -07:00
Nikolaj Bjorner 2f756da294
adding dt-solver (#4739)
* adding dt-solver

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

* dt

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

* move mbp to self-contained module

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

* files

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

* Create CMakeLists.txt

* dt

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

* rename to bool_var2expr to indicate type class

* mbp

* na
2020-10-18 15:28:21 -07:00
Nikolaj Bjorner 44679d8f5b
arith_solver (#4733)
* porting arithmetic solver

* integrating arithmetic

* lp

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>
2020-10-16 10:49:46 -07:00
Nikolaj Bjorner fa58a36b9f
model refactor (#4723)
* refactor model fixing

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

* missing cond macro

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

* file

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

* file

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

* add macros dependency

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

* deps and debug

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

* add dependency to normal forms

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

* na

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

* build issues

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

* compile

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

* fix leal regression

* complete model fixer

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

* fold back private functionality to model_finder

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

* avoid duplicate fixed callbacks

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-10-05 14:13:05 -07:00
Nikolaj Bjorner 79162b96f3 updated dependencies
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-10-01 08:11:55 -07:00
Nikolaj Bjorner 43db7df2b5
user solver (#4709)
* user solver

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>
2020-09-24 04:55:34 -07:00
Nikolaj Bjorner d56dd1db7b update version'
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-09-11 04:37:35 -07:00
Nikolaj Bjorner fe43f8df8f na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-09-03 08:11:43 -07:00
Nikolaj Bjorner 35e3d8425c move fpa
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-29 11:16:21 -07:00
Nikolaj Bjorner b9cbb08858 shuffle dependencies
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-29 09:51:39 -07:00
Nikolaj Bjorner 86c11b9349 order
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-28 13:05:25 -07:00