3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-04-05 03:09:01 +00:00
Commit graph

217 commits

Author SHA1 Message Date
Nikolaj Bjorner
6d2321e6fe edits to seq_nielsen
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-30 17:36:27 -07:00
CEisenhofer
dcc85cf9ef Bug in power elimination 2026-03-26 17:18:38 +01:00
CEisenhofer
3b5b53126e Bug fixing with unit replacement 2026-03-26 15:56:58 +01:00
Nikolaj Bjorner
6a6f9b1892 Merge remote-tracking branch 'origin/master' into c3
# Conflicts:
#	.github/workflows/qf-s-benchmark.lock.yml
#	.github/workflows/qf-s-benchmark.md
#	.github/workflows/zipt-code-reviewer.lock.yml
#	.github/workflows/zipt-code-reviewer.md
#	.gitignore
#	src/ast/rewriter/seq_rewriter.cpp
#	src/test/main.cpp
2026-03-24 17:44:48 -07:00
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
a39ff701c7 remove include of nielsen in sgraph
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-21 09:48:34 -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
737c5d44ed Simplify regex splits 2026-03-20 13:33:53 +01:00
CEisenhofer
9aaf103ca0 Fix union problem (might not solve all bugs) 2026-03-20 12:17:44 +01:00
CEisenhofer
4f884e7d9a Bug 2026-03-20 12:11:18 +01:00
CEisenhofer
a873d5cdda Fixed output error 2026-03-20 11:51:37 +01:00
Nikolaj Bjorner
a895548b99 cleanup
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-19 16:39:41 -07:00
Copilot
2ec305f206
port range regular expressions to snode from ZIPT (#9048)
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 15:59:20 -07: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
CEisenhofer
e7431400b4 Regex bug fixes (still not there) 2026-03-18 18:01:44 +01:00
CEisenhofer
ab53889c10 Fixed couple of regex problems [there are still others] 2026-03-18 14:29:18 +01:00
CEisenhofer
39bf6af870 Missing file edits 2026-03-16 21:10:40 +01:00
CEisenhofer
e439504ec8 Delete cached substitutions completely (for now) to avoid dangling pointers after backtracking 2026-03-16 21:04:47 +01:00
Nikolaj Bjorner
a4c9a5b2b0 add review comments
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-15 12:23:17 -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
copilot-swe-agent[bot]
2f8cc1536c Swap author order: Clemens Eisenhofer before Nikolaj Bjorner in file headers
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-10 16:27:26 +00:00
copilot-swe-agent[bot]
391febed3b Fix null pointer dereferences and uninitialized variables from discussion #8891
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-09 16:51:12 +00:00
CEisenhofer
608227a27e Fixed definition extension rule 2026-03-05 18:33:58 +01:00
CEisenhofer
7dcebcdb0a A bit cleanup 2026-03-05 17:14:54 +01:00
Nikolaj Bjorner
5aa3713d19 first end-pass. Atomic
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-04 02:05:26 -08:00
Nikolaj Bjorner
a80652270d
Merge branch 'c3' into copilot/fix-reconcat-classification 2026-03-03 13:10:25 -08:00
copilot-swe-agent[bot]
c0ed79c93b improve s_loop nullable extraction: clearer comments and sentinel values
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-03 05:40:16 +00:00
copilot-swe-agent[bot]
a0b359212e Apply ZIPT improvements: fix loop nullable, drop bounds check, symmetric star merging
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-03 05:39:33 +00:00
copilot-swe-agent[bot]
69da8f02c2 fix re.concat classification and loop nullability in euf_sgraph.cpp
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-03 05:19:06 +00: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]
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
Nikolaj Bjorner
5ca200ba2c
Update ZIPT link in euf_sgraph.h documentation 2026-03-02 12:32:32 -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]
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]
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