3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-03-07 22:04:53 +00:00
Commit graph

3 commits

Author SHA1 Message Date
Nikolaj Bjorner
03cf706eb5 include partial plan
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-02-28 14:00:29 -08:00
Nikolaj Bjorner
4b58d57b61 Add Phase 4: length reasoning and canonize fix
- Length axiom generation: concat decomposition, unit=1, empty=0, string=k
- Bidirectional len(x)=0 <-> x="" axioms
- check_zero_length: propagate zero-length variables to empty
- propagate_length_eqs: equate lengths of equation sides
- Fixed canonize: decompose structurally first, then follow e-graph roots
  Prevents both equation sides resolving to same root expression
- Fixed branch_var_prefix: skip cyclic candidates (containing variable itself)
  and ground candidates with wrong length
- check_length_conflict prevents e-graph corruption from incompatible merges
- Fresh value pinning for model generation (m_fresh_values)
- Regression: 36/62 correct, 0 wrong, 26 unknown on string-concat.smt2

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-27 22:48:58 -08:00
Nikolaj Bjorner
d1468bc09d initial spec
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-02-27 16:25:58 -08:00