Deep Inference (Part 1)

Alwen Tiu

The Australian National University

ANU 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, , etc). ◮ This form of inference rules has been used by Schuette in the 70’s (see Schuette’s ). ◮ 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 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 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 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{⊤}

↓ S{A ∨ A}

This corresponds to the identity rule in sequent calculus. ◮ The switch rule:

S{(A ∨ B) ∧ C} S{A ∨ (B ∧ C)} This manages context splitting lazily. ◮ Contraction and weakening:

S{A ∨ A} S{⊥} ↓ ↓ S{A} S{A} Derivations, Proofs and Refutations

◮ A derivation of B from A is a sequence of inference rules starting from A ending in B (reading the rules top-down). ◮ A proof of B is a derivation of B from ⊤. ◮ A refutation of B is a derivation of ⊥ from B.

A ⊤ B

ÃËg

ÃËg ÃËg

B B ⊥ derivation proof refutation Example proof (1)

Peirce’s law: ((p ⊃ q) ⊃ p) ⊃ p. Example proof (2)

(a ⊃ c) ∧ (b ⊃ c) ⊃ ((a ∨ b) ⊃ c). Simulating cut-free sequent proofs in CoS

Assume we have a single-sided sequent system for classical logic. The issues in simulating this in CoS: ◮ Need to represent sequents as formulas ◮ Need to represent branching in proof trees Simulating cut-free sequent proofs in CoS

Encoding sequents as formulas:

⊢ Γ _ Γ e.g.,

⊢ a ∧ b, c, d ∨ e¯ (a ∧ b) ∨ c ∨ (d ∨ e¯)

The comma ‘,’ in sequents is interpreted as disjunction. Simulating cut-free sequent proofs in CoS

Encoding inference rules:

( Γ1) ∧···∧ ( Γn) ⊢ Γ1 ··· ⊢ Γn W W ρ Π ⊢ Γ ÃËg

W Γ Each inference rule ρ in sequent calculus translates to a derivation Π in CoS. Simulating cut-free sequent proofs in CoS

Example:

Γ ∨ ((Γ ∨ A) ∧ B) ⊢ Γ, A ⊢ Γ,B Γ ∨ ((Γ ∨ A) ∧ B)

∧ ⊢ Γ, A ∧ B Γ ∨ Γ ∨ (A ∧ B)

↓ Γ ∨ (A ∧ B) Simulating CoS proofs in sequent calculus

◮ For every rule ρ in CoS:

S{T } ρ S{R}

prove the implication T ⊃ R in sequent calculus. ◮ Since implication is a pre-congruence, we get ⊢ S{T }⊃ S{R} as well in sequent calculus. ◮ So by cut:

⊢ S{R}, S{T } ⊢ S{T } cut ⊢ S{R}

The left premise is provable by assumption. Summary

◮ Basics of syntax and deep inference rules in the calculus of structures ◮ Example of a proof system for classical logic in CoS ◮ Relation to sequent calculus ◮ We have not discussed the most important rule yet: the cut rule. This will be subject of the next lecture.