In automata theory, a generalized Büchi automaton is a variant of a Büchi automaton. The difference with the Büchi automaton is the accepting condition, which is determined by a set of sets of states. A run is accepted by the automaton if it visits at least one state of every set of the accepting condition infinitely often. Generalized Büchi automata are equivalent in expressive power to Büchi automata; a transformation is given here.
In formal verification, the model checking method needs to obtain an automaton from a LTL formula that specifies the desired program property. There are algorithms that translate a LTL formulainto a generalized Büchi automaton.[1] [2] [3] [4] for this purpose. The notion of generalized Büchi automaton was introduced specifically for this translation.
Formally, a generalized Büchi automaton is a tuple A = (Q,Σ,Δ,Q0,
\calF
\calF
Fi\in\calF
A accepts exactly those runs in which the set of infinitely often occurring states contains at least one state from each accepting set
Fi\in\calF
For more comprehensive formalism see also ω-automaton.
Labeled generalized Büchi automaton is another variation in which input is matched to labels on the states rather than on the transitions. It was introduced by Gerth et al.[3]
Formally, a labeled generalized Büchi automaton is a tuple A = (Q, Σ, L, Δ,Q0,
\calF
\calF
Fi\in\calF
Let w = a1a2 ... be an ω-word over the alphabet Σ. The sequence r1, r2, ... is a run of A on the word w if r1 ∈ Q0 and for each i ≥ 0,ri+1 ∈ Δ(ri) and ai ∈ L(ri).A accepts exactly those runs in which the set of infinitely often occurring states contains at least one state from each accepting set
Fi\in\calF
To obtain the non-labeled version, the labels are moved from the nodes to the incoming transitions.