3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-18 14:49:01 +00:00
Commit graph

3142 commits

Author SHA1 Message Date
Nikolaj Bjorner 63804c5296 na 2024-03-05 12:28:30 -08:00
Nikolaj Bjorner 74e73f2b84 reorg to use datatypes 2024-03-05 12:28:30 -08:00
Nikolaj Bjorner 48026edd7f move to hide bits
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-03-05 12:28:30 -08:00
Nikolaj Bjorner acc9c21653 move to hide bits
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-03-05 12:28:30 -08:00
Nikolaj Bjorner cfa6bd4534 update python build dependencies
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-03-05 12:28:30 -08:00
Nikolaj Bjorner b14499f230 prepare for sls experiment
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-03-05 12:28:30 -08:00
Nikolaj Bjorner cf72a916f8 bugfixes, adding plugin solver 2024-03-05 12:28:30 -08:00
Nikolaj Bjorner 659e384ee7 bugfixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-03-05 12:28:30 -08:00
Nikolaj Bjorner cd6382f1c8 fix alias bug
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-03-05 12:28:30 -08:00
Nikolaj Bjorner 9cde4f7e05 bugfixes 2024-03-05 12:28:30 -08:00
Nikolaj Bjorner d7e419b7ed fixes and checks
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-03-05 12:28:30 -08:00
Nikolaj Bjorner ab0459e5aa bugfixes 2024-03-05 12:28:30 -08:00
Nikolaj Bjorner 7dc4ce8259 use tuned gcd to compute mult inverse 2024-03-05 12:28:30 -08:00
Nikolaj Bjorner 4391c90960 na 2024-03-05 12:28:30 -08:00
Nikolaj Bjorner 991537836b fixes based on unit tests 2024-03-05 12:28:30 -08:00
Nikolaj Bjorner 046db662f9 na 2024-03-05 12:28:30 -08:00
Nikolaj Bjorner 388b2f5eec n/a 2024-03-05 12:28:30 -08:00
Nikolaj Bjorner ddf2d28350 add tests for evaluation 2024-03-05 12:28:30 -08:00
Nikolaj Bjorner 1cf008dd0a updates 2024-03-05 12:28:29 -08:00
Nikolaj Bjorner bd323d6fab save 2024-03-05 12:28:29 -08:00
Nikolaj Bjorner f39756c74b initial stab at new bv-sls based on repair actions 2024-03-05 12:28:29 -08:00
Nikolaj Bjorner 79b7d8a9e2 throttle squash-store #7134
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-02-21 10:00:11 -08:00
Nikolaj Bjorner 84d592c1f2 fix #7121
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-02-16 09:59:57 +07:00
Bruce Mitchener 53f89a81c1
Fix some typos. (#7115) 2024-02-07 23:06:43 -08:00
Nikolaj Bjorner bc70282a18 mute some compiler warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-02-03 15:42:06 -08:00
Nikolaj Bjorner 9425c419ad port remaining egraph update
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-02-03 15:38:05 -08:00
Nikolaj Bjorner a5a819c291 port updates to egraph from poly
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-02-03 12:48:58 -08:00
Nikolaj Bjorner 36453c5949 use while (true) in do loops with continue
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-01-23 14:56:57 -08:00
Nikolaj Bjorner 7486e8724f track quantifier instantiation method in proof hint #7080
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-01-20 17:44:07 -08:00
Nikolaj Bjorner 4ff352fcac fix #7084
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-01-15 08:49:14 -08:00
Nikolaj Bjorner ddf2eb57d6 deleted parameter
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-01-12 10:42:08 -08:00
Nikolaj Bjorner 59b18d4a14 create as_bin as_hex wrappers for display
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-01-12 09:19:22 -08:00
Nikolaj Bjorner 955c80e98b import updates from poly branch
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-01-10 19:42:58 -08:00
Nikolaj Bjorner 696b70fddb fix
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-01-04 11:00:07 -08:00
Nikolaj Bjorner b75367ffc7 port improvements to arith rewriter
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-01-03 13:57:09 -08:00
Bruce Mitchener d66df2616f
Fix some typos. (#7075) 2023-12-29 15:20:06 +00:00
Jakob Rath ec2b8eb4ca
Merge shared parts from polysat branch (#7063)
* sat_literal: make constants constexpr

* dlist: rename elem -> list

* tbv: use get_bit

* additional pdd and rational tests

* egraph: callback setters take functions by value

This allows to set callbacks without defining a separate variable for
the callback lambda.

(previous usage does one copy of the function, exactly as before)

* cmake: enable compiler error when non-void function does not return value
2023-12-28 11:11:53 -08:00
Nikolaj Bjorner ad07e0e18d add sub and super-slice functionality directory to euf-bv-plugin 2023-12-23 10:27:54 -08:00
Nikolaj Bjorner cd331b8a56 remove reference to tactic.h
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-22 13:17:04 -08:00
Nikolaj Bjorner 7adb402a3f add missing dependencies
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-22 12:06:30 -08:00
Nikolaj Bjorner 5f451182f7 missing cmake list
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-22 12:02:24 -08:00
Nikolaj Bjorner e321643bf5 move sls core functionality to be independent of tactic
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-22 12:00:52 -08:00
Nuno Lopes cab3c45863 remove unnecessary parameter copies 2023-12-22 16:11:06 +00:00
Nuno Lopes c4fa719751 revert last two commits; MSVC doesn't like to statically allocate flexible arrays 2023-12-20 19:10:05 +00:00
Nuno Lopes c9c53b7c65 tmp_enode: don't heap allocate an app. store it inline instead.
Saves heap allocations and double indirections
2023-12-20 18:19:20 +00:00
Nuno Lopes 4898a156d8 shrink ast's app by 8 bytes on 64-bit platforms when number of args > 0 2023-12-20 16:58:45 +00:00
Nuno Lopes b2d5c24c1d remove a few string copies 2023-12-20 16:55:09 +00:00
Nikolaj Bjorner ea44c110bb gc expressions in the scope of updates, not old expressions 2023-12-18 20:08:29 -08:00
Nikolaj Bjorner 13be3c3fbb reset model converter between rounds to elim-unconstrained. 2023-12-18 16:57:52 -08:00
Nikolaj Bjorner 0daa05aab2 add ability to log selected bv rewrites 2023-12-18 16:57:52 -08:00
Nikolaj Bjorner 2f2bf749b9 fixes to intblast encoding and more arithmetic rewriters
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-17 18:15:51 -08:00
Nikolaj Bjorner bb99f44214 fix bugs in elim-unconstr2 and fix bugs in intblast_solver
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-17 17:42:55 -08:00
Nikolaj Bjorner 4867073290 remove windowsArm64 from nightly
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-17 10:04:49 -08:00
Nikolaj Bjorner d0a59f3740 intblast with lazy expansion of shl, ashr, lshr
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-16 15:12:57 -08:00
Bruce Mitchener 50e0fd3ba6
Use noexcept more. (#7058) 2023-12-16 12:14:53 +00:00
Nikolaj Bjorner b44ab2f620 add rewriters for and
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-15 14:55:02 -08:00
Nikolaj Bjorner 9293923b8a Add intblast solver 2023-12-15 13:50:38 -08:00
Christoph M. Wintersteiger 2e83352d42
Fix bug in fp.round_to_integral (#7060) 2023-12-15 08:34:27 -08:00
Bruce Mitchener e90a844508
Use override more. (#7059) 2023-12-15 08:44:57 +00:00
Nikolaj Bjorner 8e26c2af17 fix #7049
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-08 13:05:21 -08:00
Christoph M. Wintersteiger 6910a4e18c
Fix to_fp_signed (#7034) 2023-12-03 16:38:06 -08:00
Nikolaj Bjorner ea3628e50b remove hoist functionality
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-03 16:28:43 -08:00
Nikolaj Bjorner 1de25ed09c pending files 2023-12-02 19:43:51 -08:00
Nikolaj Bjorner ba8d8f0af7 Disable hoist entirely, it is bad on QF_LIA and does not help on other observed cases 2023-12-02 15:40:47 -08:00
Nikolaj Bjorner 5c1e7f7112 fix #7029 2023-12-02 10:48:40 -08:00
Nikolaj Bjorner a15a7cee7b touch
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-01 14:13:05 -08:00
Nikolaj Bjorner faf14012ba Regressions reported by Guido 2023-12-01 13:32:13 -08:00
Nikolaj Bjorner b52fd8d954 add EUF plugin framework.
plugin setting allows adding equality saturation within the E-graph propagation without involving externalizing theory solver dispatch. It makes equality saturation independent of SAT integration.
Add a special relation operator to support ad-hoc AC symbols.
2023-11-30 13:58:30 -08:00
Nikolaj Bjorner 26440ed3d8 deal with ubuntu/clang warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-11-29 15:45:19 -08:00
Nikolaj Bjorner e9abdbb7a4 fix #7011
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-11-29 15:08:08 -08:00
Nikolaj Bjorner 2f01b5b567 re-enable delayed literal propagation 2023-11-29 14:00:17 -08:00
Nikolaj Bjorner 4289cfac8d revert some fixes to euf
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-11-29 13:47:59 -08:00
Nikolaj Bjorner d469c1054e remove separate to_add_literal queue 2023-11-29 12:45:43 -08:00
Nikolaj Bjorner e972eb33b2 #6523 - contains_ptr bug regarding etable reinserts 2023-11-29 10:44:36 -08:00
Nikolaj Bjorner 79bbbf76d0 fix #7006 2023-11-28 15:06:27 -08:00
Bruce Mitchener 9d1ceab1f2
cmake: Use FindPython3. (#7019)
`FindPythonInterp` has been deprecated for a long time and is more
verbal about that deprecation now.

The build system no longer uses `PYTHON_EXECUTABLE` but instead uses
`Python3_EXECUTABLE`.
2023-11-27 11:20:21 +01:00
Nikolaj Bjorner b9455c3692 #6999 deal with implicit assumptions, more robust pattern matching
The code is making some assumptions that arrays are 1-dimensional. This is not generally true.
Introducing pattern matching to ensure the assumption is met.
Avoid get_arg(..) especially when there is an approach based on pattern matching recognizers.
2023-11-17 10:06:20 -08:00
Nikolaj Bjorner ad2107f079 fix #6978 2023-11-14 08:45:22 -08:00
Nikolaj Bjorner f97dd34028 tests
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-10-30 14:54:04 -07:00
Christoph M. Wintersteiger 9d57bdd2ef
Assorted fixes for floats (#6968)
* Improve 4be26eb543

* Add-on to 0f4f32c5d0

* Fix mk_numeral

* Fix corner-case in fp.div

* Fixes for corner-cases in mk_to_fp_(un)signed

* Fix out-of-range results in mpf_manager::fma

* Further adjustments for fp.to_fp_(un)signed

* fp.to_fp from real can't be NaN

* fp.to_fp from reals: add bounds

* Fix NaN encodings in theory_fpa.

* Fix fp.fma rounding with tiny floats

* Fix literal creation order in theory_fpa
2023-10-29 17:29:42 -07:00
Nikolaj Bjorner 93427f1175 regression test 2447
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-10-26 08:48:58 -07:00
Nikolaj Bjorner 0b8d7b755d useful string rewrites
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-10-26 03:48:50 -07:00
Nikolaj Bjorner 7b490543ca add missing simplification; handle nit #6952
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-10-25 10:00:15 -07:00
Nikolaj Bjorner 0859be5649 #6953
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-10-25 09:07:04 -07:00
Nikolaj Bjorner 8fac89cdcc enable more simplification in case inequality triggers a change. 2023-10-21 19:58:39 -07:00
Nikolaj Bjorner 5942dc24bd #6523 2023-10-15 11:41:25 -07:00
Nikolaj Bjorner 61319ffd85 cache is_shared information in the enode
observed perf overhead for QF_NIA is that assume_eqs in theory_lra incurs significant overhead when calling is_relevant_and_shared. The call to context::is_shared and the loop checking for beta redexes is a main bottleneck. The bottleneck is avoided by caching the result if is_shared inside the enode. It is invalidated for every merge/unmerge.
2023-09-23 17:19:06 -07:00
Nikolaj Bjorner 643512613a simplify last_index function 2023-09-18 12:52:59 -07:00
Nuno Lopes b1c52c0b16 don't crash when a function doesn't have a model when converting a solver to string 2023-09-18 10:16:19 +01:00
Nikolaj Bjorner b87a91379c fix #6894
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-09-14 17:14:14 -07:00
Nikolaj Bjorner 50d76a2fe3 fix #6894
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-09-14 17:14:14 -07:00
Nikolaj Bjorner 4d9af7848d add parameter to disable pattern inference #6884
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-09-03 15:27:37 -07:00
Nikolaj Bjorner 99239068ba some template instantiations #6869
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-09-03 15:21:49 -07:00
Nuno Lopes 00593609c5 minor code simplification 2023-08-30 12:50:29 +01:00
Nikolaj Bjorner 63467f9dfa fix #6876
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-08-25 17:14:35 -07:00
Nikolaj Bjorner 1d9e0feb84 Merge branch 'master' of https://github.com/z3prover/z3 2023-08-21 09:19:16 -07:00
Nikolaj Bjorner 79aa317af4 remove if-def inside cpp file that should not be there #6869
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-08-21 09:19:06 -07:00
Nuno Lopes 57c667e355 remove unused code 2023-08-20 15:16:47 +01:00
Nuno Lopes 8210aafb69 ast compare_nodes: fail faster when comparing quantifier expressions 2023-08-20 14:09:04 +01:00
Nikolaj Bjorner 5e3df9ee77
Arith min max (#6864)
* prepare for dependencies

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

* snapshot

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

* more refactoring

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

* more refactoring

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

* build

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

* pass in u_dependency_manager

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

* address NYIs

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

* more refactoring names

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

* eq_explanation update

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

* add outline of bounds improvement functionality

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

* fix unit tests

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

* remove unused structs

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

* more bounds

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

* more bounds

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

* convert more internals to use u_dependency instead of constraint_index

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

* convert more internals to use u_dependency instead of constraint_index

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

* remember to push/pop scopes

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

* use the main function for updating bounds

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>

* remove reset of shared dep manager

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

* disable improve-bounds, add statistics

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

---------

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-08-19 17:44:09 -07:00