2. Symbolic Finite Automaton (SFA)
Input sort: in
this case int
A = (Q,q0,F,δ,σ)
λx. x mod 2=1
λx. x mod 2=0
λx. x mod 2=0
q
q0
λx. x mod 2=1
Separate theory
for the input
alphabet
SMT SOLVER
2
3. Symbolic Finite Automata (SFA)
Execution
Example
λx. x mod 2=1
λx. x mod 2 =0
λx. x mod 2=0
p
q
λx. x mod 2=1
1
p
2
p
5
q
3
p
p
p is final accept the input
3
5. Hopcroft’s algorithm for Minimization
P := {F, QF}
W := {if |F|< |QF| then F else QF}
while W != { }
R:=pickFrom(W)
D’Antoni, Veanes. Minimization of
Symbolic Automata [POPL14]
foreach a in Σ
S := δ-1(R,a)
while ∃ T ∈ P. T∩S ≠ {} ∧ T S ≠ {}
P,W := split(P, P∩S , PS)
return partitioned DFA
5
7. Advantages of Symbolic Automata
• Infinite alphabets
• Separation of concerns between automaton and
alphabet
– UTF16 abstracted using BDDs
– Integer using predicates over integers
• Succinctness
– One transition captures many symbols
• Same closure and decidability properties of finite
automata
– Boolean closure and decidable equivalence
– Closure under composition
7
8. An interesting property
even(x)/ [x+1,x-1]
T:
p
odd(x)
O:
q
odd(x)/ [x+2%4]
Is it true that this transducer always outputs a
list of odd numbers? YES
It can be checked automatically: isEmpty(ToO)
8