copilot-swe-agent[bot]
593e22ba4e
Initial plan
2026-03-03 05:17:21 +00:00
Nikolaj Bjorner
fb674ac5b2
Merge pull request #8828 from Z3Prover/copilot/port-nielsen-graph-generation
...
Port Nielsen graph constraint framework from ZIPT into smt/seq
2026-03-02 19:10:49 -08:00
copilot-swe-agent[bot]
361f57976b
Fix build: update seq_nielsen tests to use new sgraph(m, eg) constructor after c3 merge
...
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-03 01:46:26 +00:00
Nikolaj Bjorner
fedb610da1
Merge remote-tracking branch 'origin/c3' into copilot/port-nielsen-graph-generation
2026-03-02 16:56:55 -08:00
Nikolaj Bjorner
585e2cc4ba
Merge pull request #8829 from Z3Prover/copilot/update-sgraph-seq-plugin
...
Refactor sgraph/seq_plugin ownership, add hash matrix and substitution caching
2026-03-02 16:45:51 -08:00
Nikolaj Bjorner
83315f4054
fix python build
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-03 00:42:07 +00:00
copilot-swe-agent[bot]
7c328647de
Move seq_nielsen from src/ast/rewriter to src/smt/seq with new smt_seq component
...
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-03 00:17:10 +00:00
Nikolaj Bjorner
df7d5cc49b
Merge pull request #8839 from Z3Prover/copilot/examine-new-files-for-improvements
...
Add ZIPT code reviewer agentic workflow (4x daily)
2026-03-02 16:09:31 -08:00
copilot-swe-agent[bot]
7c8f2d93bb
Change seq_plugin m_sg to sgraph& reference, enode_concat_hash takes sgraph& directly
...
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-03 00:07:53 +00:00
copilot-swe-agent[bot]
28d1c4a27f
Add ZIPT code reviewer agentic workflow (runs 4x daily)
...
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-03 00:00:36 +00:00
copilot-swe-agent[bot]
67f4d30577
Initial plan
2026-03-02 23:55:15 +00:00
copilot-swe-agent[bot]
fbd3d445e2
Add clarifying comments for hash matrix overflow safety and cache validity
...
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-02 21:16:46 +00:00
copilot-swe-agent[bot]
cfea2db8bf
Update sgraph and seq_plugin: egraph ref, hash matrix, subst cache, sgraph pointer
...
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-02 21:14:34 +00:00
copilot-swe-agent[bot]
425d3aec25
Port Nielsen graph framework from ZIPT: constraint types, node/edge/graph structures with tests
...
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-02 21:00:40 +00:00
copilot-swe-agent[bot]
1885753690
Initial plan
2026-03-02 20:39:17 +00:00
Nikolaj Bjorner
5ca200ba2c
Update ZIPT link in euf_sgraph.h documentation
2026-03-02 12:32:32 -08:00
copilot-swe-agent[bot]
2e9ca78396
Initial plan
2026-03-02 20:31:40 +00:00
Nikolaj Bjorner
8d05ab56a1
Merge pull request #8827 from Z3Prover/copilot/finish-pending-tasks-8820
...
Address review feedback from PR #8820 and implement snode/sgraph operations
2026-03-02 12:27:19 -08:00
copilot-swe-agent[bot]
1274a1e3c0
Add safety cap on minterm computation and assertion for invariant
...
Co-authored-by: NikolajBjorner <56730610+NikolajBjorner@users.noreply.github.com>
2026-03-02 19:29:41 +00:00
copilot-swe-agent[bot]
150f1fe2ea
Revert is_concat changes, add ZIPT URL, implement snode/sgraph operations and tests
...
- Revert is_str_concat/is_re_concat to original form (PR #8820 review)
- Add ZIPT URL (https://github.com/CEisenhofer/ZIPT ) to euf_sgraph.h
- Add snode::at() for token indexing and collect_tokens() for enumeration
- Add sgraph factory methods: mk_var, mk_char, mk_empty, mk_concat
- Add sgraph drop operations: drop_first, drop_last, drop_left, drop_right
- Add sgraph substitution: subst(snode*, snode*, snode*)
- Add Brzozowski derivative via seq_rewriter::mk_derivative
- Add minterm computation from regex predicates
- Add 7 new unit tests covering all new operations with complex concats
Co-authored-by: NikolajBjorner <56730610+NikolajBjorner@users.noreply.github.com>
2026-03-02 19:28:32 +00:00
copilot-swe-agent[bot]
40b99311e3
Fix enode_concat_eq leaf comparison, simplify is_str/re_concat, update sgraph summary
...
Address remaining review feedback from PR #8820 :
- Use pointer comparison instead of ID comparison in enode_concat_eq
- Remove redundant num_args() == 2 check from is_str_concat/is_re_concat
- Update euf_sgraph.h abstract to detail seq_plugin features
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-02 18:58:21 +00:00
copilot-swe-agent[bot]
5bbeedaff0
Initial plan
2026-03-02 18:32:56 +00:00
Nikolaj Bjorner
5e39ee8911
Merge pull request #8820 from Z3Prover/copilot/encapsulate-strings-in-euf-sgraph
...
Add string graph encapsulation (euf_sgraph/snode), OP_SEQ_POWER, and euf_seq_plugin
2026-03-02 10:32:26 -08:00
copilot-swe-agent[bot]
8c0be6e614
Changes before error encountered
...
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-02 17:50:49 +00:00
copilot-swe-agent[bot]
a3baae5942
Changes before error encountered
...
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-02 17:01:49 +00:00
copilot-swe-agent[bot]
037d2da801
Distinguish is_re_concat/is_str_concat and mk_re_concat/mk_str_concat in euf_seq_plugin
...
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-02 16:34:29 +00:00
copilot-swe-agent[bot]
921260ae82
Fix propagate_assoc find/else logic for hash table
...
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-02 00:38:04 +00:00
copilot-swe-agent[bot]
82051ac4d8
Reuse seq_rewriter::is_nullable, add assoc hash table to seq_plugin propagate_assoc
...
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-02 00:36:52 +00:00
copilot-swe-agent[bot]
3150b41724
Add self-contained unit tests for sgraph (13 tests covering classification, metadata, push/pop, assoc hash, navigation)
...
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-02 00:12:43 +00:00
copilot-swe-agent[bot]
6ef3be4e5e
Remove sgraph dependency from seq_plugin, let sgraph register nodes via on_make callback
...
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-01 23:50:48 +00:00
copilot-swe-agent[bot]
b8656d4fbe
Address code review: add comments for collect_leaves, find_assoc_equal, and display
...
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-01 23:24:59 +00:00
copilot-swe-agent[bot]
5c14edf030
Change ownership: sgraph owns egraph with seq_plugin, add assoc hash table, add unit tests
...
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-01 23:23:12 +00:00
copilot-swe-agent[bot]
12b7a4dae3
Remove unused old_qhead variable in seq_plugin::propagate
...
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-01 21:51:00 +00:00
copilot-swe-agent[bot]
78a4e3001b
Add euf_seq_plugin: string plugin for egraph with concat associativity and ZIPT simplifications
...
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-01 21:50:06 +00:00
copilot-swe-agent[bot]
51f4f918ea
Update file header years from 2025 to 2026
...
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-01 21:17:08 +00:00
copilot-swe-agent[bot]
17099300f2
Add co-author Clemens Eisenhofer to headers, document ZIPT features not yet ported
...
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-01 21:14:52 +00:00
copilot-swe-agent[bot]
e4f9a517e4
Address code review: fix const-correctness, improve child registration, add comments
...
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-01 20:25:18 +00:00
copilot-swe-agent[bot]
2e17bb8767
Add OP_SEQ_POWER to seq_decl_plugin and create euf_snode/euf_sgraph for string graph encapsulation
...
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-01 20:19:37 +00:00
copilot-swe-agent[bot]
debe81ee74
Initial plan
2026-03-01 19:51:18 +00:00
Nikolaj Bjorner
844731d99a
Merge pull request #8814 from Z3Prover/copilot/simplify-def-ref-smart-pointer
...
Simplify def_ref smart pointer in model_based_opt.h
2026-03-01 04:47:37 -08:00
copilot-swe-agent[bot]
23d194502a
Simplify def_ref smart pointer: default ctor, init list, clearer bool, remove extra semicolon
...
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-01 02:10:19 +00:00
copilot-swe-agent[bot]
137fd735f5
Initial plan
2026-03-01 01:49:00 +00:00
Lev Nachmanson
38ab05e50a
Merge pull request #8805 from Z3Prover/qmbi_crash
...
Fix assertion violation in q_mbi diagnostic output
2026-02-28 11:28:51 -10:00
Lev Nachmanson
93ac330864
Fix assertion violation in q_mbi diagnostic output
...
The IF_VERBOSE(0,...) block at line 498 in q_mbi.cpp used operator[]
on values2root map which asserts the key exists. When the model
evaluation of the inverted term produces a value not present in the
EUF values2root map, this crashes.
Use find() instead to handle the missing key gracefully, since this
is diagnostic output and the missing key is expected when the model
inversion produces inconsistent results.
Fixes assertion violation from #7027 (obj_hashtable.h line 168/174)
with forall/array/eq2ineq combination.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-28 11:15:28 -10:00
Lev Nachmanson
7968669cf2
Merge pull request #8803 from Z3Prover/mbo_leak
2026-02-27 19:02:56 -10:00
Lev Nachmanson
835da14afa
Update src/math/simplex/model_based_opt.h
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-27 17:29:37 -10:00
Lev Nachmanson
9a1a407298
Merge pull request #8801 from Z3Prover/bvo
...
Handle overflow predicates in new core bit-vector internalization
2026-02-27 17:21:24 -10:00
Lev Nachmanson
fc6696c5e4
Fix memory leaks in model_based_opt def ref-counting
...
Three bugs in the def ref-counting infrastructure:
1. dec_ref() incremented (++) instead of decrementing (--) the ref count,
so objects were never freed.
2. def_ref lacked copy and move constructors, so the compiler-generated
default copy just copied the raw pointer without inc_ref. This caused
use-after-free when def_ref values were copied into vectors.
3. Compound def types (add_def, mul_def, div_def) lacked destructors to
dec_ref their children. Added virtual destructor to base def class
and child-releasing destructors to compound types.
Fixes the memory leak from #7027 (model_based_opt.cpp:81).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-27 17:15:20 -10:00
Copilot
f4abd88ff5
Add arity and bit-width SASSERTs to internalize_overflow ( #8802 )
...
* Initial plan
* Add SASSERTs for arity and bit-width in internalize_overflow
Co-authored-by: levnach <5377127+levnach@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: levnach <5377127+levnach@users.noreply.github.com>
2026-02-27 14:30:50 -10:00
Lev Nachmanson
2dac76d19a
Handle overflow predicates in new core bit-vector internalization
...
Add internalize_overflow() to handle OP_BUMUL_OVFL, OP_BSMUL_OVFL,
OP_BUADD_OVFL, OP_BSADD_OVFL, OP_BUSUB_OVFL, OP_BSSUB_OVFL,
OP_BSDIV_OVFL, and OP_BNEG_OVFL in the sat.euf=true solver path.
Previously these overflow predicates hit UNREACHABLE() in
internalize_circuit(). Now they are reduced to equivalent expressions
using existing BV operations and internalized via add_def().
Fixes the assertion violation from #7027 for bvuaddo and related
overflow predicates with tactic.default_tactic=smt sat.euf=true.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-27 13:07:39 -10:00