Recursion and Induction - PowerPoint PPT Presentation

About This Presentation
Title:

Recursion and Induction

Description:

Machines can directly test only syntactic identity. ... In practice, an equational specification is transformed into a set of rewrite ... – PowerPoint PPT presentation

Number of Views:27
Avg rating:3.0/5.0
Slides: 18
Provided by: csWr
Learn more at: http://cecs.wright.edu
Category:

less

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
Write a Comment
User Comments (0)
About PowerShow.com