3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-08-07 14:32:06 +00:00
Commit graph

4 commits

Author SHA1 Message Date
CEisenhofer
5e259943c0 Updates to seq_monadic 2026-07-20 20:09:46 +02:00
Nikolaj Bjorner
9c21f9e184 Expand shady-parts notes in seq_monadic (N-relative nullability, epsilon handling, STATE_CAP)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 34aa9af0-4977-411d-aaa7-7cb81cc4e9f8
2026-07-19 12:30:30 -07:00
Nikolaj Bjorner
e17fba7e39 Document known shady parts in seq_monadic (witness extraction, epsilon/N handling)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 34aa9af0-4977-411d-aaa7-7cb81cc4e9f8
2026-07-19 12:20:00 -07:00
Nikolaj Bjorner
b616f714ad Add continuation-regex split service (seq_monadic)
Port seq_monadic to the split_set branch, reimplemented against the
cont_regex / split / split_manager API. Element-sort agnostic: relies on
the derivative engine and th_rewriter, no character-specific reasoning.

- Global derivative-transition graph reused across regexes (intern_state /
  expand_state / build_graph) so states, nullability and cofactor successors
  are computed once.
- embed(r) = <concat(r, epsilon), epsilon>; the epsilon accept-state marks the
  membership (nullable) case uniformly.
- intersect handles general cont_regex, including non-epsilon reach targets N
  (membership BFS + product-reachability paths).
- No budget / reset_pin.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 34aa9af0-4977-411d-aaa7-7cb81cc4e9f8
2026-07-19 12:08:35 -07:00