towards a type theory of contextsfp/talks/merlin05-talk.pdf · towards a type theory of contexts...

47
Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning about Languages with Variable Binding (Merλin’05) Tallinn, Estonia, September 30, 2005 Joint work with Aleks Nanevski and Brigitte Pientka Work in progress! Merlin’05, Tallinn, Sep’05 – p.1

Upload: others

Post on 29-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Towards a Type Theory of ContextsFrank Pfenning

Carnegie Mellon University

Invited Talk

Workshop on Mechanized Reasoning about Languages with Variable Binding (Merλin’05)

Tallinn, Estonia, September 30, 2005

Joint work with Aleks Nanevski and Brigitte Pientka

Work in progress!

Merlin’05, Tallinn, Sep’05 – p.1

Page 2: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Context

• Dictionary definition (Merriam-Webster Online)a. the parts of a discourse that surround a word or passage

and can throw light on its meaningb. the interrelated conditions in which something exists or

occurs

• Of central importance in computer science• Computational Linguistics• Artificial Intelligence• Programming Languages

• Not very well understood

Merlin’05, Tallinn, Sep’05 – p.2

Page 3: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Logic and Type Theory

• Logic in this talk always means intuitionistic logicand is therefore immediately computational• Logical frameworks• Functional programming

• Type theory makes proof terms explicit• Canonical forms• Evaluation

Merlin’05, Tallinn, Sep’05 – p.3

Page 4: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Outline

• Goals and Methods• Validity• Contextual Validity• Context and Substitution Variables• Conclusion

Merlin’05, Tallinn, Sep’05 – p.4

Page 5: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Original Goals

• Understanding meta-variables• Logical essence• Simple and dependent types• Reflection?

• In logical frameworks• Unification• Proof search (subgoals)

• For staged computation• Manipulating “open code”• Filling holes

Merlin’05, Tallinn, Sep’05 – p.5

Page 6: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Spin-offs

• Understanding explicit substitutions• Logical foundation• Substitution variables, quantification• Sequent calculi?

• Understanding contexts• Logical meaning• Context variables• Context quantification (?)

Merlin’05, Tallinn, Sep’05 – p.6

Page 7: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Methodology

• Separating judgments from propositions[Martin-Löf’83]

• Categorical judgments [Pf.&Davies’01]

• Other applications of modal type theory• Monads [Moggi’88,’91][Pf.&Davies’01]

• Run-time code generation [Davies&Pf.’96,’01]

• Partial evaluation [Davies’96]

• Distributed computation[Murphy,Crary,Harper,Pf.’04]

Merlin’05, Tallinn, Sep’05 – p.7

Page 8: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Some Consequences and Criteria

• Respecting α-conversion• Computation arises from reduction• Normalization• Canonical forms• Orthogonality of language constructs• Adding other propositions, types• Modular reasoning

Merlin’05, Tallinn, Sep’05 – p.8

Page 9: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Hypothetical Judgments

• Basic judgment A true

• Hypothetical judgment

A1 true , . . . , An true︸ ︷︷ ︸

Γ

` A true

• Hypothesis ruleA true ∈ Γ

Γ ` A true

• Substitution principleIf Γ ` A true and Γ, A true ` C true then Γ ` C true

Merlin’05, Tallinn, Sep’05 – p.9

Page 10: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Modal Logic of Validity

• Categorical judgment

• ` A true

A valid

• Generalized hypothetical judgment

B1 valid , . . . , Bm valid︸ ︷︷ ︸

;A1 true, . . . , An true︸ ︷︷ ︸

Γ

` C true

• Generalized definition of validity

∆; • ` A true

∆; Γ ` A valid

Merlin’05, Tallinn, Sep’05 – p.10

Page 11: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Modal Logic of Validity, Ctd

• New hypothesis rule

A valid ∈ ∆

∆; Γ ` A true

• New substitution principleIf ∆; • ` A true and ∆, A valid ; Γ ` C true then∆; Γ ` C true

Merlin’05, Tallinn, Sep’05 – p.11

Page 12: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Simple Type Theory of Validity

• Assign proof terms

u1::B1, . . . , um::Bm︸ ︷︷ ︸

;x1:A1, . . . , xn:An︸ ︷︷ ︸

Γ

`M : C

• Hypothesis rules

x:A ∈ Γ

∆; Γ ` x : A

u::A ∈ ∆

∆; Γ ` u : A

• Ordinary substitution principleIf ∆; Γ `M : A and ∆; Γ, x:A ` N : C then∆; Γ ` [M/x]N : C

Merlin’05, Tallinn, Sep’05 – p.12

Page 13: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Substitution Operations

• Modal substitution principleIf ∆; • `M : A and ∆, u::A; Γ ` N : C then∆; Γ ` [[M/u]]N : C

• Ordinary substitution [M/x]N as usual

• Modal substitution [[M/u]]N slightly unusual

[M/x](λy.N) = λy. [M/x]N for y 6∈ FV(M)

[[M/u]](λy.N) = λy. [[M/u]]N without proviso

• [[M/u]] can be implemented by “grafting”

Merlin’05, Tallinn, Sep’05 – p.13

Page 14: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Excursion: Higher-Order Unification

• Huet’s formulation• Substituends for meta-variables• Have no free ordinary variables• May contain other meta-variables

λx. λy. λz. u1 x y.= λx. λy. λz. u2 y z

u1 ←− (λx. λy. u3 y)

u2 ←− (λy. λz. u3 y)

• Precisely modeled by validity

Merlin’05, Tallinn, Sep’05 – p.14

Page 15: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Internalizing Validity

• Validity is a categorical judgment, not type• Internalize as modal type constructor

• By Curry-Howard, can be read as proposition

∆; • `M : A

∆; Γ ` box M : �A�I

∆; Γ `M : �A ∆, u::A; Γ ` N : C

∆; Γ ` let box u = M in N : C�E

Merlin’05, Tallinn, Sep’05 – p.15

Page 16: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Computation from Reduction

• Reduce when eliminations follow introductions

(β) let box u = box M in N → [[M/u]]N

• Expand to create eliminations followed byintroductions

(η̄) M : �A→ let box u = M in box u

• Omit reduction, expansion for A→ B

• Reduction and expansion preserve types• Follows from substitution properties

Merlin’05, Tallinn, Sep’05 – p.16

Page 17: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Excursion: Staged Computation

• �A is source code of type A

• Implement as run-time code generationexp : nat → �(nat → nat)

exp 0 = box (λx. 1)

exp 1 = box (λx. x)

exp n = let box u = exp (n− 1) in box (λx. (ux) ∗ x)

for n ≥ 2

exp 2 7→∗box (λx2. (λx1.x1)x2 ∗ x2)

67→∗box (λx2. x2 ∗ x2)

Merlin’05, Tallinn, Sep’05 – p.17

Page 18: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Characteristic Laws

• Laws of (intuitionistic) S4

` �A→ A

` �A→ ��A

` �(A→ B)→ �A→ �B

6` A→ �A

• Also need necessitation (≈ �I)• Kripke interpretation• �A true means A true in all future worlds• Accessibility is reflexive and transitive

Merlin’05, Tallinn, Sep’05 – p.18

Page 19: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Contextual Validity

• A valid [Ψ] means A is true in every world whereall hypothesis in context Ψ are satisfied

• Generalized hypothetical judgment

B1 valid [Ψ1], . . . , Bm[Ψm] valid︸ ︷︷ ︸

;A1 true, . . . , An true︸ ︷︷ ︸

Γ

` C true

• Generalized definition of contextual validity

∆; Ψ ` A true

∆; Γ ` A valid [Ψ]

Merlin’05, Tallinn, Sep’05 – p.19

Page 20: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Validity and Contextual Validity

• A valid [•] corresponds to A valid

• A valid [A1 true, . . . , An true] like(A1 → · · · → An → A) valid

• Proof theory and computation is quite different

Merlin’05, Tallinn, Sep’05 – p.20

Page 21: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Proof Terms

• Assign proof terms

u1::B1[Ψ1], . . . , um::Bm[Ψm]︸ ︷︷ ︸

;x1:A1, . . . , xn:An︸ ︷︷ ︸

Γ

`M : C

• Contextual hypothesis rule

u::A[Ψ] ∈ ∆ ∆; Γ ` σ : Ψ

∆; Γ ` u[σ] : A

• Requires explicit substitution σ to establish that allassumptions in Ψ can be realized in Γ

Merlin’05, Tallinn, Sep’05 – p.21

Page 22: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Explicit Substitutions

• Simultaneous substitutions

Substitutions σ ::= • | σ,M/x

• Typing judgment ∆; Γ ` σ : Ψ

∆; Γ ` • : •

∆; Γ ` σ : Ψ ∆; Γ `M : A

∆; Γ ` (σ,M/x) : (Ψ, x:A)

• Not just a tuple (cf dependencies)

Merlin’05, Tallinn, Sep’05 – p.22

Page 23: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Substitution Principle

• Substitution principles for contextual validityIf ∆; Ψ `M : A and ∆, u::A[Ψ]; Γ ` N : C then∆; Γ ` [[Ψ.M/u]]N : C

• Also need to substitute into explicit substitutions!If ∆; Ψ `M : A and ∆, u::A[Ψ]; Γ ` τ : Φ then∆; Γ ` [[Ψ.M/u]]τ : Φ

• Close M over Ψ to preserve α-conversion• Not necessary in nameless implementation

Merlin’05, Tallinn, Sep’05 – p.23

Page 24: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Substitution Operations

• [[Ψ.M/u]]N as before, except

[[Ψ.M/u]](w[σ]) = w[[[Ψ.M/u]]σ] for u 6= w

[[Ψ.M/u]](u[σ]) = [σ′/Ψ](M) where σ′ = [[Ψ.M/u]]σ

• σ′/Ψ renames variables in σ′ to match Ψ

• Need to awaken the postponed substitution σ• Different occurrences of u may be under different

substitutions

Merlin’05, Tallinn, Sep’05 – p.24

Page 25: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Simultaneous Substitution

• Simultaneous substitution principlesIf ∆; Ψ ` σ : Γ and ∆; Γ `M : A then ∆; Ψ ` [σ]M : A

• Definition of [σ]M is straightforward, for example

[σ](x) = M where M/x ∈ σ

[σ](u[τ ]) = u[[σ]τ ]

[σ](λx.M) = λx. [σ, x/x]

• Composition of substitutions (also straightforward)If ∆; Ψ ` σ : Γ and ∆; Γ ` τ : Φ then ∆; Ψ ` [σ]τ : Φ

Merlin’05, Tallinn, Sep’05 – p.25

Page 26: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Excursion: Unification Revisited

• Meta-variables á la Dowek et al. in h.o. unification• Substituends for meta-variables• Have free ordinary variables• Occur under explicit substitution

u1::i[x:i, y:i], u2::i[y:i, z:i]

λx. λy. λz. u1[x/x, y/y].= λx. λy. λz. u2[y/y, z/z]

u1 ←− u3[y/y]

u2 ←− u3[y/y]

for u3::i[y:i]

Merlin’05, Tallinn, Sep’05 – p.26

Page 27: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Internalizing Contextual Validity

• New contextual modal operator [Ψ]A

∆; Ψ `M : A

∆; Γ ` box (Ψ.M) : [Ψ]A[−]I

∆; Γ `M : [Ψ]A ∆, u::A[Ψ]; Γ ` N : C

∆; Γ ` let box u = M in N : C[−]E

• Reduction

(β) let box u = box (Ψ.M) in N → [[(Ψ.M)/u]]N

Merlin’05, Tallinn, Sep’05 – p.27

Page 28: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Identity Substitutions

• Expansion requires identity substitution

(η̄) M : [Ψ]A→ let box u = M in box (Ψ.u[id(Ψ)])

• Defineid(•) = •

id(Ψ, x:A) = id(Ψ), x/x

• Reduction and expansion preserve types

Merlin’05, Tallinn, Sep’05 – p.28

Page 29: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Excursion: Staging Revisited

• Avoid creating redexes in code generation• Manipulate open code• [Ψ]A — source with free variables in Ψ

exp : nat → [x:nat]nat

exp 0 = box (x. 1)

exp 1 = box (x. x)

exp n = let box u = exp (n− 1) in box (x. (u[x/x]) ∗ x)

for n ≥ 2

exp 2 67→∗box (λx2. (λx1.x1)x2 ∗ x2)

7→∗box (x2. x2 ∗ x2)

Merlin’05, Tallinn, Sep’05 – p.29

Page 30: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Some Sample Theorems

` [•]A→ A

` [x:B]A→ [y:C][x:B]A

` [x:C](A→ B)→ [x:C]A→ [x:C]B

` [x:A]A

` [x:B, y:B]A→ [z:B]A

` [x:B]A→ [x:B, y:C]A

6` [x:B]A→ A

6` A→ [x:B]A

Merlin’05, Tallinn, Sep’05 – p.30

Page 31: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Context Variables

• Theorems parametric in propositions (A,B,C)

` [x:B]A→ [y:C][x:B]A

• Would like theorems parametric in contexts

• Write ψ, φ, γ for context variables

` [ψ]A→ [φ][ψ]A

λx:[ψ]A. let box u = x in box (φ. box (ψ. u[idψ]))

Merlin’05, Tallinn, Sep’05 – p.31

Page 32: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Identity Substitutions

• Extended language

Contexts Γ ::= • | Γ, x:A | γ

Substitutions σ ::= • | σ,M/x | idγ

• Typing

∆; γ,Γ ` idγ : γ

• Substituting for context variables• box (Ψ.M) does not bind context variable at head of Ψ• {Γ/γ}(idγ) = id(Γ) expands

Merlin’05, Tallinn, Sep’05 – p.32

Page 33: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Sample Theorems Revisited

` [•]A→ A

` [ψ]A→ [φ][ψ]A

` [ψ](A→ B)→ [ψ]A→ [ψ]B

` [x:A]A

` [ψ, x:B, y:B]A→ [ψ, z:B]A

` [ψ]A→ [ψ, x:B]A

Merlin’05, Tallinn, Sep’05 – p.33

Page 34: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Excursion: Closures

• Closures in functional languages, clo(η, v)

• Object language typing

• ` η : Ψ Ψ ` v : τ

• ` clo(η, v) : τ

• For direct representation, need context variablesand internalized substutitions (here ψ[•])

clo : [•]ψ → [ψ]A→ [•]A

Merlin’05, Tallinn, Sep’05 – p.34

Page 35: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Substitution Meta-Variables

• Substitution variables are meta-variables

• New substitutions and types

Types A ::= a | A1 → A2 | [Ψ]A | [Ψ]Φ

Substitutions σ ::= • | σ,M/x | idγ | s[σ]

Meta-Contexts ∆ ::= • | ∆, u::A[Ψ] | ∆, s::Φ[Ψ] | ∆, γ ctx

• New hypothesis rule for substitutions

s::Φ[Ψ] ∈ ∆ ∆; Γ ` τ : Ψ

∆; Γ ` s[τ ] : Φ

Merlin’05, Tallinn, Sep’05 – p.35

Page 36: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Extended Term Language

• Proposal for new terms, to be revised

∆; Ψ ` σ : Φ

∆; Γ ` sbox (Ψ. σ) : [Ψ]Φ

∆; Γ `M : [Ψ]Φ ∆, s::Φ[Ψ]; Γ ` N : C

∆; Γ ` let sbox s = M in N : C

• Substitution properties, reduction straightforward

• Example, internalizes substitution property

` λx. λy. let sbox s = x in let box u = y in box (ψ. u[s[idψ]])

: [ψ]φ→ [φ]A→ [ψ]A

Merlin’05, Tallinn, Sep’05 – p.36

Page 37: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Destructing Substitutions

• Problem: there are no destructors for substitutions

[•](φ, x:A)→ [•]φ

λy. let sbox s = y in sbox ??

• Solution 1: projections of substitutions (hd, tlx)

λy. let sbox s = y in sbox (hd(s[idφ, x/x]))

• Solution 2: pattern matching for substitutions

λy. let sbox sφ, ux = y in sbox (s[idφ])

Merlin’05, Tallinn, Sep’05 – p.37

Page 38: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Pattern Matching Substitutions

• Tentatively adopt solution 2

∆; Γ `M : [Ψ]Φ ∆′ = delta([Ψ]Φ) ∆,∆′; Γ ` N : C

∆; Γ ` let sbox ∆′ = M in N : C

where (subject to renaming)

delta([Ψ]•) = •

delta([Ψ]φ) = sφ

delta([Ψ]Φ, x:A) = delta([Ψ]Φ), ux::A[Ψ]

• Substitution for context variables expands patterns

Merlin’05, Tallinn, Sep’05 – p.38

Page 39: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Language Summary So Far

• Contextual modal types and simultaneoussubstitutions

Types A ::= a | A1 → A2 | [Ψ]A | [Ψ]Φ

• Context variables• Substitution principles• Type preservation for reduction, expansion• Strong normalization by interpretation (?)

Merlin’05, Tallinn, Sep’05 – p.39

Page 40: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Further Considerations

• Dependent types• Context quantification• Contextual modality like ♦A (〈Ψ〉A)

• Context concatenation (γ ctx [Ψ])

Merlin’05, Tallinn, Sep’05 – p.40

Page 41: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Dependent Types

• System engineered to permit dependent types• Functional version (only sketched)• Logical frameworks version [Nanevski,Pf.,Pientka’05]• No context variables, internal substitutions so far

• Contexts and substitutions are dependent

∆ ` Γ ctx ∆; Γ ` A : type

∆ ` Γ, x:A ctx

∆; Γ ` σ : Ψ ∆; Γ `M : [σ]A

∆; Γ ` (σ,M/x) : (Ψ, x:A)

• Canonical forms via hereditary substitutions[Watkins,Cervesato,Pf.,Walker’02]

Merlin’05, Tallinn, Sep’05 – p.41

Page 42: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Apps: Staged Computation

• Staged computation with “open code”• Dependent types for reasoning about staged

programs• Modalities for correct staging• Dependent types for functional correctness

• Hypothetical example

exp : Πn:nat .Σr:[x:nat ]nat .

Πk:nat . let box r = u in u[k/x].= kn

• Not “field-tested”Merlin’05, Tallinn, Sep’05 – p.42

Page 43: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Apps: Logical Frameworks

• Model meta-variables• For unification• For proof search

• Efficient implementation via deBruijn indexes• Logical foundation for Twelf implementation

(almost)• Wish I had time to rewrite unification

Merlin’05, Tallinn, Sep’05 – p.43

Page 44: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Context Quantification

• Speculative• ∀γ.A is highly impredicative• May be rejected on philosophical grounds• Predicative form (?)

• Inductively defined regular worlds [Schürmann’00]

• Example

W ::= • | W,x:exp | W, t:tp

∀γ ∈W.A

• Relevant to Delphin [Schürmann’02]?

Merlin’05, Tallinn, Sep’05 – p.44

Page 45: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Selected Other Related Work

• Philosophy, artificial intelligence [. . .many. . .]

• Generally classical logic• No computational interpretation

• Functional programming or staged computation

• λκε-calculus [Sato,Sakurai,Kameyama’02]• Environment classifiers [Taha&Nielson’03]

• Logical frameworks or theorem proving

• Meta-variables with contexts [Dowek,Hardin,Kirchner’95]• Dependently typed in deBruijn form [Muñoz’01]• Axiomatic approach [Honsell,Miculan,Scagnetto’01]• Metan-variables [Sato,Sakurai,Kameyama,Igarashi’03]

Merlin’05, Tallinn, Sep’05 – p.45

Page 46: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

Conclusion

• Goal: understanding meta-variables• Developed contextual modal logic• Explicit substitutions inevitable• Simply and dependently typed versions

• Staged computation• Manipulating open code• Reasoning about staged programs

• Logical frameworks• Meta-variables for unification, search• Basis for efficient implementation

Merlin’05, Tallinn, Sep’05 – p.46

Page 47: Towards a Type Theory of Contextsfp/talks/merlin05-talk.pdf · Towards a Type Theory of Contexts Frank Pfenning Carnegie Mellon University Invited Talk Workshop on Mechanized Reasoning

More Information

Contextual Modal Type TheoryAleksandar Nanevski, Frank Pfenning, andBrigitte PientkaSubmitted, September 2005.http://www.cs.cmu.edu/˜fp/papers/cmtt05.pdf

Merlin’05, Tallinn, Sep’05 – p.47