Automata Theory:
From Theory to Applications
Moshe Y. Vardi
Rice University
Automata Theory vs. Calculus
Calculus:
Theory: Real and complex analysis
Applications: problem solving, e.g, compute area under curve
Automata Theory:
Theory: finite automata and regular expressions, properties of regular
sets, context-free grammars, pushdown automata, etc.
Applications: not in the automata course.
1
Automata Theory and Hanukkah Candles
We light these lights
For the miracles and the wonders
For the redemption and the battles
That you made for our forefathers
...
During all eight days of Hanukkah
These lights are sacred
And we are not permitted to make
Ordinary use of them
But only to look at them
In order to express thanks
. . .
2
Applications of Automata Theory
E. Rich: Automata, Computability, and ComplexityTheory and Applications
http://www.cs.utexas.edu/ ear/cs341/AutomataTheoryBook.pdf
Programming language and compilers
Software engineering
Security
Interactive games
Natural-language processing
Artificial intelligence
...
3
Example: Combinational-Circuit Equivalence
Combinational Circuit: directed acyclic graph, with nodes labeled as input
nodes (in-degree 0), output nodes (out-degree 0), or logic gates (and, or,
not, etc).
Combinational circuit C with m inputs and m outputs, defines a
Boolean function fC : {0, 1}m {0, 1}n.
Two combinational circuits C1 and C2 are equivalent if they define
the same Boolean function.
Circuit-Equivalence Problem: Given two combinational circuits, decide if
they are equivalent.
Motivation: Computer-aided design
4
Nonemptiness of DFAs
DFA deterministic finite automata A = (, S, s0, , F )
S - state set
s0 S - initial state
: S S - transition function
F S: final states
Emptiness: A is empty if L(A) = .
From Automata to Graphs
DFA: A = (, S, s0, , F )
Graph: GA = (S, EA)
EA = {(s, t) : t (s, a) for some a }.
Intuition: Delete labels from edges.
Theorem: L(A) 6= iff there is path in GA from s0 to F .
Corollary: Emptiness can be checked in linear time using breadth-first
search.
Equivalence of DFAs
Equivalence: Two DFAs, A1 and A2 are equivalent iff L(A1) = L(A2).
DFA-Equivalence Problem: Given two DFAs, A1 and A2, decide if they
are equivalent.
In-equivalence Product:
Given A1 = (, S 1, s1, 1, F 1) and A2 = (, S 2, s2, 2, F 2), define their
in-equivalence product A by taking the standard cross product, with final
states F = F 1 (S 2 F 2) (S 1 F 1) F 2 .
Theorem: A1 and A2 are equivalent iff L(A) =
Corollary: Equivalence can be decided in quadratic time.
7
Circuits and Automata
Language of Circuit: Given a circuit C with inputs x1, . . . , xm and outputs
y1, . . . , yn, the language L(C) is the set of words over {0, 1} of length m+n
such that (x, y) L(C) iff y = fC (x).
Lemma: C1 and C2 are equivalent iff they have the same number of inputs
and outputs, respectively, and L(C1) = L(C2).
Key Observation: Language of a circuit is finite, therefore regular.
Automata-Theoretic Approach to Circuit Equivalence
Key idea: Given C1 and C2,
Construct DFAs A1 and A2 such that L(Ai) = L(Ci),
Check that A1 and A2 are equivalent.
From circuits to automata:
Sort circuit nodes topologically
Generate DFA for each node using Boolean closure of regular languages
Minimize DFAs at each step
Really?
Q: Is This A Theoreticians Dream?
Q: No. This is used daily! DFAs for circuits are called binary decision
diagramsBDDs.
10