Two-way complementation: chain #
Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a.
Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Combinatorics/TwoWayAutomata/Chain.lean
Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical arguments are retained.
Internal vertices of a chain with one distinguished final cell.
Equations
Instances For
Zero-based cell coordinate.
Equations
Instances For
State label carried at a cell.
Equations
Instances For
The symbol at a vertex in a nonempty cell chain.
Equations
- One or more equations did not get rendered due to their size.
- Complexity.FiniteAutomaton.Complementation.Internal.chainSymbol [] last = fun (x : Complexity.FiniteAutomaton.Complementation.Internal.ChainNode m [].length) => last
Instances For
Join a list of cells to a distinguished final cell.
Equations
- One or more equations did not get rendered due to their size.
- Complexity.FiniteAutomaton.Complementation.Internal.chainNetwork moves [] last = Complexity.FiniteAutomaton.Complementation.Internal.cellNetwork (moves last)
Instances For
The path summary of a cell chain is the product of its cell diagrams.
Entrances attach exactly to the first and last cells with their unchanged labels.
Only the endpoint cells can exit a chain, using the appropriate moving transition.