Alexander J Summers Department of Computing Imperial College London νλμ : A Curry-Howard Correspondence for a Canonical Classical Natural Deduction Alexander J Summers Department of Computing Imperial College London Set context of work/intro
Objectives Investigate computational content of Gentzen’s classical natural deduction Aim to faithfully inhabit the original logic Based on an adequate set of logical connectives Define reductions encompassing existing work Aim for the simulation of existing control operators Cut Elimination for classical sequent calculus Has well-understood and accepted reduction rules Reach something as general as cut elimination Adapt the λμ-calculus of Parigot to these aims What we’re going to talk about the effect of different connectives on term calculi Write this at the end, when all other slides are done.#
Extending λμ-calculus Γ, x:A ⊢ x : A | Δ Γ, x:A ⊢ M : B | Δ Γ ⊢ N : A | Δ Γ ⊢ λx.M : A→B | Δ Γ ⊢ [α]N : | α:A, Δ Γ ⊢ M : A→B | Δ Γ ⊢ N : A | Δ Γ ⊢ M : | α:A, Δ Γ ⊢ (M N) : B | Δ Γ ⊢ μα.M : A | Δ
Extending λμ-calculus Γ, x:A ⊢ x : A | Δ Γ, x:A ⊢ M : B | Δ Γ ⊢ N : A | Δ Γ ⊢ λx.M : A→B | Δ Γ ⊢ [α]N : | α:A, Δ Γ ⊢ M : A→B | Δ Γ ⊢ N : A | Δ Γ ⊢ M : | α:A, Δ Γ ⊢ (M N) : B | Δ Γ ⊢ μα.M : A | Δ
Extending λμ-calculus Judgements have multiple conclusions Γ, x:A ⊢ x : A | Δ Γ, x:A ⊢ M : B | Δ Γ ⊢ N : A | Δ Γ ⊢ λx.M : A→B | Δ Γ ⊢ [α]N : | α:A, Δ Γ ⊢ M : A→B | Δ Γ ⊢ N : A | Δ Γ ⊢ M : | α:A, Δ Γ ⊢ (M N) : B | Δ Γ ⊢ μα.M : A | Δ
Extending λμ-calculus Judgements have multiple conclusions Γ, x:A ⊢ x : A | Δ Γ, x:A ⊢ M : B | Δ Γ ⊢ N : A | Δ Γ ⊢ λx.M : A→B | Δ Γ ⊢ [α]N : | α:A, Δ Γ ⊢ M : A→B | Δ Γ ⊢ N : A | Δ Γ ⊢ M : | α:A, Δ Γ ⊢ (M N) : B | Δ Γ ⊢ μα.M : A | Δ
Extending λμ-calculus Judgements have multiple conclusions Parigot: derivations can be transformed Γ, x:A ⊢ x : A | Δ Γ, x:A ⊢ M : B | Δ Γ ⊢ N : A | Δ Γ ⊢ λx.M : A→B | Δ Γ ⊢ [α]N : | α:A, Δ Γ ⊢ M : A→B | Δ Γ ⊢ N : A | Δ Γ ⊢ M : | α:A, Δ Γ ⊢ (M N) : B | Δ Γ ⊢ μα.M : A | Δ
Extending λμ-calculus Judgements have multiple conclusions Parigot: derivations can be transformed Γ, x:A ⊢ x : A | Δ Γ, x:A ⊢ M : B | Δ Γ ⊢ N : A | Δ Γ ⊢ λx.M : A→B | Δ Γ ⊢ [α]N : | α:A, Δ Γ ⊢ M : A→B | Δ Γ ⊢ N : A | Δ Γ ⊢ M : | α:A, Δ Γ ⊢ (M N) : B | Δ Γ ⊢ μα.M : A | Δ
Extending λμ-calculus Judgements have single conclusions Parigot: derivations can be transformed Γ, ¬Δ, x:A ⊢ x : A Γ, x:A ⊢ M : B | Δ Γ ⊢ N : A | Δ Γ ⊢ λx.M : A→B | Δ Γ ⊢ [α]N : | α:A, Δ Γ ⊢ M : A→B | Δ Γ ⊢ N : A | Δ Γ ⊢ M : | α:A, Δ Γ ⊢ (M N) : B | Δ Γ ⊢ μα.M : A | Δ
Extending λμ-calculus Judgements have single conclusions Γ, ¬Δ, x:A ⊢ x : A Γ, x:A ⊢ M : B | Δ Γ ⊢ N : A | Δ Γ ⊢ λx.M : A→B | Δ Γ ⊢ [α]N : | α:A, Δ Γ ⊢ M : A→B | Δ Γ ⊢ N : A | Δ Γ ⊢ M : | α:A, Δ Γ ⊢ (M N) : B | Δ Γ ⊢ μα.M : A | Δ
Extending λμ-calculus Γ, ¬Δ, x:A ⊢ x : A Γ, x:A ⊢ M : B | Δ Γ ⊢ N : A | Δ Γ ⊢ λx.M : A→B | Δ Γ ⊢ [α]N : | α:A, Δ Γ ⊢ M : A→B | Δ Γ ⊢ N : A | Δ Γ ⊢ M : | α:A, Δ Γ ⊢ (M N) : B | Δ Γ ⊢ μα.M : A | Δ
Extending λμ-calculus Γ, ¬Δ, x:A ⊢ x : A Γ, x:A ⊢ M : B | Δ Γ ⊢ N : A | Δ Γ ⊢ λx.M : A→B | Δ Γ ⊢ [α]N : | α:A, Δ Γ ⊢ M : A→B | Δ Γ ⊢ N : A | Δ Γ ⊢ M : | α:A, Δ Γ ⊢ (M N) : B | Δ Γ ⊢ μα.M : A | Δ
Extending λμ-calculus Γ, ¬Δ, x:A ⊢ x : A Γ, ¬Δ, x:A ⊢ M : B Γ, ¬Δ ⊢ N : A Γ, ¬Δ ⊢ λx.M : A→B Γ, ¬Δ, α: ¬A ⊢ [α]N : Γ, ¬Δ ⊢ M : A→B Γ, ¬Δ ⊢ N : A Γ, ¬Δ, α: ¬A ⊢ M : Γ, ¬Δ ⊢ (M N) : B Γ, ¬Δ ⊢ μα.M : A
Extending λμ-calculus Γ, ¬Δ, x:A ⊢ x : A Γ, ¬Δ, x:A ⊢ M : B Γ, ¬Δ ⊢ N : A Γ, ¬Δ ⊢ λx.M : A→B Γ, ¬Δ, α: ¬A ⊢ [α]N : Γ, ¬Δ ⊢ M : A→B Γ, ¬Δ ⊢ N : A Γ, ¬Δ, α: ¬A ⊢ M : Γ, ¬Δ ⊢ (M N) : B Γ, ¬Δ ⊢ μα.M : A
Extending λμ-calculus Greek ‘special’ assumptions are restricted Γ, ¬Δ, x:A ⊢ x : A Γ, ¬Δ, x:A ⊢ M : B Γ, ¬Δ ⊢ N : A Γ, ¬Δ ⊢ λx.M : A→B Γ, ¬Δ, α: ¬A ⊢ [α]N : Γ, ¬Δ ⊢ M : A→B Γ, ¬Δ ⊢ N : A Γ, ¬Δ, α: ¬A ⊢ M : Γ, ¬Δ ⊢ (M N) : B Γ, ¬Δ ⊢ μα.M : A
Extending λμ-calculus Greek ‘special’ assumptions are restricted Idea: merge the two alphabets Γ, ¬Δ, x:A ⊢ x : A Γ, ¬Δ, x:A ⊢ M : B Γ, ¬Δ ⊢ N : A Γ, ¬Δ ⊢ λx.M : A→B Γ, ¬Δ, α: ¬A ⊢ [α]N : Γ, ¬Δ ⊢ M : A→B Γ, ¬Δ ⊢ N : A Γ, ¬Δ, α: ¬A ⊢ M : Γ, ¬Δ ⊢ (M N) : B Γ, ¬Δ ⊢ μα.M : A
Extending λμ-calculus Greek ‘special’ assumptions are restricted Idea: merge the two alphabets Γ, ¬Δ, x:A ⊢ x : A Γ, ¬Δ, x:A ⊢ M : B Γ, ¬Δ ⊢ N : A Γ, ¬Δ ⊢ λx.M : A→B Γ, ¬Δ, α: ¬A ⊢ [α]N : Γ, ¬Δ ⊢ M : A→B Γ, ¬Δ ⊢ N : A Γ, ¬Δ, α: ¬A ⊢ M : Γ, ¬Δ ⊢ (M N) : B Γ, ¬Δ ⊢ μα.M : A
Extending λμ-calculus Greek ‘special’ assumptions are restricted Idea: merge the two alphabets Γ, x:A ⊢ x : A Γ, x:A ⊢ M : B Γ ⊢ N : A Γ ⊢ λx.M : A→B Γ, α: ¬A ⊢ [α]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, α: ¬A ⊢ M : Γ ⊢ (M N) : B Γ ⊢ μα.M : A
Extending λμ-calculus Greek ‘special’ assumptions are restricted Idea: merge the two alphabets Γ, x:A ⊢ x : A Γ, x:A ⊢ M : B Γ ⊢ N : A Γ ⊢ λx.M : A→B Γ, α: ¬A ⊢ [α]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, α: ¬A ⊢ M : Γ ⊢ (M N) : B Γ ⊢ μα.M : A
Extending λμ-calculus Greek ‘special’ assumptions are restricted Idea: merge the two alphabets Γ, x:A ⊢ x : A Γ, x:A ⊢ M : B Γ ⊢ N : A Γ ⊢ λx.M : A→B Γ, α: ¬A ⊢ [α]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, α: ¬A ⊢ M : Γ ⊢ (M N) : B Γ ⊢ μα.M : A
Extending λμ-calculus Greek ‘special’ assumptions are restricted Idea: merge the two alphabets Γ, x:A ⊢ x : A Γ, x:A ⊢ M : B Γ ⊢ N : A Γ ⊢ λx.M : A→B Γ, x: ¬A ⊢ [x]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Extending λμ-calculus All assumptions have equal status Γ, x:A ⊢ x : A Γ, x:A ⊢ M : B Γ ⊢ N : A Γ ⊢ λx.M : A→B Γ, x: ¬A ⊢ [x]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Extending λμ-calculus Γ, x:A ⊢ x : A Γ, x:A ⊢ M : B Γ ⊢ N : A Γ ⊢ λx.M : A→B Γ, x: ¬A ⊢ [x]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Extending λμ-calculus (Ax) Γ, x:A ⊢ x : A Γ, x:A ⊢ M : B Γ ⊢ N : A (→I) Γ ⊢ λx.M : A→B Γ, x: ¬A ⊢ [x]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Extending λμ-calculus (Ax) Γ, x:A ⊢ x : A Γ, x:A ⊢ M : B Γ ⊢ N : A (→I) ? Γ ⊢ λx.M : A→B Γ, x: ¬A ⊢ [x]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Extending λμ-calculus Special case of (¬E) (Ax) Γ, x:A ⊢ x : A Γ, x:A ⊢ M : B Γ ⊢ N : A (→I) Γ ⊢ λx.M : A→B Γ, x: ¬A ⊢ [x]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Extending λμ-calculus Special case of (¬E) (Ax) Γ, x:A ⊢ x : A Γ, x:A ⊢ M : B Γ ⊢ x : ¬A Γ ⊢ N : A (→I) (¬E) Γ ⊢ λx.M : A→B Γ ⊢ [x]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Extending λμ-calculus Special case of (¬E) First premise must be an axiom (Ax) Γ, x:A ⊢ x : A Γ, x:A ⊢ M : B Γ ⊢ x : ¬A Γ ⊢ N : A (→I) (¬E) Γ ⊢ λx.M : A→B Γ ⊢ [x]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Extending λμ-calculus Special case of (¬E) First premise must be an axiom (Ax) Γ, x:A ⊢ x : A Γ, x:A ⊢ M : B Γ ⊢ x : ¬A Γ ⊢ N : A (→I) (¬E) Γ ⊢ λx.M : A→B Γ ⊢ [x]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Extending λμ-calculus Special case of (¬E) First premise must be an axiom (Ax) Γ, x:A ⊢ x : A Γ, x:A ⊢ M : B Γ ⊢ x : ¬A Γ ⊢ N : A (→I) (¬E) Γ ⊢ λx.M : A→B Γ ⊢ [ x ]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Extending λμ-calculus Special case of (¬E) First premise must be an axiom (Ax) Γ, x:A ⊢ x : A Γ, x:A ⊢ M : B Γ ⊢ x : ¬A Γ ⊢ N : A (→I) (¬E) Γ ⊢ λx.M : A→B Γ ⊢ [ x ]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Extending λμ-calculus Special case of (¬E) First premise can be any proof (Ax) Γ, x:A ⊢ x : A Γ, x:A ⊢ M : B Γ ⊢ M : ¬A Γ ⊢ N : A (→I) (¬E) Γ ⊢ λx.M : A→B Γ ⊢ [M]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Extending λμ-calculus (Ax) Γ, x:A ⊢ x : A Γ, x:A ⊢ M : B Γ ⊢ M : ¬A Γ ⊢ N : A (→I) (¬E) Γ ⊢ λx.M : A→B Γ ⊢ [M]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Extending λμ-calculus (Ax) Γ, x:A ⊢ x : A Γ, x:A ⊢ M : B Γ ⊢ M : ¬A Γ ⊢ N : A (→I) (¬E) Γ ⊢ λx.M : A→B Γ ⊢ [M]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) (PC) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Extending λμ-calculus (Ax) Γ, x:A ⊢ x : A Γ, x:A ⊢ M : B Γ ⊢ M : ¬A Γ ⊢ N : A (→I) (¬E) Γ ⊢ λx.M : A→B Γ ⊢ [M]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) (PC) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Extending λμ-calculus (Ax) Γ, x:A ⊢ x : A Γ, x:A ⊢ M : B Γ ⊢ M : ¬A Γ ⊢ N : A (→I) (¬E) Γ ⊢ λx.M : A→B Γ ⊢ [M]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) (PC) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Extending λμ-calculus The rule (¬I) is entirely missing (Ax) Γ, x:A ⊢ x : A Γ, x:A ⊢ M : B Γ ⊢ M : ¬A Γ ⊢ N : A (→I) (¬E) Γ ⊢ λx.M : A→B Γ ⊢ [M]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) (PC) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Extending λμ-calculus Γ, x:A ⊢ M : (Ax) (¬I) Γ, x:A ⊢ x : A Γ ⊢ νx.M : ¬A Γ, x:A ⊢ M : B Γ ⊢ M : ¬A Γ ⊢ N : A (→I) (¬E) Γ ⊢ λx.M : A→B Γ ⊢ [M]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) (PC) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Extending λμ-calculus Γ, x:A ⊢ M : (Ax) (¬I) Γ, x:A ⊢ x : A Γ ⊢ νx.M : ¬A Γ, x:A ⊢ M : B Γ ⊢ M : ¬A Γ ⊢ N : A (→I) (¬E) Γ ⊢ λx.M : A→B Γ ⊢ [M]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) (PC) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Extending λμ-calculus Γ, x:A ⊢ M : (Ax) (¬I) Γ, x:A ⊢ x : A Γ ⊢ νx.M : ¬A Γ, x:A ⊢ M : B Γ ⊢ M : ¬A Γ ⊢ N : A (→I) (¬E) Γ ⊢ λx.M : A→B Γ ⊢ [M]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) (PC) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Extending λμ-calculus Γ, x:A ⊢ M : (Ax) (¬I) Γ, x:A ⊢ x : A Γ ⊢ νx.M : ¬A Γ, x:A ⊢ M : B Γ ⊢ M : ¬A Γ ⊢ N : A (→I) (¬E) Γ ⊢ λx.M : A→B Γ ⊢ [M]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) (PC) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Extending λμ-calculus Γ, x:A ⊢ M : (Ax) (¬I) Γ, x:A ⊢ x : A Γ ⊢ νx.M : ¬A Γ, x:A ⊢ M : B Γ ⊢ M : ¬A Γ ⊢ N : A (→I) (¬E) Γ ⊢ λx.M : A→B Γ ⊢ [M]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) (PC) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Extending λμ-calculus Classical Natural Deduction Γ, x:A ⊢ M : (Ax) (¬I) Γ, x:A ⊢ x : A Γ ⊢ νx.M : ¬A Γ, x:A ⊢ M : B Γ ⊢ M : ¬A Γ ⊢ N : A (→I) (¬E) Γ ⊢ λx.M : A→B Γ ⊢ [M]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) (PC) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
The νλμ-calculus Γ, x:A ⊢ M : Γ, x:A ⊢ x : A Γ ⊢ νx.M : ¬A (¬I) Γ, x:A ⊢ x : A Γ ⊢ νx.M : ¬A Γ, x:A ⊢ M : B Γ ⊢ M : ¬A Γ ⊢ N : A (→I) (¬E) Γ ⊢ λx.M : A→B Γ ⊢ [M]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) (PC) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
The νλμ-calculus The νλμ-calculus Γ, x:A ⊢ M : Γ, x:A ⊢ x : A (¬I) Γ, x:A ⊢ x : A Γ ⊢ νx.M : ¬A Γ, x:A ⊢ M : B Γ ⊢ M : ¬A Γ ⊢ N : A (→I) (¬E) Γ ⊢ λx.M : A→B Γ ⊢ [M]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) (PC) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Important features The νλμ-calculus Γ, x:A ⊢ M : Γ, x:A ⊢ x : A Γ ⊢ νx.M : ¬A Γ, x:A ⊢ M : B Γ ⊢ M : ¬A Γ ⊢ N : A (→I) (¬E) Γ ⊢ λx.M : A→B Γ ⊢ [M]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) (PC) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Important features The νλμ-calculus Γ, x:A ⊢ M : Γ, x:A ⊢ x : A Γ ⊢ νx.M : ¬A Γ, x:A ⊢ M : B Γ ⊢ M : ¬A Γ ⊢ N : A (→I) (¬E) Γ ⊢ λx.M : A→B Γ ⊢ [M]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) (PC) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Important features The νλμ-calculus Γ, x:A ⊢ M : Γ, x:A ⊢ x : A Γ ⊢ νx.M : ¬A Γ, x:A ⊢ M : B Γ ⊢ M : ¬A Γ ⊢ N : A (→I) (¬E) Γ ⊢ λx.M : A→B Γ ⊢ [M]N : Γ ⊢ M : A→B Γ ⊢ N : A Γ, x: ¬A ⊢ M : (→E) (PC) Γ ⊢ (M N) : B Γ ⊢ μx.M : A
Important features νx.M ¬A [M]N μx.M
Important features νx.M ¬A [M]N μx.M
Important features νx.M ¬A [M]N μx.M
Important features ¬A νx.M [M]N μx.M
Important features ¬A νx.M [M]N μx.M
Important features ¬A νx.M [M]N μx.M
Important features ¬A νx.M [M]N μx.M
Important features ¬A νx.M [M]N μx.M
Important features ¬A νx.M [M]N μx.M
Important features ¬A νx.M [M]N μx.M
Important features ¬A νx.M [M]N μx.M
Important features ¬A νx.M [M]N μx.M
Important features ¬A νx.M [M]N μx.M
Important features ¬A νx.M [M]N μx.M
Important features ¬A νx.M [M]N μx.M
Important features - bottom type represents ‘no output’ ¬A - negated type for continuation with input of type A νx.M - terms to explicitly represent continuations Informally, terms which consume an input but produce no output [M]N - continuation application Pass the argument N to the continuation M μx.M - control operator Capture the surrounding ‘context’ and bind it to x What about reductions? Many alternative ideas exist, particularly for the μ-bound terms Identify a common theme, and generalise the existing work ¬A νx.M [M]N μx.M
μ reductions.. General idea: μ-bound terms consume their contexts Recall the typing rule: Γ ⊢ μx.M : A Γ, x: ¬A ⊢ M : (PC)
μ reductions.. General idea: μ-bound terms consume their contexts Recall the typing rule: Find a term of type ¬A Γ ⊢ μx.M : A Γ, x: ¬A ⊢ M : (PC)
μ reductions.. General idea: μ-bound terms consume their contexts Recall the typing rule: Find a term of type ¬A Substitute the term for x Γ ⊢ μx.M : A Γ, x: ¬A ⊢ M : (PC)
μ reductions.. General idea: μ-bound terms consume their contexts Recall the typing rule: Find a term of type ¬A Substitute the term for x Term of type ¬A is a continuation with a ‘hole’ of type A Any context around μx.M must have a ‘hole’ of type A Γ ⊢ μx.M : A Γ, x: ¬A ⊢ M : (PC)
μ reductions.. General idea: μ-bound terms consume their contexts Recall the typing rule: Find a term of type ¬A Substitute the term for x Term of type ¬A is a continuation with a ‘hole’ of type A Any context around μx.M must have a ‘hole’ of type A Γ ⊢ μx.M : A Γ, x: ¬A ⊢ M : (PC) μx.M : A
μ reductions.. General idea: μ-bound terms consume their contexts Recall the typing rule: Find a term of type ¬A Substitute the term for x Term of type ¬A is a continuation with a ‘hole’ of type A Any context around μx.M must have a ‘hole’ of type A Γ, x: ¬A ⊢ M : (PC) Γ ⊢ μx.M : A μx.M : A μx.M
μ reductions.. General idea: μ-bound terms consume their contexts Recall the typing rule: Find a term of type ¬A Substitute the term for x Term of type ¬A is a continuation with a ‘hole’ of type A Any context around μx.M must have a ‘hole’ of type A Γ, x: ¬A ⊢ M : (PC) Γ ⊢ μx.M : A μx.M : A μx.M
μ reductions.. General idea: μ-bound terms consume their contexts Recall the typing rule: Find a term of type ¬A Substitute the term for x Term of type ¬A is a continuation with a ‘hole’ of type A Any context around μx.M must have a ‘hole’ of type A Γ, x: ¬A ⊢ M : (PC) Γ ⊢ μx.M : A μx.M : A μx.M
μ reductions.. General idea: μ-bound terms consume their contexts Recall the typing rule: Find a term of type ¬A Substitute the term for x Term of type ¬A is a continuation with a ‘hole’ of type A Any context around μx.M must have a ‘hole’ of type A Γ, x: ¬A ⊢ M : (PC) Γ ⊢ μx.M : A μx.M : A μx.M
μ reductions.. General idea: μ-bound terms consume their contexts Recall the typing rule: Find a term of type ¬A Substitute the term for x Term of type ¬A is a continuation with a ‘hole’ of type A Any context around μx.M must have a ‘hole’ of type A Γ, x: ¬A ⊢ M : (PC) Γ ⊢ μx.M : A μx.M : A μx.M
μ reductions.. General idea: μ-bound terms consume their contexts Recall the typing rule: Find a term of type ¬A Substitute the term for x Term of type ¬A is a continuation with a ‘hole’ of type A Any context around μx.M must have a ‘hole’ of type A Γ, x: ¬A ⊢ M : (PC) Γ ⊢ μx.M : A μx.M : A μx.M
μ reductions.. General idea: μ-bound terms consume their contexts Recall the typing rule: Find a term of type ¬A Substitute the term for x Term of type ¬A is a continuation with a ‘hole’ of type A Any context around μx.M must have a ‘hole’ of type A Γ, x: ¬A ⊢ M : (PC) Γ ⊢ μx.M : A μx.M : A μx.M
μ reductions.. General idea: μ-bound terms consume their contexts Recall the typing rule: Find a term of type ¬A Substitute the term for x Term of type ¬A is a continuation with a ‘hole’ of type A Any context around μx.M must have a ‘hole’ of type A Γ, x: ¬A ⊢ M : (PC) Γ ⊢ μx.M : A μx.M : A μx.M
μ reductions.. General idea: μ-bound terms consume their contexts Recall the typing rule: Find a term of type ¬A Substitute the term for x Term of type ¬A is a continuation with a ‘hole’ of type A Any context around μx.M must have a ‘hole’ of type A Γ, x: ¬A ⊢ M : (PC) Γ ⊢ μx.M : A μx.M : A μx.M
μ reductions.. General idea: μ-bound terms consume their contexts Recall the typing rule: Find a term of type ¬A Substitute the term for x Term of type ¬A is a continuation with a ‘hole’ of type A Any context around μx.M must have a ‘hole’ of type A Γ, x: ¬A ⊢ M : (PC) Γ ⊢ μx.M : A μx.M : A μx.M
μ reductions.. General idea: μ-bound terms consume their contexts Recall the typing rule: Find a term of type ¬A Substitute the term for x Term of type ¬A is a continuation with a ‘hole’ of type A Any context around μx.M must have a ‘hole’ of type A Γ, x: ¬A ⊢ M : (PC) Γ ⊢ μx.M : A μx.M : A μx.M
μ reductions.. General idea: μ-bound terms consume their contexts Recall the typing rule: Find a term of type ¬A Substitute the term for x Term of type ¬A is a continuation with a ‘hole’ of type A Any context around μx.M must have a ‘hole’ of type A Γ, x: ¬A ⊢ M : (PC) Γ ⊢ μx.M : A μx.M : A μx.M
μ reductions.. General idea: μ-bound terms consume their contexts Recall the typing rule: Find a term of type ¬A Substitute the term for x Term of type ¬A is a continuation with a ‘hole’ of type A Any context around μx.M must have a ‘hole’ of type A Γ, x: ¬A ⊢ M : (PC) Γ ⊢ μx.M : A Γ, x: ¬A ⊢ M : (PC) Γ ⊢ μx.M : A μx.M : A
μ reductions.. General idea: μ-bound terms consume their contexts Recall the typing rule: Find a term of type ¬A Substitute the term for x Term of type ¬A is a continuation with a ‘hole’ of type A Any context around μx.M must have a ‘hole’ of type A Γ, x: ¬A ⊢ M : (PC) Γ ⊢ μx.M : A Γ, x: ¬A ⊢ M : (PC) Γ ⊢ μx.M : A z : A
μ reductions.. General idea: μ-bound terms consume their contexts Recall the typing rule: Find a term of type ¬A Substitute the term for x Term of type ¬A is a continuation with a ‘hole’ of type A Any context around μx.M must have a ‘hole’ of type A Γ, x: ¬A ⊢ M : (PC) Γ ⊢ μx.M : A Γ, x: ¬A ⊢ M : (PC) νz. Γ ⊢ μx.M : A z : A : ¬A
μ reductions.. General idea: μ-bound terms consume their contexts Recall the typing rule: Find a term of type ¬A Substitute the term for x Term of type ¬A is a continuation with a ‘hole’ of type A Any context around μx.M must have a ‘hole’ of type A Γ, x: ¬A ⊢ M : (PC) Γ ⊢ μx.M : A Γ, x: ¬A ⊢ M : (PC) νz. Γ ⊢ μx.M : A z : A : ¬A
μ reductions.. General idea: μ-bound terms consume their contexts Recall the typing rule: Find a term of type ¬A Substitute the term for x Term of type ¬A is a continuation with a ‘hole’ of type A Any context around μx.M must have a ‘hole’ of type A Γ, x: ¬A ⊢ M : (PC) Γ ⊢ μx.M : A Γ, x: ¬A ⊢ M : (PC) νz. Γ ⊢ μx.M : A z : A : ¬A
μ reductions.. General idea: μ-bound terms consume their contexts. Recall the typing rule: Find a term of type ¬A Substitute the term for x Term of type ¬A is a continuation with a ‘hole’ of type A Any context around μx.M must have a ‘hole’ of type A Γ, x: ¬A ⊢ M : (PC) Γ ⊢ μx.M : A Γ, x: ¬A ⊢ M : (PC) νz. Γ ⊢ μx.M : A z : A : ¬A
Ec{μx.M} → M< νz.Ec{z} / x > μ reductions.. More formally, using a special kind of context Ec Ec{μx.M} → M< νz.Ec{z} / x > This behaviour can be broken down into ‘local’ rules The reductions are non-confluent, e.g., No obvious reason to choose one over the other Natural non-confluence, as in the sequent calculus [μx.M]μy.N M< νz.[z]μy.N / x > M< νz.[μx.M]z / x >
Control operators Griffin: C operator for double-negation elimination Compare terms inhabiting double-negation elimination (DNE) Parigot: λy.μα.[γ](y (λx.μδ.[α]x)) Bierman/Py: λy.μα.(y (λx.[α]x)) νλμ calculus: λy.μx.[y]x The μ-binding construct provides delimited control Delimited by continuation applications [M]N Behaviour is related to the F operator of Felleisen We argue that F is ‘better’ than C for DNE
Cut Elimination and Classical Sequent Calculus Classical Cut Elimination: well-known reductions Term calculi built on this notion of reduction X [vanBakel et.al.], Dual [Wadler], λμμ [Ariola&Herbelin] Unrestricted reductions are non-confluent We give an injective encoding of λμμ in νλμ calculus Reductions are preserved Typings are preserved (in both directions) Result depends on general μ reductions, plus a generalised β rule (see paper) First encoding of general classical cut elimination into a natural deduction paradigm (?) - ~ - ~
Conclusions Aim to faithfully inhabit the original logic Aim for a set of reductions encompassing existing work Aim for the simulation of existing control operators Another yardstick: classical sequent calculus Has fairly well-understood and accepted reduction rules Aim to be able to encode, and simulate these The νλμ calculus manages all of this
Future Work Strong Normalisation proof Adapt symmetric reducibility candidates But still hard, due to general reductions ‘Inverse’ encoding back to sequent calculus Some reductions harder to preserve than others Understand what these mean for the sequent calculus Confluent sub-systems of νλμ how does CBN differ from Parigot’s λμ ? how does CBV differ from Ong and Stewart’s CBV λμ ? Further comparison with delimited control operators Similar to work of Herbelin et. al.
More Details
More Details (don’t panic) Coming soon to a thesis near you Also, there’s a paper on my web page google for “Alexander J Summers” Thank you for listening