last time on types
play

Last time on Types ... I Modified ML with polymorphic types anywhere - PowerPoint PPT Presentation

Last time on Types ... I Modified ML with polymorphic types anywhere Identity, Generalisation and Specialisation ` x : if ( x : ) 2 ( id ) ` M : if / 2 ftv ( ) ( gen ) ` M : 8 ( ) ` M : 8 ( ) ( spec ) `


  1. Last time on Types ... I Modified ML with polymorphic types anywhere

  2. Identity, Generalisation and Specialisation Γ ` x : π if ( x : π ) 2 Γ ( id ) Γ ` M : π if α / 2 ftv ( Γ ) ( gen ) Γ ` M : 8 α ( π ) Γ ` M : 8 α ( π ) ( spec ) Γ ` M : π [ π 0 / α ]

  3. Last time on Types ... I Modified ML with polymorphic types anywhere I Polymorphic λ -calculus

  4. PLC type system Γ ` x : τ if ( x : τ ) 2 Γ ( var ) Γ , x : τ 1 ` M : τ 2 if x / 2 dom ( Γ ) ( fn ) Γ ` λ x : τ 1 ( M ) : τ 1 ! τ 2 Γ ` M 1 : τ 1 ! τ 2 Γ ` M 2 : τ 1 ( app ) Γ ` M 1 M 2 : τ 2 Γ ` M : τ if α / 2 ftv ( Γ ) ( gen ) Γ ` Λ α ( M ) : 8 α ( τ ) Γ ` M : 8 α ( τ 1 ) ( spec ) Γ ` M τ 2 : τ 1 [ τ 2 / α ]

  5. Last time on Types ... I Modified ML with polymorphic types anywhere I Polymorphic λ -calculus I Λ α ( λ x : α ( x )) : ∀ α ( α → α ) I Decideability of typing for PLC

  6. Today... I Results on reduction (semantics) of PLC I Encoding data types in PLC (part 1)

  7. Beta-reduction of PLC expressions M beta-reduces to M 0 in one step, M → M 0 means M 0 can be obtained from M (up to alpha-conversion, of course) by replacing a subexpression which is a redex by its corresponding reduct. The redex-reduct pairs are of two forms: ( λ x : τ ( M 1 )) M 2 → M 1 [ M 2 / x ] ( Λ α ( M )) τ → M [ τ / α ] . M → ⇤ M 0 indicates a chain of finitely † many beta-reductions. ( † possibly zero—which just means M and M 0 are alpha-convertible). M is in beta-normal form if it contains no redexes.

  8. Properties of PLC beta-reduction on typeable expressions Suppose Γ ` M : τ is provable in the PLC type system. Then the following properties hold: If M ! M 0 , then Γ ` M 0 : τ is also a Subject Reduction. provable typing.

  9. Subject reduction requires substitution lemma... Extra If M ! M 0 , then Γ ` M 0 : τ is also a Subject Reduction. provable typing. For example for: ( λ x : σ ( M 1 )) M 2 ! M 1 [ M 2 / x ] Γ , x : σ ` M 1 : τ (abs) Γ ` λ x : σ ( M 1 ) : σ ! τ Γ ` M 2 : σ (app) Γ ` ( λ x : σ ( M 1 )) M 2 : τ Γ , x : σ ` M 1 : τ Γ ` M 2 : σ � � � ! Γ ` M 1 [ M 2 / x ] : τ Lemma (substitution) If Γ , x : σ ` M 1 : τ and Γ ` M 2 : σ then Γ ` M 1 [ M 2 / x ] : τ . Proof By induction over the typing relation on M 1 .

  10. Properties of PLC beta-reduction on typeable expressions Suppose Γ ` M : τ is provable in the PLC type system. Then the following properties hold: If M ! M 0 , then Γ ` M 0 : τ is also a Subject Reduction. provable typing. If M ! ⇤ M 1 and M ! ⇤ M 2 , then Church Rosser Property. there is M 0 with M 1 ! ⇤ M 0 and M 2 ! ⇤ M 0 . Strong Normalisation Property. There is no infinite chain M ! M 1 ! M 2 ! . . . of beta-reductions starting from M .

  11. $ % Theorem 16, p.43 Extra Church-Rosser (CR) + Strong Normalisation (SN) exists unique beta -normal forms for typeable PLC expres- ⇒ sions I Existence : start from M and reduce any redexes... by (SN) this must eventually stop I Uniqueness: by (CR), if M → ⇤ M 1 and M → ⇤ M 2 then M 1 ⇤ : ⇤ M 0 M ⇤ 9 ⇤ M 2 (where M 1 → ⇤ M 0 and M 2 → ⇤ M 0 are zero length β -reduction chanins if M 1 and M 2 are in β -normal form).

  12. Y-combinator Extra Y = λ f . (( λ x . f ( x x )) ( λ x . f ( x x ))) I Satisfies fixed-point combinator equation Y f = f ( Y f ) I for some f , Y f does not have a beta-normal form (see Remark 17, p.43, where f = id ) I Y is not typeable in PLC Exercise (2 min) . Show that Y id has an infinite β -reduction chain (i.e., no β -normal form)

  13. PLC beta-conversion, = β By definition, M = β M 0 holds if there is a finite chain M − · − · · · − · − M 0 where each − is either → or ← , i.e. a beta-reduction in one direction or the other. (A chain of length zero is allowed—in which case M and M 0 are equal, up to alpha-conversion, of course.) Church Rosser + Strong Normalisation properties imply that, for typeable PLC expressions, M = β M 0 holds if and only if there is some beta-normal form N with M → ⇤ N ⇤ ← M 0

  14. Data types in PLC (Section 4.4) I define a suitable PLC type for the data I define suitable PLC expressions for values & on the data I show PLC expressions have correct typings & behaviour (use the semantics)

  15. Polymorphic booleans bool def = ∀ α ( α → ( α → α )) True def = Λ α ( λ x 1 : α , x 2 : α ( x 1 )) False def = Λ α ( λ x 1 : α , x 2 : α ( x 2 )) if def = Λ α ( λ b : bool , x 1 : α , x 2 : α ( b α x 1 x 2 ))

  16. Exercise (5 min) Given Γ ` M 1 : bool , Γ ` M 2 : τ , Γ ` M 3 : τ M 1 ! ⇤ True    M 2 ! ⇤ N 2 and M 3 ! ⇤ N 3  

  17. Exercise (5 min) Given Γ ` M 1 : bool , Γ ` M 2 : τ , Γ ` M 3 : τ M 1 ! ⇤ True    M 2 ! ⇤ N 2 and M 3 ! ⇤ N 3   if τ M 1 M 2 M 3 ! ⇤ ? then

  18. Polymorphic lists = ∀ ↵ 0 ( ↵ 0 → ( ↵ → ↵ 0 → ↵ 0 ) → ↵ 0 ) ↵ list def = Λ ↵ , ↵ 0 ( � x 0 : ↵ 0 , f : ↵ → ↵ 0 → ↵ 0 ( x 0 )) Nil def Cons def = Λ ↵ ( � x : ↵ , ` : ↵ list ( Λ ↵ 0 ( � x 0 : ↵ 0 , f : ↵ → ↵ 0 → ↵ 0 ( f x ( ` ↵ 0 x 0 f )))))

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend