# Recursion and Induction - PowerPoint PPT Presentation

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

The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
Title:

## Recursion and Induction

Description:

### Recursion and Induction – PowerPoint PPT presentation

Number of Views:25
Avg rating:3.0/5.0
Slides: 18
Provided by: csWr
Category:
Tags:
Transcript and Presenter's Notes

Title: Recursion and Induction

1
Recursion and Induction
2
• 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.

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

4
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

5
• 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
6
• 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 )

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

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

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

10
• 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

11
• 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 )

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

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

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

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

16
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

17
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