“A PROCEDURE FOR CHECKING EQUALITY OF REGULAR EXPRESSIONS” - A. GINZBURG Presented by Kenneth Burgess Ginzburg, A. "A Procedure for Checking Equality of Regular Expressions." Journal of the ACM 14.2 (1967): 355-62. Web. CONNECTION TO CLASS FA -> TG -> RE -> FA Polymorphism In acquiescence to the insatiable demands of a ravening appetite, I require sustenance in the form of ingested nutrition. Yes. The Equality Dilemma MOTIVE – WHY THIS MATTERS Algorithmic Which translates into… FINALLY, THE PROCEDURE Taking advantage of polymorphism RE -> TG -> Finite set of left linear equations Y = aYa + bYb + ^ Ya = aYaa + bYab Yb = aYba + bYbb If each possible pairing of derivatives share “^”, the RE’s are equal. THE THEORY BEHIND Taking derivatives of a RE Definition of a derivative R = ab+bab(a+b)* An example derivative: R(b) = ab(a+b)* You try: R(a) = LINEAR EQUATIONS Now we take the finite set of !!unequal!! derivatives R = a + ba* R = aRa+ bRb Ra = aRaa + bRab + ^ = aRaa + bRab + ^ Rb = aRba+ bRbb + ^ = aRb + bRaa+ ^ Raa = aRaaa + bRaab = aRaa + bRaa CHARACTERISTICS OF DERIVATIVES Every RE has a finite number of unequal derivatives Similar to our proposition -> every RE will produce a TG of finite states Every derivative has a corresponding set of vertices in the graph In short, Rx is rep. by the same TG as R, but with Ax as initial vertice EXAMPLE – R ~ S PAIRS # of distinct derivatives = # of distinct sets of beginning inputs To consider equality, we have to consider all possible beginning inputs for both regular expressions u (the number of pairs of inputs we have to consider) <= mn u (distinct pairs of R and S) <= m (distinct derivatives of R) n (distinct derivatives of S) PAIRS OF R AND S Pair (Rx,Sx) Infers (^,^) (a,a) (b,b) (a,a)(b,b) (ba,ba) R has ^? S has ^? Yep Yep Yep Yep However, we do not continue, since ba is considered equal to b Since the columns R has ^? and S has ^? agree, the two RE’s are equivalent. TABLE REPRESENTATION To streamline this process, we create tables of equivalencies – showing derivatives (or inputs), vertices corresponding, and whether they include ^. Inputs ^ a b ba 1 x Vertices of R 2 Equal To ^? b x x x 3 x x x HOW DOES THIS HELP US? Examine T0 When 0 is inputted into the graph, 2 -> 4 3 -> 2 HOW DOES THIS HELP US? Examine T^ When ^ is put into the graph, what happens? HOW DOES THIS HELP US? A^ are the starting vertices So A^ T^ = A^ Relational functions… so 2 T1 = 2 (does nothing) 2 T0 = 4 (input 2, get out 4) 2 T^ = 2,3 HOW DOES THIS HELP US? - A(10) can be computed by relational functions. - Computers can produce the derivatives. - Computers can check equivalency as long as they keep track of which states are accepting states TO REVIEW RE -> TG Construct table representation of possible inputs Represent TG as set of relational matrices Determine U, the set of unique pairs of R and S inputs For each pair in U, determine if both R and S agree on whether or not they accept