Equivalence relation and partitions

Similar documents
Formal Languages and Automata Theory - Regular Expressions and Finite Automata -

Deterministic Finite Automata

Automata and Computability. Solutions to Exercises

Automata and Formal Languages

CS 3719 (Theory of Computation and Algorithms) Lecture 4

6.045: Automata, Computability, and Complexity Or, Great Ideas in Theoretical Computer Science Spring, Class 4 Nancy Lynch

1. Prove that the empty set is a subset of every set.

Automata on Infinite Words and Trees

Regular Languages and Finite Automata

CS5236 Advanced Automata Theory

(IALC, Chapters 8 and 9) Introduction to Turing s life, Turing machines, universal machines, unsolvable problems.

Quotient Rings and Field Extensions

6.080/6.089 GITCS Feb 12, Lecture 3

C H A P T E R Regular Expressions regular expression

Mathematics for Computer Science/Software Engineering. Notes for the course MSM1F3 Dr. R. A. Wilson

Regular Languages and Finite State Machines

Omega Automata: Minimization and Learning 1

Lecture I FINITE AUTOMATA

SOLUTIONS TO ASSIGNMENT 1 MATH 576

Elementary Number Theory and Methods of Proof. CSE 215, Foundations of Computer Science Stony Brook University

Regular Expressions and Automata using Haskell

Finite Automata. Reading: Chapter 2

The Halting Problem is Undecidable

1 if 1 x 0 1 if 0 x 1

I. GROUPS: BASIC DEFINITIONS AND EXAMPLES

Informatique Fondamentale IMA S8

Fundamentele Informatica II

x a x 2 (1 + x 2 ) n.

THE BANACH CONTRACTION PRINCIPLE. Contents

Cardinality. The set of all finite strings over the alphabet of lowercase letters is countable. The set of real numbers R is an uncountable set.

ASSIGNMENT ONE SOLUTIONS MATH 4805 / COMP 4805 / MATH 5605

Introduction to Automata Theory. Reading: Chapter 1


Notes on Complexity Theory Last updated: August, Lecture 1

INTRODUCTORY SET THEORY

CS 103X: Discrete Structures Homework Assignment 3 Solutions

MATH10040 Chapter 2: Prime and relatively prime numbers

Lights and Darks of the Star-Free Star

ω-automata Automata that accept (or reject) words of infinite length. Languages of infinite words appear:

Finite Automata. Reading: Chapter 2

(a) Write each of p and q as a polynomial in x with coefficients in Z[y, z]. deg(p) = 7 deg(q) = 9

Chapter 7 Uncomputability

SOLUTIONS FOR PROBLEM SET 2

The Prime Numbers. Definition. A prime number is a positive integer with exactly two positive divisors.

Chapter 3. Cartesian Products and Relations. 3.1 Cartesian Products

it is easy to see that α = a

Lecture 1: Course overview, circuits, and formulas

MACM 101 Discrete Mathematics I

Computability Theory

Introduction to Theory of Computation

MATHEMATICAL INDUCTION. Mathematical Induction. This is a powerful method to prove properties of positive integers.

Turing Machines, Part I

INTRODUCTION TO TOPOLOGY

8 Divisibility and prime numbers

6.2 Permutations continued

6.080 / Great Ideas in Theoretical Computer Science Spring 2008

PROBLEM SET 6: POLYNOMIALS

Pushdown Automata. place the input head on the leftmost input symbol. while symbol read = b and pile contains discs advance head remove disc from pile

3515ICT Theory of Computation Turing Machines

Chapter 4, Arithmetic in F [x] Polynomial arithmetic and the division algorithm.

CSE 135: Introduction to Theory of Computation Decidability and Recognizability

Scanner. tokens scanner parser IR. source code. errors

Introduction to Topology

INCIDENCE-BETWEENNESS GEOMETRY

Reading 13 : Finite State Automata and Regular Expressions

Page 331, 38.4 Suppose a is a positive integer and p is a prime. Prove that p a if and only if the prime factorization of a contains p.

SCORE SETS IN ORIENTED GRAPHS

WRITING PROOFS. Christopher Heil Georgia Institute of Technology

The Mean Value Theorem

Discrete Mathematics and Probability Theory Fall 2009 Satish Rao, David Tse Note 2

MA651 Topology. Lecture 6. Separation Axioms.

Group Theory. Contents

26 Ideals and Quotient Rings

Unique Factorization

Introduction to Turing Machines

Discrete Mathematics. Hans Cuypers. October 11, 2007

Logic in Computer Science: Logic Gates

CS 598CSC: Combinatorial Optimization Lecture date: 2/4/2010

CONTINUED FRACTIONS AND PELL S EQUATION. Contents 1. Continued Fractions 1 2. Solution to Pell s Equation 9 References 12

Lecture Notes on Discrete Mathematics

THE DIMENSION OF A VECTOR SPACE

On Recognizable Timed Languages FOSSACS 2004

Full and Complete Binary Trees

Cartesian Products and Relations

The last three chapters introduced three major proof techniques: direct,

MATH 304 Linear Algebra Lecture 9: Subspaces of vector spaces (continued). Span. Spanning set.

FUNCTIONAL ANALYSIS LECTURE NOTES: QUOTIENT SPACES

SECTION 10-2 Mathematical Induction

GROUPS ACTING ON A SET

Handout #Ch7 San Skulrattanakulchai Gustavus Adolphus College Dec 6, Chapter 7: Digraphs

PUTNAM TRAINING POLYNOMIALS. Exercises 1. Find a polynomial with integral coefficients whose zeros include

CS154. Turing Machines. Turing Machine. Turing Machines versus DFAs FINITE STATE CONTROL AI N P U T INFINITE TAPE. read write move.

On Winning Conditions of High Borel Complexity in Pushdown Games

Point Set Topology. A. Topological Spaces and Continuous Maps

8. Matchings and Factors

THEORY of COMPUTATION

ON SOME CLASSES OF GOOD QUOTIENT RELATIONS

Class One: Degree Sequences

How To Factorize Of Finite Abelian Groups By A Cyclic Subset Of A Finite Group

Techniques algébriques en calcul quantique

Transcription:

Regular Expressions [1] Equivalence relation and partitions An equivalence relation on a set X is a relation which is reflexive, symmetric and transitive A partition of a set X is a set P of cells or blocks that are subsets of X such that 1. If C P then C 2. If C 1, C 2 P and C 1 C 2 then C 1 C 2 = 3. If a X there exists C P such that a C 1

Regular Expressions [2] Equivalence relation and partitions If R is an equivalence relation on X, we define the equivalence class of a X to be the set [a] = {b X R(a, b)} Lemma: [a] = [b] iff R(a, b) Theorem: The set of all equivalence classes form a partition of X We write X/R this set of equivalence classes Example: X is the set of all integers, and R(x, y) is the relation 3 divides x y. Then X/R has 3 elements 2

Regular Expressions [3] Equivalence Relations Example: on X = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} the relation x y defined by 3 divides x y is an equivalence relation We can now form X/ which is the set of all equivalence classes [1] = [4] = {1, 4, 7, 10} [2] = [8] = {2, 5, 8} [3] = {3, 6, 9} This set is the quotient of X by the relation 3

Regular Expressions [4] Equivalence relations on states A = (Q, Σ, δ, q 0, F ) is a DFA If R is an equivalence relation on Q, we say that R is compatible with A iff (1) R(q 1, q 2 ) implies R(δ(q 1, a), δ(q 2, a)) for all a Σ (2) R(q 1, q 2 ) and q 1 F implies q 2 F 4

Regular Expressions [5] Equivalence relations on states (1) means that if q 1, q 2 are in the same block then so are q 1.a and q 2.a and this for all a in Σ (2) says that F can be written as an union of some blocks We can then define δ/r([q], a) = [q.a] and [q] F/R iff q F 5

Regular Expressions [6] Equivalence relations on states Theorem: If R is a compatible equivalence relation on A then we can consider the DFA A/R = (Q/R, Σ, δ/r.[q 0 ], F/R) and we have L(A/R) = L(A) Proof: By induction on x we have ˆδ([q], x) = [ˆδ(q, x)] and then [q 0 ].x F/R iff q 0.x F Notice that A/R has fewer states than A 6

Regular Expressions [7] Equivalence of States Theorem: Let A = (Q, Σ, δ, q 0, F ) be a DFA. The relation R(q 1, q 2 ) defined by for all w Σ we have q 1.w F iff q 2.w F is a compatible equivalence relation It is essential for this Theorem that A is a DFA We say simply that q 1 and q 2 are equivalent if we have R(q 1, q 2 ) Corollary: We have L(A) = L(A/R) We shall prove that, provided all the states of A are accessible, the DFA A/R depends only of L(A) and not of A 7

Regular Expressions [8] Algorithm for Computing R Let us compute R for a b 0 1 2 1 3 4 2 4 3 3 5 5 4 5 5 5 5 5 We know {0, 1}, {0, 2}, {0, 5}, {1, 3}, {2, 3}, {3, 5}, {4, 1}, {4, 2}, {4, 5} are non equivalent pairs 8

Regular Expressions [9] Algorithm for Computing R a b {0, 3} {1, 5} {2, 5} {1, 5} {3, 5} {4, 5} {2, 5} {4, 5} {3, 5} Thus, {0, 3}, {1, 5}, {2, 5} are non equivalent It is convenient to build at the same time a triangular table of pair of states, as indicated in the text book 9

Regular Expressions [10] Algorithm for Computing R Let us compute R for a 0 1 1 2 2 3 3 4 4 5 5 0 We have {0, 3} {1, 4} {2, 5} {0, 3} and {0, 2} {1, 3} We get {{0, 3}, {1, 4}, {2, 5}} 10

Regular Expressions [11] Functional program for R equal (e1,f1) (e2,f2) = (e1 == e2 && f1 == f2) (e1 == f2 && f1 == e2) data Answer = Equiv L String R String deriving (Eq,Show) 11

Regular Expressions [12] Functional program for R equiv (cs,delta,final) e1 e2 = eq e1 e2 ([],"") where eq q1 q2 (l,s) = if q1 == q2 then Equal else case (final q1,final q2) of (True,False) -> L (reverse s) (False,True) -> R (reverse s) _ -> if or (map (equal (q1,q2)) l) then Equal else combine (map (\ c -> eq (delta q1 c) (delta q2 c) ((q1,q2):l,c:s)) cs) 12

Regular Expressions [13] Functional program for R combine (Equal:bs) = combine bs combine (a:_) = a combine [] = Equal 13

Regular Expressions [14] Functional program for R data Q = A B C D deriving (Eq,Show) delta A 0 = B delta B 0 = B delta C 0 = C delta D _ = D final C = True final _ = False delta A 1 = A delta B 1 = C delta C 1 = D final D = True test1 = equiv ("01",delta,final) C D 14

Regular Expressions [15] The Quotient Construction We are now going to show that A/R does not depend on A, but only on L = L(A), provided all states in A are accessible This will show that the minimal DFA for a regular language is unique (up to renaming of the states) 15

Regular Expressions [16] The Quotient Construction Give L we define u L v iff u \ L = v \ L Another formulation of the Myhill-Nerode theorem is Theorem: A language L Σ is regular iff L has only a finite number of equivalence classes Notice that u L v iff for all w we have uw L iff vw L 16

Regular Expressions [17] Myhill-Nerode Theorem If L is a regular language and L = L(A) where A = (Q, Σ, δ, q 0, F ) and all states in Q are accessible and S is the set of abstract states of L we know that the map f : Q S q 0.u u \ L is well-defined and surjective In particular Q S 17

Regular Expressions [18] Myhill-Nerode Theorem Assume q 1 = q 0.u 1, q 2 = q 0.u 2 We have f(q 1 ) = f(q 2 ) iff u 1 \ L = u 2 \ L iff for all w Σ q 1.w F q 2.w F which is precisely the equivalence for building the minimal automaton Thus Q/ = S 18

Regular Expressions [19] The Subset Construction Theorem: A DFA that recognizes L = L((0 + 1) 01(0 + 1) ) has at least 3 states. We build a minimal DFA for this languages. It has 3 states. Hence all DFA that recognizes the same language has at least 3 states! We can also show that L has at least 3 equivalence classes The algorithm for the quotient construction we have shown is O(n 2 ) where n number of states. Hopcroft has given a O(n log n) algorithm for this (using partition instead of equivalence relation) 19

Regular Expressions [20] Accessible states A = (Q, Σ, δ, q 0, F ) is a DFA A state q Q is accessible iff there exists x Σ such that q = q 0.x Let Q 0 be the set of accessible states, Q 0 = {q 0.x x Σ } Theorem: We have q.a Q 0 if q Q 0 and q 0 Q 0. Hence we can consider the automaton A 0 = (Q 0, Σ, δ, q 0, F Q 0 ). We have L(A) = L(A 0 ) In particular L(A) = if F Q 0 =. 20

Regular Expressions [21] Accessible states Actually we have L(A) = iff F Q 0 = since if q.x F then q.x F Q 0 Implementation in a functional language: we consider automata on a finite collection of characters given by a list cs An automaton is given by a parameter type a with a transition function and an initial state 21

Regular Expressions [22] Accessible states import List(union) isin as a = or (map ((==) a) as) issup as bs = and (map (isin as) bs) closure :: Eq a => [Char] -> (a -> Char -> a) -> [a] -> [a] closure cs delta qs = let qs = qs >>= (\ q -> map (delta q) cs) in if issup qs qs then qs else closure cs delta (union qs qs ) 22

Regular Expressions [23] Accessible states accessible :: Eq a => [Char] -> (a -> Char -> a) -> a -> [a] accessible cs delta q = closure cs delta [q] -- test emptyness on an automaton notempty :: Eq a => ([Char],a-> Char -> a,a,a->bool) -> Bool notempty (cs,delta,q0,final) = or (map final (accessible cs delta q0)) 23

Regular Expressions [24] Accessible states data Q = A B C D E deriving (Eq,Show) delta A 0 = A delta B 0 = A delta C _ = D delta D 0 = E delta E 0 = D delta A 1 = B delta B 1 = B delta D 1 = C delta E 1 = C as = accessible "01" delta A test = notempty ("01",delta,A,(==) C) 24

Regular Expressions [25] Accessible states Optimisation import List(union) isin as a = or (map ((==) a) as) issup as bs = and (map (isin as) bs) Closure :: Eq a => [Char] -> (a -> Char -> a) -> [a] -> [a] 25

Regular Expressions [26] Accessible states closure cs delta qs = clos ([],qs) where clos (qs1,qs2) = if qs2 == [] then qs1 else let qs = union qs1 qs2 qs = qs2 >>= (\ q -> map (delta q) cs) qs = filter (\ q -> not (isin qs q)) qs in clos (qs,qs ) 26

Regular Expressions [27] Automatic Theorem Proving If Σ = {a, b} we have E = ψ(e) + a(a \ E) + b(b \ E) and hence E = F iff ψ(e) = ψ(f ) a \ E = a \ F b \ E = b \ F 27

Regular Expressions [28] Automatic Theorem Proving Given E = (a 2 + a 3 ) what is the automaton of abstract states of E? This gives an automatic way to prove that any number 2 is a sum of 2s and 3s One can prove automatically a(ba) = (ab) a or a (b + ab ) b + aa b One finds a counterexample to (a + b) = a + b 28

Regular Expressions [29] The Pigeonhole Principle An important reasoning technique (see Wikipedia) If you have more pigeon than pigeonholes then there is at least one pigeonhole with two pigeons If f : X Y and X > Y then f is not injective and there exist two distinct elements with the same image 29

Regular Expressions [30] The Pigeonhole Principle Often used to show the existence of an object without building this object explicitely Example: in a room with at least 13 people, at least two of them are born the same month (maybe of different years). We know the existence of these two people, maybe without being able to know exactly who they are. 30

Regular Expressions [31] The Pigeonhole Principle Example: In London, there are at least two people with the same number of hairs on their heads (assuming no one has more than 1000000 hairs on his head) For a nice discussion, see http://www.cs.utexas.edu/users/ewd/transcriptions/ewd09xx/ewd980.html Other formulation: if we have a bag of numbers, the maximum value is greater than the average value 31

Regular Expressions [32] How to prove that a language is not regular? In a NFA with N states, any path a q 1 a 0 q 2 a 1 q 2... q n n 1 q n contains a loop as soon as n N Indeed, we should have i < j with q i = q j. We apply the Pigeonhole Principle. This works for NFA as well as for DFA 32

Regular Expressions [33] How to prove that a language is not regular? Let Σ be {a, b} Let L be the language {a n b n n 0} We show that L is not regular We assume that L = L(A) for a NFA A and we derive a contradiction 33

Regular Expressions [34] How to prove that a language is not regular? Let N be the number of states of A Let k N and w = a k b k L w So there is an accepting path q 0 q F and since we have only N states we know that there is a loop at the beginning : we can write w = xyz with xy N and q 0 x s y s z q F 34

Regular Expressions [35] How to prove that a language is not regular? z is of the form a k m b k with m = xy We have then an accepting path for xz q 0 x s z q F and since y has to be of the form a l, l > 0 then xz is of the form a k l b k Since a k l b k / L we have a contradiction: xz cannot have an accepting path. 35

Regular Expressions [36] The Pumping Lemma Theorem: If L is a regular language, there exists n such that if w L and n w then we can write w = xyz with y ɛ and xy n and for all k 0 we have xy k z L. 36

Regular Expressions [37] The Pumping Lemma Proof: We have a NFA A such that L = L(A). Let n be the number of states of A. Any path in A of length n has a loop. We can consider that w = a 1... a l defines a path with a loop q 0 x q y q z ql with q l in F and y ɛ and xy n such that w = xyz L(A) Then we have q 0 x q y k q z q l for each k and hence xy k z in L 37

Regular Expressions [38] The pumping lemma For instance L eq {0, 1} set of words with an equal number of 0 and 1 is not regular. Otherwise, we have n as given by the pumping lemma. We have 0 n 1 n L eq and hence 0 n 1 n = xyz with xy n, y ɛ and xy k z L eq for all k. But then we have y = 0 q for some q > 0 and we have a contradiction for k 1 38

Regular Expressions [39] The pumping lemma Let L be the language of palindromes words x such that x = x R then L is not regular Otherwise, we have n as given by the pumping lemma. We have 0 n 10 n L and hence 0 n 10 n = xyz with xy n, y ɛ and xy k z L for all k. But then we have y = 0 q for some q > 0 and we have a contradiction for k 1 39

Regular Expressions [40] The pumping lemma Another proof that L eq {0, 1} is not regular is the following. Assume L eq to be regular then L eq L(0 1 ) would be regular, but this is {0 n 1 n n 0} which we have seen is not regular. Hence L eq is not regular. 40

Regular Expressions [41] How to prove that a language is not regular? Let L be the language {a n b n n 0} Theorem: L is not regular L However there is a simple machine with infinitely many states that recognizes The Pumping Lemma is connected to the finite memory of FA 41

Regular Expressions [42] How to prove that a language is not regular? For the examples L = {0 n 1 m n m} L = {0 n 1 m n m} the Pumping Lemma does not seem to work We can use the closure properties of regular languages 42

Regular Expressions [43] The Pumping Lemma is not a Necessary Condition If L = {b k c k k 0} then L is not regular If we consider L 1 = a + L (b + c) then L 1 is not regular: if L 1 is regular then so is a + L (by intersection with the complement of (b + c) ) and then so is L (by image under the morphism f(a) = ɛ, f(b) = b, f(c) = c) However the Pumping Lemma applies to L 1 with n = 1 This shows that, contrary to Myhill-Nerode s Theorem, the Pumping Lemma is not a necessary condition for a language to be regular 43

Regular Expressions [44] Applying the Pumping Lemma L = {0 n 1 2n n 0} is not regular Proof: Assume that L is regular. By the Pumping Lemma there exists N such that if w L and N w then we can write w = xyz with xy N and y ɛ and xy k z L for all k. Take w = 0 N 1 2N. We have N w and w L. So we can write w = xyz with xy N and y ɛ and xy k z L for all k. Since w = 0 N 1 2N and y ɛ we have y = 0 p for some p > 0. But then xy / L, contradiction. So L is not regular. Q.E.D. Other proof with Myhill-Nerode: 0 k 1 \ L = {1 2k 1 }, infinitely many abstract states. 44