Two-way complementation: classes #
Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a.
Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Combinatorics/TwoWayAutomata/Classes.lean
Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical arguments are retained.
theorem
Complexity.FiniteAutomaton.Complementation.Internal.Diagram.corner_forward_absorption
{m : ℕ}
(e z : Diagram m)
(hz : z ∈ e.corner)
:
Positive through-edge absorption in a corner.
@[simp]
theorem
Complexity.FiniteAutomaton.Complementation.Internal.Diagram.loopClosure_comp_self
{m : ℕ}
(e : Diagram m)
(positive : Bool)
:
theorem
Complexity.FiniteAutomaton.Complementation.Internal.Diagram.surviving_absorption
{m : ℕ}
(e z : Diagram m)
(hz : z ∈ e.corner)
(positive : Bool)
:
(e.recurrence positive).comp (e.surviving z positive) ⊆ e.surviving z positive ∧ (e.surviving z positive).comp (e.recurrence positive) ⊆ e.surviving z positive
theorem
Complexity.FiniteAutomaton.Complementation.Internal.Diagram.through_comp_recurrence
{m : ℕ}
(e : Diagram m)
(he : e.comp e = e)
(positive : Bool)
:
(e.through positive).comp (e.recurrence positive) = (e.through positive).comp (e.loopClosure positive)
theorem
Complexity.FiniteAutomaton.Complementation.Internal.Diagram.recurrence_comp_through
{m : ℕ}
(e : Diagram m)
(he : e.comp e = e)
(positive : Bool)
:
(e.recurrence positive).comp (e.through positive) = (e.loopClosure positive).comp (e.through positive)