Nikolaj Bjorner
1863290b71
add deterministic solving for unit equations
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-22 15:34:16 -07:00
Copilot
6b5401ef68
Remove s_other from snode_kind; unify under s_var and is_var() ( #9087 )
...
* remove s_other, use s_var and is_var() instead
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/d56594ed-7f7e-436a-a4b2-e6dc986b18a8
* fix build: add reset() override to test dummy solver stubs
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/d437376d-55d8-4087-baf1-e89451d2d597
---------
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-22 12:05:24 -07:00
Nikolaj Bjorner
aa210882c5
add review
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-21 10:14: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
Nikolaj Bjorner
ae12956545
updates based on discussion
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-20 11:20:29 -07:00
CEisenhofer
2bd5283f6a
Assertions
2026-03-20 15:11:51 +01:00
CEisenhofer
737c5d44ed
Simplify regex splits
2026-03-20 13:33:53 +01:00
CEisenhofer
5d912bdfa5
...
2026-03-20 12:22:38 +01:00
CEisenhofer
fdb7f33552
... one more
2026-03-20 12:20:16 +01:00
CEisenhofer
e3ed7f214b
Removed debug lines
2026-03-20 12:19:53 +01:00
CEisenhofer
a873d5cdda
Fixed output error
2026-03-20 11:51:37 +01:00
CEisenhofer
3662b89adc
Missing range cases
2026-03-20 10:41:56 +01:00
Nikolaj Bjorner
d77e9d5c95
add code review comment
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-20 00:26:57 -07: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
1d928663de
add reset method
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-19 22:57:59 -07:00
Nikolaj Bjorner
a895548b99
cleanup
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-19 16:39:41 -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
109ab7d098
Fixed regex witness
2026-03-19 17:16:29 +01: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
9f4e823c8b
... and another one...
2026-03-19 15:44:15 +01:00
CEisenhofer
4271bdad55
Another minterm bug
2026-03-19 15:12:22 +01:00
Copilot
f837651434
seq_nielsen: replace mk_fresh_var() with mk_fresh_var(sort* s) ( #9037 )
...
* replace mk_fresh_var() with mk_fresh_var(sort* s) in seq_nielsen; fix snode_label_html linkage
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* remove mk_var(symbol const&) from sgraph; update all callers to pass sort explicitly
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-18 20:41:41 -07:00
Nikolaj Bjorner
4b40969da6
added diseq
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-18 13:32:18 -07:00
CEisenhofer
777bda01a5
Subsolver was not reset properly
2026-03-18 20:22:08 +01:00
Nikolaj Bjorner
c43df60182
fix build of unit tests
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-18 10:29:41 -07:00
Nikolaj Bjorner
23b7e109bd
partial updates to test
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-18 10:04:07 -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
e7431400b4
Regex bug fixes (still not there)
2026-03-18 18:01:44 +01:00
CEisenhofer
983379f5e2
Missing semicolon
2026-03-18 16:16:59 +01:00
CEisenhofer
0a32337f0a
Removed some brackets
2026-03-18 16:15:37 +01:00
CEisenhofer
d8a6ea1321
Fixed crasb if regex is reported SAT by pre-check
2026-03-18 16:08:02 +01:00
CEisenhofer
43950569eb
More fixes
2026-03-18 15:41:27 +01:00
CEisenhofer
b288c2e7dc
Some more bug fixes
2026-03-18 14:54:12 +01:00
CEisenhofer
ab53889c10
Fixed couple of regex problems [there are still others]
2026-03-18 14:29:18 +01:00
Lev Nachmanson
b5bf4be87e
fix: move m_fixed insertion after check_long_strings guard
...
m_fixed.insert(e) was placed before the check_long_strings guard,
causing check_fixed_length(false, false) to mark variables with
len > 20 as processed without actually decomposing them. The
subsequent check_fixed_length(false, true) then skipped them.
Move the insertion after the guard so variables are only marked
as fixed once they are actually decomposed.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-17 20:19:12 -10:00
copilot-swe-agent[bot]
960ab8e67a
perf: move check_fixed_length(false,true) before check_contains in final_check_eh
...
Co-authored-by: levnach <5377127+levnach@users.noreply.github.com>
2026-03-17 20:19:12 -10:00
Lev Nachmanson
09c13a75e3
fix #8023 : don't skip axiom clauses with non-base-level satisfying literals
...
The add_axiom optimization that skips adding clauses when a literal is
already true was unsound: the satisfying literal could be retracted by
backtracking, leaving the axiom clause missing. This caused the solver
to miss propagations, e.g., not propagating indexof(a,s) = -1 when
contains(a,s) becomes false after backtracking.
Fix: only skip the clause if the satisfying literal is assigned at
base level (scope 0), where it can never be retracted.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-17 15:05:41 -10:00
Nikolaj Bjorner
b1bae695e6
comment
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-17 16:32:01 -07:00
Nikolaj Bjorner
2847dd8bb3
small simplification
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-17 16:30:53 -07:00
Nikolaj Bjorner
3719b449e8
re-organize dependencies
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-17 16:18:27 -07:00
copilot-swe-agent[bot]
3745bdd43b
fix: reduce verbose lock contention in theory_diff_logic (issue #8019 )
...
In multi-threaded solving, IF_VERBOSE(0, ...) in found_non_diff_logic_expr
was always acquiring the global g_verbose_mux mutex (since verbosity >= 0 is
always true) while holding it for potentially expensive mk_pp() calls. This
caused catastrophic lock contention when multiple threads internalized atoms.
Change IF_VERBOSE(0, ...) to IF_VERBOSE(2, ...) in both theory_diff_logic_def.h
and theory_dense_diff_logic_def.h. The diagnostic message is still available at
verbosity level 2 (-v:2), but is no longer printed (or locked) at the default
verbosity level, eliminating the contention.
Co-authored-by: levnach <5377127+levnach@users.noreply.github.com>
2026-03-17 13:07:20 -10: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