Bunched Logics a Uniform Approach

Total Page:16

File Type:pdf, Size:1020Kb

Bunched Logics a Uniform Approach CORE Metadata, citation and similar papers at core.ac.uk Provided by UCL Discovery Bunched Logics A Uniform Approach Simon Robert Docherty A dissertation submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy of University College London. Department of Computer Science University College London May 2, 2019 2 I, Simon Robert Docherty, confirm that the work presented in this thesis is my own. Where information has been derived from other sources, I confirm that this has been indicated in the work. Abstract Bunched logics have found themselves to be key tools in modern computer science, in particular through the industrial-level program verification formalism Separation Logic. Despite this—and in contrast to adjacent families of logics like modal and substructural logic—there is a lack of uniform methodology in their study, leaving many evident variants uninvestigated and many open problems unresolved. In this thesis we investigate the family of bunched logics—including previ- ously unexplored intuitionistic variants—through two uniform frameworks. The first is a system of duality theorems that relate the algebraic and Kripke-style inter- pretations of the logics; the second, a modular framework of tableaux calculi that are sound and complete for both the core logics themselves, as well as many classes of bunched logic model important for applications in program verification and systems modelling. In doing so we are able to resolve a number of open problems in the lit- erature, including soundness and completeness theorems for intuitionistic variants of bunched logics, classes of Separation Logic models and layered graph models; decidability of layered graph logics; a characterisation theorem for the classes of bunched logic model definable by bunched logic formulae; and the failure of Craig interpolation for principal bunched logics. We also extend our duality theorems to the categorical structures suitable for interpreting predicate versions of the logics, in particular hyperdoctrinal structures used frequently in Separation Logic. Impact Statement As a work of formal logic this thesis’ impact is primarily academic. We identify a number of different logic communities to which we believe this research will be of benefit. • For the mathematical logic community, this work resolves a number of open problems in the bunched logic literature and situates this branch of logic in a mathematically substantial framework. • For the proof theory community, this work yields new insights about the con- struction of tableaux calculi—in particular, the identification of tableaux sys- tems with theories of coherent logic—that will undoubtably prove useful for automated reasoning, the construction of new systems and our mathematical and philosophical understanding of the tableau method. • For the computational logic community, this work significantly broadens the understanding of ‘resource semantics’, a central notion in modern program verification. The new logics and the general mathematical techniques used may find use in more bespoke verification formalisms and other application areas suggested in the thesis (e.g., quantum information theory, rewriting sys- tems and process algebra). • For the program verification community, this work resolves an issue regard- ing the incompleteness of bunched logic for the classes of ‘memory models’ typically used in separation logic-style program verification formalisms by producing a modular framework of tableaux proof systems that are sound and complete for any choice of class of memory model. This impact is witnessed by publications in top conference venues [78, 79, 80, 81], with two further journal papers [82, 83] (both invited submissions following the top ranking of [78] and [80] at their respective conferences). In particular, [79] was an invited submission to the top ranking AI conference IJCAI as part of their Impact Statement 5 Sister Conferences programme showcasing the best papers at more specialised con- ferences to a wider audience. Potential impact outside of the academic community lies with the modular proof systems for memory models constructed in Part III of the thesis. These are proved correct but not implemented; however, their implementation could form the basis for a program verification tool that is parametric in choice of memory model. Acknowledgements First and foremost I would like to thank my supervisor David Pym for his support and guidance over the past four years. David has been a great scientific inspira- tion, and not just for co-creating the branch of logic that this thesis is dedicated to investigating. In the course of my studies he has imparted on me a philosophical understanding of logic that has substantially deepened my appreciation of the field, as well as broadened my perception of its applicative possibilities. He has also been a great help in navigating the world of academia as a fledging researcher. This has taken many forms, from teaching me about the precision erad- ication of whitespace for punishing conference paper page restrictions, to guiding me through my first grant proposal. More than anything, I thank him for the many times he set me straight when the amorphous task of completing a PhD began to overwhelm or caused me to lose confidence. I extend these thanks to the whole PPLV group for creating a stimulating and supportive environment to do research in. Being so close to the research of aca- demics like Alexandra Silva and James Brotherston has been a great source of in- spiration, while the support, solidarity and friendship of my fellow PhD students has made many a long day shorter. I also thank UCL and the EPSRC for funding the studentship that made my work possible. I would also like to thank my examiners Samson Abramsky and Peter O’Hearn for their dilligent and thoughtful examination of this thesis. Their comments have greatly improved the presentation of this work. My final thanks go to my partner Maya. Doing a PhD can be a lonely en- terprise, but her love has made it substantially less so. Thanks to her I remained (somewhat) human through the arduous task of writing up, and I hope to be able to repay that to her long into the future. I dedicate this thesis to my parents Caroline and Robert. I have them to thank for the curiosity and determination that has led me through my entire education up to this point. Without their material and emotional support this work wouldn’t be possible. Contents 1 Introduction 12 1.1 From Classical to Non-Classical Logic . 12 1.2 Bunched Logics . 18 1.3 Road Map for the Thesis . 22 I A Family of Bunched Logics 27 2 Layered Graph Logics 29 2.1 Syntax and Semantics . 30 2.2 Layered Graphs . 34 3 Logics of Bunched Implications 40 3.1 Syntax and Semantics . 42 3.2 Separation Logic . 50 3.3 Examples of (B)BI Frames . 54 4 Extensions of the Logics of Bunched Implications 61 4.1 De Morgan Bunched Logics . 62 4.2 Sub-Classical Bunched Logics . 66 4.3 Separating Modal Logics . 69 4.4 Concurrent Kleene Bunched Logic . 72 Summary of Part I 75 II Algebra and Duality for Bunched Logics 76 5 Algebraic and Topological Preliminaries 78 5.1 Algebra . 78 5.2 Topology . 82 Contents 8 5.3 Esakia Duality . 84 5.4 Stone Duality . 91 6 Dualities for Propositional Bunched Logics 94 6.1 Layered Graph Logics . 94 6.2 Logics of Bunched Implications . 103 6.3 De Morgan Bunched Logics . 107 6.4 Other Variants . 112 7 Metatheory for Propositional Bunched Logics 121 7.1 Completeness . 121 7.2 Decidability . 123 7.3 Expressivity . 126 7.4 Interpolation . 138 8 Dualities for Predicate Bunched Logics 142 8.1 Categorical Structures for Predicate Bunched Logics . 143 8.2 Bunched Logic Models as Indexed Frames . 147 8.3 Duality for Bunched Logic Hyperdoctrines . 150 Summary of Part II 161 III Proof Theory for Bunched Logics 162 9 Modular Tableaux Calculi for Bunched Logics 164 9.1 Logical Rules for Bunched Logic Tableaux Calculi . 166 9.2 Tableau Rule Generation from Coherent Axioms . 171 9.3 Frame Rules for Bunched Logic Tableaux Calculi . 173 9.4 The Tableaux Calculi . 178 9.5 Parametric Soundness and Completeness . 181 10 Tableaux Calculi for Applications of Bunched Logics 192 10.1 Separation Logics . 192 10.2 Layered Graph Models . 201 Summary of Part III 215 Contents 9 IV Conclusions & Further Work 216 Appendix 222 A Category Theory 222 Bibliography 226 List of Figures 1.1 The bunch ((j ; y) ; c) ; h....................... 19 2.1 Hilbert rules for layered graph logics. 31 2.2 Satisfaction for (I)LGL. 33 2.3 Layered graph representation of Schneier’s gate. 35 2.4 The graph composition H @E K.................... 36 2.5 Place and link graphs. 38 2.6 Bigraph. 38 3.1 Hilbert rules for logics of bunched implications. 42 3.2 Satisfaction for (B)BI. 43 3.3 Satisfaction for Separation Logic. 53 3.4 A team as a database. 57 4.1 Hilbert rules for De Morgan bunched logics. 63 4.2 Satisfaction for DMBI/CBI. 65 4.3 Hilbert rules for basic Bi(B)BI. 67 4.4 Hilbert rules for subclassical bunched logics. 68 4.5 Satisfaction for Bi(B)BI. 68 4.6 Hilbert rules for separating modal logic. 70 4.7 Satisfaction for SML . 71 4.8 Rules for ASL−−............................ 72 4.9 Hilbert rules for concurrent Kleene bunched logic. 73 4.10 Satisfaction for CKBI. 74 6.1 Algebraic axioms for subclassical bunched logics. 113 8.1 Satisfaction on indexed L frames. 147 8.2 Satisfaction for bigraph models of predicate ILGL. 150 9.1 Logical expansion rules for bunched logics with classical additives. 169 List of Figures 11 9.2 Logical expansion rules for bunched logics with intuitionistic addi- tives. 170 9.3 Tableau rules for equality and order.
Recommended publications
  • Stone-Type Dualities for Separation Logics
    Logical Methods in Computer Science Volume 15, Issue 1, 2019, pp. 27:1–27:51 Submitted Oct. 10, 2017 https://lmcs.episciences.org/ Published Mar. 14, 2019 STONE-TYPE DUALITIES FOR SEPARATION LOGICS SIMON DOCHERTY a AND DAVID PYM a;b a University College London, London, UK e-mail address: [email protected] b The Alan Turing Institute, London, UK e-mail address: [email protected] Abstract. Stone-type duality theorems, which relate algebraic and relational/topological models, are important tools in logic because | in addition to elegant abstraction | they strengthen soundness and completeness to a categorical equivalence, yielding a framework through which both algebraic and topological methods can be brought to bear on a logic. We give a systematic treatment of Stone-type duality for the structures that interpret bunched logics, starting with the weakest systems, recovering the familiar BI and Boolean BI (BBI), and extending to both classical and intuitionistic Separation Logic. We demonstrate the uniformity and modularity of this analysis by additionally capturing the bunched logics obtained by extending BI and BBI with modalities and multiplicative connectives corresponding to disjunction, negation and falsum. This includes the logic of separating modalities (LSM), De Morgan BI (DMBI), Classical BI (CBI), and the sub-classical family of logics extending Bi-intuitionistic (B)BI (Bi(B)BI). We additionally obtain as corollaries soundness and completeness theorems for the specific Kripke-style models of these logics as presented in the literature: for DMBI, the sub-classical logics extending BiBI and a new bunched logic, Concurrent Kleene BI (connecting our work to Concurrent Separation Logic), this is the first time soundness and completeness theorems have been proved.
    [Show full text]
  • Lemma Functions for Frama-C: C Programs As Proofs
    Lemma Functions for Frama-C: C Programs as Proofs Grigoriy Volkov Mikhail Mandrykin Denis Efremov Faculty of Computer Science Software Engineering Department Faculty of Computer Science National Research University Ivannikov Institute for System Programming of the National Research University Higher School of Economics Russian Academy of Sciences Higher School of Economics Moscow, Russia Moscow, Russia Moscow, Russia [email protected] [email protected] [email protected] Abstract—This paper describes the development of to additionally specify loop invariants and termination an auto-active verification technique in the Frama-C expression (loop variants) in case the function under framework. We outline the lemma functions method analysis contains loops. Then the verification instrument and present the corresponding ACSL extension, its implementation in Frama-C, and evaluation on a set generates verification conditions (VCs), which can be of string-manipulating functions from the Linux kernel. separated into categories: safety and behavioral ones. We illustrate the benefits our approach can bring con- Safety VCs are responsible for runtime error checks for cerning the effort required to prove lemmas, compared known (modeled) types, while behavioral VCs represent to the approach based on interactive provers such as the functional correctness checks. All VCs need to be Coq. Current limitations of the method and its imple- mentation are discussed. discharged in order for the function to be considered fully Index Terms—formal verification, deductive verifi- proved (totally correct). This can be achieved either by cation, Frama-C, auto-active verification, lemma func- manually proving all VCs discharged with an interactive tions, Linux kernel prover (i. e., Coq, Isabelle/HOL or PVS) or with the help of automatic provers.
    [Show full text]
  • A Program Logic for First-Order Encapsulated Webassembly
    A Program Logic for First-Order Encapsulated WebAssembly Conrad Watt University of Cambridge, UK [email protected] Petar Maksimović Imperial College London, UK; Mathematical Institute SASA, Serbia [email protected] Neelakantan R. Krishnaswami University of Cambridge, UK [email protected] Philippa Gardner Imperial College London, UK [email protected] Abstract We introduce Wasm Logic, a sound program logic for first-order, encapsulated WebAssembly. We design a novel assertion syntax, tailored to WebAssembly’s stack-based semantics and the strong guarantees given by WebAssembly’s type system, and show how to adapt the standard separation logic triple and proof rules in a principled way to capture WebAssembly’s uncommon structured control flow. Using Wasm Logic, we specify and verify a simple WebAssembly B-tree library, giving abstract specifications independent of the underlying implementation. We mechanise Wasm Logic and its soundness proof in full in Isabelle/HOL. As part of the soundness proof, we formalise and fully mechanise a novel, big-step semantics of WebAssembly, which we prove equivalent, up to transitive closure, to the original WebAssembly small-step semantics. Wasm Logic is the first program logic for WebAssembly, and represents a first step towards the creation of static analysis tools for WebAssembly. 2012 ACM Subject Classification Theory of computation Ñ separation logic Keywords and phrases WebAssembly, program logic, separation logic, soundness, mechanisation Acknowledgements We would like to thank the reviewers, whose comments were valuable in improving the paper. All authors were supported by the EPSRC Programme Grant ‘REMS: Rigorous Engineering for Mainstream Systems’ (EP/K008528/1).
    [Show full text]
  • A Bunched Logic for Conditional Independence
    A Bunched Logic for Conditional Independence Jialu Bao Simon Docherty University of Wisconsin–Madison University College London Justin Hsu Alexandra Silva University of Wisconsin–Madison University College London Abstract—Independence and conditional independence are fun- For instance, criteria ensuring that algorithms do not discrim- damental concepts for reasoning about groups of random vari- inate based on sensitive characteristics (e.g., gender or race) ables in probabilistic programs. Verification methods for inde- can be formulated using conditional independence [8]. pendence are still nascent, and existing methods cannot handle conditional independence. We extend the logic of bunched impli- Aiming to prove independence in probabilistic programs, cations (BI) with a non-commutative conjunction and provide a Barthe et al. [9] recently introduced Probabilistic Separation model based on Markov kernels; conditional independence can be Logic (PSL) and applied it to formalize security for several directly captured as a logical formula in this model. Noting that well-known constructions from cryptography. The key ingre- Markov kernels are Kleisli arrows for the distribution monad, dient of PSL is a new model of the logic of bunched implica- we then introduce a second model based on the powerset monad and show how it can capture join dependency, a non-probabilistic tions (BI), in which separation is interpreted as probabilistic analogue of conditional independence from database theory. independence. While PSL enables formal reasoning about Finally, we develop a program logic for verifying conditional independence, it does not support conditional independence. independence in probabilistic programs. The core issue is that the model of BI underlying PSL provides no means to describe the distribution of one set of variables I.
    [Show full text]
  • A Constructive Approach to the Resource Semantics of Substructural Logics
    A Constructive Approach to the Resource Semantics of Substructural Logics Jason Reed and Frank Pfenning Carnegie Mellon University Pittsburgh, Pennsylvania, USA Abstract. We propose a constructive approach to the resource seman- tics of substructural logics via proof-preserving translations into a frag- ment of focused first-order intuitionistic logic with a preorder. Using these translations, we can obtain uniform proofs of cut admissibility, identity expansion, and the completeness of focusing for a variety of log- ics. We illustrate our approach on linear, ordered, and bunched logics. Key words: Resource Semantics, Focusing, Substructural Logics, Con- structive Logic 1 Introduction Substructural logics derive their expressive power from subverting our usual intuitions about hypotheses. While assumptions in everyday reasoning are things can reasonably be used many times, used zero times, and used in any order, hypotheses in linear logic [Gir87] must be used exactly once, in affine logic at most once, in relevance logic at least once, in ordered logics [Lam58,Pol01] in a specified order, and in bunched logic [OP99] they must obey a discipline of occurrence and disjointness more complicated still. The common device these logics employ to enforce restrictions on use of hypotheses is a structured context. The collection of active hypotheses is in linear logic a multiset, in ordered logic a list, and in bunched logic a tree. Similar to, for instance, display logic [Bel82] we aim to show how to unify diverse substructural logics by isolating and reasoning about the algebraic properties of their context’s structure. Unlike these other approaches, we so do without introducing a new logic that itself has a sophisticated notion of structured context, but instead by making use of the existing concept of focused proofs [And92] in a more familiar nonsubstructural logic.
    [Show full text]
  • Dafny: an Automatic Program Verifier for Functional Correctness K
    Dafny: An Automatic Program Verifier for Functional Correctness K. Rustan M. Leino Microsoft Research [email protected] Abstract Traditionally, the full verification of a program’s functional correctness has been obtained with pen and paper or with interactive proof assistants, whereas only reduced verification tasks, such as ex- tended static checking, have enjoyed the automation offered by satisfiability-modulo-theories (SMT) solvers. More recently, powerful SMT solvers and well-designed program verifiers are starting to break that tradition, thus reducing the effort involved in doing full verification. This paper gives a tour of the language and verifier Dafny, which has been used to verify the functional correctness of a number of challenging pointer-based programs. The paper describes the features incorporated in Dafny, illustrating their use by small examples and giving a taste of how they are coded for an SMT solver. As a larger case study, the paper shows the full functional specification of the Schorr-Waite algorithm in Dafny. 0 Introduction Applications of program verification technology fall into a spectrum of assurance levels, at one extreme proving that the program lives up to its functional specification (e.g., [8, 23, 28]), at the other extreme just finding some likely bugs (e.g., [19, 24]). Traditionally, program verifiers at the high end of the spectrum have used interactive proof assistants, which require the user to have a high degree of prover expertise, invoking tactics or guiding the tool through its various symbolic manipulations. Because they limit which program properties they reason about, tools at the low end of the spectrum have been able to take advantage of satisfiability-modulo-theories (SMT) solvers, which offer some fixed set of automatic decision procedures [18, 5].
    [Show full text]
  • Separation Logic: a Logic for Shared Mutable Data Structures
    Separation Logic: A Logic for Shared Mutable Data Structures John C. Reynolds∗ Computer Science Department Carnegie Mellon University [email protected] Abstract depends upon complex restrictions on the sharing in these structures. To illustrate this problem,and our approach to In joint work with Peter O’Hearn and others, based on its solution,consider a simple example. The following pro- early ideas of Burstall, we have developed an extension of gram performs an in-place reversal of a list: Hoare logic that permits reasoning about low-level impera- tive programs that use shared mutable data structure. j := nil ; while i = nil do The simple imperative programming language is ex- (k := [i +1];[i +1]:=j ; j := i ; i := k). tended with commands (not expressions) for accessing and modifying shared structures, and for explicit allocation and (Here the notation [e] denotes the contents of the storage at deallocation of storage. Assertions are extended by intro- address e.) ducing a “separating conjunction” that asserts that its sub- The invariant of this program must state that i and j are formulas hold for disjoint parts of the heap, and a closely lists representing two sequences α and β such that the re- related “separating implication”. Coupled with the induc- flection of the initial value α0 can be obtained by concate- tive definition of predicates on abstract data structures, this nating the reflection of α onto β: extension permits the concise and flexible description of ∃ ∧ ∧ † †· structures with controlled sharing. α, β. list α i list β j α0 = α β, In this paper, we will survey the current development of this program logic, including extensions that permit unre- where the predicate list α i is defined by induction on the stricted address arithmetic, dynamically allocated arrays, length of α: and recursive procedures.
    [Show full text]
  • Pointer Programs, Separation Logic
    Chapter 6 Pointer Programs, Separation Logic The goal of this section is to drop the hypothesis that we have until now, that is, references are not values of the language, and in particular there is nothing like a reference to a reference, and there is no way to program with data structures that can be modified in-place, such as records where fields can be assigned directly. There is a fundamental difference of semantics between in-place modification of a record field and the way we modeled records in Chapter 4. The small piece of code below, in the syntax of the C programming language, is a typical example of the kind of programs we want to deal with in this chapter. typedef struct L i s t { i n t data; list next; } ∗ l i s t ; list create( i n t d , l i s t n ) { list l = (list)malloc( sizeof ( struct L i s t ) ) ; l −>data = d ; l −>next = n ; return l ; } void incr_list(list p) { while ( p <> NULL) { p−>data++; p = p−>next ; } } Like call by reference, in-place assignment of fields is another source of aliasing issues. Consider this small test program void t e s t ( ) { list l1 = create(4,NULL); list l2 = create(7,l1); list l3 = create(12,l1); assert ( l3 −>next−>data == 4 ) ; incr_list(l2); assert ( l3 −>next−>data == 5 ) ; } which builds the following structure: 63 7 4 null 12 the list node l1 is shared among l2 and l3, hence the call to incr_list(l2) modifies the second node of list l3.
    [Show full text]
  • Automating Separation Logic with Trees and Data
    Automating Separation Logic with Trees and Data Ruzica Piskac1, Thomas Wies2, and Damien Zufferey3 1Yale University 2New York University 3MIT CSAIL Abstract. Separation logic (SL) is a widely used formalism for verifying heap manipulating programs. Existing SL solvers focus on decidable fragments for list-like structures. More complex data structures such as trees are typically un- supported in implementations, or handled by incomplete heuristics. While com- plete decision procedures for reasoning about trees have been proposed, these procedures suffer from high complexity, or make global assumptions about the heap that contradict the separation logic philosophy of local reasoning. In this pa- per, we present a fragment of classical first-order logic for local reasoning about tree-like data structures. The logic is decidable in NP and the decision proce- dure allows for combinations with other decidable first-order theories for reason- ing about data. Such extensions are essential for proving functional correctness properties. We have implemented our decision procedure and, building on earlier work on translating SL proof obligations into classical logic, integrated it into an SL-based verification tool. We successfully used the tool to verify functional correctness of tree-based data structure implementations. 1 Introduction Separation logic (SL) [30] has proved useful for building scalable verification tools for heap-manipulating programs that put no or very little annotation burden on the user [2,5,6,12,15,40]. The high degree of automation of these tools relies on solvers for checking entailments between SL assertions. Typically, the focus is on decidable frag- ments such as separation logic of linked lists [4] for which entailment can be checked efficiently [10, 31].
    [Show full text]
  • Automatic Verification of Embedded Systems Using Horn Clause Solvers
    IT 19 021 Examensarbete 30 hp Juni 2019 Automatic Verification of Embedded Systems Using Horn Clause Solvers Anoud Alshnakat Institutionen för informationsteknologi Department of Information Technology Abstract Automatic Verification of Embedded Systems Using Horn Clause Solvers Anoud Alshnakat Teknisk- naturvetenskaplig fakultet UTH-enheten Recently, an increase in the use of safety-critical embedded systems in the automotive industry has led to a drastic up-tick in vehicle software and code complexity. Failure Besöksadress: in safety-critical applications can cost lives and money. With the ongoing development Ångströmlaboratoriet Lägerhyddsvägen 1 of complex vehicle software, it is important to assess and prove the correctness of Hus 4, Plan 0 safety properties using verification and validation methods. Postadress: Software verification is used to guarantee software safety, and a popular approach Box 536 751 21 Uppsala within this field is called deductive static methods. This methodology has expressive annotations, and tends to be feasible even on larger software projects, but developing Telefon: the necessary code annotations is complicated and costly. Software-based model 018 – 471 30 03 checking techniques require less work but are generally more restricted with respect Telefax: to expressiveness and software size. 018 – 471 30 00 This thesis is divided into two parts. The first part, related to a previous study where Hemsida: the authors verified an electronic control unit using deductive verification techniques. http://www.teknat.uu.se/student We continued from this study by investigating the possibility of using two novel tools developed in the context of software-based model checking: SeaHorn and Eldarica. The second part investigated the concept of automatically inferring code annotations from model checkers to use them in deductive verification tools.
    [Show full text]
  • CLASSICAL BI: ITS SEMANTICS and PROOF THEORY 1. Introduction
    Logical Methods in Computer Science Vol. 6 (3:3) 2010, pp. 1–42 Submitted Aug. 1, 2009 www.lmcs-online.org Published Jul. 20, 2010 CLASSICAL BI: ITS SEMANTICS AND PROOF THEORY a b JAMES BROTHERSTON AND CRISTIANO CALCAGNO Dept. of Computing, Imperial College London, UK e-mail address: [email protected], [email protected] Abstract. We present Classical BI (CBI), a new addition to the family of bunched logics which originates in O’Hearn and Pym’s logic of bunched implications BI. CBI differs from existing bunched logics in that its multiplicative connectives behave classically rather than intuitionistically (including in particular a multiplicative version of classical negation). At the semantic level, CBI-formulas have the normal bunched logic reading as declarative statements about resources, but its resource models necessarily feature more structure than those for other bunched logics; principally, they satisfy the requirement that every resource has a unique dual. At the proof-theoretic level, a very natural formalism for CBI is provided by a display calculus `ala Belnap, which can be seen as a generalisation of the bunched sequent calculus for BI. In this paper we formulate the aforementioned model theory and proof theory for CBI, and prove some fundamental results about the logic, most notably completeness of the proof theory with respect to the semantics. 1. Introduction Substructural logics, whose best-known varieties include linear logic, relevant logic and the Lambek calculus, are characterised by their restriction of the use of the so-called struc- tural proof principles of classical logic [44]. These may be roughly characterised as those principles that are insensitive to the syntactic form of formulas, chiefly weakening (which permits the introduction of redundant premises into an argument) and contraction (which allows premises to be arbitrarily duplicated).
    [Show full text]
  • Bunched Logics Displayed
    Bunched Logics Displayed James Brotherston Imperial College London CISA seminar University of Edinburgh, 28 Oct 2009 Part I Motivation Bunched logic • A variety of substructural logic (but more like relevant logic than linear logic); • Obtained by combining an additive propositional logic with a multiplicative one; • Naive reading of additives leads to a natural resource interpretation of formulas (used e.g. in separation logic); • Original bunched logic is O’Hearn and Pym’s BI, which is essentially IL + MILL; • One can think of additive and multiplicative components as each being either classical or intuitionistic. The bunched logic family CBI (Boolean, de Morgan) ¬ ∼ dMBI BBI (Heyting, de Morgan) (Boolean, Lambek) ∼ ¬ BI (Heyting, Lambek) • Subtitles (X,Y) indicate the underlying algebras. • Arrows denote addition of classical negations ¬ or ∼. LBI: the BI sequent calculus • Formulas of BI are given by additive connectives ⊤, ⊥, ∨, ∧, → of IL plus multiplicative ⊤∗, ∗ and —∗; • Sequents are Γ ⊢ F where F a formula and Γ a bunch: Γ ::= F | ∅ | ∅ | Γ;Γ | Γ , Γ • Rules for —∗ are: ∆ ⊢ F1 Γ(F2) ⊢ F Γ , F ⊢ G (—∗L) (—∗R) Γ(∆ , F1 —∗ F2) ⊢ F Γ ⊢ F —∗ G where Γ(∆) is bunch Γ with sub-bunch ∆; • LBI satisfies cut-elimination (Pym 02). Extending the BI sequent calculus • Consider BBI obtained by adding additive classical negation ¬ to BI; • We need multiple conclusions in some form to have cut-free proofs of e.g. ¬¬F ⊢ F ; • But the multiplicative rules do not behave well with multiple conclusions, e.g.: Γ ⊢ F Γ′ ⊢ G Γ ⊢ F ;∆ Γ′ ⊢ G ;∆ (∗R) (?) Γ , Γ′ ⊢ F ∗ G Γ , Γ′ ⊢ F ∗ G;∆ Sound Unsound! • Similar remarks apply to dMBI and CBI.
    [Show full text]