Le ∃ de « il existe » est un E capital pivoté d’un demi-tour, et le ∀ de « pour tout » un A capital retourné. Les symboles de théorie des ensembles et de logique que fournit LaTeX — \forall, \exists, \in, \subset, \cup, \land — ne forment pas un système conçu mais une collection d’improvisations qui ont pris ; entre ces deux lettres retournées, il y a trente-huit ans d’écart et deux auteurs différents. Cette page suit ces improvisations jusque-là où elles coûtent encore quelque chose à un document en cours : pourquoi ⊂ signifie deux choses selon qui le lit, pourquoi \setminus et \backslash impriment exactement le même dessin sans se composer de la même façon, et pourquoi le signe de l’ensemble vide est une lettre danoise.
\forall et \exists : deux lettres que l’on a retournées
Les deux relèvent du LaTeX standard : \forall et \exists ne demandent aucun package, et ce sont littéralement des caractères retournés. Giuseppe Peano imprima le E inversé pour « il existe » en 1897, dans le tome II de son Formulaire de mathématiques — huit ans après avoir mis un epsilon grec au service de l’appartenance. Le A renversé se fit bien plus attendre : il apparaît pour la première fois dans « Untersuchungen über das logische Schließen » de Gerhard Gentzen, Mathematische Zeitschrift 39 (1935), page 178. Trente-huit ans durant, la logique disposa donc d’un signe pour « il existe » et d’aucun pour « pour tout » ; la variable liée s’écrivait simplement entre parenthèses, (x). Le ∄ nié est plus jeune encore et ne figure pas dans le noyau de LaTeX : \nexists vient de amssymb.
Tous vivent en mode mathématique. Écrire \forall dans le texte courant n’est pas seulement inélégant : la compilation s’arrête sur ! Missing $ inserted., car hors du mode mathématique il n’existe aucune règle d’espacement à appliquer. Et celle qui s’applique à l’intérieur mérite d’être connue : fontmath.ltx déclare \forall et \exists comme \mathord, symboles ordinaires, et non comme relations. Les quantificateurs ne réclament donc aucune espace propre, d’où le \forall x\exists y tout tassé, et d’où l’usage des sources soigneuses d’écrire \forall x\, \exists y\, P(x,y) en glissant une espace fine \, entre les deux.
% quantifiers, and a set defined by a condition
\[
\forall \varepsilon > 0 \;\exists \delta > 0 \;
\bigl( |x - a| < \delta \implies |f(x) - f(a)| < \varepsilon \bigr)
\]
\[
A \cup B = \{\, x \mid x \in A \lor x \in B \,\}, \qquad
A \subseteq B \iff \forall x\,(x \in A \implies x \in B)
\]\land ou \wedge, \lnot ou \neg : lequel taper ?
Le rendu ne diffère en rien : il faut donc taper le nom qui dit l’intention. fontmath.ltx déclare \DeclareMathSymbol{\wedge}{\mathbin}{symbols}{"5E} puis écrit pour \land une ligne identique — même classe, même fonte, même position ; de même pour \lor/\vee ("5F) et \lnot/\neg ("3A). Aucun des six ne réclame amssymb. L’usage qui s’est fixé consiste à employer les noms logiques dans les formules logiques et les noms géométriques là où ∧ signifie autre chose que la logique : \wedge pour le produit extérieur des formes différentielles, \vee pour la borne supérieure dans un treillis. Qui rencontre \land dans la source sait aussitôt qu’il s’agit d’un « et » : c’est tout l’avantage, et il reste réel tant que le fichier est lu par des humains.
| Commande | Glyphe | Nom / usage |
|---|---|---|
\forall | ∀ | quantificateur universel (pour tout) ; \mathord |
\exists | ∃ | quantificateur existentiel (il existe) ; \mathord |
\nexists | ∄ | il n’existe pas ; nécessite amssymb |
\neg | ¬ | négation ; déclaré à l’identique de \lnot |
\lnot | ¬ | négation ; nom plus lisible en logique |
\land | ∧ | conjonction (et) ; \mathbin |
\wedge | ∧ | même glyphe ; produit extérieur, borne inférieure |
\lor | ∨ | disjonction (ou) ; \mathbin |
\vee | ∨ | même glyphe ; borne supérieure et usages non logiques |
\Rightarrow | ⇒ | implication ; flèche double courte |
\implies | ⟹ | implication avec espace épaisse de chaque côté ; amsmath |
\Leftrightarrow | ⇔ | équivalence ; flèche double courte |
\iff | ⟺ | équivalence ; définie dans le noyau, sans package |
\implies et \iff méritent une note à part. \iff est déjà défini dans le noyau de LaTeX comme \;\Longleftrightarrow\; — une longue flèche double avec une espace épaisse de chaque côté — et fonctionne donc sans aucun package. amsmath le redéfinit en \DOTSB\;\Longleftrightarrow\;, ce qui ne change rien à l’espacement et tout à \dots : \DOTSB signale qu’une commande est un opérateur binaire ou une relation, de sorte qu’un \dots qui suit sort centré (⋯) au lieu de reposer sur la ligne de base. \implies, lui, n’existe que dans amsmath. Dans un même document, choisir soit le court \Rightarrow, soit le long \implies, et s’y tenir : changer en cours de démonstration se lit comme si les deux flèches avaient des sens différents.
\in, \notin, \ni : l’appartenance et le piège \epsilon
Le signe d’appartenance ∈ fut d’abord un epsilon grec : Peano employa ε en 1889 comme abréviation du latin est. Cette histoire et sa conséquence — x \epsilon A se compile sans broncher et imprime une formule dont l’espacement a disparu, parce que \epsilon est \mathord là où \in est \mathrel — sont racontées sur la page lettres grecques de cette référence. Deux autres choses découlent de la même table de déclarations. D’abord, \notin n’est pas un caractère : fontmath.ltx le construit comme \mathrel{...\c@ncel\in} en superposant une petite barre oblique à \in ; la position du trait est donc calculée et non héritée d’une fonte, et \not\in occupe exactement la même largeur. Ensuite, ∋ (\ni, « contient comme élément ») porte un second nom déclaré au même emplacement : \owns. Dans une phrase, A \owns x se lit mieux que A \ni x, et cela ne coûte rien.
\subset ou \subseteq : le signe qui a deux sens
Écrire \subseteq pour « sous-ensemble, éventuellement égal » et \subsetneq pour « strictement plus petit ». La raison d’éviter ⊂ n’est pas qu’il soit faux, mais qu’il se lit de deux façons : pour une large part de la littérature, A \subset B autorise A = B et n’est qu’une autre graphie de ⊆ ; pour une part tout aussi large, il affirme A ≠ B. Les deux lectures sont installées, les deux figurent dans des manuels actuels, et aucune ne l’emportera. Le couple ⊂ et ⊃ a été introduit par Ernst Schröder dans le premier volume de ses Vorlesungen über die Algebra der Logik en 1890, pour « est contenu dans » et « contient » ; la question de la stricte inclusion s’est scindée dans l’usage postérieur et l’est restée.
| Commande | Glyphe | Nom / usage |
|---|---|---|
\in | ∈ | appartient à ; \mathrel |
\notin | ∉ | n’appartient pas à ; barre superposée à \in |
\ni | ∋ | contient comme élément ; alias \owns |
\subset | ⊂ | inclusion ; ambigu — parfois lu comme stricte |
\subseteq | ⊆ | sous-ensemble ou égal ; sans ambiguïté |
\subsetneq | ⊊ | sous-ensemble strict ; nécessite amssymb |
\supset | ⊃ | inverse de ⊂, avec la même ambiguïté |
\supseteq | ⊇ | sur-ensemble ou égal |
Deux habitudes en découlent. D’abord, si un document emploie ⊂, il vaut mieux préciser une fois, dès le début, quelle lecture est retenue — beaucoup de livres font exactement cela. Ensuite, là où la stricte inclusion porte l’argument, il faut l’écrire : \subsetneq (⊊) de amssymb ne laisse rien à interpréter. amssymb propose aussi \subsetneqq (avec une double barre en dessous) ainsi que \varsubsetneq et \varsubsetneqq, qui ne diffèrent que par le tracé de la barre oblique et du trait ; à moins qu’un style de revue n’en exige un, \subsetneq reste la valeur sûre. Au passage : le noyau de LaTeX ne contient aucun signe d’inclusion stricte — ce qui en dit long sur la manière dont cette notation s’est constituée.
\cup, \cap, \setminus — et ce que fait \backslash à la place
\setminus et \backslash vont chercher le même dessin au même emplacement de la même fonte — la position "6E de la fonte symbols. Seule diffère la classe sous laquelle ils ont été déclarés, et toute l’affaire tient là. fontmath.ltx écrit \DeclareMathSymbol{\setminus}{\mathbin}{symbols}{"6E}, mais déclare \backslash comme \mathord, avec un commentaire précisant qu’il est là « pour les doubles classes G\backslash H ». En composant A \setminus B et A \backslash B côte à côte à 10pt, les boîtes mesurent 25,03pt et 20,59pt : les 4,44pt manquants sont l’espace moyenne de 4mu qu’un opérateur binaire prend de chaque côté. Rien n’échoue, rien n’avertit, et l’écart est assez faible pour franchir une relecture — raison précise pour laquelle il faut trancher une fois pour toutes. \setminus pour la différence d’ensembles, et \backslash réservé aux doubles classes pour lesquelles il a été prévu.
Le même piège, en plus grand, attend dans la notation par compréhension. | et \mid sont eux aussi le même glyphe — emplacement "6A — déclarés respectivement \mathord et \mathrel. \{x \mid x > 0\} mesure 48,10pt contre 42,54pt pour \{x | x > 0\}, soit 5,56pt d’écart : l’espace épaisse de 5mu qu’une relation prend des deux côtés. La barre de condition est une relation — elle sépare la variable de l’énoncé qui la concerne — donc \mid est le bon choix, tandis que | donne un ensemble d’un seul bloc. Quand une expression haute oblige les accolades à grandir, \left\{\, x \in X \;\middle|\; f(x) = 0 \,\right\} fait grandir la barre avec elles ; un \mid nu dans \left\{ ... \right\} reste petit pendant que les accolades le dépassent.
% set difference and set-builder: pick the relation-class commands
\[
A \setminus B = \{\, x \in A \mid x \notin B \,\}
\]
% \middle| grows with \left\{ ... \right\}; a bare \mid does not
\[
\left\{\, x \in X \;\middle|\; \frac{f(x)}{g(x)} = 0 \,\right\}
\]| Commande | Glyphe | Nom / usage |
|---|---|---|
\cup | ∪ | union ; \mathbin |
\cap | ∩ | intersection ; \mathbin |
\setminus | ∖ | différence ; espacée comme opérateur binaire |
\backslash | ∖ | même glyphe en \mathord ; pour les doubles classes G\H |
\mid | ∣ | barre de condition ; \mathrel |
\complement | ∁ | complément, comme A^\complement ; amssymb |
\emptyset ou \varnothing : l’ensemble vide est une lettre danoise
∅ n’est ni un phi grec ni un zéro barré. C’est Ø, la lettre des alphabets danois et norvégien, et elle est entrée en mathématiques en 1939 par les Éléments de mathématique de Bourbaki. André Weil l’a revendiquée plus tard dans ses souvenirs : le symbole venait de l’alphabet norvégien, écrit-il, le seul du groupe Bourbaki à le connaître étant lui-même. Savoir d’où il vient tranche la question du bon commande LaTeX, car les deux commandes dessinent deux lectures différentes de la même lettre.
\emptyset est la version du noyau et \varnothing vient de amssymb ; leurs formes diffèrent. Mesurés en Computer Modern à 10pt, \emptyset fait 5,00pt de large et 7,50pt de haut — un ovale étroit et dressé traversé d’un trait —, tandis que \varnothing fait 7,78pt de large et 5,82pt de haut : un cercle rond barré d’une oblique qui dépasse aux deux extrémités. Le second est bien plus proche d’un Ø manuscrit, et de ce que la plupart imaginent en entendant « ensemble vide ». La conclusion pratique tient en une règle : charger amssymb, employer \varnothing partout, et ne pas laisser \emptyset revenir en cours de route. Deux formes pour un même ensemble dans un seul document, c’est le genre de chose qu’un correcteur entoure en rouge.
\vdash, \models, \top, \bot : turnstiles et signes de preuve
Tous quatre relèvent du LaTeX standard, et tous quatre parlent d’une démonstration, non d’un ensemble. ⊢ (\vdash) est le turnstile de la dérivabilité syntaxique — Γ ⊢ φ, « φ se dérive de Γ » — et ⊨ (\models) le double turnstile de la conséquence sémantique, « tout modèle de Γ rend φ vraie ». Distinguer ces deux notions occupe la moitié de la logique mathématique : se tromper de signe n’est donc pas un détail typographique. \models n’est pas non plus un caractère unique : fontmath.ltx l’assemble à partir d’une barre verticale jointe à un double trait, \mathrel{|}\joinrel\Relbar. ⊣ (\dashv) est le ⊢ en miroir ; hors de la logique, c’est ainsi que s’écrivent les foncteurs adjoints, F ⊣ G. ⊤ et ⊥ sont les constantes vrai et faux, et aussi le plus grand et le plus petit élément d’un treillis.
Ici encore, tout tient à la classe. \vdash, \dashv et \models sont \mathrel et réclament donc une espace propre des deux côtés ; \top et \bot sont \mathord, car ils tiennent d’ordinaire seuls, comme constantes. Écrire L \bot M pour « L est perpendiculaire à M » donne par conséquent une composition serrée. La commande prévue pour cela est \perp, c’est-à-dire le même emplacement "3F déclaré une seconde fois comme relation. À la mesure, L \bot M fait 25,38pt et L \perp M 30,93pt : les 5,56pt d’écart sont, une fois de plus, l’espace épaisse qu’une relation prend de chaque côté. \perp figure lui aussi dans le noyau, sans package.
| Commande | Glyphe | Nom / usage |
|---|---|---|
\vdash | ⊢ | dérivable (turnstile) ; \mathrel |
\dashv | ⊣ | ⊢ en miroir ; aussi les adjonctions F ⊣ G |
\models | ⊨ | conséquence sémantique ; barre plus double trait |
\top | ⊤ | verum / plus grand élément ; \mathord |
\bot | ⊥ | falsum / plus petit élément ; \mathord |
\perp | ⊥ | même glyphe en relation ; pour « perpendiculaire » |
\therefore | ∴ | donc ; déclaré comme relation ; amssymb |
\because | ∵ | parce que ; déclaré comme relation ; amssymb |
Lesquels demandent amssymb ? (et où placer ∴ et ∵)
Six commandes exactement, sur cette page, se situent hors du noyau de LaTeX : \nexists, \varnothing, \subsetneq, \complement, \therefore et \because. Toutes six viennent de amssymb et, sans \usepackage{amssymb} dans le préambule, chacune arrête la compilation sur ! Undefined control sequence. Le septième intrus est \implies, qui relève de amsmath et non de amssymb. Comme amssymb charge lui-même amsfonts et qu’un document contenant des formules réclame de toute façon amsmath, deux lignes de préambule couvrent tout ce qui figure ici.
\usepackage{amsmath} % \implies, \impliedby, \iff with \DOTSB
\usepackage{amssymb} % \nexists \varnothing \subsetneq \complement \therefore \because
% \therefore is a relation: it already carries space on both sides
\[
x^2 = 4 \quad \therefore x = \pm 2
\]Reste une légende à congédier. On lit souvent que ∴ et ∵ réclament un espacement manuel — \therefore\ et consorts. Il n’en est rien. amssymb déclare les deux comme \mathrel : x \therefore y porte déjà l’espace épaisse d’une relation de chaque côté, et ajouter \ ne fait que doubler l’écart. Ce qui mérite vraiment attention, c’est l’emploi lui-même : ces marques appartiennent au tableau noir plus qu’à la page imprimée. Dans une prose achevée, « donc » et « car » se lisent presque toujours mieux, et ∴ vaut surtout pour les endroits où la place manque réellement, à l’intérieur d’une formule hors texte par exemple.
- Uniformiser sur
\varnothing(amssymb) pour l’ensemble vide et ne jamais y mêler\emptyset - Employer
\subseteqpour l’inclusion et\subsetneqpour l’inclusion stricte ; éviter l’ambigu\subsetou en déclarer le sens dès le début - La différence d’ensembles s’écrit
\setminus;\backslashreste aux doubles classes - La barre de compréhension est
\mid, ou\middle|lorsqu’elle doit s’étirer — jamais un|nu \land,\lor,\lnoten logique ;\wedge,\veepour les produits extérieurs et les treillis- Choisir pour l’implication soit le court
\Rightarrow, soit le long\implies, et s’y tenir