3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-07-18 21:15:47 +00:00
Commit graph

151 commits

Author SHA1 Message Date
Clemens Eisenhofer
4b46dc788c Fixes for some theoretical bugs 2026-07-15 09:45:04 +02:00
Clemens Eisenhofer
596cc14e83 Replaced stabilizers by landing decomposition (faster!)
Rank membership constraints by estimated size of their automaton
Some refactoring
Some bug fixes
2026-07-09 23:24:11 +02:00
CEisenhofer
87df0b941b No length abstraction on factored regexes [maybe reintroduce it later by distinguishing where the regex comes from] 2026-07-03 14:47:59 +02:00
CEisenhofer
b7ef51ca04 Skip factorization in case we already eliminated some cycle 2026-07-01 19:05:38 +02:00
CEisenhofer
706f62286e Merge remote-tracking branch 'origin/master' into c3 2026-07-01 17:18:21 +02:00
CEisenhofer
1f448a10a3 Bug/Performance fixes
Added argument to harvest non-primitive membership constraint benchmarks
2026-07-01 14:47:36 +02:00
CEisenhofer
6f1eafaa5c Better caching/hashing
First try for reintroducting subsumption
2026-06-29 16:52:16 +02:00
CEisenhofer
79cdc91a75 Explicit formula for length computation of regexes 2026-06-28 14:14:52 +02:00
CEisenhofer
e983bc76d4 Try to do some processing already during assignments 2026-06-27 12:53:57 +02:00
CEisenhofer
63a668a71f Give up with we have nasty replace_all or friends (otw. we would be unsound due to Nielsen saturation) 2026-06-26 15:14:44 +02:00
CEisenhofer
ff7cbe9406 Copy elements from propagation queue before propagating them. The memory might get invalidated inbetween 2026-06-26 11:08:54 +02:00
CEisenhofer
64fed10e86 Projection operator => view 2026-06-25 10:48:20 +02:00
CEisenhofer
f126b60369 Giving up is still no conflict 2026-06-11 16:27:59 +02:00
CEisenhofer
b9d5f273ee Removed logging 2026-06-11 16:14:07 +02:00
CEisenhofer
be627007e1 Use lookahead for regex decomposition
Make snode const
2026-06-11 15:34:25 +02:00
CEisenhofer
2dbefbcd56 Lookahead for regex splits applied to membership constraints
Rewriting constraint/prefix/suffix with constant strings to regexes
2026-06-10 20:35:36 +02:00
CEisenhofer
f9f16550e0 Fixed propagation rule 2026-06-10 17:55:14 +02:00
CEisenhofer
aec52551c3 Remove duplicates from unions/intersections 2026-06-10 15:58:36 +02:00
CEisenhofer
dbb3f70873 Moved the regex splitting into rewriter
Added some simplifications
2026-06-10 15:00:58 +02:00
CEisenhofer
294ee984b8 Remove cyclic dependency 2026-06-10 13:56:58 +02:00
CEisenhofer
89a2ac133f Derived by the wrong "leading character" 2026-06-09 16:56:05 +02:00
CEisenhofer
8229bcc5fc Conflicts are not reported correctly in eager regex factorization 2026-06-09 16:14:25 +02:00
CEisenhofer
069068ce5e Don't use enodes for justifying disequality conflicts 2026-06-09 15:40:28 +02:00
CEisenhofer
9b357373b0 Preprocess away leading characters; otw. we are unsound 2026-06-09 14:44:41 +02:00
CEisenhofer
7c7ca27822 Sounder? 2026-06-06 15:24:25 +02:00
CEisenhofer
eee5a9dcef A bit of cleanup 2026-06-05 20:26:58 +02:00
CEisenhofer
67906da97a Corrected string extraction 2026-06-05 19:57:00 +02:00
CEisenhofer
8ac7a242eb Z3 arguments got ignored in the Nielsen graph 2026-06-05 19:19:08 +02:00
CEisenhofer
c20bc0e631 First attempt for monadic decomposition 2026-06-05 18:40:36 +02:00
CEisenhofer
9de196b3cb Some signatures changed after merging in master 2026-06-03 17:39:09 +02:00
CEisenhofer
2bbd75a186 We should not bypass checking primitive constraints being empty 2026-05-28 15:29:43 +02:00
CEisenhofer
c640bf2a2b Disequalities prevent a fast-check 2026-05-27 17:59:14 +02:00
CEisenhofer
e74b235d87 Solve disequalities lazily 2026-05-27 17:25:39 +02:00
CEisenhofer
c18aa647e1 Removed recursion from regex unwinding 2026-05-22 15:15:48 +02:00
CEisenhofer
cedb13d045 First check for conflict and then sat 2026-05-22 14:38:07 +02:00
CEisenhofer
7ede1b9c3d re.plus is a regex as well 2026-05-22 14:03:22 +02:00
CEisenhofer
dafa3cf5bd Added feature (?) to SAT core to prefer the Nielsen assumptions during splitting 2026-05-21 19:06:45 +02:00
CEisenhofer
ca12eae670 WIP: Undid internal constraints 2026-05-21 17:17:49 +02:00
CEisenhofer
315a09aea8 [WIP] Try to replace "recursive reusage" of variables by seq.slice 2026-05-20 17:24:57 +02:00
CEisenhofer
dd00dd7362 First step towards not-reusing variables 2026-05-20 10:11:50 +02:00
CEisenhofer
0d1ee09e62 Keep most of the Nielsen graph and do a hot-restart when only external literals changed 2026-05-19 15:33:20 +02:00
CEisenhofer
6321a7c479 Implemented fast path for still satisfied Nielsen nodes 2026-05-18 14:42:06 +02:00
Nikolaj Bjorner
2a36b9a68e split into context and sub-solver, move length force predicates to context-solver
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-05-17 19:01:03 -07:00
Nikolaj Bjorner
9d4feed0ae remove expr_ref from dependencies, only use literals that are true.
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-05-17 13:28:12 -07:00
Nikolaj Bjorner
b75acc5c14 replace seq::le by generic expr_ref
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-05-16 23:10:44 -07:00
CEisenhofer
b77d2b3360 We need a better witness during model construction 2026-05-16 16:21:57 +02:00
CEisenhofer
c9fb432191 The side-condition of the "if"-split belongs on the edges 2026-05-12 10:30:29 +02:00
CEisenhofer
f7f2ee8f74 Using only one solver 2026-05-07 15:49:16 +02:00
CEisenhofer
712cd68e8c Don't add duplicate equations and membership constraints to Nielsen root 2026-05-06 16:38:26 +02:00
CEisenhofer
e62ba9b60b stoi lemmas might have been forgotten so we need to reassert 2026-05-06 15:46:53 +02:00