Two-way complementation: tape #
Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a.
Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Combinatorics/TwoWayAutomata/Tape.lean
Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical arguments are retained.
noncomputable def
Complexity.FiniteAutomaton.Complementation.Internal.ChainNode.exitEquiv
(m n : ℕ)
:
Convert the recursively joined cells and one terminal exit into tape coordinates.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Complexity.FiniteAutomaton.Complementation.Internal.blockRelation_terminal
{V : Type u_1}
{Q : Type u_2}
(E : SetRel V V)
(O : SetRel V Q)
(c : V)
(q : Q)
:
A terminal block with no outgoing edges is reached by an internal path and one exit.
def
Complexity.FiniteAutomaton.Complementation.Internal.chainStep
{Sigma : Type u_1}
{m : ℕ}
(moves : Sigma → Fin 3 → SetRel (Fin m) (Fin m))
(w : List Sigma)
(last : Sigma)
:
Local moves on the bounded tape, with a final terminal position beyond the last cell.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Complexity.FiniteAutomaton.Complementation.Internal.chainStep_exitEquiv
{Sigma : Type u_1}
{m : ℕ}
(moves : Sigma → Fin 3 → SetRel (Fin m) (Fin m))
(w : List Sigma)
(last : Sigma)
(x y : ChainNode m w.length ⊕ Fin m)
:
((ChainNode.exitEquiv m w.length) x, (ChainNode.exitEquiv m w.length) y) ∈ chainStep moves w last ↔ (x, y) ∈ blockRelation (chainNetwork moves w last).edge (chainNetwork moves w last).rightOut ∅ ∅
The joined network with terminal exits has exactly the bounded tape's local edges.