Calcul des prédicats

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Le calcul des prédicats du premier ordre, ou calcul des relations, ou logique du premier ordre, ou tout simplement calcul des prédicats est une formalisation du langage des mathématiques proposée par les logiciens de la fin du XIXe siècle et du début du XXe siècle.

Le trait caractéristique de la logique du premier ordre est l'introduction :

Ceci permet de formuler des énoncés tels que « Tout x est P » et « Il existe un x tel que pour tout y, x entretient la relation R avec y » en symboles :

\forall x (Px) et \exists x \forall y (x R y).

Les formules logiques déduites de ce calcul des prédicats ont pour but de s'appliquer à n'importe quel modèle, c’est-à-dire n'importe quel ensemble dans lequel les variables, les fonctions, les prédicats du calcul représentent respectivement des éléments de l'ensemble, des fonctions de cet ensemble dans lui-même, et des parties de cet ensemble. Les prédicats représentent des qualités, s’ils sont à une place (unaires), ou des relations n-aires, entre n individus de cet ensemble. Ces notions seront précisées dans la suite de cet article.

Le calcul des prédicats du premier ordre égalitaire adjoint au calcul des prédicats un symbole de relation, l'égalité, dont l'interprétation est obligée : c'est l'identité des éléments du modèle, et qui est axiomatisée en conséquence. Suivant le contexte, on peut parler simplement de calcul des prédicats pour le calcul des prédicats égalitaire.

Le calcul des propositions est la partie du calcul des prédicats qui concerne ce qui ne contient pas les notions de variables, de fonctions et de prédicats et donc pas les quantificateurs \forall et \exists. Il sert à formaliser essentiellement les déductions du calcul des prédicats.

On parle de logique du premier ordre par opposition aux logiques d'ordre supérieur, où l'on peut quantifier aussi bien les prédicats ou les fonctions que les variables.

Formation d'une formule du calcul des prédicats du premier ordre[modifier | modifier le code]

Syntaxe[modifier | modifier le code]

Cette section donne une brève présentation du langage formel qu'est le calcul des prédicats.

On se donne pour alphabet :

  • Un ensemble de symboles appelés variables, toujours infini : x, y, z, etc.
  • un ensemble de symboles appelés constantes, éventuellement vide : a, b, c, etc.
  • un ensemble de symboles de prédicats : P, Q, R, etc.

Chaque symbole de prédicat a une arité qui détermine le nombre d'arguments ou d'objets auxquels il est appliqué. Par exemple, le prédicat B pour « est bleu(e) » a une arité d'un (on dit qu'il est unaire ou monadique), tandis que le prédicat J pour « joindre » a une arité de deux (on dit qu'il est binaire ou dyadique).

  • les symboles \forall (quel que soit) et \exists (il existe), appelés quantificateurs
  • les symboles \lnot (non), \land (et), \lor (ou) et \to (implique), qui sont des connecteurs que possède aussi le calcul des propositions.
  • les symboles de ponctuation « ) » et « ( ».

On pourrait se contenter d'un seul quantificateur \forall et de deux connecteurs logiques \lnot et \land en définissant les autres connecteurs et quantificateur à partir de ceux-ci. Par exemple \exists x \; P est défini comme \lnot (\forall x \; \lnot P).

Les formules du calcul des prédicats du premier ordre sont les suivantes, et uniquement les suivantes :

  • P(a, b, c, ..., n) si P est n-aire (une telle formule est appelée un atome ou une formule atomique)
  • ¬e si e est une formule.
  • (e1e2) si les éléments (e1 et e2) sont des formules.
  • (e1e2) si les éléments sont des formules.
  • (e1e2) si les éléments sont des formules.
  • \forall x \; e si e est une formule.
  • \exists x \; e si e est une formule.

On appelle énoncé une formule dont toutes les variables sont liées par un quantificateur (donc qui n'a pas de variable libre).

Exemples[modifier | modifier le code]

Exemple 1

Si on se donne pour constantes les deux symboles 0 et 1, pour symboles de fonctions binaires + et ., et pour symboles de prédicats binaires les symboles = et <, alors le langage utilisé peut être interprété comme étant celui de l'arithmétique. x et y désignant des variables, x+1 est un terme, 0+1+1 est un terme clos, x<y+1 est une formule, 0+1+1<0+1+1+1 est une formule close.

Exemple 2

Si on se donne un ensemble de variables quelconque, une constante notée e, un symbole de fonction binaire noté *, un symbole de fonction unaire notée -1, un symbole de relation binaire =, alors le langage utilisé peut être interprété comme étant celui de la théorie des groupes. Si x et y désignent des variables, x*y est un terme, e*e est un terme clos, x=y*y est une formule, e=e*e-1 est une formule close.

Prédicats, formules closes, formules polies, variables libres, variables liées[modifier | modifier le code]

Lorsqu’une variable x appartient à une sous-formule précédée d’un quantificateur, \forall x ou \exists x , elle est dite liée par ce quantificateur. Si une variable n’est liée par aucun quantificateur, elle est libre.

La distinction entre variable libre et variable liée est importante. Une variable liée ne possède pas d'identité propre et peut être remplacée par n'importe quel autre nom de variable qui n'apparaît pas dans la formule. Ainsi, \exists x (x < y) est identique à \exists z (z < y) mais pas à \exists x (x < z) et encore moins à \exists y (y < y).

Une formule close est une formule dont toutes les variables sont liées. Un prédicat est une formule qui contient une ou plusieurs variables libres. On peut considérer les prédicats comme des concepts. Ainsi, \forall x \exists y (x < y) est une formule close du langage de l'arithmétique. \forall x (x < z) est un prédicat portant sur la variable z.

Une formule est dite polie lorsque d'une part aucune variable n'y a à la fois d'occurrences libres et d'occurrences liées et que d'autre part aucune variable liée n'est soumise à plus d'une mutification (on dit qu'un signe est mutificateur lorsqu'il permet de confirmer l'hypothèse d'une variable liée).

Article détaillé : Variable libre.

But du calcul des prédicats[modifier | modifier le code]

Comme le calcul des propositions, le calcul des prédicats se donne pour but de définir quels sont les énoncés qui sont valides et quels sont ceux qui ne le sont pas. Et comme pour le calcul des propositions, il existe deux façons d'aborder cette question, l'aspect sémantique et l'aspect syntaxique. Un théorème de complétude montre l'équivalence entre ces deux aspects.

Sémantique du calcul des prédicats du premier ordre[modifier | modifier le code]

La théorie de la vérité des formules du calcul des prédicats a été appelée par Tarski sa sémantique. Elle est présentée dans l'article Théorie des modèles. Un modèle d'un langage du premier ordre est un ensemble dans lequel on donne un sens aux symboles du langage. On peut alors attribuer une valeur de vérité (vrai ou faux) aux formules du langage dans ce modèle. On dit qu'une formule F du langage est un théorème si cette formule est vraie dans tout modèle du langage, ce qu'on note \vDash F. Par exemple, si P désigne un prédicat binaire, la formule \exists x \forall y P(x,y) \to \forall y \exists x P(x,y) est un théorème. En effet, tout modèle M sera un ensemble non vide dans lequel le prédicat P sera représenté par un ensemble A de M × M. Les variables x et y se verront affectées comme valeur des éléments de M, et dire que P(x, y) est vrai signifiera que (x, y) est élément de A. Il y a alors deux cas.

Ou bien il existe un élément a de M tel que \{(a,y), y \in M\} \subset A et, dans ce cas, les deux propositions \exists x \forall y \; (x,y) \in A et \forall y \exists x \; (x,y)\in A sont vraies (il suffit de prendre x = a), et l'implication est vraie.
Ou bien un tel a n'existe pas et la proposition \exists x \forall y \; (x,y) \in A est fausse. Mais alors, quelle que soit la valeur de vérité de \forall y \exists x \; (x,y)\in A, l'implication sera vraie.

L'implication étant vraie dans tout modèle, la formule est valide.

Par contre, la formule \forall y \exists x P(x,y) \to \exists x \forall y P(x,y) n'est pas valide. Il suffit pour cela de prendre pour modèle un ensemble à deux éléments {a, b} et de modéliser P par l'égalité. Dans cette structure, la phrase \forall y \exists x \; (x=y) est vraie alors que \exists x \forall y \; (x=y) est fausse. L'implication est donc fausse et la formule est invalide.

Axiomes du calcul des prédicats[modifier | modifier le code]

Dans le calcul des prédicats, on peut également déduire des formules au moyen de déductions relevant d'un calcul. Une déduction consiste à partir d’hypothèses, ou d’axiomes, à progresser par étapes logiques jusqu’à une conclusion selon des règles prédéfinies. Il existe plusieurs présentations possibles de ces axiomes et de ces règles.

  • La déduction naturelle. Les principes logiques y sont présentés d’une façon aussi proche que possible des raisonnements naturels. Elle consiste en une liste de treize règles. Elles pourraient être réduites à un plus petit nombre, mais l'évidence des principes serait moins naturelle.
  • Les axiomes logiques. Plusieurs systèmes d’axiomes équivalents peuvent être proposés. Cette approche, adoptée par presque tous les logiciens depuis les Principia Mathematica de Whitehead et Russell, a une grande importance à la fois métamathématique et historique. L'un des systèmes d'axiomes le plus court est constitué du triplet suivant :
    Les axiomes du calcul des propositions
    f \to (g \to f)
    (f \to (g \to h)) \to ((f \to g) \to (f \to h))
    (\lnot f \to g) \to ((\lnot f \to \lnot g) \to f)
    les axiomes relatifs au quantificateur \forall
    \forall x( f \to g(x)) \to (f \to \forall x g(x))x n'est pas libre dans f
    \forall x f(x) \to f(a)x n'a pas d'occurrence libre dans une partie bien formée de f de la forme \forall a, h (ceci pour éviter une substitution embarrassante si par exemple, f(x) est de la forme \forall a, a < x).
    La règle du modus ponens
    si on a prouvé f \to g et f, alors on a prouvé g
    La règle de généralisation
    si on a prouvé f(x), alors on a prouvé \forall x f(x) (puisque le x de la première preuve joue un rôle arbitraire).

Mais si la recherche de systèmes d'axiomes minimaux met en évidence les principes élémentaires sur lesquels peuvent s'appuyer tous les raisonnements, elle ne montre pas le caractère d’évidence naturelle des principes logiques plus généraux.

Quelle que soit la présentation abordée, les axiomes et règles peuvent être codés de façon à ce qu'une machine puisse vérifier la validité ou non d'une déduction conduisant à une formule F. Si la déduction est correcte, la formule F est dite prouvable, ce qu'on note \vdash F.

Se pose alors la question suivante : y a-t-il équivalence entre la présentation sémantique et la présentation syntaxique ? \vDash F est-il équivalent à \vdash F ? Autrement dit :

  • Toute formule prouvable est-elle un théorème ? Si la validité de F est attestée par un calcul syntaxique, F est-elle valide dans tout modèle du langage utilisé ?
  • Réciproquement, si F est un théorème, valide dans tout modèle, peut-on montrer sa validité à la suite d'un calcul syntaxique ?

C'est à cette question que répond le théorème de complétude qui suit.

Complétude et indécidabilité[modifier | modifier le code]

Tous les systèmes logiques ne sont pas décidables, autrement dit bien qu'ils soient parfaitement définis, il n'existe pas toujours un algorithme pour dire si une formule est oui ou non un théorème. D'ailleurs historiquement la théorie de la calculabilité s'est construite pour démontrer précisément leur indécidabilité. Avant de développer ces résultats, voici résumé ce qu'on sait sur la décidabilité et l'indécidabilité des systèmes logiques.

  • Calcul propositionnel : décidable et complet. Pour la décidabilité, il y a donc une procédure effective pour décider si une formule du calcul propositionnel est satisfaisable, c'est-à-dire que l'on peut affecter aux variables propositionnelles des valeurs de vérité qui la rende vraie, mais le problème, nommé problème SAT, est NP-complet, c'est-à-dire que cette affectation ne peut pas se faire en temps « raisonnable ».
  • Calcul des prédicats du premier ordre monadique, c'est-à-dire réduit aux relations unaires et sans fonctions : décidable et complet, par réduction au calcul propositionnel.
  • Calcul des prédicats du premier ordre : réductible au calcul des prédicats dyadique, soit avec au plus des prédicats binaires (comme il en est en théorie des ensembles n'ayant que l'appartenance et l'égalité comme symboles primitifs) : semi-décidable et complet.
  • Calcul des prédicats de deuxième ordre : [quid sur sa décidabilité], et théorème de complétude partiel sur une sous classe de formules.[réf. souhaitée]
  • Calcul des prédicats d'ordre supérieur :

Emmanuel Kant croyait à tort que la logique de son temps, celle d’Aristote, était une science complète et définitivement achevée (préface de la seconde édition de la critique de la raison pure, 1787). Les logiciens du XIXe siècle se sont rendu compte que la théorie d’Aristote ne dit rien ou presque sur la logique des relations. Gottlob Frege et beaucoup d'autres ont comblé cette lacune en définissant le calcul des prédicats au premier ordre.

Kurt Gödel a démontré en 1929 (dans sa thèse de doctorat) que le calcul des prédicats est complet, au sens où on peut donner un nombre fini de principes (axiomes logiques, schémas d'axiomes logiques et règles de déduction) qui suffisent pour déduire de façon mécanique toutes les lois logiques (voir le théorème de complétude de Gödel). Il y a équivalence entre la présentation sémantique et la présentation syntaxique du calcul des prédicats. Tout énoncé universellement valide (c'est-à-dire vrai dans tout modèle du langage utilisé) est un théorème (c'est-à-dire qu'il peut être déduit d'un calcul, un système de règles logiques et d'axiomes, de façon équivalente un système à la Hilbert, la déduction naturelle, ou le calcul des séquents), et réciproquement. La logique du premier ordre est donc achevée au sens où le problème de la correction logique des démonstrations y est résolu. Elle continue cependant à faire l’objet d’importantes recherches : théorie des modèles, théorie de la démonstration, mécanisation du raisonnement

En un sens différent, les théories « raisonnables[1] » qui permettent de formaliser suffisamment l'arithmétique intuitive, comme l'arithmétique de Peano, ou la théorie des ensembles ne sont pas complètes : certains énoncés « vrais » ne sont pas démontrables (voir théorème d'incomplétude de Gödel).

Le calcul des prédicats est semi-décidable, dans le sens où une machine peut dresser, les uns après les autres, la liste de ses théorèmes. Mais, contrairement au calcul des propositions, il n'est pas en général décidable dans le sens où, il n'existe pas de moyen « mécanique », qui, si on se donne une formule F, permette de décider si F est un théorème ou non. La semi-décidabilité ne permet pas de conclure : la confrontation de F avec la liste des théorèmes se terminera si F est effectivement un théorème, mais dans l'attente de la terminaison, a priori on ne sait pas si le calcul des théorèmes n'a pas été mené assez loin pour identifier F comme théorème ou si ce calcul ne se terminera pas parce que F n'est pas un théorème.

Cela dépend cependant du langage utilisé, en particulier du choix des symboles primitifs (la signature). Le calcul des prédicats égalitaire monadique (n'ayant que des symboles de prédicats unaires et pas de symbole de fonction) est décidable. Le calcul des prédicats égalitaire pour un langage comportant au moins un symbole de prédicat binaire est indécidable (algorithmiquement).

Notes[modifier | modifier le code]

  1. Récursivement axiomatisables et cohérentes.

Voir également[modifier | modifier le code]

Bibliographie[modifier | modifier le code]

  • Stephen Kleene, logique mathématique, Armand Colin, 1971 ou Gabay 1987, (ISBN 2-87647-005-5)
  • R. David, K. Nour et C. Raffalli, Introduction à la logique. Théorie de la démonstration. Cours et exercices corrigés, Dunod, 2001, (ISBN 2-10-006796-6)