Regular Expressions Fall 2006 Costas Busch - RPI 1 Regular Expressions Regular expressions describe regular languages Example: ( a b c) * describes the language a, bc* , a, bc, aa, abc, bca,... Fall 2006 Costas Busch - RPI 2 Recursive Definition Primitive regular expressions: Given regular expressions r1 , , and r2 r1 r2 r1 r2 r1 * Are regular expressions r1 Fall 2006 Costas Busch - RPI 3 Examples A regular expression: a b c * (c ) Not a regular expression: Fall 2006 Costas Busch - RPI a b 4 Languages of Regular Expressions L r : language of regular expression r Example L(a b c) * , a, bc, aa, abc, bca,... Fall 2006 Costas Busch - RPI 5 Definition For primitive regular expressions: L L La a Fall 2006 Costas Busch - RPI 6 Definition (continued) For regular expressions r1 and r2 Lr1 r2 Lr1 Lr2 Lr1 r2 Lr1 Lr2 Lr1 * Lr1 * Lr1 Lr1 Fall 2006 Costas Busch - RPI 7 Example Regular expression: a b a * La b a * La b La * La b La * La Lb La * a b a * a, b , a, aa, aaa,... a, aa, aaa,..., b, ba, baa,... Fall 2006 Costas Busch - RPI 8 Example Regular expression r a b * a bb Lr a, bb, aa, abb, ba, bbb,... Fall 2006 Costas Busch - RPI 9 Example r aa * bb * b Regular expression Lr {a b 2n 2m Fall 2006 b : n, m 0} Costas Busch - RPI 10 Example Regular expression r (0 1) * 00 (0 1) * L(r ) = { all strings containing substring 00 } Fall 2006 Costas Busch - RPI 11 Example Regular expression r (1 01) * (0 ) L(r ) = { all strings without substring 00 } Fall 2006 Costas Busch - RPI 12 Equivalent Regular Expressions Definition: Regular expressions are equivalent if Fall 2006 r1 and r2 L(r1) L(r2 ) Costas Busch - RPI 13 Example L = { all strings without substring 00 } r1 (1 01) * (0 ) r2 (1* 011*) * (0 ) 1* (0 ) and r2 are equivalent regular expressions r1 L(r1) L(r2 ) L Fall 2006 Costas Busch - RPI 14 Regular Expressions and Regular Languages Fall 2006 Costas Busch - RPI 15 Theorem Languages Generated by Regular Expressions Fall 2006 Costas Busch - RPI Regular Languages 16 Proof: Languages Generated by Regular Expressions Regular Languages Languages Generated by Regular Expressions Regular Languages Fall 2006 Costas Busch - RPI 17 Proof - Part 1 Languages Generated by Regular Expressions Regular Languages For any regular expression the language r L(r ) is regular Proof by induction on the size of Fall 2006 Costas Busch - RPI r 18 Induction Basis Primitive Regular Expressions: Corresponding NFAs , , L( M1 ) L() L( M 2 ) {} L( ) a Fall 2006 regular languages L( M 3 ) {a} L(a) Costas Busch - RPI 19 Inductive Hypothesis Suppose that for regular expressions r1 and r2 , L(r1) and L(r2 ) are regular languages Fall 2006 Costas Busch - RPI 20 Inductive Step We will prove: Lr1 r2 Lr1 r2 Lr1 * Are regular Languages Lr1 Fall 2006 Costas Busch - RPI 21 By definition of regular expressions: Lr1 r2 Lr1 Lr2 Lr1 r2 Lr1 Lr2 Lr1 * Lr1 * Lr1 Lr1 Fall 2006 Costas Busch - RPI 22 By inductive hypothesis we know: L(r1) and L(r2 ) are regular languages We also know: Regular languages are closed under: Union Lr1 Lr2 Concatenation Lr1 Lr2 Star Lr1 * Fall 2006 Costas Busch - RPI 23 Therefore: Lr1 r2 Lr1 Lr2 Lr1 r2 Lr1 Lr2 Are regular languages Lr1 * Lr1 * L((r1 )) L(r1 ) Fall 2006 is trivially a regular language (by induction hypothesis) Costas Busch - RPI End of Proof-Part 1 24 Using the regular closure of these operations, we can construct recursively the NFA M that accepts L(M ) L(r ) Example: r r1 r2 L(M1 ) L(r1 ) L(M ) L(r ) L(M2 ) L(r2 ) Fall 2006 Costas Busch - RPI 25 Proof - Part 2 Languages Generated by Regular Expressions Regular Languages For any regular language L there is a regular expression r with L(r ) We will convert an NFA that accepts to a regular expression Fall 2006 Costas Busch - RPI L L 26 Since L is regular, there is a NFA M that accepts it L( M ) L Take it with a single final state Fall 2006 Costas Busch - RPI 27 From M construct the equivalent Generalized Transition Graph in which transition labels are regular expressions Example: Corresponding Generalized transition graph M a c a ab a, b Fall 2006 c Costas Busch - RPI 28 Another Example: a q0 b b q1 a, b q2 b b b Transition labels are regular expressions a q0 q1 a b q2 b Fall 2006 Costas Busch - RPI 29 Reducing the states: b a q0 b q1 a b q2 b Transition labels are regular expressions bb * a q0 Fall 2006 b bb * (a b) Costas Busch - RPI q2 30 Resulting Regular Expression: bb * a q0 b bb * (a b) q2 r (bb * a) * bb * (a b)b * L( r ) L( M ) L Fall 2006 Costas Busch - RPI 31 In General e Removing a state: d qi c qj q a b ae * d ce * b ce * d qj qi ae * b Fall 2006 Costas Busch - RPI 32 By repeating the process until two states are left, the resulting graph is Initial graph Resulting graph r1 r4 r3 q0 r2 qf The resulting regular expression: r r1 * r2 (r4 r3r1 * r2 ) * L( r ) L( M ) L Fall 2006 Costas Busch - RPI End of Proof-Part 2 33 Standard Representations of Regular Languages Regular Languages DFAs NFAs Fall 2006 Costas Busch - RPI Regular Expressions 34 When we say: We mean: We are given a Regular Language L Language L is in a standard representation (DFA, NFA, or Regular Expression) Fall 2006 Costas Busch - RPI 35
© Copyright 2024 ExpyDoc