Basics of automata theory Nondeterministic Finite Automata (NFA) Nondeterministic Finite Automata on infinite words (NFW) 1 Nondeterministic finite automaton (NFA) Transitions: (S0,A,S0), (S0,B,S0), (S0,A,S1),(S1,A,S1). What is the language of this automaton? All words that have a path to an accepting state. S0 A,B A S1 A 2 Equivalent deterministic automaton Every NFA can be transformed to DFA. How ? The price may be exponential. S0 A,B S0 B A A B S1 A S0,S1 A 3 Determinization Let M = (S, Σ, , I, F) be an NFA. Define a DFA Md = (Sd, Σd, d, Id, Fd), where Sd = P(S) // power-set of S Σd = Σ Id = I d(q, a) = { (r,a) | r 2 q} for all q2 Sd, a 2 Σ Fd = {q | q 2 Sd ∧ q ∩ F ≠ ;} 4 Example S0 A,B S1 A Sd = {}{S0}{S1}{S0,S1} d = = {A,B} Id = I = {S0} d = ... FD = {S1}{S0,S1} A A,B B S0 A S1 B B A S0,S1 A 5 Example 2 A A 1 0 2 B A,B B A 0 1 2 01 02 12 Complete it yourself 012 6 Example 2 A A 1 0 2 B A,B A,B B A 0 A A B 1 2 B B 01 B B 02 A A 12 B A 012 A 7 Few important questions (1) Given two automata A1, A2... How do we build an automaton A3 such that L(A3) = L(A1) Å L(A2) A method to build A3: compute the product A1 £ A2 We already saw how to compute a product... 8 Product of two NFA-s (finite words) Reminder A1=h , S1, 1, I1, F1 i and A2= h , S2, 2, I2, F2 i A1 £ A2 = Each state is a pair (s,t): s 2 S1 and t 2 S2. Initial states: pairs (s,t) such that s 2 I1 and t 2 I2. Accepting states: pairs (s,t) such that s 2 F1 and t 2 F2 ((s,t) a (s’,t’)) is a transition if (s,a,s’) 2 1, and (t,a,t’) 2 2. 9 Example – product of two automata A1: A2: b s0 a b s1 t0 a b t1 a L(A1) = (a+b)*a + (words ending with ‘a’ + empty word) L(A2) = (ba)* + (ba)*b What should be the language of A1 £ A2 ? 10 Example – product of two automata A1: A2: A1 £ A2: b s0 a b s1 t0 a b t1 a 1. States: (s0,t0), (s0,t1), (s1,t0), (s1,t1). 2. Initial state: (s0,t0). 3. Accepting states: (s0,t0), (s0,t1). 11 Example – product of two automata A1: s0 s1 t0 a b t1 a A2: s0,t0 a A1 £ A2: b a b s0,t1 b s1,t1 L(A1 £ A2) = (ba)* s1,t0 a b 12 Example 2 – product of two automata A1: s0 a b s1 A2: t0 a b t1 L(A1) = (ab)* + (ab)*a (words that alternate between a and b ) L(A2) = (ba)* + (ba)*b (words that alternate between b and a) What should be the language of A1 Å A2 ? 13 Example 2 – product of two automata A1: s0 a b s1 A2: t0 a b t1 A1 Å A2: 1. States: (s0,t0), (s0,t1), (s1,t0), (s1,t1). 2. Initial state: (s1,t0). 3. Accepting states: (s0,t0), (s0,t1), (s1,t0), (s1,t1). 14 Example 2 – product of two automata A1: s0 a b s1 A2: t0 a b t1 s0,t0 A1 Å A2: s0,t1 b a s1,t0 s1,t1 L(A1 Å A2) = 15 Few important questions (2) Given a DFA A: How do we construct A’ such that L(A’) = * - L(A) In other words, how do we build an automaton that accepts exactly those words that are rejected by A ? Answer: compute the complement automaton. How ? Let F’ = S – F. (i.e., substitute accepting and non-accepting states.) 16 Example: complementation The complementation of A is denoted by s0 a a b s0 a a b b s1 b s1 17 Few important questions (3) Given an automaton A: Universality: is L(A) = * ? Emptiness: is L(A) = ; ? Emptiness: is an accepting state reachable? Universality: check whether 18 And now.... ... Automata on infinite words These are called !-automata 19 Automata over infinite words (DFW / NFW) Similar definition. Runs on infinite words over . Accepts when an accepting state occurs infinitely often in the computation. This is called a Buchi automaton S0 a a S1 b b 20 Automata over infinite words (DFW) Formally, let F be the set of accepting states. Let inf() µ S be the set of states appearing infinite number of times in a computation . is accepted by the automaton if inf() Å F ;. S0 a a S1 b b 21 Automata over infinite words (DFW) Consider the word a b a b a b a b… The computation is S0 S0 S1 S0 S1 S0 S1 … This computation is accepting, since S0 appears infinitely many times. S0 a a S1 b b 22 Other computations For the word b b b b b… the computation is S0 S1 S1 S1 S1… and is not accepting. For the word a a a b b b b b …, the computation is S0 S0 S0 S0 S1 S1 S1 S1 …and ... (?) What is the computation for a b a b b a b b b …? Is it accepting ? S0 a a S1 b b 23 The language of a Buchi automaton The language of a Buchi automaton is the set of infinite strings that are accepted by it. Such languages are called ! – languages. Buchi automaton defines ! – regular languages. L(B) = (ab*)! B= S0 a a S1 b b 24 NonDeterministic Buchi automata (NFW) As before, a string is accepted if there exists an accepting run. L(B) = aa*b! Surprise: there is no determinization procedure We will focus on DFW B= S0 a a S1 b 25 Why do we need Buchi automata ? The compilation theorem: every LTL formula can be translated to a Buchi automaton B that accepts the same language as . -a a Fa a Ga -a GFa a a -a 26 What about the other direction ? Can every Buchi automata be translated to an LTL formula ? a “a holds on every even step” No LTL formula can express this property. About the alphabet... So far a 2 ∑ meant that a is some atom (a,b...) from a given set AP. b a a b We will also use a 2 2AP This is useful for representing states a,b :a,:b a,:b :a,b (cont’d on next slide) a,b a b (same thing, only write positive literals) 28 About the alphabet... ... or even a 2 AP 2 2 aÆb :a Æ :b aÇb :aÆb Ç aÆ:b This can give us a more compact representaiton a,:b :a, :b :a, b :a, b :a, b :a Æ b aÇ:b a,b 29 About the alphabet... A Buchi automaton can also be represented with labels on states. There is 1-1 translation to a Buchi automaton with labels on transitions: Move labels to outgoing edges. 30 About the alphabet... From labels on states to labels on transitions: Example. Let ∑ µ 2AP Recall that this is {p,q} p,q p p,q p p Again, important questions... For Buchi automata B1, B2: How to compute L(B1) Å L(B2) ? How to complement ? Find B’ s.t. How to check for emptiness ? Is L(B) = ; ? 32 Intersecting two Buchi automata (infinite words) Previous method doesn’t work: a b s0 a b t0 b a s0, t0 a a s0, t1 s1 t1 b a b b Infinite a’s a Infinite b’s s1, t1 s1, t0 Empty language ! b 33 Intersecting two Buchi automata (infinite words) The reason: a path should be accepted if it fulfills two separate acceptance conditions: An automaton has such multiple acceptance conditions is called a generalized Buchi automata. passes infinitely many times through s0 passes infinitely many times through t0 We will learn about this later on. For now, we will see a reduction of this condition to a standard Buchi automaton. s0, t0 a a s0, t1 b a b s1, t1 s1, t0 Empty language ! b 34 Intersecting two Buchi automata (infinite words) Strategy: “Multiply” the product automaton by 3 (S = S1 £ S2 £ {0,1,2} ) Start from the ‘0’ copy. Transition to the ‘1’ copy when entering a state from F1 Transition to the ‘2’ copy if in a ‘1’ state and entering a state from F2, and in the next state back to a ‘0’ state. Make the ‘2’ copy an accepting set. 35 s0, t0 a a s0, t1 s0, t0 a a s0, t1 s0, t0 a a s0, t1 b a b b a b b a b s1, t1 0 s1, t0 b s1, t1 s 1 , t0 b 1 s1, t1 2 s1, t0 b 36 s0, t0 a a a s0, t1 b a b 0 s1, t0 b a s0, t0 a a s0, t1 b a b b s0, t0 a a s0, t1 b a b s 1 , t0 b 1 b 2 s1, t0 b simplify by removing unreachable states 37 s0, t0 b a a s0, t1 b a a s0, t1 a b a b a s0, t1 b s1, t0 b a a 0 a b 1 s 1 , t0 b 2 s1, t0 b simplify by removing unreachable states 38 Intersecting two Buchi automata (infinite words) There are total of 12 states in the product automaton. The reachable part of A1 Å A2 is: h s0,t0,0 i a s0 a b s1 h s0,t1,1 i a b b b a t1 a b a b t0 b h s1,t0,0 i a a b b a h s1,t0,2 i a h s0,t1,0 i 39