# Büchi automaton

In computer science and automata theory, a deterministic Büchi automaton is a theoretical machine which either accepts or rejects infinite inputs. Such a machine has a set of states and a transition function, which determines which state the machine should move to from its current state when it reads the next input character. Some states are accepting states and one state is the start state. The machine accepts an input if and only if it will pass through an accepting state infinitely many times as it reads the input.
A non-deterministic Büchi automaton, later referred to just as a Büchi automaton, has a transition function which may have multiple outputs, leading to many possible paths for the same input; it accepts an infinite input if and only if some possible path is accepting. Deterministic and non-deterministic Büchi automata generalize deterministic finite automata and nondeterministic finite automata to infinite inputs. Each are types of ω-automata. Büchi automata recognize the ω-regular languages, the infinite word version of regular languages. They are named after the Swiss mathematician Julius Richard Büchi, who invented them in 1962.
Büchi automata are often used in model checking as an automata-theoretic version of a formula in linear temporal logic.

## Formal definition

Formally, a deterministic Büchi automaton is a tuple A = (Q,Σ,δ,q$_0$,F) that consists of the following components:
* Q is a finite set. The elements of Q are called the states of A.
* Σ is a finite set called the alphabet of A.
* δ: Q × Σ → Q is a function, called the transition function of A.
* q$_0$ is an element of Q, called the initial state of A.
* F⊆Q is the acceptance condition. A accepts exactly those runs in which at least one of the infinitely often occurring states is in F.
In a (non-deterministic) Büchi automaton, the transition function δ is replaced with a transition relation Δ that returns a set of states, and the single initial state q$_0$ is replaced by a set I of initial states. Generally, the term Büchi automaton without qualifier refers to non-deterministic Büchi automata.
For more comprehensive formalism see also ω-automaton.

## Closure properties

The set of Büchi automata is closed under the following operations.
Let $\scriptstyle A=(Q_{A},\Sigma ,\Delta _{A},I_{A},{F}_{A})$ and $\scriptstyle B=(Q_{B},\Sigma ,\Delta _{B},I_{B},{F}_{B})$ be Büchi automata and $\scriptstyle C=(Q_{C},\Sigma ,\Delta _{C},I_{C},{F}_{C})$ be a finite automaton.
* Union: There is a Büchi automaton that recognizes the language $\scriptstyle L(A)\cup L(B).$
    Proof: If we assume, w.l.o.g., $\scriptstyle Q_{A}\cap Q_{B}$ is empty then $\scriptstyle L(A)\cup L(B)$ is recognized by the Büchi automaton $\scriptstyle (Q_{A}\cup Q_{B},\Sigma ,\Delta _{A}\cup \Delta _{B},I_{A}\cup I_{B},{F}_{A}\cup {F}_{B}).$
* Intersection: There is a Büchi automaton that recognizes the language $\scriptstyle L(A)\cap L(B).$
    Proof: The Büchi automaton $\scriptstyle A'=(Q',\Sigma ,\Delta ',I',F')$ recognizes $\scriptstyle L(A)\cap L(B),$ where
   * $\scriptstyle Q'=Q_{A}\times Q_{B}\times \{1,2\}$
   * $\scriptstyle \Delta '=\Delta _{1}\cup \Delta _{2}$
   ** $\scriptstyle \Delta _{1}=\{((q_{A},q_{B},1),a,(q'_{A},q'_{B},i))|(q_{A},a,q'_{A})\in \Delta _{A}{\text{ and }}(q_{B},a,q'_{B})\in \Delta _{B}{\text{ and if }}q_{A}\in F_{A}{\text{ then }}i=2{\text{ else }}i=1\}$
   ** $\scriptstyle \Delta _{2}=\{((q_{A},q_{B},2),a,(q'_{A},q'_{B},i))|(q_{A},a,q'_{A})\in \Delta _{A}{\text{ and }}(q_{B},a,q'_{B})\in \Delta _{B}{\text{ and if }}q_{B}\in F_{B}{\text{ then }}i=1{\text{ else }}i=2\}$
   * $\scriptstyle I'=I_{A}\times I_{B}\times \{1\}$
   * $\scriptstyle F'=\{(q_{A},q_{B},2)|q_{B}\in F_{B}\}$
    By construction, $\scriptstyle r'=(q_{A}^{0},q_{B}^{0},i^{0}),(q_{A}^{1},q_{B}^{1},i^{1}),\dots$ is a run of automaton A' on input word w if $\scriptstyle r_{A}=q_{A}^{0},q_{A}^{1},\dots$ is run of A on w and $\scriptstyle r_{B}=q_{B}^{0},q_{B}^{1},\dots$ is run of B on w. $\scriptstyle r_{A}$ is accepting and $\scriptstyle r_{B}$ is accepting if r' is concatenation of an infinite series of finite segments of 1-states (states with third component 1) and 2-states (states with third component 2) alternatively. There is such a series of segments of r' if r' is accepted by A'.
* Concatenation: There is a Büchi automaton that recognizes the language $\scriptstyle L(C)\cdot L(A).$
    Proof: If we assume, w.l.o.g., $\scriptstyle Q_{C}\cap Q_{A}$ is empty then the Büchi automaton $\scriptstyle A'=(Q_{C}\cup Q_{A},\Sigma ,\Delta ',I',F_{A})$ recognizes $\scriptstyle L(C)\cdot L(A)$, where
   * $\scriptstyle \Delta '=\Delta _{A}\cup \Delta _{C}\cup \{(q,a,q')|q'\in I_{A}{\text{ and }}\exists f\in F_{C}.(q,a,f)\in \Delta _{C}\}$
   * $\scriptstyle {\text{ if }}I_{C}\cap F_{C}{\text{ is empty then }}I'=I_{C}{\text{ otherwise }}I'=I_{C}\cup I_{A}$
* ω-closure: If $\scriptstyle L(C)$ does not contain the empty word then there is a Büchi automaton that recognizes the language $\scriptstyle L(C)^{\omega }.$
    Proof: The Büchi automaton that recognizes $\scriptstyle L(C)^{\omega }$ is constructed in two stages. First, we construct a finite automaton A' such that A' also recognizes $\scriptstyle L(C)$ but there are no incoming transitions to initial states of A'. So, $\scriptstyle A'=(Q_{C}\cup \{q_{\text{new}}\},\Sigma ,\Delta ',\{q_{\text{new}}\},F_{C}),$ where $\scriptstyle \Delta '=\Delta _{C}\cup \{(q_{\text{new}},a,q')|\exists q\in I_{C}.(q,a,q')\in \Delta _{C}\}.$ Note that $\scriptstyle L(C)=L(A')$ because $\scriptstyle L(C)$ does not contain the empty string. Second, we will construct the Büchi automaton A" that recognize $\scriptstyle L(C)^{\omega }$ by adding a loop back to the initial state of A'. So, $\scriptstyle A''=(Q_{C}\cup \{q_{\text{new}}\},\Sigma ,\Delta '',\{q_{\text{new}}\},\{q_{\text{new}}\})$, where $\scriptstyle \Delta ''=\Delta '\cup \{(q,a,q_{\text{new}})|\exists q'\in F_{C}.(q,a,q')\in \Delta '\}.$
* Complementation:There is a Büchi automaton that recognizes the language $\scriptstyle \Sigma ^{\omega }/L(A).$
    Proof: The proof is presented here.

## Recognizable languages

Büchi automata recognize the ω-regular languages. Using the definition of ω-regular language and the above closure properties of Büchi automata, it can be easily shown that a Büchi automaton can be constructed such that it recognizes any given ω-regular language. For converse, see construction of a ω-regular language for a Büchi automaton.

### Deterministic versus non-deterministic Büchi automata

The class of deterministic Büchi automata does not suffice to encompass all omega-regular languages. In particular, there is no deterministic Büchi automaton that recognizes the language ⁠$(0\cup 1)^{*}0^{\omega }$⁠, which contains exactly words in which 1 occurs only finitely many times. We can demonstrate it by contradiction that no such deterministic Büchi automaton exists. Let us suppose A is a deterministic Büchi automaton that recognizes ⁠$(0\cup 1)^{*}0^{\omega }$⁠ with final state set F. A accepts ⁠$0^{\omega }$⁠. So, A will visit some state in F after reading some finite prefix of ⁠$0^{\omega }$⁠, say after the ⁠$i_{0}$⁠th letter. A also accepts the ω-word $0^{i_{0}}10^{\omega }.$ Therefore, for some ⁠$i_{1}$⁠, after the prefix $0^{i_{0}}10^{i_{1}}$ the automaton will visit some state in F. Continuing with this construction the ω-word $0^{i_{0}}10^{i_{1}}10^{i_{2}}\dots$ is generated which causes A to visit some state in F infinitely often and the word is not in ⁠$(0\cup 1)^{*}0^{\omega }.$⁠ Contradiction.
The class of languages recognizable by deterministic Büchi automata is characterized by the following lemma.
    Lemma: An ω-language is recognizable by a deterministic Büchi automaton if it is the limit language of some regular language.
    Proof: Any deterministic Büchi automaton A can be viewed as a deterministic finite automaton A' and vice versa, since both types of automaton are defined as 5-tuple of the same components, only the interpretation of acceptance condition is different. We will show that ⁠$L(A)$⁠ is the limit language of ⁠$L(A')$⁠. An ω-word is accepted by A if it will force A to visit final states infinitely often. Thus, infinitely many finite prefixes of this ω-word will be accepted by A'. Hence, ⁠$L(A)$⁠ is a limit language of ⁠$L(A')$⁠.

## Algorithms

Model checking of finite state systems can often be translated into various operations on Büchi automata. In addition to the closure operations presented above, the following are some useful operations for the applications of Büchi automata.

### Determinization

Since deterministic Büchi automata are strictly less expressive than non-deterministic automata, there can not be an algorithm for determinization of Büchi automata. But, McNaughton's Theorem and Safra's construction provide algorithms that can translate a Büchi automaton into a deterministic Muller automaton or deterministic Rabin automaton.

### Emptiness checking

The language recognized by a Büchi automaton is non-empty if and only if there is a final state that is both reachable from the initial state, and lies on a cycle.
An effective algorithm that can check emptiness of a Büchi automaton:
* Consider the automaton as a directed graph and decompose it into strongly connected components (SCCs).
* Run a search (e.g., the depth-first search) to find which SCCs are reachable from the initial state.
* Check whether there is a non-trivial SCC that is reachable and contains a final state.
Each of the steps of this algorithm can be done in time linear in the automaton size, hence the algorithm is clearly optimal.

### Minimization

Minimizing deterministic Büchi automata (i.e., given a deterministic Büchi automaton, finding a deterministic Büchi automaton recognizing the same language with a minimal number of states) is an NP-complete problem. This is in contrast to DFA minimization, which can be done in polynomial time.

## Variants

* Co-Büchi automaton
* Weak Büchi automaton
* Semi-deterministic Büchi automaton
* Generalized Büchi automaton

## Transforming from other models of description to non-deterministic Büchi automata
### From generalized Büchi automata (GBA)

    Multiple sets of states in acceptance condition can be translated into one set of states by an automata construction, which is known as "counting construction". Let's say A = (Q,Σ,∆,q$_0$,{F$_1$,...,F$_n$}) is a GBA, where F$_1$,...,F$_n$ are sets of accepting states then the equivalent Büchi automaton is A' = (Q', Σ, ∆',q'$_0$,F'), where
   * Q' = Q × {1,...,n}
   * q'$_0$ = ( q$_0$,1 )
   * ∆' = { ( (q,i), a, (q',j) ) | (q,a,q') ∈ ∆ and if q ∈ F$_i$ then j=((i+1) mod n) else j=i }
   * F'=F$_1$× {1}

### From Linear temporal logic formula

    A translation from a Linear temporal logic formula to a generalized Büchi automaton is given here. And, a translation from a generalized Büchi automaton to a Büchi automaton is presented above.

### From Muller automata

    A given Muller automaton can be transformed into an equivalent Büchi automaton with the following automata construction. Let's suppose A = (Q,Σ,∆,Q$_0$,{F$_0$,...,F$_n$}) is a Muller automaton, where F$_0$,...,F$_n$ are sets of accepting states. An equivalent Büchi automaton is A' = (Q', Σ, ∆',Q$_0$,F'), where
   * Q' = Q ∪ ∪$^n$$_{i=0}$ {i} × F$_i$ × 2$^{Fi}$
   * ∆'= ∆ ∪ ∆$_1$ ∪ ∆$_2$, where
   ** ∆$_1$ ={ ( q, a, (i,q',∅) ) | (q, a, q') ∈ ∆ and q' ∈ F$_i$ }
   ** ∆$_2$={ ( (i,q,R), a, (i,q',R') ) | (q,a,q')∈∆ and q,q' ∈ F$_i$ and if R=F$_i$ then R'= ∅ otherwise R'=R∪{q} }
   * F'=∪$^n$$_{i=0}$ {i} × F$_i$ × {F$_i$}
    A' keeps original set of states from A and adds extra states on them. The Büchi automaton A' simulates the Muller automaton A as follows: At the beginning of the input word, the execution of A' follows the execution of A, since initial states are same and ∆' contains ∆. At some non-deterministically chosen position in the input word, A' decides of jump into newly added states via a transition in ∆$_1$. Then, the transitions in ∆$_2$ try to visit all the states of F$_i$ and keep growing R. Once R becomes equal to F$_i$ then it is reset to the empty set and ∆$_2$ try to visit all the states of F$_i$ states again and again. So, if the states R=F$_i$ are visited infinitely often then A' accepts corresponding input and so does A. This construction closely follows the first part of the proof of McNaughton's Theorem.

### From Kripke structures

    Let the given Kripke structure be defined by M = ⟨Q, I, R, L, AP⟩ where Q is the set of states, I is the set of initial states, R is a relation between two states also interpreted as an edge, L is the label for the state and AP are the set of atomic propositions that form L.
    The Büchi automaton will have the following characteristics:
       $Q_{\text{final}}=Q\cup \{{\text{init}}\}$
       $\Sigma =2^{AP}$
       $I=\{{\text{init}}\}$
       $F=Q\cup \{{\text{init}}\}$
       $\delta =q{\overrightarrow {a}}p$ if (q, p) belongs to R and L(p) = a
    and init ${\overrightarrow {a}}$ q if q belongs to I and L(q) = a.
    Note however that there is a difference in the interpretation between Kripke structures and Büchi automata. While the former explicitly names every state variable's polarity for every state, the latter just declares the current set of variables holding or not holding true. It says absolutely nothing about the other variables that could be present in the model.

## Complementation

In automata theory, complementation of a Büchi automaton is the task of complementing a Büchi automaton, i.e., constructing another automaton that recognizes the complement of the ω-regular language recognized by the given Büchi automaton. Existence of algorithms for this construction proves that the set of ω-regular languages is closed under complementation.
This construction is particularly hard relative to the constructions for the other closure properties of Büchi automata. The first construction was presented by Büchi in 1962. Later, other constructions were developed that enabled efficient and optimal complementation.

### Büchi's construction

Büchi presented a doubly exponential complement construction in a logical form. Here, we have his construction in the modern notation used in automata theory. Let A = (Q,Σ,Δ,Q$_0$,F) be a Büchi automaton. Let ~$_A$ be an equivalence relation over elements of Σ$^+$ such that for each v,w ∈ Σ$^+$, v ~$_A$ w if and only if for all p,q ∈ Q, A has a run from p to q over v if and only if this is possible over w and furthermore A has a run via F from p to q over v if and only if this is possible over w. Each class of ~$_A$ defines a map f:Q → 2$^Q$ × 2$^Q$ in the following way: for each state p ∈ Q, we have (Q$_1$,Q$_2$)= f(p), where Q$_1$ = {q ∈ Q | w can move automaton A from p to q} and Q$_2$ = {q ∈ Q | w can move automaton A from p to q via a state in F}. Note that Q$_2$ ⊆ Q$_1$. If f is a map definable in this way, we denote the (unique) class defining f by L$_f$.
The following three theorems provide a construction of the complement of A using the equivalence classes of ~$_A$.
Theorem 1: ~$_A$ has finitely many equivalent classes and each class is a regular language. Proof: Since there are finitely many f:Q → 2$^Q$ × 2$^Q$, the relation ~$_A$ has finitely many equivalence classes. Now we show that L$_f$ is a regular language. For p,q ∈ Q and i ∈ {0,1}, let A$_{i,p,q}$ = ( {0,1}×Q, Σ, Δ$_1$∪Δ$_2$, {(0,p)}, {(i,q)} ) be a nondeterministic finite automaton, where Δ$_1$ = { ((0,q$_1$),(0,q$_2$)) | (q$_1$,q$_2$) ∈ Δ} ∪ { ((1,q$_1$),(1,q$_2$)) | (q$_1$,q$_2$) ∈ Δ}, and Δ$_2$ = { ((0,q$_1$),(1,q$_2$)) | q$_1$ ∈ F ∧ (q$_1$,q$_2$) ∈ Δ }. Let Q' ⊆ Q. Let α$_{p,Q'}$ = ∩{ L(A$_{1,p,q}$) | q ∈ Q'}, which is the set of words that can move A from p to all the states in Q' via some state in F. Let β$_{p,Q'}$ = ∩{ L(A$_{0,p,q}$)-L(A$_{1,p,q}$)-{ε} | q ∈ Q'}, which is the set of non-empty words that can move A from p to all the states in Q' and does not have a run that passes through any state in F. Let γ$_{p,Q'}$ = ∩{ Σ$^+$-L(A$_{0,p,q}$) | q ∈ Q'}, which is the set of non-empty words that cannot move A from p to any of the states in Q'. Since the regular languages are closed under finite intersections and under relative complements, every α$_{p,Q'}$, β$_{p,Q'}$, and γ$_{p,Q'}$ is regular. By definitions, L$_f$ = ∩{ α$_{p,Q2}$∩ β$_{p,Q1-Q2}$∩ γ$_{p,Q-Q1}$ | (Q$_1$,Q$_2$)=f(p) ∧ p ∈ Q}.
Theorem 2: For each w ∈ Σ$^ω$, there are ~$_A$ classes L$_f$ and L$_g$ such that w ∈ L$_f$(L$_g$)$^ω$.
Proof: We will use the infinite Ramsey theorem to prove this theorem. Let w =a$_0$a$_1$... and w(i,j) = a$_i$...a$_{j-1}$. Consider the set of natural numbers N. Let equivalence classes of ~$_A$ be the colors of subsets of N of size 2. We assign the colors as follows. For each i < j, let the color of {i,j} be the equivalence class in which w(i,j) occurs. By the infinite Ramsey theorem, we can find an infinite set X ⊆ N such that each subset of X of size 2 has same color. Let 0 < i$_0$ < i$_1$ < i$_2$ .... ∈ X. Let f be a defining map of an equivalence class such that w(0,i$_0$) ∈ L$_f$. Let g be a defining map of an equivalence class such that for each j>0,w(i$_{j-1}$,i$_j$) ∈ L$_g$. Then w ∈ L$_f$(L$_g$)$^ω$.
Theorem 3: Let L$_f$ and L$_g$ be equivalence classes of ~$_A$. Then L$_f$(L$_g$)$^ω$ is either a subset of L(A) or disjoint from L(A).
Proof: Suppose there is a word w ∈ L(A) ∩ L$_f$(L$_g$)$^ω$, otherwise the theorem holds trivially. Let r be an accepting run of A over input w. We need to show that each word w' ∈ L$_f$(L$_g$)$^ω$ is also in L(A), i.e., there exists a run r' of A over input w' such that a state in F occurs in r' infinitely often. Since w ∈ L$_f$(L$_g$)$^ω$, let w$_0$w$_1$w$_2$... = w such that w$_0$ ∈ L$_f$ and for each i > 0, w$_i$ ∈ L$_g$. Let s$_i$ be the state in r after consuming w$_0$...w$_i$. Let I be a set of indices such that i ∈ I if and only if the run segment in r from s$_i$ to s$_{i+1}$ contains a state from F. I must be an infinite set. Similarly, we can split the word w'. Let w'$_0$w'$_1$w'$_2$... = w' such that w'$_0$ ∈ L$_f$ and for each i > 0, w'$_i$ ∈ L$_g$. We construct r' inductively in the following way. Let the first state of r' be same as r. By definition of L$_f$, we can choose a run segment on word w'$_0$ to reach s$_0$. By induction hypothesis, we have a run on w'$_0$...w'$_i$ that reaches to s$_i$. By definition of L$_g$, we can extend the run along the word segment w'$_{i+1}$ such that the extension reaches s$_{i+1}$ and visits a state in F if i ∈ I. The r' obtained from this process will have infinitely many run segments containing states from F, since I is infinite. Therefore, r' is an accepting run and w' ∈ L(A).
By the above theorems, we can represent Σ$^ω$-L(A) as finite union of ω-regular languages of the form L$_f$(L$_g$)$^ω$, where L$_f$ and L$_g$ are equivalence classes of ~$_A$. Therefore, Σ$^ω$-L(A) is an ω-regular language. We can translate the language into a Büchi automaton. This construction is doubly exponential in terms of size of A.