discrete mathematics ? transparency no. 2-0 chapter 3 induction and recursion transparency no. 3-1...

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

Upload: ella-weaver

Post on 17-Jan-2018

231 views

Category:

Documents


0 download

DESCRIPTION

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.

TRANSCRIPT

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

Discrete Mathematics

? Transparency No. 2-0

Chapter 3

Induction and Recursion

Transparency No. 3-1

formal logicmathematical preliminaries

Page 2: 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 Inductions4.2 Strong Induction and Well-ordering4.3 Recursive definitions & Structural Induction4.4 Recursive algorithms4.5 Program correctness

Page 3: 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-3

4.1 Mathematical Induction (MI)

Principle of MI : To show that a property p hold for all nonnegative integer n, it suffices to show that1. Basis step: P(0) is true2. 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.

Page 4: 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-4

Examples

1. Show that for all positive integers n, 1 + 2 + … + n = n (n+1) /2.Pf: Let P(n) denote the proposition:1 + 2 + … + 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., 1 + 2 + … + 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.

Page 5: 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-5

Examples :

2: i=1,n 2i-1 = n2

3. n < 2n4. 3 | n3 - n if n > 0i=1,n 2i = 2(n+1) -1

6. j=1,n arj = arn+1 - a / (r -1)

7. Let Hk = 1 + 1/2 +...+ 1/k => H2n 1 + n/2

8. |S| = n => |2S| = 2n. 9. If n > 3 => 2n < n! 10. ~(S1 ...Sn) = ~S1 U ... U ~Sn.

Page 6: 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-6

7. Let Hk = 1 + 1/2 +...+ 1/k. Then H2n 1 + n/2 for all non-negative integers n.pf: By induction on n. Let p(n) be the proposition H2n 1 + n/2 Basis Step: n = 0. Then H20 = H1 = 1 1 + 0/2. Hence p(0) is true. Ind. Step: Assume p(n) holds for any n I.e., H2n 1 + n/2 holds for any n 0. Then H2n+1 = 1+… + 1/2n + 1/(2n+1) + … 1/(2n+2n) H2n + 2n x 1/(2n+2n)1 + n/2 + ½ = 1 + (n+1)/2. This establishes the ind. step of MI. As a result p(n), i.e., H2n 1 + n/2 , holds for all nonnegative integers n.

Page 7: 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-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 3 + 5 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) + 15 + 1 = 4 x 4 + 5 (n-3).Q.E.D.

Page 8: 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-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.

Page 9: 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-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.

Page 10: 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-10

Strong Induction

[The 2nd 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.

Page 11: 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-11

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 = a1,…,ai

and b = b1,…bj, then k = a1…ai x b1…bj is a product of primes.

Page 12: 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-12

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.

Page 13: 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-13

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 p1,p2,…,pm form a cycle if p1 beats p2, p2 beats p3,…,pm beats p1. Show that if there is a cycle of length m 3, then there must exist a cycle of 3.

Page 14: 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-14

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 p1,p2,…pk 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 p1 and p3. If p3 beats p1, then

p1,p2 , p3 is a cycle of length 3 < k. a contradiction. If p1 beats p3, then p1, p3,…,pk form a cycle of length <

k. This violates the fact that k is the least element of C. As a result, k must = 3.

Page 15: 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-15

3.3 Recursive definition of functions Different ways of defining a functions

Explicit listingSuitable for finite functions only.

Define by giving an explicit expressionEx: F(n) = 2n

recursive (or inductive ) definitionDefine value of objects (sequences, functions,

sets, ...) in terms of values of smaller similar ones.Ex: the sequence 1,2,4,... (an = 2n) can be defined

recursively as follows: 1. a0 = 1; 2. an+1 = 2 x an for n > 0.

Page 16: 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-16

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.

Page 17: 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-17

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

Page 18: 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-18

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,...

Page 19: 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-19

Ex6: Show that f(n) > n-2 whenever n ≥ 3, where = (1+ sqrt(5))/2 = 1.618 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 = 1.6182. 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

Page 20: 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-20

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 r0 = a, r1 = b. r2 = ro mod r1 0, r3 = r1 mod r2 0 ... … rn = rn-2 mod rn-1 0, rn+1 = rn-1 mod rn = 0 i.e., until rn | rn-1 . Then gcd(a,b) = rn. and #division used = n. Note: rn 1 = f2 ; rn-1 2rn 2f2 = f3; rn-2 rn+rn-1 = f2 + f3 = f4 ... r2 r3 + r4 fn-1+fn-2=fn; b = r1 r2r3fn+fn-1 = fn+1.> n-1.

logb > (n-1) log ~ 0.208 (n-1) > (n-1)/5 n -1 < 5 log b < 5 #digit(b). => n 5#digit(b).

Page 21: 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-21

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:Un->U and

t1,..,tn are objects already known to be in the set D, then f(t1,..,tn) 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 = {+})∈

Page 22: 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-22

Notes about recursively defined sets1. 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 & 2or 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.

Page 23: 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-23

Proof of the equivalence of 3',3'' and 3'''

D1: the set obtained by 1,2,3' D1 satisfies 1&2 and any S satisfies 1&2 is a superset of

D1. D2: the set obtained by 1,2,3''.

D2 = the intersection of all subsets Sk of U satisfying 1&2.

D3: the set obtained by 1,2,3'''. For any x U, x D∈ ∈ 3 iff there is a (proof) sequence x1,...,xm = x, such that for each xi (i = 1..m) either

(init: ) xi V or∈ (closure:) there are f in OP and t1,...tn in {x1,..,xi-1} s.t. xi = f(t1,..,tn).

Page 24: 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-24

notes for the proof

1. D2 satisfies 1&2 and is the least of all sets satisfying 1&2 , Hence D1 exists and equals to D2.

2 (2.1) D3 satisfies 1 & 2. (2.2) D3 is contained in all sets satisfying 1 & 2. Hence D3 = D2.

pf: 1.1: Let C = { T1,…,Tm,…} be the collection of all sets satisfying 1&2, and D2, by definition, is ∩C.

Hence V T∈ k for all Tk C and as a result V D∈ ∈ 2.--- (1)

Suppose t1,…,tn D∈ 2, then t1,…,tn T∈ k for each Tk in C,

Hence f(t1,…,tn) T∈ k and as a result f(t1,..,tn) D∈ 2. ---(2).

1.2: Since D2 = ∩C, D2 is a subset of all Tk’s which satisfies 1&2, D2 is the least among these sets.

Hence D1 exists and equals to D2.

Page 25: 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-25

2.1 D3 satisfies 1 & 2.[ by ind.]2.2 D3 is contained in all sets satisfying 1 & 2 [by ind.] Hence D3 = D2.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.∈

Page 26: 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-26

2.2 D3 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 : x1,…,xm = x of x. If m = 1 then x=x1 V, and hence x D.∈ ∈ If m = k+1 > 1, then either xm V (and x∈ m D) or∈ ∃ j1,j2,…jn < m and xm = f(xj1,…,xjn) for some f OP.∈ For the latter case, by ind. hyp., xj1,…xjn D.∈ Since D satisfies closure rule, f(xj1,…,xjn) = xm D. ∈Q.E.D

Page 27: 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-27

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)

Page 28: 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-28

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 t1,..,tn in D, if

P(t1),...,P(tn) holds, then P(f(t1,..,tn)) holds, too.

Page 29: 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-29

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,..xn of x and all xi (i<n) ∉

NP. => If n =1, then x1 = x V (impossible)∈ Else either n > 1 and x V (impossible, like n=1)∈ or n > 1, and x=f(t1,.,tn) for some {t1,..,tn} in

{x1,..xn-1} and P holds for all tk’s => P(x) holds too => x ∉ NP, a contradiction. QED.

Page 30: 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-30

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, … }

Page 31: 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-31

well-formed arithmetic expressionsEx: (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 ?

Page 32: 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-32

More examples: Ex9: Wff (well-formed propositional formulas)

PV: {p1,p2,.. } a set of propositional symbols. OP = {/\, \/, ~, -> } U = the set of all finite strings over PV U OP U {(,)} Init: every pi 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.

Page 33: 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-33

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.

Page 34: 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-34

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).

Page 35: 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-35

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))) }

Page 36: 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-36

3.4 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 an 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.

Page 37: 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-37

3.5 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.

Page 38: 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-38

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.

Page 39: 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-39

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?

Page 40: 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-40

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 <cond> then S 3.2 If <cond> then S1 else S2.

4. Loop: 4.1 while <cond> do S 4.2 repeat S until <cond> // 4.3 do S while <cond> …

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

Page 41: 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-41

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 < x /\ x + z = 5" => 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 = ? (xb,yb) ==>{ya := xb+yb} ==>(xb,xb+yb) = (xa,ya) |= P(xa,ya) =def ‘’xa >

2ya +1’’ => (xb,yb) |= Q = P(xa,ya)[xa/xb;ya/xb+yb] = P(xb,xb+yb) “xb > 2(xb+yb) +1”

Page 42: 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-42

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 > 0 ------------------- --------------------------------------- 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 ?

Page 43: 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-43

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

Page 44: 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-44

Classical rules

Classical rules: P => P1 P {S} Q1 P => P1 P1 {S} Q Q1 => Q P1 {S} Q1---------------------- ----------------------- 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 ≠ 0----------------------------------- ----------------------------------- x = 1 { x := x + 1} x > 1 x+1 > 0 {x := x+1 } x ≠ 0

Page 45: 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-45

Conditional rules

P /\ <cond> {S1} Q P /\~ <cond> {S2} Q ------------------------------------------------ P {if <cond> then S1 else S2 } Q

T /\ x > y => x x x x {y:=x} y x ------------------------------------------------ P /\ <cond> {S} Q T /\ x>y {y := x} y x P /\~<cond> => Q ~ x > y => y x --------------------------- -------------------------------------- P {if <cond> then S} Q T {if x > y then y := x} y x

Page 46: 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-46

While-loop rules Loop invariant:

A statement P is said to be a loop invariant of a while program: While <cond> do S, if it remains true after each iteration of the loop body S.

I.e., P /\ <cond> {S} P is true. While rule:

P /\ <cond> {S} P ----------------------------------------------------- P {while <cond> do S} P /\ ~<cond>

Issues: How to find loop invariant P? Most difficulty of program verification lies in the finding of

appropriate loop invariants.

Page 47: 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-47

While loop exampleShow 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!

Page 48: 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-48

while loop example(cont'd)

n > 0 --- i:= 1; ------ i ≤ n

f := 1; ------ p = "i ≤ n /\ f = i! “

while i < n do (i := i+1 ; f := f x i )

------ p /\ ~ i < n ==> i=n /\ f = i! ==> f = n!

Page 49: 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-49

Another example:

Ex5:Show that the following program is correct: Procedure prod(m,n: integer) : integer1. 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<a => k=a /\ x=ma => x = m |n| 4. If n < 0 then prod := -x => 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.