3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-05-02 13:27:01 +00:00
Commit graph

356 commits

Author SHA1 Message Date
Nikolaj Bjorner
3faca52c40 re-enable new solve_eqs with bug fixes 2022-11-08 14:17:17 -08:00
Nikolaj Bjorner
9ef78fcfa7 revert new solve-eqs
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-11-08 13:57:58 -08:00
Nikolaj Bjorner
3a37cfca30 switch to solve_eqs2 tactic 2022-11-08 12:23:36 -08:00
Nikolaj Bjorner
6c12aaad74 wip - testing solve-eqs2, added as tactic 2022-11-05 22:42:59 -07:00
Nikolaj Bjorner
4d8860c0bc wip - adding context equation solver
the solve_eqs_tactic is to be replaced by a re-implementation that uses solve_eqs in the simplifiers directory.
The re-implementation should address efficiency issues with the previous code.
At this point it punts on low level proofs. The plan is to use coarser
dependency tracking instead of low level proofs for pre-processing. Dependencies can be converted into a proof hint representation that can be checked using a stronger checker.
2022-11-05 10:34:57 -07:00
Nikolaj Bjorner
06eb460c75 move tactic_params to params 2022-11-03 05:50:46 -07:00
Nikolaj Bjorner
ba6b21d7d4 Create solve_eqs2_tactic.h 2022-11-03 05:23:38 -07:00
Nikolaj Bjorner
1dca6402fb move model and proof converters to self-contained module 2022-11-03 05:23:01 -07:00
Nikolaj Bjorner
7b12a5c5a8 build fix 2022-11-03 04:49:20 -07:00
Nikolaj Bjorner
e57674490f 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.
2022-11-02 08:51:30 -07:00
Nikolaj Bjorner
1646a41b2f 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.
2022-11-02 08:44:55 -07:00
Nikolaj Bjorner
a409a4a677 enforce flat within QF_BV tactic, cap in-processing var-elim loops 2022-10-27 20:10:55 -07:00
Nikolaj Bjorner
1fae3aa152 rename set-flat to set-flat-and-or to allow to differentiate parameters 2022-10-27 11:22:57 -07:00
Nikolaj Bjorner
9bf5e3f5fc fixes for #6388 2022-10-13 15:22:19 +02:00
Bruce Mitchener
5014b1a34d Use = default for virtual constructors. 2022-08-05 18:11:46 +03:00
Bruce Mitchener
5d0dea05aa
Remove empty leaf destructors. (#6211) 2022-07-30 10:07:03 +01: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
302c0d178c fix #5867 2022-02-26 09:52:23 -08:00
Nikolaj Bjorner
f2e712b0d6 throttle is_compatible to check variables at most once
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-02-23 08:45:22 -08:00
Nikolaj Bjorner
4d184fe65d skip expensive equality rewriting of Booleans 2022-02-20 10:31:10 +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
571a74c061 counting function applications #5766
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-01-10 14:51:25 -08:00
Nikolaj Bjorner
4cd818b578 #5766 2022-01-10 14:40:27 -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
42f206171d fix #5741 2021-12-27 15:10:09 -08:00
Nikolaj Bjorner
f0740bdf60 move user propagte declare to context level
declaration of user propagate functions are declared at context level instead of at solver scope.
2021-12-18 10:56:42 -08:00
Nikolaj Bjorner
6cc9aa3562 prepare user propagator declared functions for likely Clemens use case 2021-12-16 19:37:30 -08:00
Nikolaj Bjorner
60d5a004ce na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-12-07 14:25:07 -08:00
Nikolaj Bjorner
04906bd957 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-12-07 14:21:46 -08:00
Nikolaj Bjorner
d74ff29c25 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-12-07 13:55:31 -08:00
Nikolaj Bjorner
9f2b18cac5 add tactic name
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-12-07 13:37:57 -08:00
Nikolaj Bjorner
50d50cdb48 register forbidden functions with reduce_args for user-propagator 2021-12-07 09:03:19 -08:00
Nikolaj Bjorner
6f31d83633 fix #5541 2021-09-20 10:10:28 -07:00
Nikolaj Bjorner
b3db9a1cd5 #5488 2021-08-18 08:30:08 -07:00
Nikolaj Bjorner
391db898d3 lost update from August 3 #5468 2021-08-10 09:45:17 -07:00
Nikolaj Bjorner
85da7407dc #5460
NB @nunoplopes - the code path regarding rewrite_uncstr could use some unit tests.
2021-08-08 17:18:31 -07:00
Nikolaj Bjorner
e27a71bbcb #5460 2021-08-08 16:29:41 -07:00
Nikolaj Bjorner
dcfd7b76c9 more rewrites based on example in #5457 2021-08-05 11:54:13 -07:00
Nikolaj Bjorner
e10850e66a fix #5457 2021-08-05 11:27:03 -07:00
Nikolaj Bjorner
a39d1c6188 fix #5456 2021-08-04 10:07:29 -07:00
Nikolaj Bjorner
939860148f #5452
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-08-03 20:03:34 -07:00
Nikolaj Bjorner
40f5270ae2 fix #5452
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-08-03 17:23:41 -07:00
Nikolaj Bjorner
da8530e2db #5447
That the bug went away is a fluke. It wasnt fixed.
It is in pb-preprocess, an essentially unused tactic. The special subsumption resolution rule wasn't accounting for membership of all variables.
2021-08-02 09:03:15 -07:00
Nikolaj Bjorner
322531e95c fix #5303 2021-05-25 10:20:20 -07:00
Nuno Lopes
f1e0d5dc8a remove a hundred implicit constructors/destructors 2021-05-23 14:25:01 +01:00
Nikolaj Bjorner
e63e4587a4 build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-05-21 15:41:12 -07:00
Nikolaj Bjorner
4a6083836a call it data instead of c_ptr for approaching C++11 std::vector convention. 2021-04-13 18:17:35 -07:00
Nikolaj Bjorner
2fef6dc502 more scaffolding 2021-03-21 11:31:14 -07:00
Nikolaj Bjorner
8c66691e6d disable propagation in proof mode as it produces ill-formed proof objects. Fixes #5063 2021-03-03 09:51:56 -08:00