Télécharger la présentation
## David Evans cs.virginia/~evans

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -

**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 theLeast Fixed Point Theorem**If D is a pointed complete partial order, then a continuous functionf: D D has a least fixed point (fixDf) defined by D{ (fnD ) | n 0 } 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. 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. University of Virginia CS 655**a a**• a b and b a imply a = b • a b and b c imply a c 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 ud for all elements d D. University of Virginia CS 655**Ordered Product Domains**If <D, D > and <E, E > is are POs, <Dx E, Dx E > is a partial order, ordered by: <d1, e1>Dx E <d2, e2> if d1 D d2and e1 Ee2 University of Virginia CS 655**<1, 73>**<3, 3> <0, 2> <2, 0> <0, 1> <1, 0> <0, 0> Ordered Product Example • What is << Nat, >x < Nat, >>? (Hasse diagram) University of Virginia CS 655**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 f1DE f2 if for all d D,(f1 d)E (f2 d) University of Virginia CS 655**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}> University of Virginia CS 655**T-Shirt Exercise**• What is the order of the domain: <<Bool, >x < Bool, > < Bool, >> (includes xor, and, or, implies, ...) University of Virginia CS 655**The Domain Nat**2 0 3 4 ... 1 Nat University of Virginia CS 655**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 . 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 everyx X, x l and for everym X such thatx m x X, l m University of Virginia CS 655**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 0 3 4 ... 1 Nat University of Virginia CS 655**Complete Partial Orders**• A partial order D iscomplete 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.) University of Virginia CS 655**Monotonic Functions**• f D E is monotonic if d1 Dd2 implies (fd1)E (fd2). • Is not over << Bool, > < Bool, >> monotonic? • Is { <x, x * 2>} over << Nat, > < Nat, >> monotonic? • What functions are monotonic over NatNat? 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 (fc) 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 University of Virginia CS 655**Monotonic/Continuous Functions in Domain Nat**2 0 3 4 ... 1 Nat What is a monotonic function in Nat? What is a continuous function in Nat? University of Virginia CS 655**Least Fixed Point Theorem**• If D is a pointed complete partial order, then a continuous function f: D D has a least fixed point (fixDf) defined by D{ (fnD ) | n 0 } The least upper bound of applying f any number of times, starting with D. 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 Natg)? 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 Natg)? University of Virginia CS 655**What is the bottom of Nat Nat?**{ <x, > | x Nat} University of Virginia CS 655**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 } University of Virginia CS 655**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 } University of Virginia CS 655**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 } University of Virginia CS 655**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... University of Virginia CS 655**Fixed Point Theorem**• Do all -calculus terms have a fixed point? • (Smullyan: Is there a Sage bird?) University of Virginia CS 655**Finding the Sage Bird**• F , X such thatFX = X • Proof: LetW = x.F(xx) andX = WW. X = WW = ( x.F(xx))W F (WW) = FX 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) University of Virginia CS 655**Still Uncomfortable?**University of Virginia CS 655**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 University of Virginia CS 655**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. 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 University of Virginia CS 655