One-way-liveness proof: Normalization #
Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a.
Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Combinatorics/Automata/Normalization.lean
Module and namespace names, imports, and formatting are adapted to complexitylib.
The machine definitions are shared through Models.FiniteAutomaton.Defs.
A deterministic automaton on an arbitrary state type.
- initial : Q
The initial control state.
- accepting : Set Q
The accepting control states.
The next control states and head moves for each scanned symbol.
Instances For
One deterministic transition on the scanned input symbol.
Equations
- M.Step w c c' = ∃ (d : Complexity.FiniteAutomaton.Move), M.transition c.2 (Complexity.FiniteAutomaton.scanned w c.1) = some (c'.2, d) ∧ d.Rel ↑c.1 ↑c'.1
Instances For
A finite run from the initial configuration reaches an accepting state.
Equations
Instances For
View a numbered-state deterministic automaton as an arbitrary-state machine.