OAI/Combinatorics/Automata/PathNFA.lean
20 declarations, 0 contain sorry, 0 declared as axioms
- structure
OAI.OneWayLiveness.NMachineOnline 8Source documentation
A nondeterministic automaton on an arbitrary state type.
structure NMachineOn (Alpha Q : Type) where …
- abbrev
OAI.OneWayLiveness.NMachineOn.Configline 17 - def
OAI.OneWayLiveness.NMachineOn.Stepline 19 - def
OAI.OneWayLiveness.NMachineOn.Acceptsline 22 - def
OAI.OneWayLiveness.NMachineOn.relabelline 25 - lemma
OAI.OneWayLiveness.NMachineOn.relabel_acceptsline 32 - lemma
OAI.OneWayLiveness.NMachineOn.relabel_noLeftline 54 - abbrev
OAI.OneWayLiveness.PathNFA.Stateline 62Source documentation
noneis the initial state. Boolean states are accept and reject.abbrev State (H : Type) := Option (H ⊕ Bool)
- abbrev
OAI.OneWayLiveness.PathNFA.pathline 63 - abbrev
OAI.OneWayLiveness.PathNFA.acceptline 64 - def
OAI.OneWayLiveness.PathNFA.rulesline 66 - lemma
OAI.OneWayLiveness.PathNFA.rules_noLeftline 72 - def
OAI.OneWayLiveness.PathNFA.machineline 80 - lemma
OAI.OneWayLiveness.PathNFA.product_pathline 91Source documentation
A numbered path through a product, extended arbitrarily after its endpoint.
lemma product_path (w : List (BRel H)) (a b : H) : w.prod.holds a b ↔ ∃ p : ℕ → H, p 0 = a ∧ p w.length = b ∧ ∀ i (hi : i < w.length), w[i].holds (p i) (p (i+1)) := by …Mentions: OAI.OneWayLiveness.BRel
- def
OAI.OneWayLiveness.PathNFA.Goodline 119Source documentation
The accumulated product on every prefix reached by a path state.
def Good (w : List (BRel H)) (c : NMachineOn.Config (Q := State H) w) : Prop := …
Mentions: OAI.OneWayLiveness.BRel, OAI.OneWayLiveness.NMachineOn.Config, OAI.OneWayLiveness.PathNFA.State
- lemma
OAI.OneWayLiveness.PathNFA.scanned_letter_dataline 126 - lemma
OAI.OneWayLiveness.PathNFA.scanned_letter_cellline 132 - lemma
OAI.OneWayLiveness.PathNFA.good_stepline 136 - lemma
OAI.OneWayLiveness.PathNFA.accepts_iffline 192 - theorem
OAI.OneWayLiveness.small_nfaline 243Source documentation
The explicit path automaton has h+3 states, including the unused rejector. It accepts only after at least two transitions, so both conventions agree.
theorem small_nfa (h : ℕ) : ∃ N : NMachine (Alphabet h) (h+3), N.NoLeft ∧ ∀ positive : Bool, N.Recognizes positive (OWL h) := by …Mentions: OAI.OneWayLiveness.NMachine, OAI.OneWayLiveness.Alphabet, OAI.OneWayLiveness.OWL