normalization by evaluation for sized dependent...

19
Normalization by Evaluation for Sized Dependent Types Andreas Abel 1 Andrea Vezzosi 1 Theo Winterhalter 2 1 Department of Computer Science and Engineering Chalmers and Gothenburg University, Sweden 2 École Normale Supérieure de Cachan, France International Conference on Functional Programming, ICFP 2017 Oxford, UK 6 September 2017 Abel Vezzosi Winterhalter NbE for Sized Dependent Types ICFP’17 1 / 18

Upload: others

Post on 24-Apr-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Normalization by Evaluation for Sized Dependent TypesAbela/TalkICFP17.pdfNormalizationbyEvaluationforSizedDependentTypes AndreasAbel1 AndreaVezzosi1 TheoWinterhalter2 1Department of

Normalization by Evaluation for Sized Dependent Types

Andreas Abel1 Andrea Vezzosi1 Theo Winterhalter2

1Department of Computer Science and EngineeringChalmers and Gothenburg University, Sweden2École Normale Supérieure de Cachan, France

International Conference on Functional Programming, ICFP 2017Oxford, UK

6 September 2017

Abel Vezzosi Winterhalter NbE for Sized Dependent Types ICFP’17 1 / 18

Page 2: Normalization by Evaluation for Sized Dependent TypesAbela/TalkICFP17.pdfNormalizationbyEvaluationforSizedDependentTypes AndreasAbel1 AndreaVezzosi1 TheoWinterhalter2 1Department of

Introduction

Dependent type theory à la Martin-Löf

Typing judgement Γ ` t : Ain context Γ, expression t has type Aunder hypotheses Γ, term t is a proof of proposition A

Consistency: empty type not inhabited 6 ` t : ⊥.Conversion / subsumption rule

Γ ` t : A Γ ` A ≤ B

Γ ` t : B

Definitional equality Γ ` t = t ′ : Ain Γ, terms t and t ′ of type A are not distinguishedReflexivity rule of subtyping

Γ ` A = B : TypeΓ ` A ≤ B

Abel Vezzosi Winterhalter NbE for Sized Dependent Types ICFP’17 2 / 18

Page 3: Normalization by Evaluation for Sized Dependent TypesAbela/TalkICFP17.pdfNormalizationbyEvaluationforSizedDependentTypes AndreasAbel1 AndreaVezzosi1 TheoWinterhalter2 1Department of

Introduction

Subtyping??

Abel Vezzosi Winterhalter NbE for Sized Dependent Types ICFP’17 3 / 18

Page 4: Normalization by Evaluation for Sized Dependent TypesAbela/TalkICFP17.pdfNormalizationbyEvaluationforSizedDependentTypes AndreasAbel1 AndreaVezzosi1 TheoWinterhalter2 1Department of

Introduction

Definitional equality

Decidable (for type checking).Proper subrelation of extensional equality (usually 6 ` x + y = y + x).Equates at least computationally equal terms.The bigger, the better!Type needed for η-laws, e.g., for unit type >.

Γ ` t : > Γ ` t ′ : >Γ ` t = t ′ : >

Abel Vezzosi Winterhalter NbE for Sized Dependent Types ICFP’17 4 / 18

Page 5: Normalization by Evaluation for Sized Dependent TypesAbela/TalkICFP17.pdfNormalizationbyEvaluationforSizedDependentTypes AndreasAbel1 AndreaVezzosi1 TheoWinterhalter2 1Department of

Introduction

Sized types as refinement types

Termination needed for consistency.fix : ((Nat → C )→ (Nat → C ))→ Nat → C inconsistentIndex data types by tree height: “Nat i = {n | n < i}”fix : (∀i → (Nat i → C )→ (Nat i+1 → C ))→ ∀i → Nat i → C

Polymorphism t : (∀i → Treei → Treei )→ ∀i → Treei → Tree∞

Subtyping: Nat 0 ≤ Nat 1 ≤ Nat 2 ≤ · · · ≤ Nat∞

Size expressions are not unique. Problematic for proofs.

suc : ∀i → Nat i → Nat i+1

suc i : Nat i → Nat∞

suc (i + 1) : Nat i → Nat∞

suc∞ : Nat i → Nat∞

Intuition: Sizes are irrelevant in terms, but relevant in types.

Abel Vezzosi Winterhalter NbE for Sized Dependent Types ICFP’17 5 / 18

Page 6: Normalization by Evaluation for Sized Dependent TypesAbela/TalkICFP17.pdfNormalizationbyEvaluationforSizedDependentTypes AndreasAbel1 AndreaVezzosi1 TheoWinterhalter2 1Department of

Introduction

Grau ist alle Theorie

Agda demo

Abel Vezzosi Winterhalter NbE for Sized Dependent Types ICFP’17 6 / 18

Page 7: Normalization by Evaluation for Sized Dependent TypesAbela/TalkICFP17.pdfNormalizationbyEvaluationforSizedDependentTypes AndreasAbel1 AndreaVezzosi1 TheoWinterhalter2 1Department of

Introduction

Church-style vs. Curry style

Pure Type Systems: Church-styledependent functions = polymorphic functions.

Γ ` t = t ′ : (i : Size)→ A Γ ` b : SizeΓ ` t b = t ′ b : A[b/i ]

Curry-style would fit our needs:

Γ ` t = t ′ : ∀i :Size.A Γ ` b : SizeΓ ` t = t ′ : A[b/i ]

Absent size arguments cannot spoil our proofs.Synthesis: Churry-style.

Abel Vezzosi Winterhalter NbE for Sized Dependent Types ICFP’17 7 / 18

Page 8: Normalization by Evaluation for Sized Dependent TypesAbela/TalkICFP17.pdfNormalizationbyEvaluationforSizedDependentTypes AndreasAbel1 AndreaVezzosi1 TheoWinterhalter2 1Department of

Introduction

Church-style vs. Curry style

Pure Type Systems: Church-styledependent functions = polymorphic functions.

Γ ` t = t ′ : (i : Size)→ A Γ ` b : SizeΓ ` t b = t ′ b : A[b/i ]

Curry-style would fit our needs:

Γ ` t = t ′ : ∀i :Size.A Γ ` b : SizeΓ ` t = t ′ : A[b/i ]

Absent size arguments cannot spoil our proofs.Synthesis: Churry-style.

Abel Vezzosi Winterhalter NbE for Sized Dependent Types ICFP’17 7 / 18

Page 9: Normalization by Evaluation for Sized Dependent TypesAbela/TalkICFP17.pdfNormalizationbyEvaluationforSizedDependentTypes AndreasAbel1 AndreaVezzosi1 TheoWinterhalter2 1Department of

Introduction

Kind of Churry

Abel Vezzosi Winterhalter NbE for Sized Dependent Types ICFP’17 8 / 18

Page 10: Normalization by Evaluation for Sized Dependent TypesAbela/TalkICFP17.pdfNormalizationbyEvaluationforSizedDependentTypes AndreasAbel1 AndreaVezzosi1 TheoWinterhalter2 1Department of

Introduction

“Churry-style”

Use size arguments for type checking.Ignore them during equality checking.Irrelevant size quantification:

Γ ` t = t ′ : (•i :Size)→ A Γ ` a, a′, b : SizeΓ ` t 〈a〉 = t ′ 〈a′〉 : A[b/i ]

Forces to ignore arguments also during typing.

Γ ` t : (•i :Size)→ A Γ ` a, b : SizeΓ ` t 〈a〉 : A[b/i ]

(Bidirectional) type checking:

Γ ` t ⇒ (•i :Size)→ A Γ ` a ⇔ SizeΓ ` t 〈a〉⇒ A[a/i ]

Abel Vezzosi Winterhalter NbE for Sized Dependent Types ICFP’17 9 / 18

Page 11: Normalization by Evaluation for Sized Dependent TypesAbela/TalkICFP17.pdfNormalizationbyEvaluationforSizedDependentTypes AndreasAbel1 AndreaVezzosi1 TheoWinterhalter2 1Department of

Introduction

Does “Churry-style” work in general?

Generally, can we have?

Γ ` t = t ′ : (•x :A)→ B Γ ` u, u′, v : A

Γ ` t 〈u〉 = t ′ 〈u′〉 : B[v/x ]

Not with type-directed η!

` f : (•X :Type)→ (X → X )→ C

` f 〈A→ A〉(λxy → x y)= f 〈A→ >〉(λxy → _)= f 〈A→ A〉(λxy → x (x y))

In (•x :A)→ B , the shape of B must be independent of x .Same shape: Nat i , Nat j+1, Nat∞.Different shape: >, ⊥, A→ B.

Abel Vezzosi Winterhalter NbE for Sized Dependent Types ICFP’17 10 / 18

Page 12: Normalization by Evaluation for Sized Dependent TypesAbela/TalkICFP17.pdfNormalizationbyEvaluationforSizedDependentTypes AndreasAbel1 AndreaVezzosi1 TheoWinterhalter2 1Department of

Introduction

Shape-irrelevance

These are shape-irrelevant in i

••i ` Nat i

••i ` Nat i → Nat i+1

••i ` if b then Nat i else Nat i → Nat i

••i ` (x : Nat i )→ VecAx

These are not shape-irrelevant:

••b :Bool 6 ` if b then Type else Type → Type••X :Type 6 ` X••X :Type 6 ` X → X

Abel Vezzosi Winterhalter NbE for Sized Dependent Types ICFP’17 11 / 18

Page 13: Normalization by Evaluation for Sized Dependent TypesAbela/TalkICFP17.pdfNormalizationbyEvaluationforSizedDependentTypes AndreasAbel1 AndreaVezzosi1 TheoWinterhalter2 1Department of

Introduction

Official rules for irrelevant quantifier

Formation:

Γ ` A : Type Γ, ••x :A ` B : TypeΓ ` (•x :A)→ B : Type

Introduction:

Γ, •x :A ` t : B

Γ ` (λx → t) : (•x :A)→ B

Elimination:

Γ ` t : (•x :A)→ B •−1(Γ) ` u, v : A

Γ ` t u : B[v/x ]

Resurrection •−1(Γ) removes •s. (Nuyts et al.: • \ Γ)

Abel Vezzosi Winterhalter NbE for Sized Dependent Types ICFP’17 12 / 18

Page 14: Normalization by Evaluation for Sized Dependent TypesAbela/TalkICFP17.pdfNormalizationbyEvaluationforSizedDependentTypes AndreasAbel1 AndreaVezzosi1 TheoWinterhalter2 1Department of

Introduction

Irrelevance??

Abel Vezzosi Winterhalter NbE for Sized Dependent Types ICFP’17 13 / 18

Page 15: Normalization by Evaluation for Sized Dependent TypesAbela/TalkICFP17.pdfNormalizationbyEvaluationforSizedDependentTypes AndreasAbel1 AndreaVezzosi1 TheoWinterhalter2 1Department of

Introduction

In the paper

Dependent type theory withpredicative universes Set0, Set1, . . . ,sized natural numbers Nat i ,subtypingirrelevant ∀ and shape-irrelevant Π size quantifier.

Decidability of definitional equality via normalization-by-evaluation(NbE).Decidability of bidirectional type checking.Discussion of related irrelevant quantifiers(Pfenning, Miquel, Barras/Bernardo, Mishram-Linger/Sheard).

Abel Vezzosi Winterhalter NbE for Sized Dependent Types ICFP’17 14 / 18

Page 16: Normalization by Evaluation for Sized Dependent TypesAbela/TalkICFP17.pdfNormalizationbyEvaluationforSizedDependentTypes AndreasAbel1 AndreaVezzosi1 TheoWinterhalter2 1Department of

Introduction

Normalization by Evaluation (NbE)

Type-directed eta-expansion:Reflection ↑At: syntax to semantics.Reification ↓Ad : semantics to syntax.

My observation: only shape of A matters.Works for type assignment NbE[e.g., Abel/Aehlig/Coquand/Dybjer, 2007–].Not for intrinsically typed NbE[e.g., Altenkirch/Kaposi, FSCD 2016].

Abel Vezzosi Winterhalter NbE for Sized Dependent Types ICFP’17 15 / 18

Page 17: Normalization by Evaluation for Sized Dependent TypesAbela/TalkICFP17.pdfNormalizationbyEvaluationforSizedDependentTypes AndreasAbel1 AndreaVezzosi1 TheoWinterhalter2 1Department of

Introduction

Take home messageThe irrelevance modality allows us to ignore sizeswhere they just help the type checker.

suc〈ignoreMe〉n : Nat dontIgnoreMe

Abel Vezzosi Winterhalter NbE for Sized Dependent Types ICFP’17 16 / 18

Page 18: Normalization by Evaluation for Sized Dependent TypesAbela/TalkICFP17.pdfNormalizationbyEvaluationforSizedDependentTypes AndreasAbel1 AndreaVezzosi1 TheoWinterhalter2 1Department of

Introduction

Future work

Explore shape-irrelevance.Replace NbE by traditional algorithmic equality.Solidify Agda implementation of shape-irrelevance.

Abel Vezzosi Winterhalter NbE for Sized Dependent Types ICFP’17 17 / 18

Page 19: Normalization by Evaluation for Sized Dependent TypesAbela/TalkICFP17.pdfNormalizationbyEvaluationforSizedDependentTypes AndreasAbel1 AndreaVezzosi1 TheoWinterhalter2 1Department of

Introduction

Sized types?!

Abel Vezzosi Winterhalter NbE for Sized Dependent Types ICFP’17 18 / 18