CEisenhofer
a81ce477f5
Added classical regex factorization
2026-04-02 20:08:00 +02:00
Nikolaj Bjorner
3ca960d679
test that there is a model
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-04-02 10:49:09 -07:00
CEisenhofer
a8db876765
Fix problem with divisibility predicate
2026-04-02 16:25:49 +02:00
CEisenhofer
5ec28d3bc8
Eliminate length gradients from regexes
2026-04-02 15:58:15 +02:00
CEisenhofer
1282e4de11
Prevent unsoudness because of missing length propagation
2026-04-02 14:34:46 +02:00
Nikolaj Bjorner
2245451e96
remove aux function
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-04-01 19:07:37 -07:00
Nikolaj Bjorner
b1dc2f2be2
It is possible that a non-internalized expression gets assigned to false immediately by internalization
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-04-01 11:49:25 -07:00
CEisenhofer
36b01a51f1
Properly extract justifications from subsolver
2026-04-01 16:58:26 +02:00
CEisenhofer
e25e93503b
First try to do better dependency tracking
2026-04-01 15:23:38 +02:00
CEisenhofer
60913f0068
Output both Nielsen graph size and conflict size
2026-04-01 10:23:55 +02:00
CEisenhofer
5d95f44a03
Conflict logging
2026-04-01 10:08:03 +02:00
Nikolaj Bjorner
9aceaf3cac
reviewing seq_nielsen, detect repeated final-check to avoid rebuilding nielsen graph
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-30 00:01:24 -07:00
Nikolaj Bjorner
684cb23b40
turn on constraint integrity checking
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-29 19:30:13 -07:00
Nikolaj Bjorner
d7ee475bc3
ensure equalities are propagated
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-29 16:47:05 -07:00
Copilot
09cde1f80c
Port propagate_eq from theory_seq for sk().is_eq in theory_nseq ( #9165 )
...
Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/7c0a330f-3f9f-4c5d-99f2-47fad013538f
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-29 15:44:18 -07:00
Nikolaj Bjorner
3db734d249
add note about propagate-eq
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-29 15:19:36 -07:00
CEisenhofer
3b5b53126e
Bug fixing with unit replacement
2026-03-26 15:56:58 +01:00
Nikolaj Bjorner
fa4cd37c07
add the false literal callback
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-25 13:35:25 -07:00
Nikolaj Bjorner
77d86343d0
add the false literal callback
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-25 13:35:18 -07:00
CEisenhofer
910c68cd42
Missing internalization
2026-03-25 20:21:54 +01:00
Nikolaj Bjorner
af4677950b
add code for adding assumptions after sat
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-25 11:45:43 -07:00
Nikolaj Bjorner
9d2244798d
fix insertions into subst.
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-25 09:00:37 -07:00
Copilot
46c76d89e0
Make dep_mgr private in seq_nielsen; expose conflict sources vector ( #9129 )
...
* make dep_mgr private in seq_nielsen, expose conflict_sources vector
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/998d8021-4808-4feb-afc5-b2447c6a64e5
* move deps_to_lits to seq namespace in seq_nielsen
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/8d736478-8f9b-4451-8d1f-539ce72525c7
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-25 08:05:00 -07:00
CEisenhofer
178d7439f2
Fixed to_dot for integer constraints
2026-03-25 11:25:07 +01:00
CEisenhofer
538fbc1b8d
Added unit (not char) case in apply_const_nielsen
2026-03-24 13:34:39 +01:00
CEisenhofer
b74f0bbb00
Signature splits
...
Fixed dot printing errorfor Skolems
2026-03-24 13:20:30 +01:00
Nikolaj Bjorner
dbdccbff97
use recursive function for not-contains
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-23 13:18:34 -07:00
Copilot
2ab53072e9
Implement ensure_digit_axiom in theory_nseq ( #9075 )
...
Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/9b679ca3-dba7-469c-907a-9abd5edf1e1d
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-20 19:46:22 -07:00
CEisenhofer
2bd5283f6a
Assertions
2026-03-20 15:11:51 +01:00
Nikolaj Bjorner
0f4126f665
add filter for avoiding creating redundant disequality axioms
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-19 23:15:23 -07:00
Nikolaj Bjorner
7a93e2296d
coding nit
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-19 16:39:40 -07:00
Copilot
59bc9b17ea
theory_nseq: remove seq_state, embed tracked entries directly in prop_queue ( #9045 )
...
* Remove seq_state: embed tracked_str_eq/tracked_str_mem directly in prop_queue
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* theory_nseq: use type aliases for eq_item/mem_item instead of wrapper structs
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* seq_model: validate_regex takes single tracked_str_mem, caller loops
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-19 14:45:53 -07:00
Copilot
8795bf06fb
theory_nseq: dispatch assign_eh on all seq predicate cases via m_axioms, add enqueue/dequeue_axiom with variant prop_item ( #9040 )
...
* dispatch assign_eh cases via m_axioms: add prefix/suffix/contains true axioms
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* fix build: remove stale snode_label_html declaration from seq_nielsen.h
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* theory_nseq: add enqueue/dequeue_axiom + std::variant prop_item + relevant_eh
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-19 10:42:18 -07:00
CEisenhofer
51f3996464
Create dummy sat-node to avoid problems in case the preprocessor solves the problem entirely
2026-03-19 16:02:51 +01:00
CEisenhofer
4271bdad55
Another minterm bug
2026-03-19 15:12:22 +01:00
Nikolaj Bjorner
4b40969da6
added diseq
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-18 13:32:18 -07:00
Nikolaj Bjorner
8ac8eb4ae7
create sub-class for tracked eq and mem relations to separate from seq_nielsen
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-18 10:04:01 -07:00
CEisenhofer
d8a6ea1321
Fixed crasb if regex is reported SAT by pre-check
2026-03-18 16:08:02 +01:00
Nikolaj Bjorner
3719b449e8
re-organize dependencies
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-17 16:18:27 -07:00
Copilot
ef22ae8871
Replace dep_tracker uint_set with scoped_dependency_manager<dep_source> in seq_nielsen ( #9014 )
...
* Initial plan
* replace dep_tracker uint_set with scoped_dependency_manager<dep_source>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* fix test build: update dep_tracker usages in test files and seq_state.h
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-16 15:52:18 -07:00
CEisenhofer
84d371f2e9
Bugfix in regex overapproximation
2026-03-16 19:54:12 +01:00
CEisenhofer
16f693b09a
Regex intersection bug fixe
2026-03-16 16:30:20 +01:00
Nikolaj Bjorner
db8a2f4f9e
update print and cancelation
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-15 20:43:49 -07:00
Nikolaj Bjorner
7dea14f732
move statistics
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-15 20:09:19 -07:00
Nikolaj Bjorner
d137f25b65
na
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-15 19:58:21 -07:00
Nikolaj Bjorner
d15aed0d04
code organization in theory_nseq
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-15 19:39:53 -07:00
Copilot
d53846d501
nseq: port ZIPT regex pre-check to fix benchmark discrepancy on regex-only problems ( #8994 )
...
* Initial plan
* Port ZIPT regex pre-check and DFS node budget to address nseq benchmark discrepancy
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-15 10:10:53 -07:00
Copilot
2212f59704
seq_model: address NSB review comments ( #8995 )
...
* Initial plan
* Address NSB review comments in seq_model.cpp
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Address code review feedback: improve null-sort handling in seq_model and some_seq_in_re
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-14 21:55:32 -07:00
Copilot
5a3dbaf9f3
Move nseq_regex/state into smt/seq and seq_model into smt/; rename to seq_* prefix ( #8984 )
...
* Initial plan
* build verified: nseq_regex moved to smt/seq
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* rename nseq_regex/state/model to seq_regex/state/model in smt/seq; add Clemens Eisenhofer as co-author
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* seq_model: remove theory_nseq dependency; get family_id from seq_util
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Add comments for regex enhancements in seq_model
Added comments regarding future improvements for regex handling.
* Add comments for large exponent handling
Add comments for handling large exponents in seq_model.cpp
* Revise comments for clarity on sort usage
Updated comments to reflect review suggestions regarding the use of the sort of 'n'.
* seq_state: remove sgraph dep; seq_model: use snode sort for is_empty; remove NSB review comments
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Update seq_state.h
* Remove unnecessary include for smt_context.h
* move seq_model from smt/seq/ to smt/; fix seq_state.h add_str_mem typo
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-14 11:45:32 -07:00
Nikolaj Bjorner
df9df50a71
update generation of empty sequence to take sort argument, fix mk_concat substitution
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-13 10:03:52 -07:00