3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-18 06:39:02 +00:00
Commit graph

1837 commits

Author SHA1 Message Date
Nikolaj Bjorner 8ab8b63a4c fix incorrect mod axiomatization #6116 2022-06-29 12:32:04 -07:00
Nikolaj Bjorner 1a9122663c remove unsound axioms, fix #6115 2022-06-29 11:16:10 -07:00
Nikolaj Bjorner 4c8f6b60ce fix #6107 2022-06-27 20:51:30 -07:00
Nikolaj Bjorner 61f5489223 fix #6107 2022-06-27 16:53:18 -07:00
Nikolaj Bjorner 1fcf7cf0b7 add nl div mod axioms 2022-06-27 09:02:53 -07:00
Clemens Eisenhofer 2fa60aa43c
Added function to select the next variable to split on (User-Propagator) (#6096)
* Added function to select the next variable to split on

* Fixed typo

* Small fixes

* uint -> int
2022-06-19 10:49:25 -07:00
Nuno Lopes 73a24ca0a9 remove '#include <iostream>' from headers and from unneeded places
It's harmful to have iostream everywhere as it injects functions in the compiled files
2022-06-17 14:10:19 +01:00
Nikolaj Bjorner 637120ced5 Treat arguments to recursive functions as beta redexes
An argument to a recursive function would escape the scope of the function application when the recursive function definitions are unfolded. Therefore, such argument occurrences need not be considered for extensional equality / equality sharing.

This filter is mostly relevant for recursive functions that take a lambda expression as argument. Lambda expressions / arrays that occur in shared occurrences are checked for extensionality.
2022-06-14 09:51:06 -07:00
Nikolaj Bjorner 25ad5cb073 prepare ground for drup trim
By not deleting justifications in base level unit literals it is possible for drup-trim to inspect the trail for dependencies - which clauses were used to derive a literal.
2022-06-14 09:51:06 -07:00
Nikolaj Bjorner 35d4605425 remove spurious output to stdout 2022-06-14 09:51:06 -07:00
Nikolaj Bjorner 04f94d818f fix #6091 2022-06-14 09:51:06 -07:00
Nikolaj Bjorner 470bf27d1d drat
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-11 09:15:32 -07:00
Nikolaj Bjorner 5db133f875 add a way to supress lambdas
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-10 14:35:20 -07:00
Nikolaj Bjorner 97437bce4c Update sat_params.pyg 2022-06-09 10:09:30 -07:00
Nikolaj Bjorner 828850f298 prepare for trim 2022-06-09 10:08:57 -07:00
Nikolaj Bjorner dee6c30f1b na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-08 08:05:19 -07:00
Nikolaj Bjorner 80604c7bc5 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-08 07:00:59 -07:00
Nikolaj Bjorner 51ed13f96a update topological sort to use arrays instead of hash tables, expose Context over Z3Object for programmability
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-08 06:28:24 -07:00
Nikolaj Bjorner dca1dcca6d ea
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-06 08:42:47 -07:00
Nikolaj Bjorner b629960afb proof format
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-06 07:18:33 -07:00
Nikolaj Bjorner ea365de820 add cut
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-04 11:59:00 -07:00
Nikolaj Bjorner f652c57bfe fix proof checker
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-03 20:17:59 -07:00
Nikolaj Bjorner 3d1e03e00a add start of self-contained proof checker for arithmetic
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-06-03 09:11:02 -07:00
Nikolaj Bjorner a9d70fca1a fix #6061
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-31 19:09:10 -07:00
Nikolaj Bjorner e9cff33feb fix #5068
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-30 11:24:58 -07:00
Nikolaj Bjorner da3f31697b fix proof checking for bounds propagation 2022-05-30 10:18:16 -07:00
Nikolaj Bjorner cb279fba2b fix sign for binary propagation hints
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-29 10:32:05 -07:00
Nikolaj Bjorner bffa7ff2f6 add hint verification, combine bounds/farkas into one rule
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-29 10:12:05 -07:00
Nikolaj Bjorner 48701826f1 indent
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-28 13:57:03 -07:00
Nikolaj Bjorner dd46224a1d use structured proof hints
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-28 09:37:41 -07:00
Nikolaj Bjorner 8c95dff33b cnf 2022-05-22 09:10:26 -04:00
Nikolaj Bjorner 386c511f54 core opt 2022-05-21 10:27:37 -04:00
Nikolaj Bjorner 7497856ded add ignore int to new arithmetic solvers
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-11 15:14:22 -07:00
Nikolaj Bjorner ad2445e423 gauss jordan
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-09 16:33:15 -07:00
Nikolaj Bjorner dcc01b874a prep for pragmas 2022-05-09 11:18:15 -07:00
Nikolaj Bjorner 7def610a69 build warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-08 10:31:11 -07:00
Nikolaj Bjorner 14214c5a07 exposing user propagators over .Net
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-07 11:08:40 -07:00
Nikolaj Bjorner 367bfedab0 add min/max diff in final check
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-04 07:39:38 -07:00
Nikolaj Bjorner c29cfa81ae prep for max/min diff 2022-05-04 02:08:11 -07:00
Nikolaj Bjorner 81d97a81af enable nested ADT and sequences
add API to define forward reference to recursively defined datatype.
The forward reference should be used only when passed to constructor declarations that are used in a datatype definition (Z3_mk_datatypes). The call to Z3_mk_datatypes ensures that the forward reference can be resolved with respect to constructors.
2022-04-27 09:58:38 +01:00
Nikolaj Bjorner 8e2f09b517 #5778 - ensure arrays used inside of extensionality function are treated as shared
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-04-25 17:17:59 +01:00
Nikolaj Bjorner 0a665b0fa0 #5778 2022-04-25 14:27:38 +01:00
Nikolaj Bjorner 489459a1f7 #5778
reprogram flush, mark clauses during reinit as non-redundant.
2022-04-25 11:22:00 +01:00
Nikolaj Bjorner 24baf56e27 fix missing propagation on final 2022-04-24 16:29:25 +01:00
Nikolaj Bjorner ec57d3b15c missing switch cases 2022-04-19 16:20:02 +01:00
Nikolaj Bjorner 3cc9d7f443 improve pre-processing 2022-04-15 12:55:26 +02:00
Nikolaj Bjorner a634876180 sort muxes 2022-04-15 12:55:26 +02:00
Nikolaj Bjorner eb2dd92d37 Merge branch 'master' of https://github.com/z3prover/z3 2022-04-11 17:06:03 +02:00
Nikolaj Bjorner c996a66da0 separate pre-processing, add callback parameter to push/pop in python API 2022-04-11 17:05:59 +02:00
Clemens Eisenhofer b0d8b27f37
Fixed registering expressions in push/pop (#5964)
* Fixed registering expressions in push/pop

* Reused existing function
2022-04-11 16:50:13 +02:00
Nikolaj Bjorner f55b233228 #5778 2022-04-09 12:06:39 +02:00
Nikolaj Bjorner 405a26c585 allow adding constraints during on_model 2022-04-09 09:55:02 +02:00
Nikolaj Bjorner b0dce5b27d remove debug asserts 2022-04-06 08:53:12 +02:00
Nikolaj Bjorner 2f63747c7b #5778
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-04-06 08:17:27 +02:00
Nikolaj Bjorner cebbc71330 #5778 ensure else value so that defaults align across equivalence class 2022-04-06 07:58:32 +02:00
Nikolaj Bjorner ef28f0e2f0 #5778
deal with recursive calls to internalization with the same formula
2022-04-02 01:28:58 -07:00
Nikolaj Bjorner 2fedcbd41e #5778 2022-04-02 01:27:56 -07:00
Nikolaj Bjorner 229ea569f1 #5778 2022-04-02 00:56:51 -07:00
Nikolaj Bjorner 97115e5ebd #5778
add new clauses created during propagation to use-list
2022-04-02 00:14:59 -07:00
Nikolaj Bjorner 4cc33277fa #5778 2022-04-01 14:27:40 -07:00
Nikolaj Bjorner c7922d69ac #5778 2022-04-01 14:17:45 -07:00
Nikolaj Bjorner 81084b8232 #5778 #5937 2022-04-01 13:07:17 -07:00
Nikolaj Bjorner 4b1419261f #5778 2022-03-21 16:23:43 -07:00
Nikolaj Bjorner 20bd59bb20 #5778 - missed tracking literal assignment justification
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-03-21 10:15:00 -07:00
Nikolaj Bjorner 6d836e7e2f expose model update 2022-03-19 09:23:08 -07:00
Nikolaj Bjorner 580012e19f fix #5894
expp is not implemented. This is the second time a fuzz bug reports it. Instead of closing the bug, just disable code path as fuzzers are not considering the comment from previous bug.
2022-03-10 09:45:09 -08:00
Nikolaj Bjorner 1d224d1bcd na 2022-03-08 08:51:00 -08:00
Nikolaj Bjorner c6f8ee33d4 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-03-08 08:36:19 -08:00
Nikolaj Bjorner 3293aeb7c7 na 2022-03-08 08:36:19 -08:00
Nikolaj Bjorner 7b4f1ed530 missing initialization of m_user_propagator, disable unsound in-processing in pb_solver
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-02-23 04:49:42 -08:00
Nikolaj Bjorner 10b611b3ba fix #5850 2022-02-20 10:30:52 +02:00
Nikolaj Bjorner 2e00f2f32d
Propagator (#5845)
* user propagator without ids

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

* user propagator without ids

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

* fix signature

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

* references #5818

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

* fix c++ build

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

* switch to vs 2022

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

* switch 2022

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

* Update propagator example (I) (#5835)

* fix #5829

* na

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

* switch to vs 2022

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

* Adapted the example to the changes in the propagator

Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* context goes out of scope in stack allocation, so can't used scoped context when passing objects around

* parameter check

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

* add rewriter

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

* Fixed bug in user-propagator "created" (#5843)

Co-authored-by: Clemens Eisenhofer <56730610+CEisenhofer@users.noreply.github.com>
2022-02-17 09:21:41 +02:00
Qix 9cf50766a6
fix compiler warnings under clang (#5839) 2022-02-16 23:36:34 +02:00
Nikolaj Bjorner 1e0d49512b call mux finder 2022-01-31 12:00:16 -08:00
Nikolaj Bjorner 4392b88718 return negated literal when expression is "not" 2022-01-31 12:00:00 -08:00
Nikolaj Bjorner 7ddfc54250 shortcut negation 2022-01-31 11:58:02 -08:00
Nikolaj Bjorner 6422b783b2 fix mux extraction to check for top-level assertion 2022-01-31 11:57:16 -08:00
Nikolaj Bjorner 62bb234251 expose extract roots as separate 2022-01-31 11:56:44 -08:00
Nikolaj Bjorner 9e5b6e0c9c #5778 2022-01-27 12:12:58 -08:00
Nikolaj Bjorner 9969809745 #5778 2022-01-21 09:40:06 +01:00
Nikolaj Bjorner a3d4e9a4e8 adding created to sat/smt
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-01-20 11:48:27 +01:00
Nikolaj Bjorner c00591daaf finish is-fixed
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-01-19 16:28:34 +01:00
Nikolaj Bjorner e5767bf2b8 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-01-19 15:19:07 +01:00
Nikolaj Bjorner 06feb71eb1 fix bug in root setting exposed by incremental mode pb_solver 2022-01-18 10:55:27 +01:00
Nikolaj Bjorner d777306bb6 #5778 2022-01-17 10:43:15 -08:00
Nikolaj Bjorner fcc9f379e7 #5778 2022-01-16 19:36:00 -08:00
Nikolaj Bjorner a15da8f9ba #5778 2022-01-16 19:11:55 -08:00
Nikolaj Bjorner 637ddf9397 fix #5777
latest issue
2022-01-16 18:09:38 -08:00
Nikolaj Bjorner 0dd5a5e576 #5777 2022-01-16 17:46:08 -08:00
Nikolaj Bjorner a48d3fdbb1 #5777 2022-01-16 14:01:49 -08:00
Nikolaj Bjorner ea93345b75 #5777 2022-01-16 10:52:25 -08:00
Nikolaj Bjorner cd56d55e34 #5753 2022-01-16 09:31:16 -08:00
Nikolaj Bjorner bc9c6ad93d #5753 2022-01-15 18:01:31 -08:00
Nikolaj Bjorner 1b5f7cd9e5 na 2022-01-15 10:05:26 -08:00
Nikolaj Bjorner 17cfc1d034 #5753 2022-01-15 10:03:03 -08:00
Nikolaj Bjorner 74824ac901 #5753
get_antecedent has to be well-founded. It got broken when using eval during propagation and egraph explain during conflict resolution.
2022-01-15 09:35:25 -08:00
Nikolaj Bjorner d09abdf58e fix #5771
Missing congruence closure enforcement on auxiliary guard predicates.
It diverges but is sound.
2022-01-14 15:46:40 -08:00
Nikolaj Bjorner d5cc162fa7 bug in bounds
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-01-13 15:42:23 -08:00
Nikolaj Bjorner 2363bfc132 internalize arithmetic sub-terms #5753 2022-01-13 15:34:04 -08:00
Nikolaj Bjorner e816946ddc handling unsimplified input 2022-01-13 14:40:46 -08:00
Nikolaj Bjorner b259f46f85 dependencies 2022-01-13 12:34:58 -08:00
Nikolaj Bjorner 4b6679e8e0 #5753 2022-01-13 12:19:54 -08:00
Nikolaj Bjorner 366cd9b16d missing pb cases 2022-01-12 14:50:40 -08:00
Nikolaj Bjorner 0720998bac #5753 2022-01-12 13:12:10 -08:00
Nikolaj Bjorner 10dc8d7313 #5753 2022-01-12 12:49:06 -08:00
Nikolaj Bjorner 56d3718cde add simplification with qe-lite as an option #5767
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-01-12 03:41:21 -08:00
Nikolaj Bjorner e5eaea46aa ensure m_true is assigned #5753 2022-01-11 10:42:05 -08:00
Nikolaj Bjorner f1bf660adc add case for abs (normally simplified, but not with default_tactic=smt). 2022-01-09 11:55:21 -08:00
Nikolaj Bjorner 671d071e54 #5753 2022-01-09 11:39:21 -08:00
Nikolaj Bjorner bf3c213fd3 #5753 2022-01-09 11:03:29 -08:00
Nikolaj Bjorner 90fd3d82fc enable propagation 2022-01-08 19:00:56 -08:00
Nadav Rotem 9f9543ef69
Fix unused variable warnings. (#5760)
This commit fixes a few cases of unused variables in release builds.
The commit uses the (void)xxx; syntax which is used in other parts of
the code.
2022-01-08 18:18:30 -08:00
Nikolaj Bjorner 0bc8518cb5 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-01-07 11:53:27 -08:00
Nikolaj Bjorner 199daead50 remove Z3_bool_opt #5757
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-01-07 11:52:10 -08:00
Nikolaj Bjorner 2be71cfc43 #5753 2022-01-06 15:17:37 -08:00
Nikolaj Bjorner d7c7fbb8f1 setting roots breaks relevancy propagation 2022-01-05 21:16:25 -08:00
Nikolaj Bjorner bd8de964f7 more fixes on relevancy 2022-01-04 22:02:28 -08:00
Nikolaj Bjorner e943bee625 apply delcypher's todo
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-01-04 20:25:14 -08:00
Nikolaj Bjorner d1fb831030 relevancy overhaul 2022-01-04 16:03:31 -08:00
Nikolaj Bjorner 4a1975053f cleanup 2022-01-03 17:37:04 -08:00
Nikolaj Bjorner 614c66f1e2 missing relevancy propagation 2022-01-03 17:21:37 -08:00
Nikolaj Bjorner fc741cf018 rename module
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-01-03 14:23:22 -08:00
Nikolaj Bjorner a086f6218b na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-01-03 14:15:41 -08:00
Nikolaj Bjorner a2a5924e5c purge more 2022-01-03 14:14:09 -08:00
Nikolaj Bjorner 8e3185ffe3 remove dual solver approach
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-01-03 14:08:01 -08:00
Nikolaj Bjorner 1f964eea90 na 2022-01-03 11:12:28 -08:00
Nikolaj Bjorner 2944449884 #5641 2022-01-03 11:12:09 -08:00
Nikolaj Bjorner cf08cdff9c #5747 2022-01-03 08:54:54 -08:00
Nikolaj Bjorner a71aa113e0 #5641
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-01-02 19:36:17 -08:00
Nikolaj Bjorner 9cbec3b0ca #5641
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-01-02 19:15:23 -08:00
Nikolaj Bjorner 43e449a805 #5641 2022-01-02 17:53:26 -08:00
Nikolaj Bjorner d0fb3cba15 #5641 - projection that skips interpreted functions can violate model evaluation. 2022-01-02 17:45:43 -08:00
Nikolaj Bjorner 5cd1fe31fd propagate parent default not add parent default)
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-01-01 20:37:26 -08:00
Nikolaj Bjorner 8245935d41 #5641 add handlers for basic set operations to euf=true 2022-01-01 20:33:17 -08:00
Nikolaj Bjorner 84f514a4f4 throttle ackerman on arrays 2022-01-01 15:33:33 -08:00
Nikolaj Bjorner a20b577b2f na 2022-01-01 11:26:38 -08:00
Nikolaj Bjorner 9550321064 missed push lambdas 2021-12-31 16:33:06 -08:00
Nikolaj Bjorner 0ef0ed3b94 redoing arrays 2021-12-31 15:51:52 -08:00
Nikolaj Bjorner aa901c4e88 axiom solver improvements 2021-12-31 11:53:40 -08:00
Nikolaj Bjorner fc77345bec breaking change. Enforce append semantics everywhere for parameter updates #5744
Replace semantics doesn't work with assumptions made elsewhere in code.
The remedy is to apply append (override) semantics for parameter changes.
2021-12-30 19:11:14 -08:00
Nikolaj Bjorner e8833f4dac working on relevancy=3 2021-12-30 17:07:14 -08:00
Nikolaj Bjorner b87b464e69 set relevancy flag on enode 2021-12-29 17:57:28 -08:00
Nikolaj Bjorner a90b66134d make roots uniform for theory lemmas 2021-12-29 13:42:11 -08:00
Nikolaj Bjorner 69b4392210 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-12-29 13:04:31 -08:00
Nikolaj Bjorner f215b18e0e change registration mode for relevant_eh 2021-12-29 13:03:43 -08:00
Nikolaj Bjorner 1706f77b9e optimize propagation to only blocked literals 2021-12-28 18:53:37 -08:00
Nikolaj Bjorner 8ff8252e89 debug relevancy mode 2021-12-28 13:02:09 -08:00
Nikolaj Bjorner 743e56bda3 remove output
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-12-28 12:08:10 -08:00
Nikolaj Bjorner 5ed27a6c38 fix initialization
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-12-28 12:06:56 -08:00
Nikolaj Bjorner 28bce8f09c working on relevant 2021-12-28 11:00:02 -08:00