On aura ta peau, Socrate !

“Le Nombre imaginaire” ou les mathématiques comme terrain de jeu où l’imagination seule fixe les limites.

La chronique précédente a mis en place une bonne partie du vocabulaire nécessaire pour construire des énoncés logiques qui expriment des propriétés du monde ou des concepts très généraux avec une remarquable économie de moyens : des noms de prédicats (mortel) et de concepts (Socrate), des symboles de variables (X), quelques connecteurs (∧, ∨, ¬, ⇒… dont certains ne sont d’ailleurs que des raccourcis, nous y reviendrons) et nos deux quantificateurs universel (∀) et existentiel (∃).

Avec cet outillage restreint, nous pouvons exprimer des énoncés très puissants ; et tout d’abord pour donner un sens, ce qu’on appelle une sémantique, aux prédicats que nous manipulons. Je peux par exemple affirmer que la relation d’amitié entre deux personnes est symétrique : X Y ami(X,Y)  ami(Y ,X).  En d’autres termes, si Jules est l’ami de Jim, alors Jim est l’ami de Jules. Cette relation est aussi (usuellement) réflexive : Jules a à cœur de préserver ses propres intérêts, et je déclare donc que X ami(X,X). Je peux également spécifier que pour être ami de quelqu’un il faut le connaitre : X Y ami(X,Y) connait(X ,Y). Je peux alors introduire la notion d’ennemi : un ennemi est (dans un monde bien cruel mais qui n’est pas loin d’être le nôtre) quelqu’un que je connais et dont je ne suis pas l’ami : ∀X ∀Y connait(X,Y) ∧ ¬ ami(X,Y) ⇔ ennemi(X,Y). Ici j’ai utilisé un nouveau connecteur appelé équivalence logique ; P ⇔ Q est vrai si P et Q sont soit tous deux vrais soit tous deux faux, et c’est un raccourci pour l’expression (⇒Q) ∧ (⇒P).  Enfin, je peux spécifier que l’ennemi de mon ami est mon ami (ce qui implique que je connaisse tous les ennemis de mon ennemi, étrange mais soit) : ∀X ∀Y ∀Z ennemi(X,Y) ∧ ennemi(Y,Z) ami(X ,Z).

La logique permet aussi, et nous ne nous en priverons pas, de définir facilement des propriétés récursives – souvenez-vous des fractales par exemple. Mes ancêtres sont mes parents et les ancêtres de mes parents : ∀X ∀Y ancêtre(X,Y) ⇔ (parent(X,Y) ∨ (Z  parent(Z,Y) ∧ ancêtre(X,Z). Quelle concision ! Quelle élégance ! Vous restez libre de penser que les hiéroglyphes égyptiens partagent ces deux qualités avec le langage de la logique, ainsi qu’une troisième, celle d’être incompréhensible au commun des mortels ; mais si on relit lentement et en prenant son temps, cet énoncé est d’une très grande clarté, sans aucune ambiguïté.

Si l’on ajoute enfin quelques symboles additionnels, tels que le prédicat d’égalité X = Y, ainsi que des opérations et symboles arithmétiques de base, la logique nous permet alors de spécifier des énoncés tels que 2+2 = 9,  ∀X  X – 2 = X + 3, et autres merveilles de la science Shadok.

Tout cela est bel et bon, mais nous n’en sommes qu’au début. Contrairement au rêve de Leibnitz, le fait que je puisse exprimer un énoncé en utilisant le langage de la logique ne me renseigne en rien sur sa validité. Quelles propositions croire ? Comment raisonner ? La logique doit m’apporter une réponse. Il me faut des bases et des règles de raisonnement.

Les bases de raisonnement sont ce qu’on appelle des axiomes. Un axiome est un énoncé logique vrai par définition. C’est moi, mathématicien ou logicien amateur, qui prends la responsabilité de l’affirmer. Si mon axiome entre en conflit majeur avec le bon sens, ou s’il permet de déduire des faits contradictoires, c’est ma faute et toute la logique du monde ne pourra rien pour moi – sauf mettre mon erreur en lumière de manière fort embarrassante. Il existe d’ailleurs pour cela en logique un symbole spécial, noté , qui représente le faux absolu. Ce symbole est essentiel parce que n’importe quel ensemble d’axiomes qui permettrait de le démontrer est inconsistant : les règles de la logique sont telles que si je peux démontrer le faux, alors je peux démontrer n’importe quoi, et mon système d’axiomes est bon à jeter. Donc, législateurs de tout poil, c’est à vos risques et périls !

Je peux décréter par exemple en tant qu’axiome que Socrate est humain, ce que j’écris Humain(Socrate), et que tout humain est mortel : X humain(X) mortel(X). Ces deux énoncés sont vrais parce que j’en ai décidé ainsi. Parfait.

Parfait ? Pas vraiment. Le problème est que rien ne me permet encore d’en déduire que Socrate est mortel. J’ai une loi, mais pas de décrets d’application. Le juge d’instance serait bien embêté.

La logique nous offre heureusement ce qui manque : un formalisme de raisonnement, présenté sous la forme de règles d’inférence, qui va nous permettre de déduire la vérité de nouveaux énoncés, les théorèmes. Les règles d’inférence forment disons la constitution, le cadre juridique qui permettra d’appliquer un ensemble de lois, les axiomes, en décrets d’application et en décisions de justice : les théorèmes.

De même que la Constitution transcende les lois ordinaires, une règle d’inférence n’est pas elle-même un énoncé logique (du moins au sens de la logique dite du premier ordre dont nous sommes en train de parler). Une règle d’inférence nous dit comment raisonner dans le cadre de la logique ; elle nous explique quels énoncés nous devons croire. Plus précisément, partant de certains énoncés supposés vrais ou que nous avons précédemment démontrés, une règle d’inférence nous permet de démontrer d’autres énoncés qui deviennent des théorèmes.

Parce qu’elles doivent être absolument précises et sans ambiguïté, les règles d’inférence s’expriment aussi en utilisant un langage mathématique que l’on appelle un méta-langage : en effet ce langage-là n’exprime pas d’énoncés logique, mais manipule ces énoncés logiques eux-mêmes.

Il en existe plusieurs variantes, dont certaines d’une abstraction et d’une puissance proprement fabuleuses ; nous utiliserons un formalisme plus abordable, appelé déduction naturelle. Tout d’abord nous nous autorisons à utiliser des symboles comme P et Q qui représentent n’importe quel énoncé logique, partout ou le langage de la logique permet d’employer un énoncé précis. Une telle expression s’appelle une formule logique. Ceci nous permet de raisonner sur des classes entières d’énoncés d’un seul coup.  Par exemple, la formule P  ⇒  Q nous permet de représenter n’importe quel énoncé logique qui relie deux énoncés par le connecteur d’implication.

Une règle d’inférence comporte une liste de formules logiques appelées hypothèses ou prémisses, et spécifie une conclusion que ces  prémisses démontrent. Ici nous présentons les prémisses séparées par des virgules, suivis du symbole , qui veut dire démontre, et d’une formule qui est la conclusion. Si nous adhérons à la règle et croyons aux prémisses, alors la conclusion s’impose.

Parce qu’elles déterminent la validité du raisonnement logique, les règles d’inférence se doivent d’être précises et inattaquables. La déduction naturelle en utilise treize. En voici quelques unes.

La première vous paraîtra peut-être trop évidente pour mériter ce nom, mais elle est d’une grande importance : P, ¬P ⊢ ⊥. Ce que dit cette règle, c’est que si je peux démontrer un énoncé et sa négation, alors je démontre le faux (et je peux démontrer n’importe quoi). Si mes axiomes sont bien choisis cela ne doit jamais se produire.

Une autre règle d’inférence bien utile s’appelle le modus ponens, et si le nom paraît vieillot c’est à juste titre ; l’idée en remonte à l’antiquité. Il s’agit d’un principe bien simple : si je sais qu’un énoncé A est vrai, et si je sais (ou ai démontré) que A ⇒  B, alors je dois en déduire B.  Cette règle s’écrit ainsi : A , A ⇒  B  ⊢  B. 

On pourrait croire que cette règle va nous permettre enfin de régler le cas Socrate. Puisque je sais que Socrate est un homme et que tout homme est mortel, je peux appliquer le modus ponens et en déduire que Socrate est mortel – non ?

Non, et un avocat de la défense doué trouvera la parade. Le modus ponens exige que l’on sache A et A ⇒ B pour en déduire B. Or si nous savons que Humain(Socrate), nous n’avons pas établi que Humain(Socrate) ⇒  Mortel(Socrate). Cela peut paraître évident d’après notre axiome plus général que tout humain est mortel, mais l’évidence n’est pas plus une preuve en logique qu’elle n’en est une en droit ; il nous faut une règle. La voici (un peu simplifiée): X P(x) ⊢ P(a). Elle dit que si un énoncé couvert par le quantificateur universel est démontré, alors l’énoncé obtenu en enlevant ce quantificateur et en remplaçant la variable quantifiée p ar une constante est également démontré. Je peux appliquer cette règle à mon axiome X humain(X) mortel(X) et, en remplaçant X par Socrate, j’obtiens bien le théorème Humain(Socrate) ⇒  Mortel(Socrate) dont j’avais besoin.

En utilisant nos deux axiomes, la règle d’élimination du quantificateur universel puis le modus ponens, on arrive – enfin ! – à conclure que Socrate est mortel et qu’il peut donc en toute légalité prendre sa ciguë comme l’en ont aimablement prié les autorités.

Tout ça pour ça me direz-vous. Sans doute. Mais ce formalisme, ce rigorisme, ce sens du détail, sont tout ce qui sépare les maths d’un vague agrégat de croyances et de raisonnements approximatifs.

Du moins, c’était ce qu’on pensait jusque vers les années 1930… mais ceci est une autre histoire.

Yannick Cras
Le nombre imaginaire

Imprimer Imprimer