Nikolaj Bjorner
3d570aaa0a
add missing process_eq
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-11-12 18:43:57 -08:00
Nikolaj Bjorner
0b83732b82
missing override specifier
2022-11-12 18:35:41 -08:00
Nikolaj Bjorner
343603f643
fix build
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-11-12 18:34:04 -08:00
Nikolaj Bjorner
e33e66212c
propagate values should not flatten and/or
...
also, elim_uncstr should only be disabled on recursive functions
2022-11-12 18:03:47 -08:00
Nikolaj Bjorner
f4e17ecc65
add logging and diagnostics
2022-11-12 18:03:47 -08:00
Nikolaj Bjorner
9d09064ad0
add comments to elim_unconstrained and remove unused function
2022-11-12 18:01:38 -08:00
Nikolaj Bjorner
efbe0a6554
wip - updated version of elim_uncstr_tactic
...
- remove reduce_invertible. It is subsumed by reduce_uncstr(2)
- introduce a simplifier for reduce_unconstrained. It uses reference counting to deal with inefficiency bug of legacy reduce_uncstr. It decomposes theory plugins into expr_inverter.
reduce_invertible is a tactic used in most built-in scenarios. It is useful for removing subterms that can be eliminated using "cheap" quantifier elimination. Specifically variables that occur only once can be removed in many cases by computing an expression that represents the effect computing a value for the eliminated occurrence.
The theory plugins for variable elimination are very partial and should be augmented by extensions, esp. for the case of bit-vectors where the invertibility conditions are thoroughly documented by Niemetz and Preiner.
2022-11-12 17:56:45 -08:00
Jakob Rath
406696f0a3
Remove unused code
2022-11-11 10:25:49 +01:00
Nikolaj Bjorner
689af3b4df
add comments to elim_unconstr_tactic
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-11-10 16:42:09 -08:00
Jakob Rath
fc773ef19e
Remove old file
2022-11-10 14:42:55 +01:00
Jakob Rath
d3f70c0fb8
Rename: explain -> superposition
2022-11-10 14:42:13 +01:00
Nikolaj Bjorner
27f8b8d13a
inline definition in header file
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-11-09 09:55:05 -08:00
Nikolaj Bjorner
a98502b62f
weaken assertion, remove dependency on hash_compare in unittest for hashtables
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-11-09 09:28:49 -08:00
Nikolaj Bjorner
15be80c954
remove dependency on hash_compare
2022-11-09 09:06:34 -08:00
Jakob Rath
4b146a61ff
minor
2022-11-09 17:00:27 +01:00
Jakob Rath
abc4cc5295
Simplify boolean propagation level
2022-11-09 16:59:51 +01:00
Jakob Rath
27d65df70b
Use correct level for pvar propagations (v := val)
2022-11-09 16:58:34 +01:00
Jakob Rath
c08866dcec
Disable simplify_clause::try_recognize_bailout for now
2022-11-09 14:30:33 +01:00
Jakob Rath
596a53c14b
Fix axioms
2022-11-09 12:03:27 +01:00
Nikolaj Bjorner
8da13ae24a
add statistics to verbose output of asserted formulas
2022-11-08 18:37:30 -08:00
Nikolaj Bjorner
9a656772b4
fix #6446
2022-11-08 18:37:16 -08:00
Nikolaj Bjorner
4d86d73942
disable also tests for Windows x86, does not work with CI pipeline
2022-11-08 17:15:59 -08:00
Nikolaj Bjorner
ff68df3451
update output of z3 doc
2022-11-08 16:10:50 -08:00
Nikolaj Bjorner
254f7b97ef
cleanup state to clear model trail during calls.
2022-11-08 15:56:10 -08:00
Nikolaj Bjorner
823cd23ecc
building x64 windows tests during ci is too slow, skipping tests
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-11-08 15:37:56 -08:00
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
f769e2f1f6
have bool rewriter use flat_and_or, and integrate hoist rewriter
2022-11-08 12:21:50 -08:00
Nikolaj Bjorner
238ea0a264
add shorthands for concatentation
2022-11-08 12:21:25 -08:00
Nikolaj Bjorner
3a4b8e2334
add rewrite rules to bv-rewriter
2022-11-08 12:20:51 -08:00
Nikolaj Bjorner
a34701471f
clean up hoist rewriter
2022-11-08 12:20:25 -08:00
Nikolaj Bjorner
ab36f86843
add handler for reporting statistics
2022-11-08 12:19:48 -08:00
Nikolaj Bjorner
8afec86fe8
add option for flat_and_or
2022-11-08 12:19:27 -08:00
Nikolaj Bjorner
10fb71cf93
better error description for configuring restart
2022-11-08 12:18:45 -08:00
Jakob Rath
89a2700e5f
Print table of unit test results
2022-11-08 17:17:02 +01:00
Jakob Rath
05ddac5ddc
Allow disabling log messages
2022-11-08 17:15:56 +01:00
Jakob Rath
1d805807e9
Allow setting a default debug action
...
Helps avoiding user interaction when running a batch of unit tests.
2022-11-08 17:13:36 +01:00
Jakob Rath
eaf38abf17
Normalize to 0 < 0 instead of 1 <= 0
2022-11-07 15:32:34 +01:00
Jakob Rath
e7c77a22ab
Dedup quot_rem and lshr too
2022-11-07 15:25:05 +01:00
Jakob Rath
2953b1c093
Dedup op constraints
2022-11-07 15:02:48 +01:00
Jakob Rath
89acd96a89
All constraints have bvars now
2022-11-07 14:14:36 +01:00
Jakob Rath
586ffdf402
Remove unnecessary argument
2022-11-07 14:04:28 +01:00
Jakob Rath
a1736473a4
Move bit-wise expressions to constraint_manager
2022-11-07 14:00:02 +01:00
Jakob Rath
7662427d92
Split constraint_manager into separate file
2022-11-07 13:33:48 +01:00
Nikolaj Bjorner
cbc5b1f4f6
have theory_recfun use recursive function discriminator to control when it is enabled
2022-11-06 12:09:45 -08:00
Nikolaj Bjorner
f004478565
produce tseitin justification for clause proofs when a clause is a "gate".
2022-11-06 12:00:25 -08:00
Nikolaj Bjorner
53b6059276
bypass built-in proof objects for clause trail
...
the build-in proof constructors are not flexible when it comes to allowing alternation of justified lemmas and lemmas without justifications.
2022-11-06 11:59:56 -08:00
Nikolaj Bjorner
8ff1e44a95
add discriminator to whether context contains recursive functions to avoid enabling recursive function solver when there are just macros
2022-11-06 11:58:21 -08:00
Nikolaj Bjorner
a4c2a2b22c
use ast_util::mk_not to avoid redundant double negations during nff
2022-11-06 11:57:46 -08:00