3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 17:15:31 +00:00
Commit graph

18702 commits

Author SHA1 Message Date
Nikolaj Bjorner
cb789f6ca8 add arithmetical macros
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-11-24 23:44:35 +07:00
Nikolaj Bjorner
eb812e47be cleanup 2022-11-24 22:46:35 +07:00
Nikolaj Bjorner
b0247d8201 add exception handling for rewriter exceptions 2022-11-24 22:20:25 +07:00
Nikolaj Bjorner
1815812889 fix typo in name of tactic 2022-11-24 22:05:30 +07:00
Nikolaj Bjorner
a64c7c5d19 add incremental version of value propagate 2022-11-24 21:52:55 +07:00
Jakob Rath
1b1e310919 fix release build 2022-11-24 14:02:47 +01:00
Nikolaj Bjorner
decb3d3907 stashed header file 2022-11-24 19:51:26 +07:00
Nikolaj Bjorner
3479129582 remove unused structs 2022-11-24 19:47:26 +07:00
Nikolaj Bjorner
caf204ab95 hoist macro-replacer as shared utility, update eliminate-predicates and model reconstruction 2022-11-24 19:45:51 +07:00
Nikolaj Bjorner
5fe2ff84e9 change functionality to not track ite terms for congruence closure 2022-11-24 19:45:16 +07:00
Nikolaj Bjorner
15dc7b78a0 Move merge_tf handling to euf_internalize
literals true/false are not necessarily created when the merge flag is set.
Also disable merge_tf for if-then-else expressions
Perhaps even not insert children of if expressions into congruence table?
2022-11-24 15:09:13 +07:00
Nikolaj Bjorner
eceeb295fc fix #6457 2022-11-24 14:41:50 +07:00
Jakob Rath
3a92641ca0 Unit test: catch exceptions during instance setup 2022-11-23 17:02:15 +01:00
Jakob Rath
3713f51c15 Print unit test numbers 2022-11-23 17:01:11 +01:00
Jakob Rath
5c63a67634 disable for now 2022-11-23 16:59:26 +01:00
Jakob Rath
558fd718c0 Current base level may be too high to deallocate clause 2022-11-23 16:54:58 +01:00
Jakob Rath
0e32077321 Use insert_eval for potentially new constraints 2022-11-23 16:54:35 +01:00
Jakob Rath
76c106476c superposition hotfix 2022-11-23 16:53:26 +01:00
Jakob Rath
bef1b9b429 Simplify 2022-11-23 15:11:27 +01:00
Jakob Rath
f51d5c2fe9 Add note on potential replay problem 2022-11-23 15:00:31 +01:00
Jakob Rath
0313f91dc2 fix 2022-11-23 14:55:41 +01:00
Jakob Rath
a39cce18cb Fix another assertion 2022-11-23 13:46:44 +01:00
Jakob Rath
4224a14bdc Need to re-check whether lemma was asserting 2022-11-23 13:22:43 +01:00
Jakob Rath
58c299dc33 fix assertion failure 2022-11-23 13:21:58 +01:00
Jakob Rath
2787a22007 Backtrack/backjump based on accumulated lemmas 2022-11-23 12:49:36 +01:00
Nikolaj Bjorner
4ac5e51e3a #6429 2022-11-23 18:35:17 +07:00
Jakob Rath
fdc186b204 Simplify constraint evaluation 2022-11-23 12:19:03 +01:00
Nikolaj Bjorner
f87e187b62 #6429 2022-11-23 17:52:14 +07:00
Nikolaj Bjorner
0a671f2f44 fix #6464 2022-11-23 17:21:51 +07:00
Nikolaj Bjorner
0a28bacd0f remove debug out 2022-11-23 16:42:36 +07:00
Nikolaj Bjorner
9a2693bb72 tune euf-completion 2022-11-23 16:39:20 +07:00
Clemens Eisenhofer
e083f5fde8 Added missing mk_var calls 2022-11-23 10:01:20 +01:00
Nikolaj Bjorner
22353c2d6c new core perf - add merge_tf and enable_cgc distinction
perf fix for propagation behavior for equalities in the new core.
The old behavior was not to allow congruence closure on equalities.
The new behavior is to just not allow merging tf with equalities unless they appear somewhere in a foreign context (not under a Boolean operator)

The change re-surfaces merge_tf and enable_cgc distinction from the old core.
They can both be turned on or off.

merge_enabled renamed to cgc_enabled

The change is highly likely to introduce regressions in the new core.

Change propagation of literals from congruence:
- track antecedent enode. There are four ways to propagate
literals from the egraph.
- the literal is an equality and the two arguments are congruent
- the antecedent is merged with node n and the antecedent has a Boolean variable assignment.
- the antecedent is true or false, they are merged.
- the merge_tf flag is toggled to true but the node n has not been merged with true/false
2022-11-23 11:37:24 +07:00
Nikolaj Bjorner
11b712fee0 switch to new configuration convention in solver object 2022-11-23 11:37:23 +07:00
Nikolaj Bjorner
6188c536ef add logging of propagations to smt core
log theory propagations with annotation "smt".
It allows tracking theory propagations (when used in conflicts) in the clause logs similar to the new core.
2022-11-23 11:37:23 +07:00
Nikolaj Bjorner
5374142e3e continue updates for adding proof-log to smt core 2022-11-23 11:37:23 +07:00
Nikolaj Bjorner
c7781f346d move parameter sat.smt.proof to solver.proof.log
this update breaks use cases that set sat.smt.proof to True.
As it is such a new feature and the change affects possibly at most the tutorial it is made without compatibility layers.
2022-11-23 11:37:23 +07:00
Nikolaj Bjorner
cd0d52acec using C++11 features to simplify for-loops 2022-11-23 11:37:23 +07:00
Nikolaj Bjorner
5c5673bc09 make sure parser context within solver object has its parameters updated
this is to enable use cases like:

```
from z3 import *

s = Solver()
OnClause(s, print)
s.set("solver.proof.check", False)
s.from_file("../satproof.smt2")
```

instead of setting global parameters before the proof replay is initialized.
2022-11-23 11:37:23 +07:00
Jakob Rath
e4999b07aa Remove active flag from constraint
Superseded by boolean assignment and pwatch
2022-11-22 14:45:51 +01:00
Jakob Rath
da762700d6 quot_rem 2022-11-22 14:19:35 +01:00
Jakob Rath
85a633a3e0 Update resolve_value 2022-11-22 13:47:31 +01:00
Jakob Rath
a144a09ede Propagation must be justified by a prefix of Gamma 2022-11-22 13:42:31 +01:00
Jakob Rath
33ea8d6e57 viable conflict also depends on vars 2022-11-22 13:40:29 +01:00
Clemens Eisenhofer
2882b92d3b Fixed logging in Release-mode 2022-11-21 17:47:47 +01:00
Jakob Rath
6e72a97727 Refactor assignment and search state 2022-11-21 17:25:15 +01:00
Clemens Eisenhofer
b116d5ac9e Fixed assignment bug for shifts/band 2022-11-21 16:40:28 +01:00
Clemens Eisenhofer
0341851958 Deal with special case that coefficients are multiples directly (Without calculating the symbolic inverse) 2022-11-21 14:36:01 +01:00
Clemens Eisenhofer
7cb87df00c Bug fix; may not rewrite inequality 2022-11-21 11:34:23 +01:00
Clemens Eisenhofer
133f3d0a02 Evaluate bitwise operations on values 2022-11-21 09:38:53 +01:00