33
David Evans http://www.cs.virginia.edu/ ~evans CS655: Programming Languages University of Virginia Computer Science Lecture 10: Fixed Points ad Infinitum M.C. Escher, Moebius Ants

David Evans cs.virginia/~evans

  • Upload
    mimir

  • View
    43

  • Download
    2

Embed Size (px)

DESCRIPTION

Lecture 10: Fixed Points ad Infinitum. M.C. Escher, Moebius Ants. David Evans http://www.cs.virginia.edu/~evans. CS655: Programming Languages University of Virginia Computer Science. Goal: Understand the Least Fixed Point Theorem. - PowerPoint PPT Presentation

Citation preview

Page 1: David Evans cs.virginia/~evans

David Evanshttp://www.cs.virginia.edu/~evans

CS655: Programming LanguagesUniversity of VirginiaComputer Science

Lecture 10: Fixed Points ad Infinitum

M.C. Escher, Moebius Ants

Page 2: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 2

Goal: Understand theLeast Fixed Point TheoremIf D is a pointed complete partial order, then a continuous function f: D D has a least fixed point (fixD f) defined by

D { (fn D ) | n 0 }

Page 3: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 3

Last Time

• A domain is a structured set of values

• A function domain is constructed from two primitive domains, D1 D2 by associating an element of D2 with each element of D1.

• A fixed point of a function f: D1 D2 is

an element d D such that f d = d.

Page 4: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 4

Last Time, cont.

• Any recursive definition can be encoded with a (non-recursive) generating function by abstracting out the thing that is defined.

• A fixed point of a generating function is a solution of its associated recursive definition.

Page 5: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 5

Last Time, cont.

• (D, ) is a partial order if is:– reflexive: – transitive: – anti-symmetric:

• (D, ) is a pointed partial order if it has a

bottom element u D such that u d for all

elements d D.

a b and b a imply a = b

a aa b and b c imply a c

Page 6: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 6

Ordered Product Domains

If <D, D > and <E, E > is are POs, <D x E , D x E > is a partial order, ordered by:

<d1, e1> D x E <d2, e2>

if d1 D d2 and e1 E e2

Page 7: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 7

Ordered Product Example

• What is << Nat, > x < Nat, >>?

<0, 0>

<0, 1> <1, 0>

<0, 2> <2, 0>

<1, 73><3, 3>

(Hasse diagram)

Page 8: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 8

Ordered Function Domains

If <D, D > and <E, E > is are POs, <D E , D E > is a partial order, ordered by: f D E

f1 D E f2

if for all d D,(f1 d) E (f2 d)

Page 9: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 9

Ordered Function Example

< Bool, > = { false, true }

false true true false

What is << Bool, > < Bool, >>?

<{false, false}, {true, false}>

<{false, false}, {true, true}> <{false, true}, {true, false}>

<{false, true}, {true, true}>

Page 10: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 10

T-Shirt Exercise

• What is the order of the domain:

<<Bool, > x < Bool, > < Bool, >>

(includes xor, and, or, implies, ...)

Page 11: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 11

The Domain Nat

Nat

0 1 2 3 4 ...

Page 12: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 12

Ordered Function Bottom• What is the bottom of

<Nat, > <Nat, > ?

{ <0, >, <1, >, <2, >, ... }

= { <x, > }

= { }

If a function map has no entry for x,

it maps x to .

Page 13: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 13

Least Upper Bounds

• The least upper bound of a subset X of a domain D is the weakest element of X that is at least as strong as every other element of X. l X = D X

if for every x X, x l

and for every m X such that x m x X, l m

Page 14: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 14

Least Upper Bounds in Nat

Nat

0 1 2 3 4 ...

Nat{ 0, 2, 4, 6, ... } =

Nat{Nat, 3, 17} =

any element of { 0, 2, 4, 6, ... }

3 or 17

Page 15: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 15

Complete Partial Orders• A partial order D is complete if every

chain in D has a least upper bound in D. – Any upward chain through a Hasse diagram

converges to a limit– All finite partial orders are complete

– Most sensible partial orders (including Nat) are complete (see Gifford’s notes for some incomplete POs.)

Page 16: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 16

Monotonic Functions• f D E is monotonic if d1 D d2

implies (f d1) E (f d2).

• Is not over << Bool, > < Bool, >> monotonic?

• Is { <x, x * 2>} over << Nat, > < Nat, >> monotonic?

• What functions are monotonic over Nat Nat?

Page 17: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 17

Continuous Functions• f D E is continuous if, for all chains

C in D, f applied to the least element of the chain over D is the least element of (f c) for cC over E.

• Continuity is like monotonicity, but it works for limits of infinite chains also.

• If the CPO is finite, monotonicity implies continuity.

• Continuity always implies monotonicity

Page 18: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 18

Monotonic/Continuous Functions in Domain Nat

Nat

0 1 2 3 4 ...

What is a monotonic function in Nat?

What is a continuous function in Nat?

Page 19: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 19

Least Fixed Point Theorem

• If D is a pointed complete partial order, then a continuous function f: D D has a least fixed point (fixD f) defined by

D { (fn D ) | n 0 }

The least upper bound of applying f any number of times, starting with D.

Page 20: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 20

Sanity Check

g: (Nat Nat) (Nat Nat) = f. n. if (n = 0) then 1

else (n * ( f (n - 1)))

What is (fixNat Nat g)?

In

Page 21: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 21

Sanity Check

g: (Nat Nat) (Nat Nat) = f. n. if (n = 0) then 1

else (n * ( f (n - 1)))

What is (fixNat Nat g)?

Page 22: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 22

What is the bottom of

Nat Nat?

{ <x, > | x Nat }

Page 23: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 23

What is (g { <x, > | x Nat })?

g = f. n. if (n = 0) then 1

else (n * ( f (n - 1)))

g { <x, > | x Nat } =

{<0, 1>, <x, > | x > 0 and x Nat }

Page 24: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 24

What is (g (g { <x, > | x Nat }))?

g = f. n. if (n = 0) then 1

else (n * ( f (n - 1)))

g { <0, 1>, <x, > | x > 0 and x Nat } =

{ <0, 1>, <1, 1>,

<x, > | x > 1 and x Nat }

Page 25: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 25

What is LUB (gn { <x, > | x Nat }))?

g = f. n. if (n = 0) then 1

else (n * ( f (n - 1)))

g { <0, 1>, <x, > | x > 0 and x Nat } =

{ <0, 1>, <1, 1>, <2, 2>, <3, 6>, ...}

= {<x, x!> | x Nat }

Page 26: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 26

• Think of bottom as the element with the least information, or the “worst” possible approximation.

• To find the least fixed point in a function domain, start with the bottom of the function domain and iterate...

Getting to the of things

Page 27: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 27

Fixed Point Theorem

• Do all -calculus terms have a fixed point?

• (Smullyan: Is there a Sage bird?)

Page 28: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 28

Finding the Sage Bird

F , X such that FX = X

• Proof:Let W = x.F(xx) and X = WW.

X = WW = ( x.F(xx))W

F (WW) = FX

Page 29: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 29

Why of Y?

• Y is f. WW:Y f. (( x.f (xx)) ( x. f (xx)))

• Y calculates a fixed point (but not necessarily the least fixed point) of any lambda term!

• If you’re not convinced, try calculating ((Y fact) n). (PS1, 1e)

Page 30: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 30

Still Uncomfortable?

Page 31: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 31

Remember the problem reducing Y

• Different reduction orders produce different results

• Reduction may never terminate• Normal Form means no more ß-reductions

can be done– There are no subterms of the form (x. M)N

• Not all -terms can be written in normal form

Page 32: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 32

Church-Rosser Theorem• If a -term has a normal form, any reduction

sequence that produces a normal form always the same normal form– Computation is deterministic– Some orders of evaluation might not terminate

though

• Evaluating leftmost first finds the normal form if there is one.

• Proof by trust the theory people, but don’t become one.

Page 33: David Evans cs.virginia/~evans

20 Feb 2000 University of Virginia CS 655 33

Charge• PS2 is due Thursday

• Domains are like types in programming languages, we will see them again soon...

• Next time: Intro to Language Design