One-way-liveness proof: Rank #
Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a.
Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Combinatorics/Automata/Rank.lean
Module and namespace names, imports, and formatting are adapted to complexitylib.
The machine definitions are shared through Models.FiniteAutomaton.Defs.
noncomputable def
Complexity.FiniteAutomaton.Pairing.transversalEquiv
{A : Type u_1}
{B : Type u_2}
[Fintype A]
[Fintype B]
(a : Pairing (A ⊕ B))
:
The matching bijects its left and right transversal endpoints.
Equations
- a.transversalEquiv = Equiv.ofBijective (fun (i : ↥a.lefts) => ⟨⋯.choose, ⋯⟩) ⋯
Instances For
theorem
Complexity.FiniteAutomaton.Pairing.splitLeft_splitRight
{A : Type u_2}
[Fintype A]
(e : Pairing (A ⊕ A))
:
theorem
Complexity.FiniteAutomaton.Pairing.splitRight_inverse
{A : Type u_2}
[Fintype A]
(e : Pairing (A ⊕ A))
: