Loading...

PPT – Recursion and Induction PowerPoint presentation | free to download - id: 1bb649-ZDc1Z

The Adobe Flash plugin is needed to view this content

Recursion and Induction

- Define sets by induction
- zero ? N
- n ? N ? succ(n) ? N
- Define functions on sets by recursion
- ? n ? N plus(zero, n) n
- ? m, n ? N
- plus(succ(m), n) succ(plus(m,n))
- Prove properties about the defined functions

using principle of structural induction.

Example

- 0 n n (obvious)
- n 0 n (not so obvious!)
- Prove that the two rules for are adequate to

rewrite (n0) to n. - (Induction on the structure of the first

argument) - Show that is commutative, that is, (x y)

(y x). - Motivation
- To ensure that sufficient relevant

information has been encoded for automated

reasoning.

Induction Proof

- Definition of
- 0 m m
- s(n) m s(nm)
- Proof that 0 is the identity w.r.t.
- 0m m0 m
- Basis 0 0 0
- Induction Hypothesis
- ? k gt 0
- k 0 k

- Induction Step Show
- s(k) 0 s(k)
- s(k) 0
- s(k 0) (rule 2)
- s(k) (ind hyp)
- Conclusion By principle of mathematical

induction - ?m?? N m 0 m

- Basis
- ?n n 0 n
- ?n 0 n n
- ?n n 0 n 0
- Induction Hypothesis
- ? k gt 0, ?n
- k n n k

- Induction Step
- s(k)n ns(k)
- s(k)n
- (rule2) s(kn)
- (ind. hyp.) s(nk)
- (rule2) s(n)k
- ( STUCK!!!
- our goal ns(k) )
- So prove the auxiliary result.
- s(k)n ks(n)

n

Proof proceeds row by row

m

- Auxiliary result
- s(i) m is(m)
- Basis s(0) m
- (rule2) s(0 m)
- (rule1) s(m)
- (rule1) 0 s(m)
- Induction step
- s(s(j)) m
- (rule2) s(s(j)m)
- (ind.hyp.) s(js(m))
- (rule2) s(j)s(m)

- Overall result
- s(k) n
- (auxiliary result)
- k s(n)
- (induction hyp.)
- s(n) k
- (auxiliary result)
- n s(k)
- ( End of proof of
- commutativity )

Motivation for formal proofs

- In mathematics, proving theorems enhances our

understanding of the domain of discourse and our

faith in the formalization. - In automated theorem proving, these results

demonstrate the adequacy of the formal

description and the symbol manipulation system. - These properties also guide the design of

canonical forms for (optimal) representation of

expressions and for proving equivalence.

Semantic Equivalence vs Syntactic Identity

- Machines can directly test only syntactic

identity. - Several distinct expressions can have the same

meaning (value) in the domain of discourse. To

formally establish their equivalence, the domain

is first axiomatized, by providing axioms

(equations) that characterize (are satisfied by)

the operations. - In practice, an equational specification is

transformed into a set of rewrite rules, to

normalize expressions (into a canonical

form). (Cf. Arithmetic Expression Evaluation)

Induction Principle for Lists

- P(xs) holds for any finite list xs if
- P() holds, and
- Whenever P(xs) holds, it implies that for

every x, P(xxs) also holds. - Prove
- filter p (map f xs)
- map f (filter (p o f) xs)

- Basis
- filter p (map f ) filter p
- map f(filter (p o f) ) map f
- Induction Step
- map f (filter (p o f) (xxs))
- map f
- (if ((p o f) x)
- then x (filter (p o f) xs)
- else filter (p o f) xs )
- case 1 (p o f) x true
- case 2 (p o f) x false

- case 1
- map f ( x (filter (p o f) xs) )
- f x map f (filter (p o f) xs)
- f x filter p (map f xs)
- ( induction hypothesis )
- filter p (f x map f xs)
- ( p (f x) holds

) - filter p (map f (xxs))
- case 2
- filter p (map f (xxs))
- filter p (f x map f xs)
- ( p (f x) does not hold )
- filter p (map f xs)
- map f ( filter (p o f) xs )
- ( induction hypothesis )

Tailoring Induction Principle

- fun interval m n
- if m gt n then
- else m interval (m1) n
- ( Quantity (n-m) reduces at each recursive call.

) - Basis
- P(m,n) holds for m gt n
- Induction step
- P(m,n) holds for m lt n, given

that P(m1,n) holds.

Induction Proof with Auxiliaries

- fun _at_ xs xs
- (yys) _at_ xs y (ys_at_xs)
- fun rev
- rev (xxs) (rev xs) _at_ x
- Prove rev (rev xs) xs
- Basis rev (rev ) rev
- Induction step rev(rev (yys))
- rev ( (rev ys) _at_ y )
- ( via auxiliary result )
- y ( rev (rev ys) )
- y ys ( ind. hyp. )

Auxiliary result

- rev ( zs _at_ z ) z rev zs
- Induction Step
- rev ((uus) _at_ z)
- rev ( u (us _at_ z)) ( _at_ def )
- (rev (us _at_ z)) _at_ u ( rev def)
- (z (rev us)) _at_ u ( ind hyp )
- z ((rev us) _at_ u) ( _at_ def )
- z rev (uus) ( rev def)
- (Creativity required in guessing a suitable

auxiliary result.)

Weak Induction vs Strong Induction

- datatype exp
- Var of string Op of exp exp
- Prove that the number of occurrences of the

constructors in a legal exp are related thus

Var(e) Op(e) 1 - To show this result, we need the result on all

smaller exps, not just the exps whose node

count or height is one less. - Motivates Strong/Complete Induction Principle.

McCarthys 91-function

- fun f x
- if x gt 100 then x - 10
- else f(f(x11))
- fun f x
- if x gt 100 then x - 10
- else 91

Is f total?

- fun f x
- if (x mod 2) 0
- then x div 2
- else f(f(3x1))

View int x as (2i 1) 2k - 1