CSE 311 Foundations of Computing I Lecture 17 Structural Induction Spring 2013 1.

Slides:



Advertisements
Similar presentations
1 Lecture 32 Closure Properties for CFL’s –Kleene Closure construction examples proof of correctness –Others covered less thoroughly in lecture union,
Advertisements

COMP-421 Compiler Design Presented by Dr Ioanna Dionysiou.
Recursive Definitions and Structural Induction
Finite Automata Great Theoretical Ideas In Computer Science Anupam Gupta Danny Sleator CS Fall 2010 Lecture 20Oct 28, 2010Carnegie Mellon University.
Regular Languages Sequential Machine Theory Prof. K. J. Hintz Department of Electrical and Computer Engineering Lecture 3 Comments, additions and modifications.
Regular Languages Sequential Machine Theory Prof. K. J. Hintz Department of Electrical and Computer Engineering Lecture 3 Comments, additions and modifications.
CSE 321 Discrete Structures Winter 2008 Lecture 12 Induction.
1 Regular Expressions/Languages Regular languages –Inductive definitions –Regular expressions syntax semantics Not covered in lecture.
Induction and recursion
Recursive Definitions and Structural Induction
Discrete Mathematics CS 2610 March 26, 2009 Skip: structural induction generalized induction Skip section 4.5.
Induction and recursion
CSE 311 Foundations of Computing I Lecture 15 Recursive Definitions and Structural Induction Autumn 2011 CSE 3111.
CSE 311 Foundations of Computing I Lecture 16 Recursively Defined Sets and Structural Induction Spring
Section 5.3. Section Summary Recursively Defined Functions Recursively Defined Sets and Structures Structural Induction.
Introduction to CS Theory Lecture 3 – Regular Languages Piotr Faliszewski
1 Regular Expressions. 2 Regular expressions describe regular languages Example: describes the language.
CSE 311 Foundations of Computing I Lecture 17 Structural Induction: Regular Expressions, Regular Languages Autumn 2011 CSE 3111.
1 State SymbolRead- Q E(Q) a b a b a b Convert to a DFA: Start state: Final States:
Induction Proof. Well-ordering A set S is well ordered if every subset has a least element. [0, 1] is not well ordered since (0,1] has no least element.
ICS 253: Discrete Structures I Induction and Recursion King Fahd University of Petroleum & Minerals Information & Computer Science Department.
CSE 311 Foundations of Computing I Lecture 9 Proofs and Set Theory Autumn 2012 CSE
CSE 311 Foundations of Computing I Lecture 27 FSM Limits, Pattern Matching Autumn 2012 CSE
Specifying Languages Our aim is to be able to specify languages for use in the computer. The sketch of an FSA is easy for us to understand, but difficult.
CS 103 Discrete Structures Lecture 13 Induction and Recursion (1)
Compiler Construction By: Muhammad Nadeem Edited By: M. Bilal Qureshi.
1 Recursive Definitions and Structural Induction CS 202 Epp section ??? Aaron Bloomfield.
Mathematical Induction Section 5.1. Climbing an Infinite Ladder Suppose we have an infinite ladder: 1.We can reach the first rung of the ladder. 2.If.
Classifications LanguageGrammarAutomaton Regular, right- linear Right-linear, left-linear DFA, NFA Context-free PDA Context- sensitive LBA Recursively.
CSE 311 Foundations of Computing I Lecture 25 Pattern Matching, Cardinality, Computability Spring
CSE 311: Foundations of Computing Fall 2013 Lecture 8: Proofs and Set theory.
CompSci 102 Discrete Math for Computer Science March 13, 2012 Prof. Rodger Slides modified from Rosen.
CSE 311 Foundations of Computing I Lecture 24 FSM Limits, Pattern Matching Autumn 2011 CSE 3111.
Finite Automata Great Theoretical Ideas In Computer Science Victor Adamchik Danny Sleator CS Spring 2010 Lecture 20Mar 30, 2010Carnegie Mellon.
Lecture 10 Closure Properties of Regular Languages Topics: Extended RegExpr Thompson Construction Test 1 Post Mortem October 1, 2008 CSCE 355 Foundations.
CSE 311: Foundations of Computing Fall 2013 Lecture 18: Structural induction, regular expressions.
CS 404Ahmed Ezzat 1 CS 404 Introduction to Compiler Design Lecture 1 Ahmed Ezzat.
CSE 311 Foundations of Computing I Lecture 19 Recursive Definitions: Context-Free Grammars and Languages Spring
CSE 311 Foundations of Computing I Lecture 19 Recursive Definitions: Context-Free Grammars and Languages Autumn 2012 CSE
Chapter 5 With Question/Answer Animations 1. Chapter Summary Mathematical Induction - Sec 5.1 Strong Induction and Well-Ordering - Sec 5.2 Lecture 18.
P Symbol Q E(Q) a b a b a b Convert to a DFA: Start state: Final States:
CSE 311 Foundations of Computing I Lecture 18 Recursive Definitions: Context-Free Grammars and Languages Autumn 2011 CSE 3111.
CSE 311 Foundations of Computing I Lecture 20 Context-Free Grammars and Languages Autumn 2012 CSE
Section Recursion 2  Recursion – defining an object (or function, algorithm, etc.) in terms of itself.  Recursion can be used to define sequences.
Section Recursion  Recursion – defining an object (or function, algorithm, etc.) in terms of itself.  Recursion can be used to define sequences.
CSE 311 Foundations of Computing I Lecture 15 Strong Induction and Recursive Definitions Spring
MA/CSSE 474 Theory of Computation Regular Expressions Intro.
CSE 105 theory of computation
CSE 311 Foundations of Computing I
CSE 311 Foundations of Computing I
CSE 105 theory of computation
CSE 311 Foundations of Computing I
Formal Language Theory
Discrete Structures for Computer Science
Discrete Structures for Computer Science
CSE 311: Foundations of Computing
CSE 311 Foundations of Computing I
CSE 311: Foundations of Computing
CSE 321 Discrete Structures
CSE 321 Discrete Structures
CSE 321 Discrete Structures
Compiler Construction
Introduction Reading: Sections 1.5 – 1.7.
CSE 311 Foundations of Computing I
CSE 105 theory of computation
CSE 321 Discrete Structures
CSE 311 Foundations of Computing I
CSE 311 Foundations of Computing I
CSE 311 Foundations of Computing I
CSE 105 theory of computation
Presentation transcript:

CSE 311 Foundations of Computing I Lecture 17 Structural Induction Spring

Announcements Reading assignments – Today and Monday: 7 th Edition, Section 5.3 and pp th Edition, Section 4.3 and pp Midterm Friday, May 10, MGH 389 – Closed book, closed notes – Tables of inference rules and equivalences will be included on test – Sample questions from old midterms are now posted 2

Highlight from last time… Recursive Definitions of Set S Recursive definition – Basis step: Some specific elements are in S – Recursive step: Given some existing named elements in S some new objects constructed from these named elements are also in S. – Exclusion rule: Every element in S follows from basis steps and a finite number of recursive steps 3

Highlight from last time… Strings An alphabet  is any finite set of characters. The set  * of strings over the alphabet  is defined by – Basis:   * ( is the empty string) – Recursive: if w   *, a  , then wa   * 4

Highlight from last time… Functions on recursively defined sets len ( ) = 0; len (wa) = 1 + len (w); for w   *, a   Reversal: R =  (wa) R = aw R for w   *, a   Concatenation: x = x for x   * x wa = (x w)a for x, w   *, a   5

Highlight from last time… Rooted Binary trees Basis: is a rooted binary tree Recursive Step: If and are rooted binary trees then so is: 6 T1T1 T2T2 T1T1 T2T2

Highlight from last time… Functions defined on rooted binary trees size()=1 size( ) = 1+size(T 1 )+size(T 2 ) height()=0 height( )=1+max{height(T 1 ),height(T 2 )} 7 T1T1 T2T2 T1T1 T2T2

Structural Induction: Proving properties of recursively defined sets How to prove  x ∈ S. P(x) is true: 1. Let P(x) be “…”. We will prove P(x) for all x ∈ S 2. Base Case: Show that P is true for all specific elements of S mentioned in the Basis step 3. Inductive Hypothesis: Assume that P is true for some arbitrary values of each of the existing named elements mentioned in the Recursive step 4. Inductive Step: Prove that P holds for each of the new elements constructed in the Recursive step using the named elements mentioned in the Inductive Hypothesis 5. Conclude that  x ∈ S. P(x) 8

Structural Induction versus Ordinary Induction Ordinary induction is a special case of structural induction: – Recursive Definition of ℕ Basis: 0 ∈ ℕ Recursive Step: If k ∈ ℕ then k+1 ∈ ℕ Structural induction follows from ordinary induction Let Q(n) be true iff for all x ∈ S that take n Recursive steps to be constructed, P(x) is true. 9

Using Structural Induction Let S be given by – Basis: 6  S; 15  S; – Recursive: if x, y  S, then x + y  S. Claim: Every element of S is divisible by 3 10

Using Structural Induction 11

len(x y)=len(x)+len(y) for all strings x and y 12 Let P(w) be “For all strings x, len(x w)=len(x)+len(w)”

For every rooted binary tree T size(T)  2 height(T)

Languages: Sets of Strings Sets of strings that satisfy special properties are called languages. Examples: – English sentences – Syntactically correct Java/C/C++ programs – All strings over alphabet  – Palindromes over  – Binary strings that don’t have a 0 after a 1 – Legal variable names. keywords in Java/C/C++ – Binary strings with an equal # of 0’s and 1’s 14

Regular Expressions over  Each is a “pattern” that specifies a set of strings Basis: – , are regular expressions – a is a regular expression for any a   Recursive step: – If A and B are regular expressions then so are: (A  B) (AB) A* 15

Each regular expression is a “pattern” matches the empty string a matches the one character string a (A  B) matches all strings that either A matches or B matches (or both) (AB) matches all strings that have a first part that A matches followed by a second part that B matches A* matches all strings that have any number of strings (even 0) that A matches, one after another 16

Examples 0* 0*1* (0  1)* (0*1*)* (0  1)* 0110 (0  1)* (0  1)* (0110  100)(0  1)* 17

Regular expressions in practice Used to define the “tokens”: e.g., legal variable names, keywords in programming languages and compilers Used in grep, a program that does pattern matching searches in UNIX/LINUX Pattern matching using regular expressions is an essential feature of hypertext scripting language PHP used for web programming – Also in text processing programming language Perl 18

Regular Expressions in PHP int preg_match ( string $pattern, string $subject,...) $pattern syntax: [01] a 0 or a 1 ^ start of string $ end of string [0-9] any single digit \. period \, comma \- minus. any single character ab a followed by b (AB) ( a | b ) a or b (A  B) a ? zero or one of a (A  ) a * zero or more of a A* a + one or more of a AA* e.g. ^[\-+]?[0-9]*(\.|\,)?[0-9]+$ General form of decimal number e.g or -9,8 (Europe) 19

More examples All binary strings that have an even # of 1’s All binary strings that don’t contain

Regular expressions can’t specify everything we might want Fact: Not all sets of strings can be specified by regular expressions – One example is the set of binary strings with equal #’s of 0’s and 1’s 21