- un alphabet : V = {0, 1,p,e},
- un langage L sur V dont les formules bien formées sont de la forme 0{l}*p0{l}*e0{l}*1
- un unique axiome : 0p0e0.
- les règles : soit m = 0α11p0α2e0α3 un mot de ADD tel que α1, α2 , α3 ∈ {1}*
- [r1] : m → 0α11p0α2e0α31
- [r2] : m → 0α1p0α21e0α31
Les premiers théorèmes sont : 0p0e0, 0lp0e0l, 0p0le0l, 0lp0le0ll, ...
Convenons à présent de donner une signification à notre système. Substituons p par + et e par =. Une
suite de n chiffres 1 précédée par un 0 sera remplacée par le nombre n correspondant dans l'ensemble
des entiers naturels. Ainsi, 0 sera remplacé par 0, 01 par 1, 011 par 2, etc. Les théorèmes obtenus
précédemment se réécrivent alors :
0 + 0 = 0, 1+0=1,0 + 1 = 1, 1 + 1 = 2,
II semble alors évident que le système formel ADD modélise le comportement de l'addition pour les
entiers naturels. Les théorèmes qu'il engendre sont des assertions vraies au sens de l'arithmétique.
2°) Propriétés des systèmes formels :
A-t-on besoin de propriétés particulières d’un système purement mécanique dont l’objectif est
de combiner à l’infini axiomes et règles d’inférences pour obtenir de nouvelles formules, tout
en ignorant l’aspect sémantique. Comment savoir si la réponse produite appartient ou non
l’ensemble des solutions éligibles ? En informatique théorique, il y a deux manières de définir
un ensemble précis.
- Soit par une machinerie algorithmique de reconnaissance qui, pour chaque objet candidat à
l’entrée de l’algorithme, fournit une réponse « oui » ou « non » selon que ce candidat
appartienne ou non à cet ensemble,
- Soit par une machinerie algorithmique de production, qui produit des objets les uns après les
autres avec répétition et sans ordre précis, un objet appartenant à l’ensemble des solutions si et
seulement si, il est produit en un temps fini par ce mécanisme.
Il semble alors nécessaire de définir quelques propriétés auxquelles devra répondre le système
formel, pour se prémunir contre les solutions fortuites, incohérentes et contradictoires. Nous
énonçons les propriétés fondamentales :
- Propriété de consistance - Un système formel est consistant (ou non contradictoire) si on
ne peut prouver à la fois que A un théorème et son contraire. |- A et
¬
|- A
Un système non consistant est dit inconsistant.
- Propriété de complétude - Un système formel est dit complet s’il fournit une stratégie
permettant d’atteindre la solution si celle-ci existe. Nous reviendrons sur cette définition qui
prête souvent à équivoque
- Propriété de décidabilité - On dit qu'un système formel est décidable s'il existe une
procédure mécanique permettant d'établir en un temps fini si un mot du langage est ,ou n'est
pas, un théorème.
Il est important de comprendre la notion de coopération ou d’hybridation de systèmes permettant de tirer profit des avantages fournis par
certaines théories, mais faisant défaut à d’autres. Pour démontrer par exemple si MU est ou n’est pas un théorème du SF, il faut chercher
dans les théories de l’arithmétique. En effet, le nombre de I dans MI est 1, dans MU il est de 0. Si X est le nombre de I dans un mot,
l’application de la règle 1 ne change pas X, la règle 2 multiplie par 2 et donne 2X lettres I, la règle 3 diminue de 3 le nombre de I. Si X
contient 3k + 1 lettres I, tous les mots produits dans MIU à partir de X auront 3k’ + 1 lettres I. Ces exemples sont courants dans les
théories de la programmation.
1 Cette notation courante dans les systèmes formels est utilisée pour désignée une suite éventuellement vide
de chiffres
Programmation logique : Introduction aux systèmes formels M. Sellami