Deep Inference (Part 1)
Total Page:16
File Type:pdf, Size:1020Kb
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{⊤} ↓ 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..