CPS Translations and Applications: The Cube and Beyond Section 2: - - PowerPoint PPT Presentation

cps translations and applications the cube and beyond
SMART_READER_LITE
LIVE PREVIEW

CPS Translations and Applications: The Cube and Beyond Section 2: - - PowerPoint PPT Presentation

CPS Translations and Applications: The Cube and Beyond Section 2: The domain-free -cube Haye Bhm June 12, 2018 What weve seen so far 1 CBV/CBN reduction strategies 2 Simulating CBN in a CBV language Wrap each argument in an extra x .


slide-1
SLIDE 1

CPS Translations and Applications: The Cube and Beyond

Section 2: The domain-free λ-cube Haye Böhm June 12, 2018

slide-2
SLIDE 2

What we’ve seen so far

1 CBV/CBN reduction strategies 2 Simulating CBN in a CBV language

Wrap each argument in an extra λx. . . .

3 Continuation passing style (CPS) 4 Allows for exceptions, backtracking, imperative concepts inside a

functional language

Haye Böhm CPS Translations and Applications: The Cube and Beyond June 12, 2018 2 / 19

slide-3
SLIDE 3

Why do we want CPS translations?

Used as a step in compilation of functional languages Used for instance by GHC, Haskell compiler CPS ::= (T ∩ calcc ∩ throw) ⇒ T WNM ⇒ SN M

Haye Böhm CPS Translations and Applications: The Cube and Beyond June 12, 2018 3 / 19

slide-4
SLIDE 4

CPS Translations

We have seen CPS translations for:

1 Simply Typed λ-calculus 2 Damas-Milner polymorphic type assignment (complete for CBN,

restricted for CBV)

3 Fω, explicit polymorphism + higher-order functions

Done the y-axis and z-axis, what about x-axis?

Haye Böhm CPS Translations and Applications: The Cube and Beyond June 12, 2018 4 / 19

slide-5
SLIDE 5

CPS Translations

Haye Böhm CPS Translations and Applications: The Cube and Beyond June 12, 2018 5 / 19

slide-6
SLIDE 6

CPS Translation for Dependent Types

CPS translation of some abstraction: λx : σ.M = λk : τ.k(λx : σ.M) Then type of τ should be ¬ρ, where ρ is the type of λx : σ.M. In a dependent type system, ρ can contain terms. We have a conversion rule which allows rewriting these types: Γ M : σ(αΓ M : s) & σ =β σ′ Γ M : σ′ There are circular dependencies between the conversion and substitution rules, which makes the proof very difficult.

Haye Böhm CPS Translations and Applications: The Cube and Beyond June 12, 2018 6 / 19

slide-7
SLIDE 7

Solution

The paper considers the domain-free λ-cube to work around aforementioned problem. Main idea: Do not require specifying the type in term abstractions.

Haye Böhm CPS Translations and Applications: The Cube and Beyond June 12, 2018 7 / 19

slide-8
SLIDE 8

Definitions

We define the whole cube, different systems use subsets of these definitions Obj (≈ Terms) ::= x | λx.O | OO | λα.O | OC Constr (≈ Types) ::= α | λx.C | CO | λα.C | CC | Πx : C.C | Πα : K.C Kind ::= Πx : C.K | Πα : K.K| ∗ The context Γ can contain terms, types, and kinds.

Haye Böhm CPS Translations and Applications: The Cube and Beyond June 12, 2018 8 / 19

slide-9
SLIDE 9

Definitions

β-reduction is defined as expected, with the addition that reduction inside contexts is possible. Because we define a single set of rules, they will be slightly more cumbersome.

Haye Böhm CPS Translations and Applications: The Cube and Beyond June 12, 2018 9 / 19

slide-10
SLIDE 10

Basic rules

Each system in the cube contains the four basic rules on terms: S Γ A : s x / ∈ dom(Γ) Γ, x : A x : A W Γ A : B Γ C : s x / ∈ dom(Γ) Γ, x : C A : B β Γ A : B Γ B′ : s B =β B′ Γ A : B′ A ∗ :

Haye Böhm CPS Translations and Applications: The Cube and Beyond June 12, 2018 10 / 19

slide-11
SLIDE 11

→ Rules

The normal rules on terms: →Abstr Γ, x : C O : C′ Γ λx.O : (Πx : C.C′) →Appl Γ O :(Πx : C.C′) Γ O′ : C Γ OO′ : C′{x := O′} →Star Γ, x : C C′ : ∗ Γ (Πx :C.C′) : ∗

Haye Böhm CPS Translations and Applications: The Cube and Beyond June 12, 2018 11 / 19

slide-12
SLIDE 12

2 Rules

These rules allow polymorphism: 2Abstr Γ, α : K O : C′ Γ λα.O :(Πα : K.C′) 2Appl Γ O : (Πα : K.C′) Γ C : K Γ OC :C′{a := C} 2Star Γ, α : K C′ : ∗ Γ (Πα : K.C′) : ∗

Haye Böhm CPS Translations and Applications: The Cube and Beyond June 12, 2018 12 / 19

slide-13
SLIDE 13

Example

Simple polymorphic left projection: λA, B, x, y.x : (ΠA, B : ∗.A → B → A) Let’s apply it, let Int : ∗ and Real : ∗: z : Int (λA, B, x, y.x : (ΠA, B : ∗.A → B → A))Int Real z 1.5 (2Appl) (λB, x, y.x : (ΠB : ∗.Int → B → Int))Real z 1.5 (2Appl) (λx, y.x : (Int → Real → Int))z 1.5 (→Appl) x : A (λy.z : (Real → Int))1.5 (→Appl) y : B z : Int (Couple weakening rules, z : Int in context) Int : s (Int is a simple type)

Haye Böhm CPS Translations and Applications: The Cube and Beyond June 12, 2018 13 / 19

slide-14
SLIDE 14

Example

Simple polymorphic left projection: λA, B, x, y.x : (ΠA, B : ∗.A → B → A) Let’s apply it, let Int : ∗ and Real : ∗: z : Int (λA, B, x, y.x : (ΠA, B : ∗.A → B → A))Real Real z 1.5 (2Appl) (λB, x, y.x : (ΠB : ∗.Real → B → Real))Real z 1.5 (2Appl) (λx, y.x : (Real → Real → Real))z 1.5 (→Appl) x : A (λy.z : (Real → Real))1.5 (→Appl) y : B z : Real (Not in context)

Haye Böhm CPS Translations and Applications: The Cube and Beyond June 12, 2018 14 / 19

slide-15
SLIDE 15

P rules

These rules allow type constructors (terms in types): PAbstr Γ, x : C C′ : K Γ λx.C′ : (Πx : C.K) PAppl Γ C′ : (Πx : C.K) Γ O′ : C Γ C′O′ :K{x := O′} PBox Γ, x : C K : Γ (Πx :C.K) :

Haye Böhm CPS Translations and Applications: The Cube and Beyond June 12, 2018 15 / 19

slide-16
SLIDE 16

Example

Let o be the type of logical formula, and ∨ : o → o → o, and true : o → ∗. We can then define the left introduction for disjunction: ∨l : Πx, y : o.(true x) → (true(∨xy)) ∨l takes x and y as arguments, which are terms.

Haye Böhm CPS Translations and Applications: The Cube and Beyond June 12, 2018 16 / 19

slide-17
SLIDE 17

ω rules

These rules allow type operators (higher order functions): ωAbstr Γ, α : K C′ : K ′ Γ λα.C′: Πα : K.K ′ ωAppl Γ C : (Πα : K.K ′) Γ C′ : K Γ CC′ : K ′{α := C′} ωBox Γ, α : K K ′ : Γ (Πα :K.K ′) :

Haye Böhm CPS Translations and Applications: The Cube and Beyond June 12, 2018 17 / 19

slide-18
SLIDE 18

Example λPω (Domain-free Calculus of Constructions)

Power of higher-order predicate logic, quantification over predicates Conjunction of two predicates: λA, P, Q, x. ∧ (Px)(Qx) : ΠA : ∗.(A → ∗) → (A → ∗) → A → ∗

Haye Böhm CPS Translations and Applications: The Cube and Beyond June 12, 2018 18 / 19

slide-19
SLIDE 19

Conclusion

CPS translation for normal λ cube is difficult Define domain-free λ cube to solve difficulty

Remove specifying type in term abstractions

Next: Actual CPS transform

Haye Böhm CPS Translations and Applications: The Cube and Beyond June 12, 2018 19 / 19