Discrete Mathematics ? Transparency No. 2-0 Chapter 3 Induction and Recursion Transparency No. 3-1 formal logic mathematical preliminaries.

Slides:



Advertisements
Similar presentations
Hoare’s Correctness Triplets Dijkstra’s Predicate Transformers
Advertisements

Recursive Definitions and Structural Induction
Copyright © Cengage Learning. All rights reserved. CHAPTER 5 SEQUENCES, MATHEMATICAL INDUCTION, AND RECURSION SEQUENCES, MATHEMATICAL INDUCTION, AND RECURSION.
Induction and Recursion. Odd Powers Are Odd Fact: If m is odd and n is odd, then nm is odd. Proposition: for an odd number m, m k is odd for all non-negative.
Induction and recursion
Mathematical Reasoning
CSE115/ENGR160 Discrete Mathematics 04/12/11 Ming-Hsuan Yang UC Merced 1.
CSE115/ENGR160 Discrete Mathematics 04/03/12 Ming-Hsuan Yang UC Merced 1.
Induction Sections 41. and 4.2 of Rosen Fall 2008 CSCE 235 Introduction to Discrete Structures Course web-page: cse.unl.edu/~cse235 Questions:
Discrete Mathematics Lecture 4 Harper Langston New York University.
Induction Sections 4.1 and 4.2 of Rosen Fall 2010
Discrete Structures Chapter 2 Part B Mathematical Induction
CSE115/ENGR160 Discrete Mathematics 03/31/11
4/17/2017 Section 3.6 Program Correctness ch3.6.
Mathematical Reasoning
Discrete Mathematics ? Transparency No. 2-0 Chapter 3 Mathematical Reasoning Transparency No. 3-1 formal logic mathematical preliminaries.
Chapter Mathematical Induction
Lecture 4 Discrete Mathematics Harper Langston. Algorithms Algorithm is step-by-step method for performing some action Cost of statements execution –Simple.
Module #1 - Logic 1 Based on Rosen, Discrete Mathematics & Its Applications. Prepared by (c) , Michael P. Frank. Modified By Mingwu Chen Induction.
1 Section 3.3 Mathematical Induction. 2 Technique used extensively to prove results about large variety of discrete objects Can only be used to prove.
Mathematical Induction
Properties of the Integers: Mathematical Induction
Induction and recursion
Discrete Mathematics CS 2610 March 26, 2009 Skip: structural induction generalized induction Skip section 4.5.
Induction and recursion
Chapter 6 Mathematical Induction
Reading and Writing Mathematical Proofs
Mathematics Review Exponents Logarithms Series Modular arithmetic Proofs.
Discrete Mathematics and Its Applications Sixth Edition By Kenneth Rosen Chapter 4 Induction and Recursion 歐亞書局.
Chapter 4: Induction and Recursion
Chapter 3 (Part 3): Mathematical Reasoning, Induction & Recursion  Recursive Algorithms (3.5)  Program Correctness (3.6)
© by Kenneth H. Rosen, Discrete Mathematics & its Applications, Sixth Edition, Mc Graw-Hill, 2007 Chapter 4 (Part 3): Mathematical Reasoning, Induction.
Section 5.3. Section Summary Recursively Defined Functions Recursively Defined Sets and Structures Structural Induction.
Chapter 5 With Question/Answer Animations. Section 5.1.
Reading and Writing Mathematical Proofs Spring 2015 Lecture 4: Beyond Basic Induction.
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.
Recursive Algorithms &
COP4020 Programming Languages Introduction to Axiomatic Semantics Prof. Robert van Engelen.
Section 3.3: Mathematical Induction Mathematical induction is a proof technique that can be used to prove theorems of the form:  n  Z +,P(n) We have.
ICS 253: Discrete Structures I Induction and Recursion King Fahd University of Petroleum & Minerals Information & Computer Science Department.
CompSci 102 Discrete Math for Computer Science March 1, 2012 Prof. Rodger Slides modified from Rosen.
CS 103 Discrete Structures Lecture 13 Induction and Recursion (1)
Foundations of Discrete Mathematics Chapters 5 By Dr. Dalia M. Gil, Ph.D.
1 INFO 2950 Prof. Carla Gomes Module Induction Rosen, Chapter 4.
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.
Mathematical Induction
CS104:Discrete Structures Chapter 2: Proof Techniques.
CompSci 102 Discrete Math for Computer Science March 13, 2012 Prof. Rodger Slides modified from Rosen.
Chapter 5. 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 we can reach.
Chapter 5 With Question/Answer Animations 1. Chapter Summary Mathematical Induction - Sec 5.1 Strong Induction and Well-Ordering - Sec 5.2 Lecture 18.
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.
Mathematical Induction And Recursion Discrete Math Team KS MATEMATIKA DISKRIT (DISCRETE MATHEMATICS ) 1.
Fall 2002CMSC Discrete Structures1 Chapter 3 Sequences Mathematical Induction Recursion Recursion.
Chapter 5 1. Chapter Summary  Mathematical Induction  Strong Induction  Recursive Definitions  Structural Induction  Recursive Algorithms.
Chapter 4: Induction and Recursion
Chapter 4 (Part 3): Mathematical Reasoning, Induction & Recursion
CSE15 Discrete Mathematics 04/12/17
Advanced Algorithms Analysis and Design
Induction and recursion
Induction and Recursion
Mathematical Induction Recursion
Chapter 5 Induction and Recursion
Copyright © Cengage Learning. All rights reserved.
Induction and recursion
Applied Discrete Mathematics Week 9: Integer Properties
Advanced Analysis of Algorithms
Induction and Recursion
Recursion.
Program Correctness an introduction.
Presentation transcript:

Discrete Mathematics ? Transparency No. 2-0 Chapter 3 Induction and Recursion Transparency No. 3-1 formal logic mathematical preliminaries

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No. 3-2 Contents 4.1 Mathematical Inductions 4.2 Strong Induction and Well-ordering 4.3 Recursive definitions & Structural Induction 4.4 Recursive algorithms 4.5 Program correctness

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Mathematical Induction (MI)  Principle of MI : To show that a property p hold for all nonnegative integer n, it suffices to show that 1. Basis step: P(0) is true 2. Inductive step: P(n)  P(n+1) is true for all nonnegative integer n. P(n) in 2. is called the inductive hypothesis. Notes: 1. Math. Ind. is exactly the inference rule: P(0),  n P(n)  P(n+1)  n P(n) for any property P 2. If the intended domain is all positive integers, then the basis step should be changed to: 1.Basis step: P(1) is true.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No. 3-4 Examples 1.Show that for all positive integers n, … + n = n (n+1) /2. Pf: Let P(n) denote the proposition: … + n = n (n+1) /2. The proof is by induction on n. Basis step: P(1) is true since 1 = 1 x (1+1) /2. Ind. step: Assume p(k) holds for arbitrary integer k > 0, i.e., … + k = k(k+1)/2. Then 1 + … + k + (k+1) = k(k+1)/2 + (k+1) = k(k+1)/2 + 2(k+1)/2 = (k+1)[(k+1)+1] /2. Hence p(k+1) is also true. This completes the proof of basis step and inductive step of MI, and hence by MI, p(n) holds for all positive integers n.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No. 3-5 Examples : 2:  i=1,n 2i-1 = n 2 3. n < 2n 4. 3 | n 3 - n if n > 0  i=1,n 2 i = 2 (n+1)  j=1,n ar j = ar n+1 - a / (r -1) 7. Let H k = 1 + 1/ /k => H 2 n  1 + n/2 8. |S| = n => |2 S | = 2 n. 9. If n > 3 => 2 n < n! 10. ~(S 1 ...  S n ) = ~S 1 U... U ~S n.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Let H k = 1 + 1/ /k. Then H 2 n  1 + n/2 for all non-negative integers n. pf: By induction on n. Let p(n) be the proposition H 2 n  1 + n/2 Basis Step: n = 0. Then H 2 0 = H 1 = 1  1 + 0/2. Hence p(0) is true. Ind. Step: Assume p(n) holds for any n  I.e., H 2 n  1 + n/2 holds for any n  0. Then H 2 n+1 = 1+… + 1/2 n + 1/(2 n +1) + … 1/(2 n +2 n )  H 2 n + 2 n x 1/(2 n +2 n )  1 + n/2 + ½ = 1 + (n+1)/2. This establishes the ind. step of MI. As a result p(n), i.e., H 2 n  1 + n/2, holds for all nonnegative integers n.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No. 3-7 More examples: 14. for every k  12, there are m,n  0 s.t. k = 4m + 5n. pf: By induction on k. Basis: If k < 12, then we are done. If k = 12, then = 4 x x 0. Inductive step: k = t + 1 > 12 ( Hence t  12 ) By Ind. Hyp., t = 4m + 5n. Then k = t + 1 = 4m + 5n + 1. case 1: m > 0 => k = 4(m-1) + 5 (n+1) case 2: m = 0 => t = 5n > 11 => n  3. hence t+1 = 5(n-3) = 4 x (n-3). Q.E.D.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No. 3-8 Correctness of MI.  Correctness of MI: Let p(.) be a property about positive integers. If p(1) holds and p(n) implies p(n+1) for all n, then it is true that p(n) holds for all n. Pf: Assume MI is incorrect. i.e. the set NP = {k | p(k) is false} is not empty. Let m be the least number of NP ---existence by well-order theorem Since p(0), 0  NP and m >0. => m-1 exists and p(m-1) is true => P(m) holds [by the inductive step of MI ] => m  NP => a contradiction. Q.E.D.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No. 3-9 Strong Induction and Well-Orering  [A problem MI is hard to prove: ] If n is a positive number > 1, then n can be written as a product of primes.  To prove this theorem using induction, we needs a stronger form of MI.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Strong Induction  [The 2 nd form of MI(Strong Induction; complete Induction)] To prove that p(n) holds for all non-negative integer n, where p(n) is a propositional function of n, It suffices to show that Basis step: P(0) holds Inductive step: P(0) /\ P(1) /\...,/\p(k-1)  P(k) holds for all k  0. I.e., Assume p(0),…p(k-1) hold for arbitrary k, and then show that p(k) is true as well.  P(0) /\ P(1) /\...,/\p(k-1) (or  t t<k  P(k)) is the called the induction hypothesis of the proof.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Example Ex2 : If n is a positive number > 1, then n can be written as a product of primes. Pf: Let p(n) be the proposition : if n> 1 then it can be written as a product of primes. Basis step: p(1) holds since n  1, not > 1. Ind. step: Let k be arbitrary positive number and assume p(t) holds for all t < k. There are two cases to consider: case 1: k is a prime number, then p(k) holds since k = k is the product of itself. case 2: k is a composite number. The by definition, there are two numbers 1< a, b < k such that k = ab. By ind. hyp., p(a) and p(b) hold and since a, b > 1, a and b can be written as a product of primes. let a = a 1,…,a i and b = b 1,…b j, then k = a 1 …a i x b 1 …b j is a product of primes.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Correctness of Strong Induction and well-ordering.  Correctness of SI: Let p(.) be a property about positive integers. If p(1) holds and p(1) /\ p(n) …/\p(n) implies p(n+1) for all n, then it is true that p(n) holds for all n. Pf: Assume SI is incorrect. i.e. the set NP = {k | p(k) is false} is not empty. Let m be the least number of NP ---existence by well-order property of positive integers Since p(1), 1  NP and m >1. => m-1 exists and p(m-1) is true => P(m) holds [by the inductive step of SI ] => m  NP => a contradiction. Q.E.D.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Well-ordered Property  [Well-ordered property of natural numbers]Every non-empty subset of non-negative integers has a least element.  The property can be used directly in the proof (in place of MI or SI). Ex: In round-robin tournament, every player plays every other exactly once and each match has a winner and a looser. We say p 1,p 2,…,p m form a cycle if p 1 beats p 2, p 2 beats p 3,…,p m beats p 1. Show that if there is a cycle of length m  3, then there must exist a cycle of 3.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Ex 6 pf: Let C be the set { k | there is a cycle of length k } in the tournament. Obviously, m  C and C is a subset of non-negative integers. So by well- ordering property, C has a least element, say k. Let p 1,p 2,…p k be such cycle. since there is no cycle of 1 or 2, k must  3. If k = 3, then we are done. O/w, k > 3 and consider p 1 and p 3. If p 3 beats p 1, then p 1,p 2, p 3 is a cycle of length 3 < k. a contradiction. If p 1 beats p 3, then p 1, p 3,…,p k form a cycle of length < k. This violates the fact that k is the least element of C. As a result, k must = 3.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Recursive definition of functions  Different ways of defining a functions Explicit listing  Suitable for finite functions only. Define by giving an explicit expression  Ex: F(n) = 2 n recursive (or inductive ) definition  Define value of objects (sequences, functions, sets,...) in terms of values of smaller similar ones.  Ex: the sequence 1,2,4,... (a n = 2 n ) can be defined recursively as follows: 1. a 0 = 1; 2. a n+1 = 2 x a n for n > 0.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Recursively defined functions  To define a function over natural numbers: specify the value of f at 0 (i.e., f(0)) Given a rule for finding f(n) from f(n-1),..., f(0).  i.e., f(n) = some expression in terms of n, f(n),..., f(0).  Ex1: f(n) = 3 if n = 0 = 2f(n-1) +3 if n >0 => f(0) = 3, f(1) = 2f(0) +3 = 9 f(2) = 2f(1)+3 = 21,... This guarantees f be defined for all numbers.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No More examples functions  Ex2: The factorial function f(n) = n! f(0) = 1 f(n) = n f(n-1) for all n > 0.  Recursively defined functions (over N) are well defined Pf: Let P(n) = "there is at least one value assigned to f(n)". Q(n) = "there are at most one value assigned to f(n)". We show P(n) hold for all n by MI.. basis: P(0) holds. Ind. : assume p(k) holds for all k ≤ n => since f(n+1) can be assigned a value by evaluating the expr(n,f(0),..,f(n)), where by ind. hyp. all f(i)s (i<n) have been assigned a value. The fact that Q(n) holds for all n is trivial, since each f(k) appear at the left hand side of the definition exactly once. QED

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No More examples: Ex5: The Fibonacci number: f(0) = 0; f(1) = 1; f(n) = f(n-1) + f(n-2) for n > 1. ==> 0,1,1,2,3,5,8,...

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Ex6: Show that f(n) >  n-2 whenever n ≥ 3, where  = (1+ sqrt(5))/2 = is the golden ratio  Properties of  :  2 = (1 +  ). Pf: (by MI). Let P(n) = "f(n) >  n-2 ". Basis: P(3) holds since f(3) = 2 >  3-2. Ind.step: (for n ≥ 4) If n = 4 =>f(4) = 3 >  4-2 = If n > 4 => by ind. hyp., f(n-1) >  n-3, f(n-2) >  n-4 Hence f(n) = f(n)+f(n-1) >  n-3 +  n-4 =(1+  n-4 =  n-2. QED

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Lame's theorem  a,b: positive integer with a  b. => #divisions used by the Euclidean algorithm to find gcd(a,b)  5 x #decimal digits in b. Pf: seq of equations used for finding gcd(a,b) where r 0 = a, r 1 = b. r 2 = r o mod r 1  0, r 3 = r 1 mod r 2  0... … r n = r n-2 mod r n-1  0, r n+1 = r n-1 mod r n = 0 i.e., until r n | r n-1. Then gcd(a,b) = r n. and #division used = n. Note: r n  1 = f 2 ; r n-1  2r n  2f 2 = f 3 ; r n-2  r n +r n-1 = f 2 + f 3 = f 4... r 2  r 3 + r 4  f n-1 +f n-2 =f n ; b = r 1  r 2  r 3  f n +f n-1 = f n+1.>  n-1. logb > (n-1) log  ~ (n-1) > (n-1)/5 n -1 n  5#digit(b).

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Recursively defined sets  Given a universal set U, a subset V of U and a set of operations OP on U, we often define a subset D of U as follows: 1. Init: Every element of V is an element of D. 2. Closure: For each operation f in OP, if f:U n ->U and t 1,..,t n are objects already known to be in the set D, then f(t 1,..,t n ) is also an object of D.  Example: The set S = {3n | n >0} N can be defined recursively as follows: 1. Init: 3 ∈ S (i.e., V = { 3 } ) 2. closure: S is closed under +. i.e., If a,b ∈ S then so are a+b. (OP = {+})

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Notes about recursively defined sets 1. The definition of D is not complete (in the sense that there are multiple subsets of U satisfying both conditions. Ex: the universe U satisfies (1) and (2), but it is not Our intended D. 2. In fact the intended defined set 3': D is the least of all subsets of U satisfying 1 & 2, or 3'': D is the intersection of all subsets of U satisfying 1 & 2 or 3''': Only objects obtained by a finite number of applications of rule 1 & 2 are elements of D. 3. It can be proven that 3',3'',and 3''' are equivalent. 4. Hence, to be complete, one of 3',3'' or 3''' should be appended to condition 1 & 2, though it can always be omitted(or replaced by the adv. inductively, recursively) with such understanding in mind.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Proof of the equivalence of 3',3'' and 3'''  D 1 : the set obtained by 1,2,3' D 1 satisfies 1&2 and any S satisfies 1&2 is a superset of D 1.  D 2 : the set obtained by 1,2,3''. D2 = the intersection of all subsets Sk of U satisfying 1&2.  D 3 : the set obtained by 1,2,3'''. For any x ∈ U, x ∈ D 3 iff there is a (proof) sequence x 1,...,x m = x, such that for each x i (i = 1..m) either  (init: ) x i ∈ V or  (closure:) there are f in OP and t 1,...t n in {x 1,..,x i-1 } s.t.  x i = f(t 1,..,t n ).

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No notes for the proof 1.D 2 satisfies 1&2 and is the least of all sets satisfying 1&2, Hence D 1 exists and equals to D 2. 2 (2.1) D 3 satisfies 1 & 2. (2.2) D 3 is contained in all sets satisfying 1 & 2. Hence D 3 = D 2. pf: 1.1: Let C = { T 1,…,T m,…} be the collection of all sets satisfying 1&2, and D 2, by definition, is ∩C. Hence V ∈ T k for all T k ∈ C and as a result V ∈ D (1) Suppose t 1,…,t n ∈ D 2, then t 1,…,t n ∈ T k for each T k in C, Hence f(t 1,…,t n ) ∈ T k and as a result f(t 1,..,t n ) ∈ D (2). 1.2: Since D 2 = ∩C, D 2 is a subset of all T k ’s which satisfies 1&2, D 2 is the least among these sets. Hence D 1 exists and equals to D 2.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No D 3 satisfies 1 & 2.[ by ind.] 2.2 D 3 is contained in all sets satisfying 1 & 2 [by ind.] Hence D 3 = D 2. pf: 2.1: two propositions need to be proved: V ⊆ D3 ---(1) and {t1,..,tn} ⊆ D3 => f(t1,…,tn) ∈ D3 ---(2). (1) is easy to show, since for each x in V, the singleton sequence x is a proof. Hence x ∈ D3. As to (2), since {t1,..,tn} ⊆ D3, by definition, there exist proof sequences S1,S2,…,Sn for t1,…,tn, respectively. We can thus join them together to form a new sequence S = S1,S2,…,Sn. We can then safely append f(t1,…,tn) to the end of S to form a new sequence for f(t1,…,tn), since all t1,…,tn have appeared in S. As a result f(t1,…,tn) ∈ D3. (2) thus is proved.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No D 3 is contained in all sets satisfying 1 & 2 [by ind.] pf: Let D be any set satisfying 1&2. We need to show that for all x, x ∈ D 3 =>x ∈ D. The proof is by ind. on the length of the m of the proof sequence : x 1,…,x m = x of x. If m = 1 then x=x 1 ∈ V, and hence x ∈ D. If m = k+1 > 1, then either x m ∈ V (and x m ∈ D) or ∃ j 1,j 2,…j n < m and x m = f(x j1,…,x jn ) for some f ∈ OP. For the latter case, by ind. hyp., x j1,…x jn ∈ D. Since D satisfies closure rule, f(x j1,…,x jn ) = x m ∈ D. Q.E.D

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Example:  Ex 7': The set of natural numbers can be defined inductively as follows: Init: 0 in N. closure: If x in N, then x' in N.  => 0, 0',0'',0''',... are natural numbers  (unary representation of natural numbers)

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Induction principles III (structural induction)  D: a recursively defined set  P; a property about objects of D.  To show that P(t) holds for all t in D, it suffices to show that 1. basis step: P(t) holds for all t in V. 2. Ind. step: For each f in OP and t 1,..,t n in D, if P(t1),...,P(tn) holds, then P(f(t1,..,tn)) holds, too.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Correctness of SI  Show the correctness of structural induction. Pf: Assume not correct. => NP = {t ∈ D | P(t) does not hold} is not empty. => ∃ x ∈ NP s.t. ∃ a derivation x 1,..x n of x and all x i (i<n) ∉ NP. => If n =1, then x 1 = x ∈ V (impossible) Else either n > 1 and x ∈ V (impossible, like n=1) or n > 1, and x=f(t 1,.,t n ) for some {t 1,..,t n } in {x 1,..x n-1 } and P holds for all t k ’s => P(x) holds too => x ∉ NP, a contradiction. QED.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No MI is a specialization of SI  Rephrase the SI to the domain N, we have: To show P(t) holds for all t ∈ N, it suffices to show that Init: P(0) holds Ind. step: [OP={ ‘ }] for any x in N, If P(x) holds than P(x') holds.  Notes: 1. The above is just MI. 2. MI is only suitable for proving properties of natural numbers; whereas SI is suitable for proving properties of all recursively defined sets. 3. The common variant of MI starting from a value c ≠ 0,1 is also a special case of SI with the domain D = {c, c+1, c + 2, … }

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No well-formed arithmetic expressions Ex: (2 +x), (x + (y/3)),... (ok) x2+, xy*/3... (no) Let Vr = {x,y,..,} be the set of variables, M = numerals = finite representations of numbers OP = {+,-,x,/,^} U = the set of all finite strings over Vr U M U OP U {(,)}. The set of all well-formed arithmetic expressions (wfe) can be defined inductively as follows: 1. Init: every variable x in Vr and every numeral n in M is a wfe. 2. closure: If A, B are wfe, then so are (x+y), (x-y), (x * y), (x / y) and (x ^ y). Note: "1 + x " is not a wfe. Why ?

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No More examples:  Ex9: Wff (well-formed propositional formulas) PV: {p 1,p 2,.. } a set of propositional symbols. OP = {/\, \/, ~, -> } U = the set of all finite strings over PV U OP U {(,)} Init: every p i in PV is a wff closure: If A and B are wffs, then so are (A/\B), (A \/B), (A->B), ~A.  Ex10: [strings]  : an alphabet  *: the set of finite strings over  is defined inductively as follows: 1. Init:  is a string. 2. closure: If x is a string and a a symbol in , then a·x is a string.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No  Ex11: Recursively define two functions on  *. len :  * -> N s.t. len(x) = the length of the string x. basis: len(  ) = 0 Ind. step: for any x in   and a in , len(ax) = len(x) + 1. · :  * x  *   * s.t. x · y = the concatenation of x and y. Basis:  · y = y for all string y. recursive step: (a · z) · y = a · (z · y) for all symbols a and strings z,y.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No  Prove properties of len(-) on  *: Ex12: show that len(x · y) = len(x) +len(y) for any x,y ∈  *. By SI on x. Let P(x) = "len(xy) = len(x) +len(y)". Basis: x = . => x · y = y => len(x · y) = len(y) = len(  ) + len(y). Ind. step: x = az len(x · y) = len((a · z) · y) = len((a · (z · y)) = 1 + len(zy) = 1+ len(z) + len(y) =len(x) +len(y).

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Where we use Recursion  Define a domain numbers, lists, trees, formulas, strings,...  Define functions on recursively defined domains  Prove properties of functions or domains by structural induction.  compute recursive functions --> recursive algorithm  Ex: len (x){ // x : a string if x =  then return(0) else return(1+ l(tl(x))) }

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Recursive algorithm  Definition: an algorithm is recursive if it solve a problem by reducing it to an instance of the same problem with smaller inputs.  Ex1: compute a n where a ∈ R and n ∈ N.  Ex2: gcd(a,b) a, b ∈ N, a > b  gcd(a,b) = def if b = 0 then a else gcd(b, a mod b).  Ex: show that gcd(a,b) will always terminate.  Comparison b/t recursion and iteration Recursion: easy to read, understand and devise. Iteration: use much less computation time. Result: programmer --> recursive program --> compiler --> iterative program --> machine.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Program correctness  After designing a program to solve a problem, how can we assure that the program always produce correct output?  Types of errors in a program: syntax error --> easy to detect by the help of compiler semantic error --> test or verify  Program testing can only increase our confidence about the correctness of a program; it can never guarantee that the program passing test always produce correct output.  A program is said to be correct if it produces the correct output for every possible input.  Correctness proof generally consists of two steps: Termination proof : Partial correctness: whenever the program terminates, it will produce the correct output.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Program verification  Problem: what does it mean that a program produce the correct output (or results)?  By specifying assertions (or descriptions) about the expected outcome of the program.  Input to program verifications: Pr : the program to be verified. Q : final assertions (postconditions), giving the properties that the output of the program should have P : initial assertions(preconditions), giving the properties that the initial input values are required to have.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Hoare triple:  P,Q; assertions  S: a program or program segment.  P {S} Q is called a Hoare triple, meaning that S is partially correct (p.c.) w.r.t P,Q,i.e., whenever P is true for I/P value of S and terminates, then Q is true for the O/P values of S. Ex1: x=1 {y := 2; z := x+ y} z = 3 is true. Why ? Ex 2: x = 1 { while x > 0 x++ } x = 0 is true. why?

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Typical program constructs: 1. assignment: x := expr x := x+y-3 2. composition: S1;S2 Execute S1 first, after termination, then execute S2. 3. Conditional: 3.1 If then S 3.2 If then S1 else S2. 4. Loop: 4.1 while do S 4.2 repeat S until // 4.3 do S while …  Other constructs possible, But it can be shown that any program can be converted into an equivalent one using only 1,2,3.1 and 4.1

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Assignment rule  P[x/expr] {x := expr } P P[x/expr] is the result of replacing every x in P by the expression expr. ex: P = "y P[x/3] = “y < 3 /\ 3+z = 5". Why correct? consider the variable spaces (...,x,...) == x := expr ==> (..., expr,...) |= P Hence if P[x/expr] holds before execution, P will hold after execution. Example: Q {y := x+y} x > 2y + 1 => Q = ? (x b,y b ) ==>{y a := x b +y b } ==>(x b,x b +y b ) = (x a,y a ) |= P(x a,y a ) = def ‘’x a > 2y a +1’’ => (x b,y b ) |= Q = P(x a,y a )[x a /x b ;y a /x b +y b ] = P(x b,x b +y b )  “x b > 2(x b +y b ) +1”

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Composition rules:  Splitting programs into subprograms and then show that each subprogram is correct.  The composition rule: P {S1} Q x = 0 { x:= x+2} ? Q {S2} R ? { x := x-1} x > P {S1;S2} R x=0 {x:= x+2; x:= x -1} x > 0  Meaning: Forward reading: Backward reading: to prove P{S1;S2}Q, it suffices to find an assertion Q s.t. P{S1}Q and Q {S2}R.  Problem: How to find Q ?

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Example:  Show that x =1 {y := 2; z := x +y} z = 3  x = 1 {y := 2; z := x+y} z = 3   x=1 {y := 2} ? ? {z := x+y} z = 3

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Classical rules Classical rules: P => P1 P {S} Q1 P => P1 P1 {S} Q Q1 => Q P1 {S} Q Q1 => Q P {S} Q P{S} Q P {S} Q Examples: x = 1 => x+1>1 x+1>0 {x := x + 1} x > 0 x+1>1 { x := x + 1 } x > 1 x > 0 => x ≠ x = 1 { x := x + 1} x > 1 x+1 > 0 {x := x+1 } x ≠ 0

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Conditional rules P /\ {S1} Q P /\~ {S2} Q P {if then S1 else S2 } Q T /\ x > y => x  x x  x {y:=x} y  x P /\ {S} Q T /\ x>y {y := x} y  x P /\~ => Q ~ x > y => y  x P {if then S} Q T {if x > y then y := x} y  x

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No While-loop rules  Loop invariant: A statement P is said to be a loop invariant of a while program: While do S, if it remains true after each iteration of the loop body S. I.e., P /\ {S} P is true.  While rule: P /\ {S} P P {while do S} P /\ ~  Issues: How to find loop invariant P? Most difficulty of program verification lies in the finding of appropriate loop invariants.

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No While loop example Show that n>0 { i:= 1; f := 1; while i < n do (i := i+1 ; f := f x i ) } f = n! To prove the program terminates with f = n!, a loop invariant is needed. Let p = "i ≤ n /\ f = i!" First show that p is a loop invariant of the while program i.e., i  n /\ f = i! /\ i < n { i:= i+1; f:= f x i} i  n /\ f=i!

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No while loop example(cont'd) n > i:= 1; i ≤ n f := 1; p = "i ≤ n /\ f = i! “ while i < n do (i := i+1 ; f := f x i ) p /\ ~ i i=n /\ f = i! ==> f = n!

Discrete Mathematics Ch 3 Mathematical reasoning Transparency No Another example: Ex5:Show that the following program is correct: Procedure prod(m,n: integer) : integer 1. If n < 0 then a := -n else a := n ; a = |n| 2. k := 0 ; x := 0 3. while k < a do --- p = "x = mk /\ k ≤ a" is a loop x := x + m; invariant. k := k+1 enddo --- x = mk /\ k ≤ a /\ ~k k=a /\ x=ma => x = m |n| 4. If n prod = - m |n| = mn else prod := x => Prod = m |n| = mn ---- prod = mn. Hence the program is [partially] correct ! Note: to be really correct, we need to show that the program will eventually terminates.