Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 10: Fixed Points ad Infinitum M.C. Escher, Moebius Ants

Similar presentations


Presentation on theme: "Lecture 10: Fixed Points ad Infinitum M.C. Escher, Moebius Ants"— Presentation transcript:

1 David Evans http://www.cs.virginia.edu/~evans
Lecture 10: Fixed Points ad Infinitum M.C. Escher, Moebius Ants Background just got here last week finished degree at MIT week before Philosophy of advising students don’t come to grad school to implement someone else’s idea can get paid more to do that in industry learn to be a researcher important part of that is deciding what problems and ideas are worth spending time on grad students should have their own project looking for students who can come up with their own ideas for research will take good students interested in things I’m interested in – systems, programming languages & compilers, security rest of talk – give you a flavor of the kinds of things I am interested in meant to give you ideas (hopefully even inspiration!) but not meant to suggest what you should work on CS655: Programming Languages University of Virginia Computer Science David Evans

2 Goal: Understand the 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 } 20 Feb 2000 University of Virginia CS 655

3 University of Virginia CS 655
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. 20 Feb 2000 University of Virginia CS 655

4 University of Virginia CS 655
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. 20 Feb 2000 University of Virginia CS 655

5 University of Virginia CS 655
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 a a b and b c imply a c a b and b a imply a = b 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 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) 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) 20 Feb 2000 University of Virginia CS 655

9 Ordered Function Example
< Bool,  > = { false, true } false  true true  false What is << Bool,  >  < Bool,  >>? <{false, true}, {true, true}> <{false, false}, {true, true}> <{false, true}, {true, false}> <{false, false}, {true, false}> 20 Feb 2000 University of Virginia CS 655

10 University of Virginia CS 655
T-Shirt Exercise What is the order of the domain: <<Bool,  > x < Bool,  >  < Bool,  >> (includes xor, and, or, implies, ...) 20 Feb 2000 University of Virginia CS 655

11 University of Virginia CS 655
The Domain Nat 2 1 3 4 ... Nat 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 . 20 Feb 2000 University of Virginia CS 655

13 University of Virginia CS 655
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 20 Feb 2000 University of Virginia CS 655

14 Least Upper Bounds in Nat
{ 0, 2, 4, 6, ... } = any element of { 0, 2, 4, 6, ... } Nat {Nat, 3, 17} = 3 or 17 Nat 2 1 3 4 ... Nat 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.) 20 Feb 2000 University of Virginia CS 655

16 University of Virginia CS 655
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? 20 Feb 2000 University of Virginia CS 655

17 University of Virginia CS 655
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 cC 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 20 Feb 2000 University of Virginia CS 655

18 Monotonic/Continuous Functions in Domain Nat
2 1 3 4 ... Nat What is a monotonic function in Nat? What is a continuous function in Nat? 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. 20 Feb 2000 University of Virginia CS 655

20 University of Virginia CS 655
Sanity Check In g: (Nat  Nat)  (Nat  Nat) =  f. n. if (n = 0) then 1 else (n * ( f (n - 1))) What is (fixNat  Nat g)? 20 Feb 2000 University of Virginia CS 655

21 University of Virginia CS 655
Sanity Check g: (Nat  Nat)  (Nat  Nat) =  f. n. if (n = 0) then 1 else (n * ( f (n - 1))) What is (fixNat  Nat g)? 20 Feb 2000 University of Virginia CS 655

22 What is the bottom of Nat  Nat?
{ <x, > | x  Nat } 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 } 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 } 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 } 20 Feb 2000 University of Virginia CS 655

26 Getting to the  of things
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... 20 Feb 2000 University of Virginia CS 655

27 University of Virginia CS 655
Fixed Point Theorem Do all -calculus terms have a fixed point? (Smullyan: Is there a Sage bird?) 20 Feb 2000 University of Virginia CS 655

28 University of Virginia CS 655
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 20 Feb 2000 University of Virginia CS 655

29 University of Virginia CS 655
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) 20 Feb 2000 University of Virginia CS 655

30 University of Virginia CS 655
Still Uncomfortable? 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 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. 20 Feb 2000 University of Virginia CS 655

33 University of Virginia CS 655
Charge PS2 is due Thursday Domains are like types in programming languages, we will see them again soon... Next time: Intro to Language Design 20 Feb 2000 University of Virginia CS 655


Download ppt "Lecture 10: Fixed Points ad Infinitum M.C. Escher, Moebius Ants"

Similar presentations


Ads by Google