# Reading 13 : Finite State Automata and Regular Expressions

Save this PDF as:

Size: px
Start display at page:

## Transcription

1 CS/Math 24: Introduction to Discrete Mathematics Fall 25 Reading 3 : Finite State Automata and Regular Expressions Instructors: Beck Hasti, Gautam Prakriya In this reading we study a mathematical model of computation called finite state automata. 3. Finite State Automata A finite state automaton consists of a finite control, which we view as a set of states that the automata/ machine can be in. The machine runs in steps. In each step, it receives an input signal. Upon its receipt, the machine changes its state according to some rules. One way of describing the functionality of a finite state machine is to draw a graph. Each state of the machine corresponds to one vertex of the graph. We draw an arrow pointing to the state in which the machine starts after being powered on. We use edges to describe the transitions between states. For each transition, we list the inputs that cause it. For example, in Figure 3., there is an edge from state 5 to state 5. The edge is labeled, which means that this transition occurs when the machine receives the input in state 5. Example 3.: Consider a vending machine. For simplicity, suppose it only sells one item, priced at 2 cents, and doesn t give any change. It accepts 5-cent and -cent coins. The states of the machine represent how much money has been put in since the machine first started, or since the last item disposal, whichever came last. The machine reaches state 2, when at least 2 cents has been put into the machine. We represent this state with 2 circles, to indicate that once it is reached an item is dispensed , ,5 Figure 3.: The transition diagram for the vending machine. Before we define a finite state automaton more formally, let s see another example. Example 3.2: Consider a machine that receives one of the letters A through Z in each step. The machine determines if the word NANO appears in the sequence of letters given to it. We design the machine so that its states indicate how much of the word NANO it has recently seen. We label the states through 4. State i indicates that the last i symbols received were the first i symbols from the word NANO. If the machine is in state i for i {,,2,3}, it goes to state i+ if the next letter given to it as input is the (i+)st letter of the word NANO. The machine enters and stays in state 4 if it sees the word NANO. What if the machine receives an input that does not continue spelling the word NANO? Then the machine must go back to an earlier state, but not necessarily the starting state. For example, if the last three inputs received were NAN, the machine is in state 3. If the next input is A, the last

2 3. Finite State Automata 3.. Formal Definition two letters received are also the first two letters of the word NANO, so the machine goes to state 2. Going to any other state could cause the machine to produce incorrect output. For example, if the next two letters after A were NO, the machine would not recognize that the word NANO appeared in the input if it went to state instead of state 2 after seeing A. Finally, if the machine is in state 4 after reading its input, then the input contains the word NANO. If the machine ends up at any other state after reading its input, then the input doesn t contain the word NANO. The state 4 is called an accept state. If the machine ends up at this state after reading the entire input, it accepts the input. If it ends up at any other state it rejects the input. We show all the transitions in Figure 3.2. N N A N O / {A,N} A N / {A,N} N anything Figure 3.2: A finite state automaton that decides whether a sequence of inputs contains the word NANO in it. We are now give a formal definition of a finite state automaton. 3.. Formal Definition A finite state automaton receives inputs from some finite set of symbols. We call this finite set an alphabet. The alphabet for Example 3. was the set {5,,25}, and the alphabet for Example 3.2 was the set {A,...,Z}. Definition 3.. A finite state automaton is a 5-tuple (S,Σ,δ,s,A), where S is a finite set of states. Σ is a finite set of symbols called the alphabet. δ : S Σ S is the transition function. The inputs to this function are the current state and the last input symbol. The function value δ(s,x) is the state the automaton goes to from state s after reading symbol x. The automaton starts in the start state s S. The set of accepting states A indicates which states cause the automaton to output yes. That is if the automaton ends up at a state in A after reading its input, then it accepts the input. If the automaton ends up at a state that is not in A after reading its input, it rejects the input. Example 3.3: We show what the five parts of the tuple M = (S,Σ,δ,s,A) are for the finite state automaton in Figure

3 3. Finite State Automata 3..2 Strings and Languages S = {s,s }. Σ = {,}. δ(s,) = s, δ(s,) = s, δ(s,) = s, δ(s,) = s. The start state is s. A = {s }. s s Figure 3.3: The automaton M used in Example Strings and Languages In each step, a finite state automaton processes some symbol from the alphabet. The input sequence could be infinite, thus causing the finite state automaton to run forever. For most computer programs, this is a situation we want to avoid, so let s focus on the case where the input sequences have finite length. Definition 3.2. A finite sequence of symbols from an alphabet Σ is called a string over Σ. An empty sequence of symbols is called an empty string, and is usually denoted by λ or ǫ. If x is a string over Σ, x denotes the length of the string, that is, the length of the sequence of symbols x stands for. For example, the length of the empty string is ǫ =. The length of the string NANO from Example 3.2 is 4. We can further group strings into sets called languages. Definition 3.3. A language over alphabet Σ is a set of strings over Σ. Suppose you have a program in some text file. You can view this program as a string. Some strings represent valid programs, and some do not. It is the job of the compiler to distinguish between the former and the latter. For the former, it should say the program is valid, and for the latter, it should generate some error message. The set of all strings that represent valid programs is called a programming language. This is what motivates the definition above. With every automaton, we associate the language of all strings accepted by the automaton. Definition 3.4. Given a finite automaton M, the set L(M) = {x when M is run on the string x starting from the start state, the final state is in A} is called the language decided by M. 3

4 3. Finite State Automata 3..2 Strings and Languages Using this definition, we could say that the language decided by the compiler is the language of valid programs in some programming language. However, we need a stronger computational model than a finite state automaton to implement a compiler. Let s now look at a language that can be decided by a finite state automaton. Example 3.4: Let s find the language decided by the finite state automaton M from Example 3.3. We start by finding some short strings in L(M ). The empty string ǫ is not in the language because M on input ǫ enters the state s, and terminates immediately because there are no more input symbols to read. Thus, M ends in a non-accepting state on this input. The string is also not in the language. The machine M starts in state s, and δ(s,) = s, so M stays in s after reading the first and only input symbol. It outputs no after that. The string is in the language because the transition M makes from the start state after reading is to state s, which is an accepting state. It outputs yes after that. The strings and are in the language. The sequences of states after reading the input symbols one by one are s,s,s and s,s,s, respectively. The strings and are not in the language. The strings,,, are all in L(M ), and no other strings of length 3 are. We observe that M changes states if and only if the next input symbol is. Therefore, the first time it gets to the accepting state s is after seeing the first. It leaves this state after seeing the next, comes back after seeing another after that, and so on. In other words, M changes states if and only if it reads a. Because the start state is s s, M ends in state s if and only if it changes states an odd number of times, that is, if and only if the input contains an odd number of ones. We now turn the intuitive explanation from the previous paragraph in a formal proof. We can think of it as proving the equality of two sets. One set is L(M ), and the other set is the set of strings with an odd number of ones in them. We do not pursue this direction, and use invariants instead. First we introduce some notation that extends the transition function δ. Let x be a string over Σ. Then δ(s,x) is the state of the automaton after reading all symbols in x, assuming the automaton was in state s before processing the first symbol in x. Notice that if x is a single symbol from the alphabet, this coincides with the definition of the transition function. We have δ(s,ǫ) = ǫ for any state s. If x is not the empty string, it looks like ya where y is a string of length x and a Σ. After processing y, the automaton is in state δ(s,y). The next input symbol is a, and M goes to state δ(δ(s,y),a) after processing it. Thus, we get a recursive definition of the form δ(s,ya) = δ(δ(s,y),a). Now we prove the following invariant by induction on the number of steps: M is in state s after n steps if and only if the number of ones in the first n symbols of x is odd. We saw earlier that δ(s,ǫ) = s. Since ǫ has an even number of ones in it, this proves the base case. Now suppose our invariant holds after the first n steps, and consider the (n+)st step. The first n+ symbols in the input have the form ya where y = n and a Σ. There are two cases to consider. Case : M is in state s after processing y. This happens if and only if y has an odd number of ones in it by the induction hypothesis. Now if a =, the state changes to s, and the additional makes the number of ones in the first n+ symbols even. If a =, M stays in state s, and the number of ones in the first n+ symbols stays odd. Thus, the invariant holds after n+ steps in this case. 4

5 3. Finite State Automata 3..3 Finite State Automata as a Model of Computation Case 2: M is in state s after processing y. This happens if and only if y has an even number of ones in it by the induction hypothesis. Now if a =, the state changes to s, and the additional makes the number of ones in the first n+ symbols odd. If a =, M stays in state s, and the number of ones in the first n+ symbols stays even. Thus, the invariant holds after n+ steps in this case too. Then consider the situation after the entire input string x is processed, i.e., after x steps. By the invariant we just proved, M is in state s if and only if the inputstring contains an odd number of ones. Since s is the only accepting state, this implies that M outputs yes on input x if and only if x contains an odd number of ones Finite State Automata as a Model of Computation We can view a finite state automaton M = (S,Σ,δ,s,A) as a simple computer consisting of the following parts. A finite control that knows the the tuple M and stores the automaton s current state. A tape that has the input written on it. A tape head that is positioned above the tape and can read the symbol underneath it. When the automaton starts, the finite control sets the current state to the start state s and positions the tape head above the first symbol on the tape. In each step, the automaton reads the symbol under its tape head. The finite control looks at that symbol and at the current state, changes states according to the transition function, and moves the tape head above the next symbol on the tape. The finite state automaton looks like a very simple computing device. We show the setup in Figure 3.4. tape head h e l l o tape with input Finite control (S,Σ,ν,s,A) State: Output Figure 3.4: Components of a finite state automaton Designing Finite State Automata We mentioned in an earlier reading that one often uses invariants to design algorithms. This is also true when designing finite state automata for deciding a given language L. In particular, invariants can describe all situations in which an automaton is in a particular state. Let s demonstrate this technique on an example. Example 3.5: We design a finite state automaton M that decides the language consisting of all strings over the alphabet {,} that start and end with the same symbol. For example, the strings and are in the language, and the strings and are not in the language. 5

7 3.2 Regular Expressions 3.2. Regular Operators on Languages 3.2. Regular Operators on Languages Before we define regular expressions, we need operators that work on languages. These operators take one or more languages, and produce a new language. First note that languages are sets, so taking the union of two languages makes sense. If L and L 2 are languages, x L L 2 if and only if x L or x L 2. The next operator is concatenation. The concatenation of strings x and y is obtained by writing down x followed by y right after it. To get a concatenation of two languages L and L 2, we consider all pairs of strings, one from each L and L 2, and concatenate them. Definition 3.5. Let L and L 2 be languages. The concatenation of L and L 2 is the set L L 2 = {xy x L y L 2 }. We give some examples of concatenations of languages. We use the automata we described earlier. For completeness, they are shown in Figure 3.6. s s s s s s s (a) The machine M. (b) The machine M 2. Figure 3.6: Finite state automata Example 3.6: Consider the concatenation L(M )L(M ) (where M is the automaton from earlier that accepts strings with an odd number of ones). Concatenating a string with an odd number of ones with another string with an odd number of ones produces a string with an even number of ones. Also note that the number of ones in the result of the concatenation is at least two. Thus, all strings in L(M )L(M ) contain a positive even number of ones. In fact, this language contains all strings with a positive even number of ones. We leave the proof that every string with a positive even number of ones is in L(M )L(M ) to you as an exercise. You have to show that it s possible to decompose a string z with an even number of ones into two strings with an odd number of ones whose concatenation is z. Example 3.7: Now consider L(M 2 )L(M 2 ). This is the set of all binary strings. Any language over the alphabet {,} is a subset of the set of all binary strings. For the other containment, we have to argue it s possible to write any binary string z as xy where x,y L(M 2 ). For example, if z 7

8 3.2 Regular Expressions Formal Definition of a Regular Expression starts and ends with the same symbol, we can pick x = z and y = ǫ. We leave the proof to you as an exercise. The two examples we gave both concatenate a language with itself. It is possible to concatenate two different languages as well. For example, we could consider the concatenation L L 2, but it may be harder to figure out what the resulting language is. The last regular operator is called Kleene closure (Kleene was actually a faculty member at UW-Madison) or star (because of the notation). We define L = k= where k is L concatenated with itself k times, i.e., L = L, L 2 = LL, and so on. We can also define L k inductively as L k = LL k with the base case L = {ǫ}. Example 3.8: The set {,} 2 is the set of all binary strings of length 2, i.e., {,,,}. In general, {,} k is the set of all binary strings of length k. Taking the union of {,} k over all k gives us the set of all binary strings, {,}. Example 3.9: Now let s find what L(M 2 ) is. By definition, L(M 2 ) = k= L(M 2) k. Recall from Example 3.7 that L(M 2 ) 2 = {,}. Because the union k= L(M 2) k contains L(M 2 ) 2, we have {,} L(M 2 ). But any language is a subset of {,}, so L(M 2 ) = {,}. Example 3.: What about L(M )? First, L(M ) = {ǫ}. Now L(M ) is the set of strings with an odd number of ones, and L(M ) 2 is the set of strings with a positive even number of ones by Example 3.6. The only strings from {,} that are missing from L(M ) L(M ) L(M ) 2 are the strings that have no ones in them and are not empty, i.e., all string consisting only of zeros. Can L(M ) k for some k contain a string consisting of only zeros? A string in L(M ) k has at least k ones because it is a concatenation of k strings in L(M ), and each string in L(M ) contains at least one. Hence, L(M ) = ({,} {} ) {ǫ}. (Note we have to add ǫ back to the language using union because set difference eliminates it.) Formal Definition of a Regular Expression A regular expression is a sequence of characters that define a pattern. Each regular expression describes a language. The language described by a regular expression R, denoted L(R), can be viewed as the set of all strings that match the pattern. Definition 3.6. A regular expression over an alphabet Σ is any of the following: (the empty regular expression) ǫ a (for any a Σ) Furthermore, if R and R 2 are regular expressions over Σ, Then so are R R 2 ( OR or Union of R and R 2 ), R R 2 ( Concatenation of R and R 2 ), and R ( Kleene star of R or just R star ) L k 8

9 3.3 Connection between Regular Expressions and Finite Automata We now define the language described by a regular expression The regular expression describes the empty language. The regular expression ǫ describes the language containing just the empty string {ǫ}. For each a Σ the regular expression a describes the language {a}. Let R and R 2 be regular expressions that describe the languages L and L 2 respectively. Then R R 2 describes the language L L 2 (the union of L and L 2. LetR andr 2 beregular expressionsthat describethelanguages L andl 2 then thelanguage described by the regular expression R R 2 is the concatenation of L and L 2 L L 2. Let R be a regular expression that describes the language L then R describes the language L. The above is summarized in Table 3.. R L(R) ǫ {ǫ} a {a} R R 2 L(R ) L(R 2 ) R R 2 L(R )L(R 2 ) R L(R ) Table 3.: Languages corresponding to regular expressions. We remark that the notation for regular expressions isn t entirely standard. For example, sometimes you will see + or for, and you will often see for concatenation. If we think of Kleene closure as taking powers, we get the natural precedence rules: To see what a language is, first take all Kleene closures, then evaluate all concatenations, and finally construct unions at the very end. To change these precedence rules, use parentheses. 3.3 Connection between Regular Expressions and Finite Automata Regular expressions and finite automata define the same class of languages. We now formalize this equivalence of the expressive powers of regular expressions and finite automata. Definition 3.7. A language L is regular if and only if it can be defined by a regular expression, i.e., it can be written as L(R) for some regular expression R. Theorem 3.8. A language L is regular if and only if it is accepted by some finite automaton, i.e., there exists a finite automaton M such that L = L(M) More finite state automata (Optional) In this section we will design finite state automata for the following family of languages: L k = {binary representations of multiples of k}, k 2. Given a binary string x = x x 2...x n+, the number it represents is Val(x) = n i= x i2 n i. 9

10 3.3 Connection between Regular Expressions and Finite Automata Designing the Automaton Designing the Automaton There should be no leading zeros in the binary representation of a number, so the most significant bit should be one. The only exception to this is the number zero whose binary representation is. This makes designing the automaton for L k a little more complicated. As an initial attempt, let s allow leading zeros, and design an automaton N k that accepts binary representations of multiples of k that may have leading zeros. For example, is the binary representation of 2 with one leading zero, so it s not in L(N 2 ), but it is in L(N 2 ). Later today, we will use N k to obtain N k. The states represent information N k has about the input. Since N k is a finite state automaton, it cannot keep track of the entire input because the input could be arbitrarily large. Therefore, we need to find some finite amount of information that is sufficient for the automaton to be able to decide whether a number is a multiple of k or not. An integer is a multiple of k if and only if the remainder after dividing by k is zero. In other words, x L(N k ) k Val(x) Val(x) k Val(x) mod k =, where the notation a mod b = c means that the remainder of a after division by b is c. As we shall see, knowing the remainder of Val(x) after dividing by k is sufficient information. Our machine N k will have one state for each possible value of the remainder. Since k is a constant, this is a constant number of states. We need to ensurethat N k can maintain the information about the remainder as it goes through the input, symbol by symbol. Suppose the input is x = x x 2...x N for some N. Say that N k has read n < N bits so far, and knows the remainder of x x 2...x n after dividing by k. This is a fair assumption because N k must be able to tell whether x x 2...x n is a multiple of k or not. The next bit in the input is x n+. Note that n+ Val(x x 2...x n x n+ ) = x i 2 n+ i = = 2 i= n x i 2 n+ i +x n+ i= n x i 2 n i +x n+ i= = 2Val(x x 2...x n )+x n+. (3.) For example, Val() = 2, and Val() = 2Val()+ = 2 2+ = 5. First let s take both sides of (3.) modulo k. The remainders of both sides after dividing by k have to be the same, so we have Val(x x 2...x n x n+ ) mod k = [ 2Val(x x 2...x n )+x n+ ] mod k (3.2) Let s i be a state indicating that the first n bits of he input x satisfy Val(x x 2...x n ) = i mod k. Equation (3.2) tells us what the transition function should be. We have ν (s i,a) = s (2i+a) mod k

### Formal Languages and Automata Theory - Regular Expressions and Finite Automata -

Formal Languages and Automata Theory - Regular Expressions and Finite Automata - Samarjit Chakraborty Computer Engineering and Networks Laboratory Swiss Federal Institute of Technology (ETH) Zürich March

### Automata and Languages

Automata and Languages Computational Models: An idealized mathematical model of a computer. A computational model may be accurate in some ways but not in others. We shall be defining increasingly powerful

### the lemma. Keep in mind the following facts about regular languages:

CPS 2: Discrete Mathematics Instructor: Bruce Maggs Assignment Due: Wednesday September 2, 27 A Tool for Proving Irregularity (25 points) When proving that a language isn t regular, a tool that is often

### Automata and Formal Languages

Automata and Formal Languages Winter 2009-2010 Yacov Hel-Or 1 What this course is all about This course is about mathematical models of computation We ll study different machine models (finite automata,

### Chapter 2. Finite Automata. 2.1 The Basic Model

Chapter 2 Finite Automata 2.1 The Basic Model Finite automata model very simple computational devices or processes. These devices have a constant amount of memory and process their input in an online manner.

### CSC4510 AUTOMATA 2.1 Finite Automata: Examples and D efinitions Definitions

CSC45 AUTOMATA 2. Finite Automata: Examples and Definitions Finite Automata: Examples and Definitions A finite automaton is a simple type of computer. Itsoutputislimitedto yes to or no. It has very primitive

### Lecture 16 : Relations and Functions DRAFT

CS/Math 240: Introduction to Discrete Mathematics 3/29/2011 Lecture 16 : Relations and Functions Instructor: Dieter van Melkebeek Scribe: Dalibor Zelený DRAFT In Lecture 3, we described a correspondence

### Automata Theory and Languages

Automata Theory and Languages SITE : http://www.info.univ-tours.fr/ mirian/ Automata Theory, Languages and Computation - Mírian Halfeld-Ferrari p. 1/1 Introduction to Automata Theory Automata theory :

### Regular Languages and Finite State Machines

Regular Languages and Finite State Machines Plan for the Day: Mathematical preliminaries - some review One application formal definition of finite automata Examples 1 Sets A set is an unordered collection

### Definition: String concatenation. Definition: String. Definition: Language (cont.) Definition: Language

CMSC 330: Organization of Programming Languages Regular Expressions and Finite Automata Introduction That s it for the basics of Ruby If you need other material for your project, come to office hours or

### CMPSCI 250: Introduction to Computation. Lecture #19: Regular Expressions and Their Languages David Mix Barrington 11 April 2013

CMPSCI 250: Introduction to Computation Lecture #19: Regular Expressions and Their Languages David Mix Barrington 11 April 2013 Regular Expressions and Their Languages Alphabets, Strings and Languages

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

6.045: Automata, Computability, and Complexity Or, Great Ideas in Theoretical Computer Science Spring, 2010 Class 4 Nancy Lynch Today Two more models of computation: Nondeterministic Finite Automata (NFAs)

### Lecture 17 : Equivalence and Order Relations DRAFT

CS/Math 240: Introduction to Discrete Mathematics 3/31/2011 Lecture 17 : Equivalence and Order Relations Instructor: Dieter van Melkebeek Scribe: Dalibor Zelený DRAFT Last lecture we introduced the notion

### CS 341 Homework 9 Languages That Are and Are Not Regular

CS 341 Homework 9 Languages That Are and Are Not Regular 1. Show that the following are not regular. (a) L = {ww R : w {a, b}*} (b) L = {ww : w {a, b}*} (c) L = {ww' : w {a, b}*}, where w' stands for w

### C H A P T E R Regular Expressions regular expression

7 CHAPTER Regular Expressions Most programmers and other power-users of computer systems have used tools that match text patterns. You may have used a Web search engine with a pattern like travel cancun

### Automata and Computability. Solutions to Exercises

Automata and Computability Solutions to Exercises Fall 25 Alexis Maciel Department of Computer Science Clarkson University Copyright c 25 Alexis Maciel ii Contents Preface vii Introduction 2 Finite Automata

### Deterministic Finite Automata

1 Deterministic Finite Automata Definition: A deterministic finite automaton (DFA) consists of 1. a finite set of states (often denoted Q) 2. a finite set Σ of symbols (alphabet) 3. a transition function

### Theory of Computation Prof. Kamala Krithivasan Department of Computer Science and Engineering Indian Institute of Technology, Madras

Theory of Computation Prof. Kamala Krithivasan Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture No. # 31 Recursive Sets, Recursively Innumerable Sets, Encoding

### Theory of Computation

Theory of Computation For Computer Science & Information Technology By www.thegateacademy.com Syllabus Syllabus for Theory of Computation Regular Expressions and Finite Automata, Context-Free Grammar s

### Regular Languages and Finite Automata

Regular Languages and Finite Automata 1 Introduction Hing Leung Department of Computer Science New Mexico State University Sep 16, 2010 In 1943, McCulloch and Pitts [4] published a pioneering work on a

### 3. Recurrence Recursive Definitions. To construct a recursively defined function:

3. RECURRENCE 10 3. Recurrence 3.1. Recursive Definitions. To construct a recursively defined function: 1. Initial Condition(s) (or basis): Prescribe initial value(s) of the function.. Recursion: Use a

### Regular Expressions and Automata using Haskell

Regular Expressions and Automata using Haskell Simon Thompson Computing Laboratory University of Kent at Canterbury January 2000 Contents 1 Introduction 2 2 Regular Expressions 2 3 Matching regular expressions

### Regular Expressions. Languages. Recall. A language is a set of strings made up of symbols from a given alphabet. Computer Science Theory 2

Regular Expressions Languages Recall. A language is a set of strings made up of symbols from a given alphabet. Computer Science Theory 2 1 String Recognition Machine Given a string and a definition of

### CS 3719 (Theory of Computation and Algorithms) Lecture 4

CS 3719 (Theory of Computation and Algorithms) Lecture 4 Antonina Kolokolova January 18, 2012 1 Undecidable languages 1.1 Church-Turing thesis Let s recap how it all started. In 1990, Hilbert stated a

### (Refer Slide Time: 1:41)

Discrete Mathematical Structures Dr. Kamala Krithivasan Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture # 10 Sets Today we shall learn about sets. You must

### Induction. Margaret M. Fleck. 10 October These notes cover mathematical induction and recursive definition

Induction Margaret M. Fleck 10 October 011 These notes cover mathematical induction and recursive definition 1 Introduction to induction At the start of the term, we saw the following formula for computing

### We give a basic overview of the mathematical background required for this course.

1 Background We give a basic overview of the mathematical background required for this course. 1.1 Set Theory We introduce some concepts from naive set theory (as opposed to axiomatic set theory). The

### Sets and Subsets. Countable and Uncountable

Sets and Subsets Countable and Uncountable Reading Appendix A Section A.6.8 Pages 788-792 BIG IDEAS Themes 1. There exist functions that cannot be computed in Java or any other computer language. 2. There

### CAs and Turing Machines. The Basis for Universal Computation

CAs and Turing Machines The Basis for Universal Computation What We Mean By Universal When we claim universal computation we mean that the CA is capable of calculating anything that could possibly be calculated*.

### 3. Equivalence Relations. Discussion

3. EQUIVALENCE RELATIONS 33 3. Equivalence Relations 3.1. Definition of an Equivalence Relations. Definition 3.1.1. A relation R on a set A is an equivalence relation if and only if R is reflexive, symmetric,

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

3130CIT: Theory of Computation Turing machines and undecidability (IALC, Chapters 8 and 9) Introduction to Turing s life, Turing machines, universal machines, unsolvable problems. An undecidable problem

### Notes on Complexity Theory Last updated: August, 2011. Lecture 1

Notes on Complexity Theory Last updated: August, 2011 Jonathan Katz Lecture 1 1 Turing Machines I assume that most students have encountered Turing machines before. (Students who have not may want to look

### Computability Theory

CSC 438F/2404F Notes (S. Cook and T. Pitassi) Fall, 2014 Computability Theory This section is partly inspired by the material in A Course in Mathematical Logic by Bell and Machover, Chap 6, sections 1-10.

### Finite Automata. Reading: Chapter 2

Finite Automata Reading: Chapter 2 1 Finite Automata Informally, a state machine that comprehensively captures all possible states and transitions that a machine can take while responding to a stream (or

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

CS54 Turing Machines Turing Machine q 0 AI N P U T IN TAPE read write move read write move Language = {0} q This Turing machine recognizes the language {0} Turing Machines versus DFAs TM can both write

### Relations Graphical View

Relations Slides by Christopher M. Bourke Instructor: Berthe Y. Choueiry Introduction Recall that a relation between elements of two sets is a subset of their Cartesian product (of ordered pairs). A binary

### Students in their first advanced mathematics classes are often surprised

CHAPTER 8 Proofs Involving Sets Students in their first advanced mathematics classes are often surprised by the extensive role that sets play and by the fact that most of the proofs they encounter are

### COLORED GRAPHS AND THEIR PROPERTIES

COLORED GRAPHS AND THEIR PROPERTIES BEN STEVENS 1. Introduction This paper is concerned with the upper bound on the chromatic number for graphs of maximum vertex degree under three different sets of coloring

### Turing Machines: An Introduction

CIT 596 Theory of Computation 1 We have seen several abstract models of computing devices: Deterministic Finite Automata, Nondeterministic Finite Automata, Nondeterministic Finite Automata with ɛ-transitions,

### Mathematical Induction. Lecture 10-11

Mathematical Induction Lecture 10-11 Menu Mathematical Induction Strong Induction Recursive Definitions Structural Induction Climbing an Infinite Ladder Suppose we have an infinite ladder: 1. We can reach

### WRITING PROOFS. Christopher Heil Georgia Institute of Technology

WRITING PROOFS Christopher Heil Georgia Institute of Technology A theorem is just a statement of fact A proof of the theorem is a logical explanation of why the theorem is true Many theorems have this

### Cartesian Products and Relations

Cartesian Products and Relations Definition (Cartesian product) If A and B are sets, the Cartesian product of A and B is the set A B = {(a, b) :(a A) and (b B)}. The following points are worth special

### 1 Die hard, once and for all

ENGG 2440A: Discrete Mathematics for Engineers Lecture 4 The Chinese University of Hong Kong, Fall 2014 6 and 7 October 2014 Number theory is the branch of mathematics that studies properties of the integers.

### Partitioning edge-coloured complete graphs into monochromatic cycles and paths

arxiv:1205.5492v1 [math.co] 24 May 2012 Partitioning edge-coloured complete graphs into monochromatic cycles and paths Alexey Pokrovskiy Departement of Mathematics, London School of Economics and Political

### 6.080/6.089 GITCS Feb 12, 2008. Lecture 3

6.8/6.89 GITCS Feb 2, 28 Lecturer: Scott Aaronson Lecture 3 Scribe: Adam Rogal Administrivia. Scribe notes The purpose of scribe notes is to transcribe our lectures. Although I have formal notes of my

### Computational Models Lecture 8, Spring 2009

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown Univ. p. 1 Computational Models Lecture 8, Spring 2009 Encoding of TMs Universal Turing Machines The Halting/Acceptance

### Scanner. tokens scanner parser IR. source code. errors

Scanner source code tokens scanner parser IR errors maps characters into tokens the basic unit of syntax x = x + y; becomes = + ; character string value for a token is a lexeme

### Theorem (The division theorem) Suppose that a and b are integers with b > 0. There exist unique integers q and r so that. a = bq + r and 0 r < b.

Theorem (The division theorem) Suppose that a and b are integers with b > 0. There exist unique integers q and r so that a = bq + r and 0 r < b. We re dividing a by b: q is the quotient and r is the remainder,

### GROUPS SUBGROUPS. Definition 1: An operation on a set G is a function : G G G.

Definition 1: GROUPS An operation on a set G is a function : G G G. Definition 2: A group is a set G which is equipped with an operation and a special element e G, called the identity, such that (i) the

### Elementary Number Theory We begin with a bit of elementary number theory, which is concerned

CONSTRUCTION OF THE FINITE FIELDS Z p S. R. DOTY Elementary Number Theory We begin with a bit of elementary number theory, which is concerned solely with questions about the set of integers Z = {0, ±1,

### Introduction to mathematical arguments

Introduction to mathematical arguments (background handout for courses requiring proofs) by Michael Hutchings A mathematical proof is an argument which convinces other people that something is true. Math

### 1 Introduction to Counting

1 Introduction to Counting 1.1 Introduction In this chapter you will learn the fundamentals of enumerative combinatorics, the branch of mathematics concerned with counting. While enumeration problems can

### FORMAL LANGUAGES, AUTOMATA AND COMPUTATION

FORMAL LANGUAGES, AUTOMATA AND COMPUTATION REDUCIBILITY ( LECTURE 16) SLIDES FOR 15-453 SPRING 2011 1 / 20 THE LANDSCAPE OF THE CHOMSKY HIERARCHY ( LECTURE 16) SLIDES FOR 15-453 SPRING 2011 2 / 20 REDUCIBILITY

### Applications of Methods of Proof

CHAPTER 4 Applications of Methods of Proof 1. Set Operations 1.1. Set Operations. The set-theoretic operations, intersection, union, and complementation, defined in Chapter 1.1 Introduction to Sets are

### Automata on Infinite Words and Trees

Automata on Infinite Words and Trees Course notes for the course Automata on Infinite Words and Trees given by Dr. Meghyn Bienvenu at Universität Bremen in the 2009-2010 winter semester Last modified:

### CSE 135: Introduction to Theory of Computation Decidability and Recognizability

CSE 135: Introduction to Theory of Computation Decidability and Recognizability Sungjin Im University of California, Merced 04-28, 30-2014 High-Level Descriptions of Computation Instead of giving a Turing

### Induction and Recursion

Induction and Recursion Winter 2010 Mathematical Induction Mathematical Induction Principle (of Mathematical Induction) Suppose you want to prove that a statement about an integer n is true for every positive

### MODULAR ARITHMETIC. a smallest member. It is equivalent to the Principle of Mathematical Induction.

MODULAR ARITHMETIC 1 Working With Integers The usual arithmetic operations of addition, subtraction and multiplication can be performed on integers, and the result is always another integer Division, on

### 6.3 Conditional Probability and Independence

222 CHAPTER 6. PROBABILITY 6.3 Conditional Probability and Independence Conditional Probability Two cubical dice each have a triangle painted on one side, a circle painted on two sides and a square painted

### The Halting Problem is Undecidable

185 Corollary G = { M, w w L(M) } is not Turing-recognizable. Proof. = ERR, where ERR is the easy to decide language: ERR = { x { 0, 1 }* x does not have a prefix that is a valid code for a Turing machine

### T-79.186 Reactive Systems: Introduction and Finite State Automata

T-79.186 Reactive Systems: Introduction and Finite State Automata Timo Latvala 14.1.2004 Reactive Systems: Introduction and Finite State Automata 1-1 Reactive Systems Reactive systems are a class of software

### Automata Theory. Şubat 2006 Tuğrul Yılmaz Ankara Üniversitesi

Automata Theory Automata theory is the study of abstract computing devices. A. M. Turing studied an abstract machine that had all the capabilities of today s computers. Turing s goal was to describe the

### Finite Automata and Regular Languages

CHAPTER 3 Finite Automata and Regular Languages 3. Introduction 3.. States and Automata A finite-state machine or finite automaton (the noun comes from the Greek; the singular is automaton, the Greek-derived

### 6.080 / 6.089 Great Ideas in Theoretical Computer Science Spring 2008

MIT OpenCourseWare http://ocw.mit.edu 6.080 / 6.089 Great Ideas in Theoretical Computer Science Spring 2008 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.

### Finite Automata. Reading: Chapter 2

Finite Automata Reading: Chapter 2 1 Finite Automaton (FA) Informally, a state diagram that comprehensively captures all possible states and transitions that a machine can take while responding to a stream

### MACM 101 Discrete Mathematics I

MACM 101 Discrete Mathematics I Exercises on Combinatorics, Probability, Languages and Integers. Due: Tuesday, November 2th (at the beginning of the class) Reminder: the work you submit must be your own.

### Announcements. CS243: Discrete Structures. More on Cryptography and Mathematical Induction. Agenda for Today. Cryptography

Announcements CS43: Discrete Structures More on Cryptography and Mathematical Induction Işıl Dillig Class canceled next Thursday I am out of town Homework 4 due Oct instead of next Thursday (Oct 18) Işıl

### Introduction to Finite Automata

Introduction to Finite Automata Our First Machine Model Captain Pedro Ortiz Department of Computer Science United States Naval Academy SI-340 Theory of Computing Fall 2012 Captain Pedro Ortiz (US Naval

### Discrete Mathematics, Chapter 5: Induction and Recursion

Discrete Mathematics, Chapter 5: Induction and Recursion Richard Mayr University of Edinburgh, UK Richard Mayr (University of Edinburgh, UK) Discrete Mathematics. Chapter 5 1 / 20 Outline 1 Well-founded

### Clicker Question. Theorems/Proofs and Computational Problems/Algorithms MC215: MATHEMATICAL REASONING AND DISCRETE STRUCTURES

MC215: MATHEMATICAL REASONING AND DISCRETE STRUCTURES Tuesday, 1/21/14 General course Information Sets Reading: [J] 1.1 Optional: [H] 1.1-1.7 Exercises: Do before next class; not to hand in [J] pp. 12-14:

### Full and Complete Binary Trees

Full and Complete Binary Trees Binary Tree Theorems 1 Here are two important types of binary trees. Note that the definitions, while similar, are logically independent. Definition: a binary tree T is full

### Inf1A: Deterministic Finite State Machines

Lecture 2 InfA: Deterministic Finite State Machines 2. Introduction In this lecture we will focus a little more on deterministic Finite State Machines. Also, we will be mostly concerned with Finite State

### COMP 250 Fall Mathematical induction Sept. 26, (n 1) + n = n + (n 1)

COMP 50 Fall 016 9 - Mathematical induction Sept 6, 016 You will see many examples in this course and upcoming courses of algorithms for solving various problems It many cases, it will be obvious that

### Mathematical Induction

MCS-236: Graph Theory Handout #A5 San Skulrattanakulchai Gustavus Adolphus College Sep 15, 2010 Mathematical Induction The following three principles governing N are equivalent. Ordinary Induction Principle.

### Homework 5 Solutions

Homework 5 Solutions 4.2: 2: a. 321 = 256 + 64 + 1 = (01000001) 2 b. 1023 = 512 + 256 + 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = (1111111111) 2. Note that this is 1 less than the next power of 2, 1024, which

CS5236 Advanced Automata Theory Frank Stephan Semester I, Academic Year 2012-2013 Advanced Automata Theory is a lecture which will first review the basics of formal languages and automata theory and then

### Introduction to Turing Machines

Automata Theory, Languages and Computation - Mírian Halfeld-Ferrari p. 1/2 Introduction to Turing Machines SITE : http://www.sir.blois.univ-tours.fr/ mirian/ Automata Theory, Languages and Computation

### Continued Fractions and the Euclidean Algorithm

Continued Fractions and the Euclidean Algorithm Lecture notes prepared for MATH 326, Spring 997 Department of Mathematics and Statistics University at Albany William F Hammond Table of Contents Introduction

### 8 Divisibility and prime numbers

8 Divisibility and prime numbers 8.1 Divisibility In this short section we extend the concept of a multiple from the natural numbers to the integers. We also summarize several other terms that express

### Mathematical Induction

Mathematical Induction MAT30 Discrete Mathematics Fall 016 MAT30 (Discrete Math) Mathematical Induction Fall 016 1 / 19 Outline 1 Mathematical Induction Strong Mathematical Induction MAT30 (Discrete Math)

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

Mathematics for Computer Science/Software Engineering Notes for the course MSM1F3 Dr. R. A. Wilson October 1996 Chapter 1 Logic Lecture no. 1. We introduce the concept of a proposition, which is a statement

### Lecture 2: Universality

CS 710: Complexity Theory 1/21/2010 Lecture 2: Universality Instructor: Dieter van Melkebeek Scribe: Tyson Williams In this lecture, we introduce the notion of a universal machine, develop efficient universal

### 6.2 Permutations continued

6.2 Permutations continued Theorem A permutation on a finite set A is either a cycle or can be expressed as a product (composition of disjoint cycles. Proof is by (strong induction on the number, r, of

### Lecture 3. Mathematical Induction

Lecture 3 Mathematical Induction Induction is a fundamental reasoning process in which general conclusion is based on particular cases It contrasts with deduction, the reasoning process in which conclusion

### Introduction to Automata Theory. Reading: Chapter 1

Introduction to Automata Theory Reading: Chapter 1 1 What is Automata Theory? Study of abstract computing devices, or machines Automaton = an abstract computing device Note: A device need not even be a

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

CS 70 Discrete Mathematics and Probability Theory Fall 2009 Satish Rao, David Tse Note 5 Modular Arithmetic One way to think of modular arithmetic is that it limits numbers to a predefined range {0,1,...,N

### A Formalization of the Turing Test Evgeny Chutchev

A Formalization of the Turing Test Evgeny Chutchev 1. Introduction The Turing test was described by A. Turing in his paper [4] as follows: An interrogator questions both Turing machine and second participant

Some Definitions about Sets Definition: Two sets are equal if they contain the same elements. I.e., sets A and B are equal if x[x A x B]. Notation: A = B. Recall: Sets are unordered and we do not distinguish

### 2110711 THEORY of COMPUTATION

2110711 THEORY of COMPUTATION ATHASIT SURARERKS ELITE Athasit Surarerks ELITE Engineering Laboratory in Theoretical Enumerable System Computer Engineering, Faculty of Engineering Chulalongkorn University

### 10.2 Series and Convergence

10.2 Series and Convergence Write sums using sigma notation Find the partial sums of series and determine convergence or divergence of infinite series Find the N th partial sums of geometric series and

### Solutions to Exercises 8

Discrete Mathematics Lent 2009 MA210 Solutions to Exercises 8 (1) Suppose that G is a graph in which every vertex has degree at least k, where k 1, and in which every cycle contains at least 4 vertices.

### Chapter 3. Cartesian Products and Relations. 3.1 Cartesian Products

Chapter 3 Cartesian Products and Relations The material in this chapter is the first real encounter with abstraction. Relations are very general thing they are a special type of subset. After introducing

### Math 55: Discrete Mathematics

Math 55: Discrete Mathematics UC Berkeley, Spring 2012 Homework # 9, due Wednesday, April 11 8.1.5 How many ways are there to pay a bill of 17 pesos using a currency with coins of values of 1 peso, 2 pesos,

### An Innocent Investigation

An Innocent Investigation D. Joyce, Clark University January 2006 The beginning. Have you ever wondered why every number is either even or odd? I don t mean to ask if you ever wondered whether every number

### CS103B Handout 17 Winter 2007 February 26, 2007 Languages and Regular Expressions

CS103B Handout 17 Winter 2007 February 26, 2007 Languages and Regular Expressions Theory of Formal Languages In the English language, we distinguish between three different identities: letter, word, sentence.

### 3. BINARY NUMBERS AND ARITHMETIC

3. BINARY NUMBERS AND ARITHMETIC 3.1. Binary Numbers The only place in a computer where you will find the number 9 is on the keyboard. Inside the computer you will only find 0 s and 1 s. All computer memory

### Further linear algebra. Chapter I. Integers.

Further linear algebra. Chapter I. Integers. Andrei Yafaev Number theory is the theory of Z = {0, ±1, ±2,...}. 1 Euclid s algorithm, Bézout s identity and the greatest common divisor. We say that a Z divides

### SECTION 10-2 Mathematical Induction

73 0 Sequences and Series 6. Approximate e 0. using the first five terms of the series. Compare this approximation with your calculator evaluation of e 0.. 6. Approximate e 0.5 using the first five terms