Relating System F and 2: A Case Study in Coq, Abella and Beluga - - PowerPoint PPT Presentation

relating system f and 2 a case study in coq abella and
SMART_READER_LITE
LIVE PREVIEW

Relating System F and 2: A Case Study in Coq, Abella and Beluga - - PowerPoint PPT Presentation

Relating System F and 2: A Case Study in Coq, Abella and Beluga Jonas Kaiser Brigitte Pientka Gert Smolka FSCD 2017, Oxford September 4, 2017 saarland university computer science saarland System F [Girard 72] / PTLC [Reynolds 74]


slide-1
SLIDE 1

Relating System F and λ2: A Case Study in Coq, Abella and Beluga

Jonas Kaiser Brigitte Pientka Gert Smolka FSCD 2017, Oxford September 4, 2017

computer science

saarland

university

slide-2
SLIDE 2

computer science

saarland

university

System F [Girard ’72] / PTLC [Reynolds ’74]

Some History Developed in the context of proof theory and polymorphism. Commonly phrased as a two-sorted system: Types & Terms We consider F as presented in [Harper ’13].

◮ Explicitly scopes type variables.

Meanwhile . . . Study of CC led to single-sorted Pure Type Systems (PTS):

◮ The λ-cube of [Barendregt ’91].

System F appears as the corner λ2.

Goal: Transport of Results

F

  • λ2

bidirectional reduction of typing

Jonas Kaiser F and λ2 – A Case Study September 4, 2017 2 / 25

slide-3
SLIDE 3

computer science

saarland

university

Related Work

The reduction result is partially discussed in [Geuvers ’93].

◮ Primarily argues the forward preservation of typing. ◮ The syntactic correspondence is left implicit.

Coq formalisation of the full reduction in [K/Tebbi/Smolka ’17].

◮ Pairs of translation functions establish the syntactic correspondence. ◮ Requires involved cancellation laws. ◮ Proofs based on an extension of context morphism lemmas

[Goguen/McKinna ’97, Adams ’06].

Goal of this work: Correspondence Proof as benchmark for reasoning about syntax and contextual information.

Jonas Kaiser F and λ2 – A Case Study September 4, 2017 3 / 25

slide-4
SLIDE 4

computer science

saarland

university

Syntactic Variants F and λ2

Two-sorted non-uniform syntax: TyF A, B ::= X | A → B | ∀X.A TmF s, t ::= x | s t | λx : A.s | s A | ΛX.s Type Formation ∆ ⊢ A ty Typing ∆; Γ ⊢ s :F A Single-sorted uniform PTS syntax: Tmλ a, b ::= x | ∗ | | a b | λx : a.b | Πx : a.b Typing Ψ ⊢ a :2 b

Jonas Kaiser F and λ2 – A Case Study September 4, 2017 4 / 25

slide-5
SLIDE 5

computer science

saarland

university

Syntactic Correspondence

TyF

well-formed types

TmF

well-typed terms

Tmλ

propositions proofs

Θ ⊢ A ∼ a Θ; Σ ⊢ s ≈ b

1) injective 2) functional 3) L-total & preserving 4) R-total & preserving

Jonas Kaiser F and λ2 – A Case Study September 4, 2017 5 / 25

slide-6
SLIDE 6

computer science

saarland

university

Syntactic Correspondence – Two Complications

1 Non-uniform vs. uniform:

A → B ∀X.B Πx : a.b ?

2 Open terms & contextual assumptions about

◮ well-formedness:

in X → X, is X in scope?

◮ typing:

in a b, is b a proof or proposition?

◮ related variables:

in the variable case, does Θ ⊢ X ∼ x hold?

Jonas Kaiser F and λ2 – A Case Study September 4, 2017 6 / 25

slide-7
SLIDE 7

computer science

saarland

university

The Reduction Proof: F λ2

Assume we are given syntactic relations ∼ and ≈ which are both:

1 functional 2 injective 3 left-total and judgement preserving on suitable fragment 4 right-total and judgement preserving on suitable fragment

Theorem (Reduction F λ2)

⊢ A ty ⇐ ⇒ ∃a. ⊢ A ∼ a ∧ ⊢ a :2 ∗ ⊢ s :F A ⇐ ⇒ ∃ba. ⊢ s ≈ b ∧ ⊢ A ∼ a ∧ ⊢ b :2 a ∧ ⊢ a :2 ∗

Theorem (Reduction λ2 F)

⊢ a :2 ∗ ⇐ ⇒ ∃A. ⊢ A ∼ a ∧ ⊢ A ty ⊢ b :2 a ∧ ⊢ a :2 ∗ ⇐ ⇒ ∃sA. ⊢ s ≈ b ∧ ⊢ A ∼ a ∧ ⊢ s :F A

Jonas Kaiser F and λ2 – A Case Study September 4, 2017 7 / 25

slide-8
SLIDE 8

computer science

saarland

university

Formalising the Proof

We consider three approaches: Coq first-order de Bruijn, par. substitutions, invariants Abella HOAS, ∇-quantification, relational proof search Beluga HOAS, 1st-class contexts, context schemas Topics of Interest Representation of syntax and judgements. Management of local variable binding. Tracking of contextual information. Technicalities: Usability / Libraries / Tool Support

Jonas Kaiser F and λ2 – A Case Study September 4, 2017 8 / 25

slide-9
SLIDE 9

computer science

saarland

university

– Coq –

first-order de Bruijn, parallel substitutions, invariants

Jonas Kaiser F and λ2 – A Case Study September 4, 2017 9 / 25

slide-10
SLIDE 10

computer science

saarland

university

Coq – Representation

Syntax: first-order de Bruijn A, B ::= nty | A → B | ∀.A n ∈ N s, t ::= ntm | s t | λA.s | s A | Λ.s Typing contexts: ∆ : N – excl. upper bound for free type variables Γ : list TyF – dangling indices reference by position Judgements as inductive predicates, e.g.: _; _ ⊢ _ :F _ : N → list TyF → TmF → TyF → Prop Parallel substitutions from Autosubst library [Schäfer/Tebbi/Smolka ’15]: σ : N → T (∀.A)[σ] = ∀.A[⇑σ] ⇑σ := 0ty · (σ ◦ ↑)

Jonas Kaiser F and λ2 – A Case Study September 4, 2017 10 / 25

slide-11
SLIDE 11

computer science

saarland

university

Coq – Relating Indices

Relating open terms requires explicit tracking of related indices: R, S : list (N × N) Traversal of binders requires context adjustments: R ⊢ A ∼ a R⇑ ⊢ B ∼ b R ⊢ A → B ∼ Πa.b Rext ⊢ A ∼ a R ⊢ ∀.A ∼ Π∗.a Rext := (0, 0) :: map (↑ × ↑) R R⇑ := map (id × ↑) R R ⊢ A ∼ a R⇑; Sext ⊢ s ≈ b R; S ⊢ λA.s ≈ λa.b

Jonas Kaiser F and λ2 – A Case Study September 4, 2017 11 / 25

slide-12
SLIDE 12

computer science

saarland

university

Coq – Custom Invariants

Left-Totality and Preservation of Type Formation of ∼

1 Define Invariant:

R

− → Ψ := ∀x < ∆. ∃y. (x, y) ∈ R ∧ (y :2 ∗) ∈λ Ψ

2 Prove Extension Laws:

R

− → Ψ ⇒ ∆ R⇑ − → Ψ, a – ext. with new term variable ∆

R

− → Ψ ⇒ ∆ + 1 Rext − → Ψ, ∗ – ext. with new type variable

3 Prove by induction on ∆ ⊢ A ty:

∆ ⊢ A ty ⇒ ∀R, Ψ. ∆

R

− → Ψ ⇒ ∃a. R ⊢ A ∼ a ∧ Ψ ⊢ a :2 ∗

4 Repeat for remaining three preservation results.

Jonas Kaiser F and λ2 – A Case Study September 4, 2017 12 / 25

slide-13
SLIDE 13

computer science

saarland

university

– Abella –

HOAS, ∇-quantification, relational proof search

Jonas Kaiser F and λ2 – A Case Study September 4, 2017 13 / 25

slide-14
SLIDE 14

computer science

saarland

university

Abella [Miller, Chaudhuri et al. ’14]

Two-level logic: Specification Level: λProlog, HOAS, logic predicates, proof search λ_._ : TyF → (TmF → TmF) → TmF Π_._ : Tmλ → (Tmλ → Tmλ) → Tmλ _ :F _ : TmF → TyF → o + λProlog rules _ ≈ _ : TmF → Tmλ → o + λProlog rules Reasoning Level: G – intuitionistic, predicative, STT, ∇-quantification n1, n2, . . . – nominals represent free variables ∇x. ∇y. x = y – theorem of G {L ⊢ J} – logical embedding

Jonas Kaiser F and λ2 – A Case Study September 4, 2017 14 / 25

slide-15
SLIDE 15

computer science

saarland

university

Abella – Logical Embedding

{_ ⊢ _} : [o] → o → Prop {L ⊢ J} holds in G iff J has a λProlog-derivation from hypotheses L. Mobility of binders, consider: Πx y. x ∼ y = ◮ sx ≈ by Λ.s ≈ λ∗.b

{L ⊢ Πx y. x ∼ y = ◮ sx ≈ by}

  • ∇x, y.{L, x ∼ y ⊢ sx ≈ by}
  • {L, n1 ∼ n2 ⊢ sn1 ≈ bn2}

{L ⊢ A ∼ a} {L, n1 ∼ n2 ⊢ sn1 ≈ bn2} {L ⊢ sA ≈ ba}

inst & cut

Jonas Kaiser F and λ2 – A Case Study September 4, 2017 15 / 25

slide-16
SLIDE 16

computer science

saarland

university

Abella – Context Management

Contexts L : [o] are lists of arbitrary logical predicate instances. The embedding has a backchaining rule: J ∈ L ⇒ {L ⊢ J} We want typing/relational contexts that only contain information about variables, i.e. nominals. ⇒ inductive G-predicates:

Define C≈ : [o] → Prop by C≈(•); ∇x y, C≈(L, x ∼ y) := C≈(L); ∇x y, C≈(L, x ≈ y) := C≈(L).

1 Avoid spurious instances of backchaining. 2 Constrains L to exactly track related variables. 3 Forces L to be injective, functional & range-disjoint.

Jonas Kaiser F and λ2 – A Case Study September 4, 2017 16 / 25

slide-17
SLIDE 17

computer science

saarland

university

Abella – Relating Contexts

Left-Totality and Preservation of Type Formation of ∼

1 Define a compound inductive predicate CR:

CR(• | • | •) CR(LF | L≈ | L2) x, y fresh for LF, L≈, L2 CR(LF, x ty | L≈, x ∼ y | L2, y :2 ∗) {LF ⊢ A ty} {L≈ ⊢ A ∼ a} {L2 ⊢ a :2 ∗} CR(LF | L≈ | L2) x, y fresh for LF, L≈, L2, A, a CR(LF, x :F A | L≈, x ≈ y | L2, y :2 a)

2 Prove extraction laws that yield connected assumptions:

x ty ∈ LF ⇒ CR(LF | L≈ | L2) ⇒ . . .

3 Prove by induction on {LF ⊢ A ty}:

{LF ⊢ A ty} ⇒ ∀L≈ L2. CR(LF | L≈ | L2) ⇒ ∃a. {L≈ ⊢ A ∼ a} ∧ {L2 ⊢ a :2 ∗}

Jonas Kaiser F and λ2 – A Case Study September 4, 2017 17 / 25

slide-18
SLIDE 18

computer science

saarland

university

– Beluga –

HOAS, 1st-class contexts, context schemas

Jonas Kaiser F and λ2 – A Case Study September 4, 2017 18 / 25

slide-19
SLIDE 19

computer science

saarland

university

Beluga – Contextual Objects

Objects K (types, terms, derivations) paired with 1st-class context Γ: [Γ ⊢ K] No concept of free variable:

◮ In Coq: 0 ⊢ 0ty → 0ty ty ⇒ ⊥ provable. ◮ In Abella: {• ⊢ n0 → n0 ty} ⇒ ⊥ provable. ◮ In Beluga [• ⊢ x → x ty] syntactically ill-formed since x /

∈ •.

Jonas Kaiser F and λ2 – A Case Study September 4, 2017 19 / 25

slide-20
SLIDE 20

computer science

saarland

university

Beluga – Representation

Syntax: standard HOAS. Judgements:

◮ ∼, ≈, _ :2 _ identical to Abella. ◮ _ ty does not exist as contextual objects are always well-scoped. ◮ _ :F _ Abella version with all _ ty premises removed.

Context Schemas type dependent lists of dependent records: SλW := [x : Tmλ, x :2 ∗] + [x : Tmλ, x :2 a, a :2 ∗]

Jonas Kaiser F and λ2 – A Case Study September 4, 2017 20 / 25

slide-21
SLIDE 21

computer science

saarland

university

Beluga – Working with Schemas

Functionality of ∼

1 Define schema:

S∼ := [x : TyF, y : Tmλ, x ∼ y] + [y : Tmλ]

2 Implement, using pattern matching and higher-order unification:

fty : ∀Γ : S∼. [Γ ⊢ A ∼ a] ⇒ [Γ ⊢ A ∼ a′] ⇒ [Γ ⊢ a = a′] Variable case:

◮ From pattern matching: x ∼ y obtained from some r ∈ Γ. ◮ Unification: x ∼ y ′ from some r ′ ∈ Γ. ◮ Unification: x is local to r, hence r = r ′, hence y =λ y ′. Jonas Kaiser F and λ2 – A Case Study September 4, 2017 21 / 25

slide-22
SLIDE 22

computer science

saarland

university

Beluga – Complex Schemas

Left-Totality and Preservation of Type Formation of ∼

1 Define schema S→ ∼W with specific typing information:

S→

∼W

:= [x : TyF, y : Tmλ, x ∼ y, y :2 ∗] + [y : Tmλ, y :2 a]

2 Implement recursive function p→ ∼ by recursion on A : [Γ ⊢ TyF], s.t.:

p→

: ∀Γ : S→

∼W . ∀A : [Γ ⊢ TyF]. [Γ ⊢ ∃a.A ∼ a ∧ a :2 ∗]

REMARK: Schemas like S→

∼W are probably not automatically inferrable from the

involved inductive families, contrary to common belief.

Jonas Kaiser F and λ2 – A Case Study September 4, 2017 22 / 25

slide-23
SLIDE 23

computer science

saarland

university

Conclusion

Summary:

◮ Result: reduction of typing for two variants of System F. ◮ Formalised using three different approaches: first-order de Bruijn,

HOAS with nominals, HOAS with 1st-class contexts

Formalisation effort (approximate LOC): mode Infrastructure Properties Main Thm. Coq tactics 1200 130 40 Abella tactics 580 220 30 Beluga proof terms 100 250 20 Future Work:

◮ STLC, Fω. ◮ Correspondence of reduction? ◮ Other techniques: LN [Aydemir et al. ’08], HYBRID [Capretta/Felty ’06]

(both Isabelle and Coq), Twelf, . . .

Jonas Kaiser F and λ2 – A Case Study September 4, 2017 23 / 25

slide-24
SLIDE 24

computer science

saarland

university

The Take-Home Lesson

There is no silver bullet! However, certain techniques go well together:

◮ De Bruijn/parallel substitutions/CML-style invariants. ◮ HOAS with context constraints/schemas and corresponding inversions. ◮ Relations capture correspondences which hold on language fragments.

Formalising the proof three times was quite instructive.

◮ Separate technicalities from inherent complications. Jonas Kaiser F and λ2 – A Case Study September 4, 2017 24 / 25

slide-25
SLIDE 25

computer science

saarland

university

Thank you for your attention.

http://www.ps.uni-saarland.de/extras/fscd17/

Jonas Kaiser F and λ2 – A Case Study September 4, 2017 25 / 25