title: Calcul des séquents
text: # Calcul des séquents
  
  En logique mathématique et plus précisément en théorie de la démonstration, le calcul des séquents est un système de déduction créé par Gerhard $Gentzen^,^,.$ Le nom de ce formalisme fait référence à un style particulier de déduction ; le système original a été adapté à diverses logiques, telles que la logique classique, la logique intuitionniste et la logique linéaire. Un séquent est une suite d'hypothèses suivie d'une suite de conclusions, les deux suites étant usuellement séparées par le symbole $\vdash$ (taquet droit), « : » (deux-points) ou encore $\rightarrow$ (flèche droite) dans l'œuvre originale de Gentzen.
  
  Un séquent représente une étape d'une démonstration, le calcul des séquents explicitant les opérations possibles sur ce séquent en vue d'obtenir une démonstration complète et correcte.
  
  ## Historique et motivation
  
  En 1934, Gentzen a proposé la déduction naturelle, un formalisme pour décrire les preuves du calcul des prédicats, dont l'idée était de coller au plus près à la manière dont les mathématiciens raisonnent. Il a ensuite tenté d'utiliser la déduction naturelle pour produire une preuve syntaxique de la cohérence de l'arithmétique, mais les difficultés techniques l'ont conduit à reformuler le formalisme en une version plus symétrique : le calcul des séquents. Contrairement à la déduction naturelle où un jugement est une suite d'hypothèses suivie d'une conclusion, dans le calcul des séquents, un jugement peut contenir plusieurs conclusions. C'est dans ce cadre qu'il a démontré ce qui devait devenir l'un des théorèmes principaux de la théorie de la démonstration : le théorème d'élimination des coupures. Dag Prawitz a montré en 1965 que ce théorème pouvait se transporter à la déduction naturelle.
  
  Le terme calcul des séquents est une traduction de l'anglais sequent calculus, lui-même hérité de l'allemand Sequenzenkalkül.
  
  ## Définition
  
  ### Séquent
  
  L'objet de base du calcul est le séquent, qui est un couple de listes finies (éventuellement vides) de formules, séparées par un symbole qui se lit « thèse ». Les séquents sont ainsi usuellement notés :
  
  $A_{1},\dots ,A_{n}\vdash B_{1},\dots ,B_{p}$
  
  où les $A_{i}$ sont les hypothèses et les $B_{j}$ sont les conclusions du séquent. Un autre point important à noter est qu'une même formule peut apparaître plusieurs fois à gauche et/ou à droite dans un séquent, par exemple $A_{1}$ peut être la même formule que $A_{n}$ ; on dit alors que cette formule a plusieurs occurrences dans le séquent.
  
  **Interprétation d'un séquent**
  
  La notation séquent peut se comprendre comme une astuce syntaxique pour dénoter des formules particulières ; la virgule à gauche s'interprète comme une conjonction, la virgule à droite comme une disjonction et le symbole $\vdash$ comme une implication, si bien que le séquent ci-dessus peut se comprendre comme une notation pour la formule :
  
  $(A_{1}\land \dots \land A_{n})\rightarrow (B_{1}\lor \dots \lor B_{p})$
  
  et se lit intuitivement :
  
  $A_{1}$ et... et $A_{n}$ impliquent $B_{1}$ ou... ou $B_{p}$
  
  mais le sens précis de ces symboles n'est donné que par les règles formelles (axiomes) qui suivent.
  
  Lorsque la liste d'hypothèses est vide, on peut l'interpréter comme le vrai (c'est-à-dire l'élément neutre de la conjonction) et lorsque la liste de conclusions est vide, on peut l'interpréter comme le faux (c'est-à-dire l'élément neutre de la disjonction).
  
  ### Règles
  
  Une règle d'un calcul de séquent est de la forme : ${\cfrac {\textrm {premisses}}{\textrm {conclusion}}}$. On note à droite le nom de la règle.
  
  Des règles du calcul des séquents spécifient comment à partir d'un certain nombre (éventuellement nul) de séquents prémisses, on peut dériver un nouveau séquent conclusion.
  
  Une des propriétés importante du calcul des séquents est la réversibilité (ou inversibilité) de certaines règles d'inférence, ce qui signifie l'équivalence logique entre les prémisses et les conclusions (voir plus bas pour le système LK de la logique classique du premier ordre). On peut prouver cette équivalence en utilisant la section Interprétation d'un séquent ci-dessus.
  
  ## Le système LK
  
  Gentzen a introduit le système LK (pour “klassische Prädikatenlogik”) qui formalise la logique classique du premier ordre. On en donne ici une version légèrement modernisée. La définition ci-dessous suppose un minimum de familiarité avec le calcul des prédicats. Dans chacune des règles les lettres grecques Gamma, Delta, etc. dénotent des suites de formules que l'on nomme des contextes : il s'agit de formules qui sont présentes dans la conclusion mais qui n'y sont pas introduites. On fait figurer les séquents prémisses au-dessus, séparés par un trait horizontal du séquent conclusion. Les règles d'inférence se divisent en trois groupes : le groupe identité, le groupe structurel et le groupe logique (qui seront présentés dans les sections suivantes).
  
  Il est important de noter que pour la plupart des règles (groupe logique et groupe identité), il existe deux types de formulation :
  
  * Une formulation multiplicative ne fait apparaître les contextes de la conclusion qu’une seule fois par prémisse (et toujours du même côté du symbole « thèse »). De plus, toutes les sous-formules de la conclusion se retrouvent dans les prémisses (exception : la règle de coupure, qui possède néanmoins bien une forme multiplicative et une forme additive, formées d'après l'applicabilité ou non du critère précédent sur les contextes)
  * Une formulation est additive si une formule contexte de la conclusion apparaît plusieurs fois dans les prémisses, ou si une sous-formule ou une formule contexte apparaît dans la conclusion alors qu’elle n’apparaît pas dans les prémisses.
  
  Cette distinction est très importante en pratique pour les algorithmes de recherche de preuves ou de construction de preuves.
  
  ### Groupe identité
  
  Il est constitué de deux règles :
  
  | ${\cfrac {\qquad }{A\vdash A}}\quad {\textrm {axiome}}$ | ${\cfrac {\Gamma \vdash A,\Delta \qquad \Gamma ',A\vdash \Delta '}{\Gamma ,\Gamma '\vdash \Delta ,\Delta '}}\quad {\textrm {coupure}}$ |
  | - | - |
  
  Une discussion sur la règle de coupure figure plus bas. Remarquons que la règle axiome est la seule de tout le calcul qui n'a pas de prémisse.
  
  Pour les groupes structurel et logique, les règles viennent par paire selon le côté, gauche ou droit, du séquent où elles agissent.
  
  La règle de coupure n'est pas réversible au sens défini plus haut. Elle est ici présentée ici sous sa forme multiplicative mais est irréversible y compris sous sa forme additive (on le perçoit intuitivement, dans la mesure où la formule A présente dans les deux séquents prémisses est absente de la conclusion).
  
  ### Groupe structurel
  
  Il est constitué de six règles :
  
  | ${\cfrac {\Gamma \vdash \Delta }{\Gamma ,A\vdash \Delta }}\quad \mathrm {affaiblissement\ gauche}$ | ${\cfrac {\Gamma \vdash \Delta }{\Gamma \vdash A,\Delta }}\quad \mathrm {affaiblissement\ droite}$ |
  | - | - |
  | ${\cfrac {\Gamma ,A,A\vdash \Delta }{\Gamma ,A\vdash \Delta }}\quad \mathrm {contraction\ gauche}$ | ${\cfrac {\Gamma \vdash A,A,\Delta }{\Gamma \vdash A,\Delta }}\quad \mathrm {contraction\ droite}$ |
  | ${\cfrac {\Gamma \vdash \Delta }{\sigma (\Gamma )\vdash \Delta }}\quad \mathrm {{\acute {e}}change\ gauche}$ | ${\cfrac {\Gamma \vdash \Delta }{\Gamma \vdash \sigma (\Delta )}}\quad \mathrm {{\acute {e}}change\ droite}$ |
  
  Dans les règles d'échange la notation $\sigma (\Gamma )$ désigne une permutation des (occurrences de) formules figurant dans $\Gamma$. Les règles d'échanges sont responsables de la commutativité de la logique. Par exemple, avec $\Gamma =A_{1},A_{2}$, on pourra avoir $\sigma (\Gamma )=A_{2},A_{1}$.
  
  Les règles de contraction et d'affaiblissement expriment une forme d'idempotence des opérateurs « $\scriptstyle \lor$ » et « $\scriptstyle \land$ » de la logique : une formule $A$ est équivalente aux formules $\scriptstyle A\lor A$ et $\scriptstyle A\land A$.
  
  Les règles d'affaiblissement ne sont pas réversibles au sens défini plus haut.
  
  ### Groupe logique
  
  Il est constitué de 12 règles :
  
  | ${\cfrac {\Gamma \vdash A,\Delta }{\Gamma ,\lnot A\vdash \Delta }}\quad \lnot \mathrm {gauche}$ | ${\cfrac {\Gamma ,A\vdash \Delta }{\Gamma \vdash \lnot A,\Delta }}\quad \lnot \mathrm {droite}$ |
  | - | - |
  | ${\cfrac {\Gamma ,A,B\vdash \Delta }{\Gamma ,A\land B\vdash \Delta }}\quad \land \mathrm {gauche}$ | ${\cfrac {\Gamma \vdash A,\Delta \quad \Gamma \vdash B,\Delta }{\Gamma \vdash A\land B,\Delta }}\quad \land \mathrm {droite}$ |
  | ${\cfrac {\Gamma ,A\vdash \Delta \quad \Gamma ,B\vdash \Delta }{\Gamma ,A\lor B\vdash \Delta }}\quad \lor \mathrm {gauche}$ | ${\cfrac {\Gamma \vdash A,B,\Delta }{\Gamma \vdash A\lor B,\Delta }}\quad \lor \mathrm {droite}$ |
  | ${\cfrac {\Gamma \vdash A,\Delta \quad \Gamma ,B\vdash \Delta }{\Gamma ,A\to B\vdash \Delta }}\quad \to \mathrm {gauche}$ | ${\cfrac {\Gamma ,A\vdash B,\Delta }{\Gamma \vdash A\to B,\Delta }}\quad \to \mathrm {droite}$ |
  | ${\cfrac {\Gamma ,A[t/x]\vdash \Delta }{\Gamma ,\forall x\cdot A\vdash \Delta }}\quad \forall \mathrm {gauche}$ | ${\cfrac {\Gamma \vdash A,\Delta }{\Gamma \vdash \forall x\cdot A,\Delta }}\quad \forall \mathrm {droite}$ |
  | ${\cfrac {\Gamma ,A\vdash \Delta }{\Gamma ,\exists x\cdot A\vdash \Delta }}\quad \exists \mathrm {gauche}$ | ${\cfrac {\Gamma \vdash A[t/x],\Delta }{\Gamma \vdash \exists x\cdot A,\Delta }}\quad \exists \mathrm {droite}$ |
  
  Les règles de quantificateurs sont soumises à des restrictions : dans les règles de $\forall$-droite et $\exists$-gauche, on demande que la variable $x$ n'ait pas d'occurrence libre dans une des formules de $\Gamma$ et $\Delta$.
  
  La notation $A[t/x]$ désigne la formule $A$ dans laquelle la variable $x$ est remplacée par un terme $t$, toutefois ce remplacement doit être sain : $A$ ne doit pas contenir de sous-formule $\forall y.B$ ou $\exists y.B$ où $y$ serait une variable libre de $B$ apparaissant dans le terme $t$. Par exemple, $[y/x]$ n'est pas une substitution saine dans $\forall z\exists y.P(x,y,z)$ car après remplacement de $x$ par $y$, on obtient : $\forall z\exists y.P(y,y,z)$, une variable (ici $y$) du terme remplaçant $x$ s'est fait capturer par le quantificateur $\exists y$.
  
  Les règles $\exists$droite et $\forall$gauche ainsi définies ne sont pas réversibles. Pour les autres règles, elles sont réversibles dans la présentation qui en est donnée ici (qui est un mélange de règles multiplicatives et additives), mais elles ne le sont pas en toute généralité, en particulier si l'on choisit de n'adopter que des règles additives ou que des règles multiplicatives.
  
  ### Démonstrations
  
  Une démonstration de LK est un arbre de séquents construit au moyen des règles ci-dessus de façon que chaque séquent soit conclusion d'exactement une règle ; la démonstration est terminée si l'on arrive à ce que toutes les feuilles de l'arbre soient des règles axiome. Le séquent racine de l'arbre est la conclusion de la démonstration. Voici un exemple de démonstration du principe de contraposition de l'implication ; pour simplifier on a omis les utilisations de règles d'échange et représenté en gras les (occurrences de) formules dans les séquents prémisses sur lesquelles porte chaque règle :
  
  ## Théorème d'élimination des coupures
  
  Aussi connu sous le nom de « théorème de Gentzen » ou « Hauptsatz » (parce que c'était le théorème principal des deux articles fondateurs de Gentzen), ce théorème énonce que toute démonstration en calcul des séquents peut être transformée en une démonstration de même conclusion, mais qui n'utilise pas la règle de la coupure. La démonstration de Gentzen fournit un algorithme qui, appliqué à une démonstration quelconque, aboutit à une démonstration sans coupures du même séquent conclusion. Helena Rasiowa et Roman Sikorski ont publié en 1959 une preuve sémantique du théorème de Gentzen pour le cas classique, qui montre l'existence de la démonstration sans coupures, mais ne donne pas un procédé (de normalisation) qui y conduit étape par étape.
  
  ## Discussion
  
  ### Le calcul des séquents et les autres formalismes logiques
  
  Le calcul des séquents, contrairement aux systèmes à la Hilbert ou à la déduction naturelle, n'a pas été créé pour être un formalisme intuitif qui refléterait une forme naturelle de raisonnement, car le propos de Gentzen était de résoudre certains problèmes techniques liés au fait que la règle de réduction à l'absurde brisait la symétrie intro/élim de la déduction naturelle. C'est pourquoi le calcul des séquents doit se penser comme un formalisme pour raisonner sur les preuves formelles plutôt que pour rédiger des preuves formelles. On peut toutefois facilement montrer que le calcul des séquents est équivalent à la déduction naturelle, au sens où les preuves formelles de l'un des formalismes se traduisent dans l'autre, et réciproquement.
  
  L'intérêt du calcul des séquents est de rendre explicite un grand nombre de propriétés de la logique :
  
  * la dualité hypothèse/conclusion exprimée par la symétrie parfaite entre la droite et la gauche dans les séquents ;
  * la symétrie de la logique classique exprimée par le partitionnement des règles en gauche et droite ;
  * les propriétés structurelles (commutativité, idempotence) exprimées par les règles du groupe structurel.
  
  ### La règle de coupure
  
  La règle de coupure est une généralisation du modus-ponens. Pour le voir il faut considérer le cas particulier de la règle où :
  
  * $\Gamma$, $\Delta$ et $\Gamma '$ sont des séquences vides de formules ;
  * $\Delta '$ contient une unique formule $B$.
  
  Dans ce cas particulier les deux séquents prémisses de la règle deviennent respectivement $\vdash A$ et $A\vdash B$ tandis que le séquent conclusion devient $\vdash B$.
  
  La règle de coupure joue un rôle très particulier dans le calcul des séquents pour deux raisons :
  
  * elle est presque incontournable pour formaliser les démonstrations mathématiques ; en effet l'expérience montre que, à l'exception des démonstrations faciles de tautologies, la moindre démonstration de mathématique utilise très souvent la règle de coupure ;
  * plus techniquement, c'est la seule règle à violer la propriété de la sous-formule ; si on observe les règles du calcul des séquents on voit que pour chaque règle, sauf la coupure, les formules apparaissant dans les séquents prémisse sont encore présentes dans le séquent conclusion. Autrement dit, si une démonstration du calcul des séquents n'utilise pas la règle de coupure, alors toutes les formules qu'elle contient sont des sous-formules du séquent conclusion, c’est-à-dire que le séquent conclusion de la démonstration est le plus compliqué de toute la démonstration.
  
  La propriété de la sous-formule était très importante pour Gentzen car c'est elle qui permet de démontrer la cohérence du calcul. On peut en effet montrer que si le calcul mène à une contradiction, c'est-à-dire si l'on peut aussi bien prouver $\vdash A$ que $\vdash \neg A$, alors on peut, moyennant la règle de coupure, prouver le séquent vide $\vdash$ : il suffit d'utiliser la règle de négation
  
  ${\cfrac {\vdash \neg A}{\neg \neg A\vdash }}$
  
  puis la coupure
  
  ${\cfrac {\vdash \neg \neg A\quad \neg \neg A\vdash }{\vdash }}$
  
  Ainsi, toute contradiction mène au séquent vide. On en déduit, par simple contraposition, que si le séquent vide n'est pas prouvable, c'est qu'il n'y a pas de contradiction.
  
  Par ailleurs, il est évident que le séquent vide n'a pas de sous-formule... précisément parce qu'il est vide ! Donc aucune règle satisfaisant la propriété de la sous-formule (selon laquelle le séquent conclusion contient toutes les formules des séquents prémisses) ne peut se conclure par le séquent vide. Dans la mesure où toutes les règles satisfont cette propriété à l'exception de la coupure, on en déduit que si l'on peut démontrer le séquent vide, ce ne peut être qu'à partir de la règle de coupure.
  
  Or l'élimination des coupures montre précisément que la règle de coupure n'est jamais nécessaire : on peut toujours remplacer une démonstration avec coupure par une démonstration sans coupure. D'après ce qui précède, cela signifie en particulier que le séquent vide n'est pas démontrable, et plus généralement que le calcul des séquents ne contient aucune contradiction.
  
  C'est en adaptant cette démonstration d'élimination des coupures au cas de l'arithmétique que Gentzen a produit sa preuve de cohérence de l'arithmétique en utilisant un principe d'induction jusqu'à l'ordinal dénombrable $ε_0.$
  
  ### Logiques non-classiques
  
  On obtient un système de preuve pour la logique intuitionniste à partir du système de preuve classique mais en restreignant les séquents à n'avoir qu'au plus une conclusion. Ce nouveau système s'appelle LJ. De même il existe un calcul des séquents pour la logique linéaire, appelé LL.
  
  ## Implémentation
  
  Le logiciel KeY (un outil de vérification formelle de programmes Java) utilise le calcul des séquents.
  
  