à un quelque chose d’extérieur, ici le monde réel, au sens du mot chien, c’est la sémantique. C’est
tout à fait différent quand l’on dit que “chien” a 5 lettres : on parle du mot “chien”, c’est de la
syntaxe.
De la même façon on peut dire que 2x−5est construit comme la différence du produit de 2
par la variable xet de 5, c’est plutôt une remarque d’ordre syntaxique. On peut dire que 2x−5
désigne un réel dont la valeur dépend de celle du réel x, c’est une remarque d’ordre sémantique.
Par exemple les expressions “2”, “1 + 1” et “2 + 0” sont syntaxiquement différentes mais
désignent le même objet, l’entier 2.
La syntaxe d’un langage s’occupe de son lexique, de ses règles de formation. La sémantique
d’un langage s’occupe de lui donner un sens, d’interpréter les expressions du langage dans un
monde a priori extérieur au langage.
Quand des mots, des assemblages de signes, ne sont pas syntaxiquement corrects, ont dit qu’ils
n’ont pas de sens. Par exemple “1+”, (3−2, “x=” ne sont pas corrects syntaxiquement. C’est tout
à fait différent de dire que “1 + 1 = 1” est faux (pour les entiers). En effet l’expression “1 + 1 = 1”
est syntaxiquement correcte et a un sens : elle est fausse, c’est de la sémantique.
De même “Pour tout entier x,x+ 1 = 2 ⇒1” n’est pas syntaxiquement correct, la phrase
“Pour tout entier x,x+ 1 = 2 ⇒x= 2” est syntaxiquement correcte et fausse.
La formalisation de la syntaxe du langage doit permettre de décrire les expressions qui ont
un sens sans faire référence à ce sens. C’est très difficile pour un langage usuel, mais tout à fait
possible pour le langage artificiel que nous allons étudier.
Il n’est bien-sûr pas question de chercher une signification a un assemblage de signes qui n’est
pas syntaxiquement correct, mais toute expression syntaxiquement correcte doit avoir un sens.
Une expression syntaxiquement correcte est construite à partir de composants élémentaires des
symboles comme “1”, “x”, “+”, “=”. L’interprétation d’une expression sera obtenue à partir de
l’interprétation de ses composants élémentaires.
Les choses ne sont parfois pas si simples. Ainsi l’expression √10 −xsemble avoir un sens,
elle ne désigne pourtant aucun nombre (aucun réel en tout cas) si xest remplacé par un réel
strictement supérieur à 10. Des expressions comme “le plus grand nombre premier”, “l’entier
naturel strictement compris entre 0et 1” ne désignent aucun entier. Ces expressions demandent
qu’une certaine condition soit vraie pour pouvoir désigner vraiment un objet. On sort donc a priori
du cadre de la syntaxe.
1.3 Syntaxe.
Entamons maintenant une description informelle de ce ce que pourrait être la syntaxe d’un
langage mathématique formel. Tout d’abord on appellera termes les expressions du langage qui
désignent des objets, on appellera formules les expressions du langage qui désignent des énoncés.
1.3.1 Les termes.
Les constituants élémentaires des termes sont les constantes, comme 0,1pour les entiers, et les
variables, comme x,y,z. On a souvent besoin d’indiquer à quel domaine appartient une variable,
voire une constante. Par exemple xdésigne-t-il un réel ou un entier ? Telles quelles ces indications
seraient de nature sémantique. On va parler de sorte :xest de sorte réel signifie que xvarie a
priori dans l’ensemble des réels. Quand un langage utilise plusieurs sortes d’objets on parle de
langage multisorte, quand il utilise une seule sorte d’objet de langage monosorte.
On construit de nouveaux termes à l’aide de symboles de fonctions (ou opérations). Un symbole
de fonction doit avoir une sorte qui indique son usage. Par exemple si nat désigne la sorte des
entiers, l’addition sur les entiers est de sorte nat →nat →nat, ce qui indique qu’elle prend deux
arguments aet bqui doivent être de sorte nat, des entiers, et que le terme obtenu a+best de
sorte nat, un entier3. Si kest la sorte des objets d’un corps Kest vcelle des objets d’un espace
vectoriel E, la multiplication externe est de sorte k→v→v, ce qui indique qu’elle prend en
3La notation nat →nat →nat se parenthèse nat →(nat →nat). Une fonction à deux arguments, comme
l’addition, est vue comme une fonction qui associe à son premier xargument une nouvelle fonction, celle qui associe
au deuxième argument yle résultat x+y,xétant fixé.
5