This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

\lmcsdoi

1841 \lmcsheadingLABEL:LastPageDec. 04, 2020Oct. 21, 2022

\titlecomment\lsuper

*This is an extended version of a paper published at LICS 2020 [Acclavio2020].

An Analytic Propositional Proof System on Graphs

Matteo Acclavio Dipartimento di Matematica e Fisica, Università Roma Tre, Roma, Italy matteoacclavio.com/Math.html Ross Horne Computer Science, University of Luxembourg, Esch-sur-Alzette, Luxembourg
ross.horne@uni.lu
 and  Lutz Straßburger Inria, Equipe Partout, Ecole Polytechnique, LIX UMR 7161, France www.lix.polytechnique.fr/Labo/Lutz.Strassburger/
Abstract.

In this paper we present a proof system that operates on graphs instead of formulas. Starting from the well-known relationship between formulas and cographs, we drop the cograph-conditions and look at arbitrary (undirected) graphs. This means that we lose the tree structure of the formulas corresponding to the cographs, and we can no longer use standard proof theoretical methods that depend on that tree structure. In order to overcome this difficulty, we use a modular decomposition of graphs and some techniques from deep inference where inference rules do not rely on the main connective of a formula. For our proof system we show the admissibility of cut and a generalisation of the splitting property. Finally, we show that our system is a conservative extension of multiplicative linear logic with mix, and we argue that our graphs form a notion of generalised connective.

Key words and phrases:
Proof theory, prime graphs, cut elimination, deep inference, splitting, analyticity

1. Introduction

The notion of formula is central to all applications of logic and proof theory in computer science, ranging from the formal verification of software, where a formula describes a property that the program should satisfy, to logic programming, where a formula represents a program [miller:uniform, Kobayashi1993], and functional programming, where a formula represents a type [howard:80]. Proof theoretical methods are also employed in concurrency theory, where a formula can represent a process whose behaviours may be extracted from a proof of the formula [miller:pi, bruscoli:02, FAGES200114, deng_simmons_cervesato_2016, OLARTE201746, NIGAM201735, horne:19, Horne2019b, Horne2020]. This formulas-as-processes paradigm is not as well-investigated as the formulas-as-properties, formulas-as-programs and formulas-as-types paradigms mentioned before. In our opinion, a reason for this is that the notion of formula reaches its limitations when it comes to describing processes as they are studied in concurrency theory.

For example, Guglielmi’s BV [gug:SIS] and Retoré’s pomset logic [Retore1997] are proof systems which extend linear logic with a notion of sequential composition and can model series-parallel orders.111In his PhD-thesis [retore:phd], Retoré considers all partial ordered multisets, but in later versions [retore:21] only series-parallel orders are considered to maintain the correspondence to formulas.,222It has long been believed that BV and pomset logic are the same, but recently it has been shown that this is not the case [tito:lutz:csl22, SIS-III]. However, series-parallel orders cannot express some ubiquitous patterns of causal dependencies such as the logical time constraints on producer-consumer queues [Lodaya2000], which are within the scope of pomsets [Pratt1986], event structures [Nielsen1985], and Petri nets [Petri1976]. The essence of this problem is already visible when we consider symmetric dependencies, such as separation, which happens to be the dual concept to concurrency in the formulas-as-processes paradigm.

Let us use some simple examples to explain the problem. Suppose we are in a situation where two processes AA and BB can communicate with each other, written as A\parrBA\mathbin{\parr}B, or are separated from each other, written as ABA\mathbin{\otimes}B, such that no communication is possible. Now assume we have four atomic processes aa, bb, cc, and dd, from which we form the two processes P=(ab)\parr(cd)P=(a\mathbin{\otimes}b)\mathbin{\parr}(c\mathbin{\otimes}d) and Q=(a\parrc)(b\parrd)Q=(a\mathbin{\parr}c)\mathbin{\otimes}(b\mathbin{\parr}d). Both are perfectly fine formulas of multiplicative linear logic (𝖬𝖫𝖫\mathsf{MLL}[girard:87]. In PP, we have that aa is separated from bb but can communicate with cc and dd. Similarly, dd can communicate with aa and bb but is separated from cc, and so on. On the other hand, in QQ, aa can only communicate with cc and is separated from the other two, and dd can only communicate with bb, and is separated from the other two. We can visualise this situation via graphs where aa, bb, cc, and dd are the vertices, and we draw an edge between two vertices if they are separated, and no edge if they can communicate. Then PP and QQ correspond to the two graphs shown below.

P=(ab)\parr(cd)Q=(a\parrc)(b\parrd)bdacbdac\begin{array}[]{c@{\qquad}c}P=(a\mathbin{\otimes}b)\mathbin{\parr}(c\mathbin{\otimes}d)&Q=(a\mathbin{\parr}c)\mathbin{\otimes}(b\mathbin{\parr}d)\\[4.30554pt] \begin{array}[]{c@{\quad\;\;}c}\mathord{\leavevmode\hbox to4.29pt{\vbox to6.94pt{\pgfpicture\makeatletter\hbox{\>\lower-3.47221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-3.47221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-3.47221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$b$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}&\mathord{\leavevmode\hbox to5.2pt{\vbox to6.94pt{\pgfpicture\makeatletter\hbox{\;\lower-3.47221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-3.47221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-3.47221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$d$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\\ \\[-4.30554pt] \mathord{\leavevmode\hbox to5.29pt{\vbox to4.31pt{\pgfpicture\makeatletter\hbox{\;\lower-2.15277pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.15277pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.15277pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$a$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}&\mathord{\leavevmode\hbox to4.33pt{\vbox to4.31pt{\pgfpicture\makeatletter\hbox{\>\lower-2.15277pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.15277pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.15277pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$c$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\end{array}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}&\begin{array}[]{c@{\quad\;\;}c}\mathord{\leavevmode\hbox to4.29pt{\vbox to6.94pt{\pgfpicture\makeatletter\hbox{\>\lower-3.47221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-3.47221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-3.47221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$b$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}&\mathord{\leavevmode\hbox to5.2pt{\vbox to6.94pt{\pgfpicture\makeatletter\hbox{\;\lower-3.47221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-3.47221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-3.47221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$d$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\\ \\[-4.30554pt] \mathord{\leavevmode\hbox to5.29pt{\vbox to4.31pt{\pgfpicture\makeatletter\hbox{\;\lower-2.15277pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.15277pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.15277pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$a$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}&\mathord{\leavevmode\hbox to4.33pt{\vbox to4.31pt{\pgfpicture\makeatletter\hbox{\>\lower-2.15277pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.15277pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.15277pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$c$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\end{array}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\end{array} (1)

It should also be possible to describe a situation where aa is separated from bb, and bb is separated from cc, and cc is separated from dd, but aa can communicate with cc and dd, and bb can communicate with dd, as indicated by the graph below.

bdac\begin{array}[]{c@{\quad\;\;}c}\mathord{\leavevmode\hbox to4.29pt{\vbox to6.94pt{\pgfpicture\makeatletter\hbox{\>\lower-3.47221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-3.47221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-3.47221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$b$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}&\mathord{\leavevmode\hbox to5.2pt{\vbox to6.94pt{\pgfpicture\makeatletter\hbox{\;\lower-3.47221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-3.47221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-3.47221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$d$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\\ \\[-4.30554pt] \mathord{\leavevmode\hbox to5.29pt{\vbox to4.31pt{\pgfpicture\makeatletter\hbox{\;\lower-2.15277pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.15277pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.15277pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$a$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}&\mathord{\leavevmode\hbox to4.33pt{\vbox to4.31pt{\pgfpicture\makeatletter\hbox{\>\lower-2.15277pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.15277pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.15277pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$c$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\end{array}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}} (2)

An example of this behaviour could arise in the setting of concurrent processes, where four processes aa, bb, cc, and dd satisfy information flow constraints such that cc and aa can communicate; aa and dd can communicate; and dd and bb can communicate, and no further communications are possible. This models an intransitive information flow, since we have two processes, aa and dd, which can communicate with each other, and respectively with cc and bb; yet the same processes must also ensure that no information flows between cc and bb. However, the graph (2) cannot be described by a formula in the way illustrated for the two graphs in (1).

This means that the tools of proof theory, which have been developed over the course of the last century and which were very successful for the formulas-as-properties, formulas-as-programs, and formulas-as-types paradigms, cannot be used for the formulas-as-processes paradigm unless we forbid situations as in (2) above. This seems to be a very strong and unnatural restriction (that is, it is an a posteri restriction imposed by the use of formulas, with no a priory justification stemming from process modelling problems). The purpose of this paper is to propose a way to change this unsatisfactory situation.

We will present a proof system, called 𝖦𝖲\mathsf{GS} (for graphical proof system), whose objects of reason are not formulas but graphs, giving the example in (2) the same status as the examples in (1). In a less informal way, one could say that standard proof systems work on cographs (which are the class of graphs that correspond to formulas as in (1[duffin:65]), and our proof systems works on arbitrary graphs. In order for this to make sense, our proof system should obey the following basic properties:

  1. (1)

    Consistency: There are graphs that are not provable. In particular, if only a finite number of graphs is provable (or not provable) then the proof system would not be interesting.

  2. (2)

    Transitivity: The proof system should come with an implication that is transitive, i.e., if we can prove that AA implies BB and that BB implies CC, then we should also be able to prove that AA implies CC.

  3. (3)

    Analyticity: As we no longer have formulas, we cannot ask that every formula that occurs in a proof is a subformula of its conclusion. However, we can investigate a graph theoretical version of this idea, and we can ask that in a proof search situation, there is always only a finite number of ways to apply an inference rule.

  4. (4)

    Minimality: We want to make as few assumptions as possible, so that the theory we develop is as general as possible.

Properties 1-3 are standard for any proof system, and they are usually proved using cut elimination. In that respect our paper is no different. We introduce a notion of cut and show its admissibility for 𝖦𝖲\mathsf{GS}. Then Properties 1-3 are immediate consequences.

Property 4 is of a more subjective nature. In our case, we only make the following two basic assumptions:

  1. (1)

    For any graph AA, we should be able to prove that AA implies AA. This assumption is almost impossible to argue against, so can be expected for any logic.

  2. (2)

    If a graph AA is provable, then the graph G=C[A]G=C[A] is also provable, provided that C[]C[\cdot] is a provable context.333Formally, the notation G=C[A]G=C[A] means that AA is a module of GG, and C[]C[\cdot] is the graph obtained from GG by removing all vertices belonging to AA. We give the formal definition in Section LABEL:sec:modules. This can be compared to the necessitation rule of modal logic, which says that if AA is provable then so is A\Box A, except that in our case the \Box is replaced by the provable graph context C[]C[\cdot].

All other properties of the system 𝖦𝖲\mathsf{GS} follow from the need to obtain admissibility of cut. This means that this paper does not present some random system, but follows the underlying principles of proof theory. For a more detailed philosophical presentation of these principles, we refer the reader to Appendix LABEL:sec:phil.

We also target the desirable property of conservativity. This means that there should be a well-known logic 𝖫\mathsf{L} (based on formulas) such that the restriction of our proof system to those graphs that correspond to formulas proves exactly the theorems of 𝖫\mathsf{L}. This cannot be an assumption used to design a logical system, since it would create circularity (to specify a logic we need a logic); conservativity is more so a cultural sanity condition to check that we have not invented an esoteric logic. In our case, conservativity will follow from cut admissibility, and the logic 𝖫\mathsf{L} is multiplicative linear logic with mix (𝖬𝖫𝖫\mathsf{MLL^{\circ}}[girard:87, bellin:mix, fleury:retore:94].

Let us now summarise how this paper is organised: In Section 2, we give preliminaries on cographs, which form the class of graphs that correspond to formulas as in (1). Then, in Section LABEL:sec:modules we give some preliminaries on modules and prime graphs, which are needed for our move away from cographs, so that in Section LABEL:sec:system, we can present our proof system, which uses the notation of open deduction [gug:gun:par:2010] and follows the principles of deep inference [gug:str:01, brunnler:tiu:01, gug:SIS]. To our knowledge, this is the first proof system that is not tied to formulas/cographs but handles arbitrary (undirected) graphs instead. In Section LABEL:sec:properties we show some properties of our system, and Sections LABEL:sec:splitting and LABEL:sec:upfrag are dedicated to cut elimination, which is the basis for showing properties (1), (2), and (3), mentioned above. We also explain the technology we must develop in order to be able to prove cut elimination for our proof system. The interesting point is that, not only do we go beyond methods developed for the sequent calculus, but we also go beyond methods developed for deep inference on formulas. In particular, we require entirely new statements of the tools called splitting and context reduction, and furthermore their proofs are inter-dependent, whereas normally context reduction follows from splitting [SIS-V, gug:tub:split].

Then, in Section LABEL:sec:MLL, we not only show that our system is a conservative extension of 𝖬𝖫𝖫\mathsf{MLL^{\circ}}, we also show a form of analyticity for our system. Finally, in Section LABEL:sec:generalised, we show how our work is related to the work on generalised connectives introduced in [girard:87:b, danos:regnier:89]. We end this paper with a discussion of related work in Section LABEL:sec:relatedWork and a conclusion in Section LABEL:sec:conclusion.

Compared to the conference version [Acclavio2020] of this paper, there are the following three major additions:

  • We give detailed proofs of the Splitting Lemma and the Context Reduction Lemma (in Section LABEL:sec:splitting and Appendix LABEL:sec:splittingproofs), which are crucial for the cut elimination proof. In fact, we also completely reorganised the proofs with respect to the technical appendix of [Acclavio2020]444That appendix is available at https://hal.inria.fr/hal-02560105.. For proving these lemmas, we could not rely on the general method that has been proposed by Aler Tubella in her PhD [tubella:phd].

  • We present a notion of analyticity for proof systems on graphs and show that our system is analytic in that respect (in Section LABEL:sec:MLL).

  • We show that general graphs with nn vertices can be seen as generalised nn-ary connectives (in Section LABEL:sec:generalised), and we compare this notion with the existing notion of generalised (multiplicative) connective [girard:87:b, danos:regnier:89, mai:19, acc:mai:20].

  • We include in Appendix LABEL:sec:phil a more detailed discussion of how our proof system can be considered satisfactory with respect to the Properties (1)–(4) mentioned above.

Finally, let us argue that logics are not designed but discovered. They typically follow logical principles where design parameters are limited. For example, we will see that we do not get to chose whether or not the following implications hold:

bdacbdacbdacbdac\nvdash\begin{array}[]{c@{\quad\;\;}c}\mathord{\leavevmode\hbox to4.29pt{\vbox to6.94pt{\pgfpicture\makeatletter\hbox{\>\lower-3.47221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-3.47221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-3.47221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$b$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}&\mathord{\leavevmode\hbox to5.2pt{\vbox to6.94pt{\pgfpicture\makeatletter\hbox{\;\lower-3.47221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-3.47221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-3.47221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$d$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\\ \\[-4.30554pt] \mathord{\leavevmode\hbox to5.29pt{\vbox to4.31pt{\pgfpicture\makeatletter\hbox{\;\lower-2.15277pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.15277pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.15277pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$a$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}&\mathord{\leavevmode\hbox to4.33pt{\vbox to4.31pt{\pgfpicture\makeatletter\hbox{\>\lower-2.15277pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.15277pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.15277pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$c$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\end{array}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\multimap\begin{array}[]{c@{\quad\;\;}c}\mathord{\leavevmode\hbox to4.29pt{\vbox to6.94pt{\pgfpicture\makeatletter\hbox{\>\lower-3.47221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-3.47221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-3.47221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$b$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}&\mathord{\leavevmode\hbox to5.2pt{\vbox to6.94pt{\pgfpicture\makeatletter\hbox{\;\lower-3.47221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-3.47221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-3.47221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$d$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\\ \\[-4.30554pt] \mathord{\leavevmode\hbox to5.29pt{\vbox to4.31pt{\pgfpicture\makeatletter\hbox{\;\lower-2.15277pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.15277pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.15277pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$a$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}&\mathord{\leavevmode\hbox to4.33pt{\vbox to4.31pt{\pgfpicture\makeatletter\hbox{\>\lower-2.15277pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.15277pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.15277pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$c$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\end{array}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\qquad\qquad\quad\vdash\begin{array}[]{c@{\quad\;\;}c}\mathord{\leavevmode\hbox to4.29pt{\vbox to6.94pt{\pgfpicture\makeatletter\hbox{\>\lower-3.47221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-3.47221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-3.47221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$b$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}&\mathord{\leavevmode\hbox to5.2pt{\vbox to6.94pt{\pgfpicture\makeatletter\hbox{\;\lower-3.47221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-3.47221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-3.47221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$d$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\\ \\[-4.30554pt] \mathord{\leavevmode\hbox to5.29pt{\vbox to4.31pt{\pgfpicture\makeatletter\hbox{\;\lower-2.15277pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.15277pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.15277pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$a$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}&\mathord{\leavevmode\hbox to4.33pt{\vbox to4.31pt{\pgfpicture\makeatletter\hbox{\>\lower-2.15277pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.15277pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.15277pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$c$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\end{array}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\multimap\begin{array}[]{c@{\quad\;\;}c}\mathord{\leavevmode\hbox to4.29pt{\vbox to6.94pt{\pgfpicture\makeatletter\hbox{\>\lower-3.47221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-3.47221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-3.47221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$b$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}&\mathord{\leavevmode\hbox to5.2pt{\vbox to6.94pt{\pgfpicture\makeatletter\hbox{\;\lower-3.47221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-3.47221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-3.47221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$d$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\\ \\[-4.30554pt] \mathord{\leavevmode\hbox to5.29pt{\vbox to4.31pt{\pgfpicture\makeatletter\hbox{\;\lower-2.15277pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.15277pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.15277pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$a$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}&\mathord{\leavevmode\hbox to4.33pt{\vbox to4.31pt{\pgfpicture\makeatletter\hbox{\>\lower-2.15277pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.15277pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.15277pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$c$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\end{array}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}} (3)

There is no pre-existing semantics or proof system we can refer to at this point. Nonetheless, from the above discussed principles we can argue, that in a logic on graphs, the former implication in (3) cannot hold while the latter must hold. Over the course of this paper, we explore the design of proof systems on graphs based on logical principles, which enables us to confidently state such facts.

2. From Formulas to Graphs

In this preliminary section we recall the basic textbook definitions for graphs and formulas, and their correspondence via cographs.

{defi}

A (simple, undirected) graph GG is a pair VG,EG\langle V_{G},E_{G}\rangle where VGV_{G} is a set of vertices and EGE_{G} is a set of two-element subsets of VGV_{G}. We omit the index GG when it is clear from the context. For v,wVGv,w\in V_{G} we write vwvw as an abbreviation for {v,w}\{v,w\}. A graph GG is finite if its vertex set VGV_{G} is finite. Let LL be a set and GG be a graph. We say that GG is 𝐋L-labelled (or just labelled if LL is clear from the context) if every vertex in VGV_{G} is associated with an element of LL, called its label. We write G(v)\ell_{G}(v) to denote the label of the vertex vv in GG. A graph GG^{\prime} is a subgraph of a graph GG, denoted as GGG^{\prime}\subseteq G iff VGVGV_{G^{\prime}}\subseteq V_{G} and EGEGE_{G^{\prime}}\subseteq E_{G}. We say that GG^{\prime} is an induced subgraph of GG if GG^{\prime} is a subgraph of GG and for all v,wVGv,w\in V_{G^{\prime}}, if vwEGvw\in E_{G} then vwEGvw\in E_{G^{\prime}}. For a graph GG we write |VG||V_{G}| for its number of vertices and |EG||E_{G}| for its number of edges.

In the following, we will just say graph to mean a finite, undirected, labelled graph, where the labels come from the set 𝒜\mathcal{A} of atoms which is the (disjoint) union of a countable set of propositional variables 𝒱={a,b,c,}\mathcal{V}=\{a,b,c,\ldots\} and their duals 𝒱={a,b,c,}{\mathcal{V}^{\bot}}=\{{a^{\bot}},{b^{\bot}},{c^{\bot}},\ldots\}.

Since we are mainly interested in how vertices are labelled, but not so much in the identity of the underlying vertex, we heavily rely on the notion of graph isomorphism.

{defi}

Two graphs GG and GG^{\prime} are isomorphic if there exists a bijection f:VGVGf\colon V_{G}\rightarrow V_{G^{\prime}} such that for all v,uVGv,u\in V_{G} we have vuEGvu\in E_{G} iff f(v)f(u)EGf(v)f(u)\in E_{G^{\prime}} and G(v)=G(f(v))\ell_{G}(v)=\ell_{G^{\prime}}(f(v)). We denote this as GfGG\simeq_{f}G^{\prime}, or simply as GGG\simeq G^{\prime} if ff is clear from the context or not relevant.

In the following, we will, in diagrams, forget the identity of the underlying vertices, showing only the label, as in the examples in the introduction.

In the rest of this section we recall the characterisation of those graphs that correspond to formulas. For simplicity, we restrict ourselves to only two connectives, and for reasons that will become clear later, we use the \parr\mathbin{\parr} (par) and \mathbin{\otimes} (tensor) of linear logic [girard:87]. More precisely, formulas are generated by the grammar

ϕ,ψaaϕ\parrψϕψ\phi,\psi\Coloneqq\mathord{\circ}\mid a\mid{a^{\bot}}\mid\phi\mathbin{\parr}\psi\mid\phi\mathbin{\otimes}\psi (4)

where \mathord{\circ} is the unit, and aa can stand for any propositional variable in 𝒱\mathcal{V}. As usual, we can define the negation of formulas inductively by letting a=a{a^{\bot\bot}}=a for all a𝒱a\in\mathcal{V}, and by using the De Morgan duality between \parr\mathbin{\parr} and \mathbin{\otimes}: (ϕ\parrψ)=ϕψ{(\phi\mathbin{\parr}\psi)^{\bot}}={\phi^{\bot}}\mathbin{\otimes}{\psi^{\bot}} and (ϕψ)=ϕ\parrψ{(\phi\mathbin{\otimes}\psi)^{\bot}}={\phi^{\bot}}\mathbin{\parr}{\psi^{\bot}}; the unit is self-dual: ={\mathord{\circ}^{\bot}}=\mathord{\circ}.

On formulas we define the following structural equivalence relation:

ϕ\parr(ψ\parrξ)(ϕ\parrψ)\parrξϕ(ψξ)(ϕψ)ξϕ\parrψψ\parrϕϕψψϕϕ\parrϕϕϕ\begin{array}[]{r@{~}l@{\hskip 4em}r@{~}l}\phi\mathbin{\parr}(\psi\mathbin{\parr}\xi)\equiv&(\phi\mathbin{\parr}\psi)\mathbin{\parr}\xi\hfil\hskip 40.00006pt&\phi\mathbin{\otimes}(\psi\mathbin{\otimes}\xi)\equiv&(\phi\mathbin{\otimes}\psi)\mathbin{\otimes}\xi\\ \phi\mathbin{\parr}\psi\equiv&\psi\mathbin{\parr}\phi\hfil\hskip 40.00006pt&\phi\mathbin{\otimes}\psi\equiv&\psi\mathbin{\otimes}\phi\\ \phi\mathbin{\parr}\mathord{\circ}\equiv&\phi\hfil\hskip 40.00006pt&\phi\mathbin{\otimes}\mathord{\circ}\equiv&\phi\end{array} (5)

In order to translate formulas to graphs, we define the following two operations on graphs:

{defi}

Let G=VG,EGG=\langle V_{G},E_{G}\rangle and H=VH,EHH=\langle V_{H},E_{H}\rangle be graphs. We define the par of GG and HH to be their disjoint union and the tensor to be their join, i.e.:

G\parrH\displaystyle G\mathbin{\parr}H =\displaystyle= VGVH,EGEH\displaystyle\langle V_{G}\uplus V_{H},E_{G}\uplus E_{H}\rangle
GH\displaystyle G\mathbin{\otimes}H =\displaystyle= VGVH,EGEH{vwvVG,wVH}\displaystyle\langle V_{G}\uplus V_{H},E_{G}\uplus E_{H}\uplus\{vw\mid v\in V_{G},w\in V_{H}\}\rangle

These operations can be visualised as follows:

G\parrHGHGHGH\begin{array}[]{c@{\qquad\qquad\qquad\;}c}G\mathbin{\parr}H&G\mathbin{\otimes}H\\ \leavevmode\hbox to39.76pt{\vbox to22.29pt{\pgfpicture\makeatletter\hbox{\qquad\lower-11.14442pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setdash{0.4pt,1.0pt}{0.0pt}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}}{}{}{}{}{} {\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setdash{0.4pt,1.0pt}{0.0pt}\pgfsys@invoke{ }{{}{}{{}}}{{}{}{{}}}{}{}{{}{}{{}}}{{}{}{{}}}{}{}{{}{}{{}}}{{}{}{{}}}{}{}{{}{}{{}}}{{}{}{{}}}{}{}{}\pgfsys@moveto{15.68124pt}{10.94443pt}\pgfsys@lineto{-15.68124pt}{10.94443pt}\pgfsys@curveto{-17.89041pt}{10.94443pt}{-19.68124pt}{9.1536pt}{-19.68124pt}{6.94443pt}\pgfsys@lineto{-19.68124pt}{-6.94443pt}\pgfsys@curveto{-19.68124pt}{-9.1536pt}{-17.89041pt}{-10.94443pt}{-15.68124pt}{-10.94443pt}\pgfsys@lineto{15.68124pt}{-10.94443pt}\pgfsys@curveto{17.89041pt}{-10.94443pt}{19.68124pt}{-9.1536pt}{19.68124pt}{-6.94443pt}\pgfsys@lineto{19.68124pt}{6.94443pt}\pgfsys@curveto{19.68124pt}{9.1536pt}{17.89041pt}{10.94443pt}{15.68124pt}{10.94443pt}\pgfsys@closepath\pgfsys@moveto{-19.68124pt}{-10.94443pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.15277pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.15277pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\begin{array}[]{cc}&\mathord{\leavevmode\hbox to5pt{\vbox to4.44pt{\pgfpicture\makeatletter\hbox{\>\lower-2.22221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}}{}{}{}{}{} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.22221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.22221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\bullet$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\\ G&\vdots\\ &\mathord{\leavevmode\hbox to5pt{\vbox to4.44pt{\pgfpicture\makeatletter\hbox{\>\lower-2.22221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}}{}{}{}{}{} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.22221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.22221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\bullet$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\end{array}$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\qquad\leavevmode\hbox to41.02pt{\vbox to22.29pt{\pgfpicture\makeatletter\hbox{\hskip 20.51248pt\lower-11.14442pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setdash{0.4pt,1.0pt}{0.0pt}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}}{}{}{}{}{} {\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setdash{0.4pt,1.0pt}{0.0pt}\pgfsys@invoke{ }{{}{}{{}}}{{}{}{{}}}{}{}{{}{}{{}}}{{}{}{{}}}{}{}{{}{}{{}}}{{}{}{{}}}{}{}{{}{}{{}}}{{}{}{{}}}{}{}{}\pgfsys@moveto{16.31248pt}{10.94443pt}\pgfsys@lineto{-16.31248pt}{10.94443pt}\pgfsys@curveto{-18.52165pt}{10.94443pt}{-20.31248pt}{9.1536pt}{-20.31248pt}{6.94443pt}\pgfsys@lineto{-20.31248pt}{-6.94443pt}\pgfsys@curveto{-20.31248pt}{-9.1536pt}{-18.52165pt}{-10.94443pt}{-16.31248pt}{-10.94443pt}\pgfsys@lineto{16.31248pt}{-10.94443pt}\pgfsys@curveto{18.52165pt}{-10.94443pt}{20.31248pt}{-9.1536pt}{20.31248pt}{-6.94443pt}\pgfsys@lineto{20.31248pt}{6.94443pt}\pgfsys@curveto{20.31248pt}{9.1536pt}{18.52165pt}{10.94443pt}{16.31248pt}{10.94443pt}\pgfsys@closepath\pgfsys@moveto{-20.31248pt}{-10.94443pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.15277pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.15277pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\begin{array}[]{cc}\mathord{\leavevmode\hbox to5pt{\vbox to4.44pt{\pgfpicture\makeatletter\hbox{\>\lower-2.22221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}}{}{}{}{}{} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.22221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.22221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\bullet$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\\ \vdots&H\\ \mathord{\leavevmode\hbox to5pt{\vbox to4.44pt{\pgfpicture\makeatletter\hbox{\>\lower-2.22221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}}{}{}{}{}{} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.22221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.22221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\bullet$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\end{array}$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}&\leavevmode\hbox to39.76pt{\vbox to22.29pt{\pgfpicture\makeatletter\hbox{\qquad\lower-11.14442pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setdash{0.4pt,1.0pt}{0.0pt}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}}{}{}{}{}{} {\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setdash{0.4pt,1.0pt}{0.0pt}\pgfsys@invoke{ }{{}{}{{}}}{{}{}{{}}}{}{}{{}{}{{}}}{{}{}{{}}}{}{}{{}{}{{}}}{{}{}{{}}}{}{}{{}{}{{}}}{{}{}{{}}}{}{}{}\pgfsys@moveto{15.68124pt}{10.94443pt}\pgfsys@lineto{-15.68124pt}{10.94443pt}\pgfsys@curveto{-17.89041pt}{10.94443pt}{-19.68124pt}{9.1536pt}{-19.68124pt}{6.94443pt}\pgfsys@lineto{-19.68124pt}{-6.94443pt}\pgfsys@curveto{-19.68124pt}{-9.1536pt}{-17.89041pt}{-10.94443pt}{-15.68124pt}{-10.94443pt}\pgfsys@lineto{15.68124pt}{-10.94443pt}\pgfsys@curveto{17.89041pt}{-10.94443pt}{19.68124pt}{-9.1536pt}{19.68124pt}{-6.94443pt}\pgfsys@lineto{19.68124pt}{6.94443pt}\pgfsys@curveto{19.68124pt}{9.1536pt}{17.89041pt}{10.94443pt}{15.68124pt}{10.94443pt}\pgfsys@closepath\pgfsys@moveto{-19.68124pt}{-10.94443pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.15277pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.15277pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\begin{array}[]{cc}&\mathord{\leavevmode\hbox to5pt{\vbox to4.44pt{\pgfpicture\makeatletter\hbox{\>\lower-2.22221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}}{}{}{}{}{} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.22221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.22221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\bullet$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\\ G&\vdots\\ &\mathord{\leavevmode\hbox to5pt{\vbox to4.44pt{\pgfpicture\makeatletter\hbox{\>\lower-2.22221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}}{}{}{}{}{} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.22221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.22221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\bullet$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\end{array}$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\qquad\leavevmode\hbox to41.02pt{\vbox to22.29pt{\pgfpicture\makeatletter\hbox{\hskip 20.51248pt\lower-11.14442pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{}{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setdash{0.4pt,1.0pt}{0.0pt}\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}}{}{}{}{}{} {\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setdash{0.4pt,1.0pt}{0.0pt}\pgfsys@invoke{ }{{}{}{{}}}{{}{}{{}}}{}{}{{}{}{{}}}{{}{}{{}}}{}{}{{}{}{{}}}{{}{}{{}}}{}{}{{}{}{{}}}{{}{}{{}}}{}{}{}\pgfsys@moveto{16.31248pt}{10.94443pt}\pgfsys@lineto{-16.31248pt}{10.94443pt}\pgfsys@curveto{-18.52165pt}{10.94443pt}{-20.31248pt}{9.1536pt}{-20.31248pt}{6.94443pt}\pgfsys@lineto{-20.31248pt}{-6.94443pt}\pgfsys@curveto{-20.31248pt}{-9.1536pt}{-18.52165pt}{-10.94443pt}{-16.31248pt}{-10.94443pt}\pgfsys@lineto{16.31248pt}{-10.94443pt}\pgfsys@curveto{18.52165pt}{-10.94443pt}{20.31248pt}{-9.1536pt}{20.31248pt}{-6.94443pt}\pgfsys@lineto{20.31248pt}{6.94443pt}\pgfsys@curveto{20.31248pt}{9.1536pt}{18.52165pt}{10.94443pt}{16.31248pt}{10.94443pt}\pgfsys@closepath\pgfsys@moveto{-20.31248pt}{-10.94443pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope}{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.15277pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.15277pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\begin{array}[]{cc}\mathord{\leavevmode\hbox to5pt{\vbox to4.44pt{\pgfpicture\makeatletter\hbox{\>\lower-2.22221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}}{}{}{}{}{} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.22221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.22221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\bullet$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\\ \vdots&H\\ \mathord{\leavevmode\hbox to5pt{\vbox to4.44pt{\pgfpicture\makeatletter\hbox{\>\lower-2.22221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}}{}{}{}{}{} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.22221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.22221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\bullet$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\end{array}$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\end{array} (6)

For a formula ϕ\phi, we can now define its associated graph ϕ\llbracket\phi\rrbracket inductively as follows: =\llbracket\mathord{\circ}\rrbracket=\varnothing the empty graph; a=a\llbracket a\rrbracket=a a single-vertex graph whose vertex is labelled by aa (by a slight abuse of notation, we denote that graph also by aa); similarly a=a\llbracket{a^{\bot}}\rrbracket={a^{\bot}}; finally we define ϕ\parrψ=ϕ\parrψ\llbracket\phi\mathbin{\parr}\psi\rrbracket=\llbracket\phi\rrbracket\mathbin{\parr}\llbracket\psi\rrbracket and ϕψ=ϕψ\llbracket\phi\mathbin{\otimes}\psi\rrbracket=\llbracket\phi\rrbracket\mathbin{\otimes}\llbracket\psi\rrbracket.

Theorem 1.

For any two formulas, ϕψ\phi\equiv\psi iff ϕψ\llbracket\phi\rrbracket\simeq\llbracket\psi\rrbracket.

Proof 2.1.

By a straightforward induction.

{defi}

A graph is

Definition 2.

𝖯𝟦\mathsf{P_{4}}-free iff it does not have an induced subgraph of the shape

\mathord{\leavevmode\hbox to5pt{\vbox to4.44pt{\pgfpicture\makeatletter\hbox{\>\lower-2.22221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.22221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.22221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\bullet$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\qquad\mathord{\leavevmode\hbox to5pt{\vbox to4.44pt{\pgfpicture\makeatletter\hbox{\>\lower-2.22221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.22221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.22221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\bullet$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\qquad\mathord{\leavevmode\hbox to5pt{\vbox to4.44pt{\pgfpicture\makeatletter\hbox{\>\lower-2.22221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.22221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.22221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\bullet$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\qquad\mathord{\leavevmode\hbox to5pt{\vbox to4.44pt{\pgfpicture\makeatletter\hbox{\>\lower-2.22221pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }{{}}\hbox{\hbox{{\pgfsys@beginscope\pgfsys@invoke{ }{{}{}{{ {}{}}}{ {}{}} {{}{{}}}{{}{}}{}{{}{}} { }{{{{}}{\pgfsys@beginscope\pgfsys@invoke{ }\hbox{\thinspace\raise-2.22221pt\hbox{\pgfsys@transformcm{1.0}{0.0}{0.0}{1.0}{0.0pt}{-2.22221pt}\pgfsys@invoke{ }\hbox{{\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\hbox{{$\bullet$}} }}}\hss}\pgfsys@invoke{ }\pgfsys@endscope}}}} \pgfsys@invoke{ }\pgfsys@endscope}}} \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{{ {}{}{}}}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}}\leavevmode\hbox to0pt{\vbox to0pt{\pgfpicture\makeatletter\hbox{\thinspace\lower 0.0pt\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\definecolor{pgfstrokecolor}{rgb}{0,0,0}\pgfsys@color@rgb@stroke{0}{0}{0}\pgfsys@invoke{ }\pgfsys@color@rgb@fill{0}{0}{0}\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\nullfont\hbox to0.0pt{\pgfsys@beginscope\pgfsys@invoke{ }\pgfsys@setlinewidth{0.4pt}\pgfsys@invoke{ }\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\pgfsys@color@rgb@stroke{1}{0}{0}\pgfsys@invoke{ }\definecolor[named]{pgffillcolor}{rgb}{1,0,0}\pgfsys@color@rgb@fill{1}{0}{0}\pgfsys@invoke{ }\pgfsys@stroke@opacity{1}\pgfsys@invoke{ }\pgfsys@fill@opacity{1}\pgfsys@invoke{ }{ {}{}{}{}{}}{}{ {}{}{}{}{}} {{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{}{{{{{}}{ {}{}}{{}{}} {}{}}{}{}}}{{}}{}{}{}{}\pgfsys@moveto{0.0pt}{0.0pt}\pgfsys@lineto{0.0pt}{0.0pt}\pgfsys@stroke\pgfsys@invoke{ } \pgfsys@invoke{ }\pgfsys@endscope\hbox to0.0pt{}{}{}{}\hss}\pgfsys@discardpath\pgfsys@invoke{ }\pgfsys@endscope\hss}}\endpgfpicture}} (7)

The following result is classical and its proof can be found, e.g., in [moh:89] or [gug:SIS].

Theorem 3 ([duffin:65]).

Let GG be a graph. Then there is a formula ϕ\phi with ϕG\llbracket\phi\rrbracket\simeq G iff GG is 𝖯𝟦\mathsf{P_{4}}-free.

The graphs characterised by Theorem 3 are called