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 |
|