Deep Inference (Part 1)
Alwen Tiu
The Australian National University
ANU Logic Summer School Canberra, 11 - 15 December 2017 Outline
◮ History, motivations, scope ◮ SKS: a deep inference system for classical logic ◮ Meta theory for SKS: locality, cut elimination, proof decomposition ◮ SBV: a deep inference system for a non-commutative linear logic ◮ The splitting technique for SBV ◮ The need for deep inference: SBV cannot be ’sequentialized’. ◮ Application in process algebra: encoding Calculus of Communicating System in SBV. Lecture slides and online material
◮ Slides will be made available online at http://users.cecs.anu.edu.au/~tiu/lss17/ ◮ For a comprehensive resource on deep inference, see: http://alessio.guglielmi.name/res/cos/ Deep Inference
◮ Inference rules can be applied at any subexpressions of a given logical expression (e.g., formulas, multiset of formulas, sequents, etc). ◮ This form of inference rules has been used by Schuette in the 70’s (see Schuette’s Proof Theory). ◮ Gained prominence in early 2000, with the introduction of the calculus of structures by Guglielmi. Proof calculi with deep inference
The calculus of structures (CoS) is perhaps the most well-known proof calculus that supports deep inference. Others include: ◮ Nested sequent calculus: ◮ early development by Kashima and extensively studied and made popular by Brünnler. ◮ Belnap’s display calculus: ◮ strictly speaking no deep inference, but the display postulates act as a proxy for deep inference. ◮ Pym and O’Hearn’s logic of bunched implication: ◮ allow intruction rules under a ‘bunch’ context ◮ etc.. Scope
◮ We will focus on the calculus of structures in this lecture series. ◮ Features will be discussed through two case studies: classical logic and (non-commutative) linear logic. Motivation: context duplication
A typical introduction rule for classical logic (e.g., Gentzen’s LK)
⊢ Γ, A ⊢ Γ,B ∧ ⊢ Γ, A ∧ B
In proof search, intro rules are not a local operation; the entire context is duplicated. Motivation: context splitting
Some variants of LK use a context splitting rule for intro for ∧:
⊢ Γ, A ⊢ ∆,B ∧ ⊢ Γ, ∆, A ∧ B
In logics without contraction, proof search with this rule may need backtracking to find the correct splitting. Motivation: context checking
For modal logic, some intro rule requires a context of a specific form: ⊢ Γ, A ⊢ ♦Γ, A ♦Γ means every formula in Γ is prefixed with the modal operator ♦. Locality
◮ A principle of design in CoS is locality: ◮ Inference rule needs only a bounded amount of information to be applicable. ◮ To achieve locality, CoS abolishes the distiction between logical connectives (e.g., ∨) and structural connective, e.g., the comma ‘,’ in a (one-sided) sequent. ◮ We’ll come back to this when we show how to simulate sequent calculus in CoS. Inference rules
◮ Inference rules in CoS take the form
S{T } ρ S{R}
where R and T are formulas, S{.} is a formula context (i.e., a formula with a hole {.}), and ρ is the name of the rule. ◮ Basically, applying the rule ρ (bottom-up) to a formula U means replacing a subformula R of U with T. Structural Congruence
◮ Some obvious logical equivalence, e.g., associativity of ∧, are treated as part of structural congruence. ◮ Formulas in CoS are treated as equal modulo structural congruences. KSg: a proof system for classical logic
◮ Syntax: classical propositional formulas in negation normal form: F,G ::= ⊥|⊤| a | a¯ | F ∧ G | F ∨ G where a is a propositional variable and a¯ is its negation. ◮ Define F to be the nnf of ¬F. ◮ Define F ⊃ G to be F ∨ G. ◮ A context is a formula with a hole { }:
S{ } := {}| F ∧ S{}| S{}∧ F | F ∨ S{}| S{}∨ F.
◮ S{R} denotes a formula obtained by filling the hole in S{ } with R. KSg: structural congruence
Structural congruence is the smallest congruence on formulas satisfying: A ∨ B ≡ B ∨ A (A ∨ B) ∨ C ≡ A ∨ (B ∨ C) A ∨⊥ ≡ A A ∧ B ≡ B ∧ A (A ∧ B) ∧ C ≡ A ∧ (B ∧ C) A ∧⊤ ≡ A KSg: inference rules
◮ The interaction rule:
S{⊤}