Alternating Büchi automata #
We define positive Boolean formulas (PositiveBool), alternating Büchi automata
(ABW), their run DAGs (RunDAG), and the language they accept.
A positive Boolean formula over a set of atoms Q: a formula built from
atoms, true, false, conjunction, and disjunction (no negation).
- atom {Q : Type} (q : Q) : PositiveBool Q
- true {Q : Type} : PositiveBool Q
- false {Q : Type} : PositiveBool Q
- and {Q : Type} (ψ₁ ψ₂ : PositiveBool Q) : PositiveBool Q
- or {Q : Type} (ψ₁ ψ₂ : PositiveBool Q) : PositiveBool Q
Instances For
PositiveBool.Sat Y f holds when the set Y of atoms satisfies the positive
Boolean formula f (reading atoms as "is a member of Y").
Equations
- LeanModelChecking.PositiveBool.Sat Y (LeanModelChecking.PositiveBool.atom q) = (q ∈ Y)
- LeanModelChecking.PositiveBool.Sat Y LeanModelChecking.PositiveBool.true = True
- LeanModelChecking.PositiveBool.Sat Y LeanModelChecking.PositiveBool.false = False
- LeanModelChecking.PositiveBool.Sat Y (ψ₁.and ψ₂) = (LeanModelChecking.PositiveBool.Sat Y ψ₁ ∧ LeanModelChecking.PositiveBool.Sat Y ψ₂)
- LeanModelChecking.PositiveBool.Sat Y (ψ₁.or ψ₂) = (LeanModelChecking.PositiveBool.Sat Y ψ₁ ∨ LeanModelChecking.PositiveBool.Sat Y ψ₂)
Instances For
An alternating Büchi automaton over input alphabet S and state space Q.
- q₀ : Q
The initial state.
- δ : Q → S → PositiveBool Q
The transition function, mapping a state and a letter to a positive Boolean formula over the successor states.
- F : Set Q
The set of accepting (final) states.
Instances For
A directed acyclic graph of state/level pairs in which every edge connects a
vertex on level i to a vertex on level i + 1.
Every edge starts at a vertex of
Vand ends at a vertex on the next level.
Instances For
A run DAG of the automaton A on the word w: a DAG rooted at the initial
state in which every vertex's successors satisfy the relevant transition formula.
The initial state sits at the root (level
0).- p_sat (v : Q × ℕ) : v ∈ self.V → match v with | (q, i) => ∃ (Y : Set Q), PositiveBool.Sat Y (A.δ q (w i)) ∧ {(q, i)} ×ˢ Y ⊆ self.E
Each vertex has a set of successors satisfying its transition formula.
Instances For
A run DAG is accepting when every infinite path through it visits an accepting state infinitely often.