• Aucun résultat trouvé

Syntaxe des pr´ edicats

5.1 Langages du premier ordre, termes

Nous avons vu dans les chapitres pr´ec´edents des enembles munis de cer-tains structures (op´erateurs, ´el´ements unit´es, relations). Dans notre d´emonstrations, il paraˆısait des quantificateurs (pour tout, il existe). Tous ces objets ne peuvent pas ˆetre mod´elis´es par le calcul propositionnel. Par cons´equent, il faut des outils plus compliqu´es pour les mod´eliser. Par exemple, pour mod´eliser les mono¨ıdes, il faut un symbole de constante pour d´esigner l’´el´ement neutre et un symbole d’op´erateur binaire pour repr´esenter la multiplication.

Les langage du premier ordre et le calcul des pr´edicat sont pour but de mod´eliser ces genres d’objets et raisonnements.

Un langage du premier ordreest un ensemble L de symboles qui se d´ecompose en deux sous-ensembles qui n’ont pas de partie commune non-vide :

1) le pr´emier sous-ensemble, qui est commun `a tous les langages, est la r´eunion disjonte des parties suivantes :

i) un ensemble infini d´enombrable V = {v0, v1,· · ·, vn, vn+1,· · · } dont les ´el´ements sont appel´essymboles de variables,

ii) un ensemble consistituant de neuf symboles - les parenth`ese ) et (,

- les symobles de connecteurs¬,∧,∨,⇒et⇔, comme dans le calcul propositionnel,

- ∀, appel´e quantificateur universel et que l’on lit “pour tout”, - ∃, appel´e quantificateur existentielet que l’on lit “il existe”

2) La deuxi`eme sous-ensemble, qui varie selon les langages, est la r´eunion disjonte de

33

i) un ensembleC dont les ´el´ements osnt appel´essymboles de constante, ii) pour chaque entier n ≥ 1, un ensemble Fn dont les ´el´ements sont

appel´essymboles de fonction `an places (ou n-aires),

iii) pour chaque entier n ≥ 1, un ensemble Rn dont les ´el´ements sont appel´essymboles de relation `a n places (ou n-aires).

Pour d´eterminer un langage du premier ordre, il suffit de pr´eciser les constantes, les fonctions et les relations.

D´efinition 5.1 On d´esigne parT (L) le plus petit sous-ensemble deM(L) qui continent V ∪C et qui est stable pour tous les applications de la forme (m1,· · · , mn)7→f m1· · ·mn, o`u f est un ´el´ement dans Fn.

On peut aussi construire “par r´ecurrence” les termes du langage L. On pose T0(L) =V ∪C. Une fois construits lesT0(L),· · · ,Tk(L), on d´efinit Tk+1(L) =Tk(L)∪[

n≥1

{f t1t2· · ·tn |f ∈Fn, t1 ∈Tk(L),· · · , tn∈Tk(L)}.

Exercice 5.1 (`a la maison) Montrer que cette nouvelle d´efinition “par r´ecurrence”

est en fait ´equivalente `a la d´efinition 5.1.

Soit t ∈ T (L) un terme. On appelle hauteur de t le plut petit entier k ≥0 tel que t soit dans Tk(L).

Exercice 5.2 Consid´erons un langageL qui comporte un symbole de constante c, un symbole unaire f et un symbole binaire g. D´eterminer si les mots sui-vants sont des termes :

f v1 gf cc gf cgcf c cgf c si oui, d´eterminer la hauteur de chaque terme.

Comme dans le calcul propositionnel, on souhaite une m´ethode auto-matique pour v´erifier si un mot est un terme. On voit que dans le calcul propositonnel, on se dispose de deux quantit´es o[M] et f[M] pour un motM, en comparant la diff´erence de ces deux quantit´es pour les pr´efixes d’un mot M, on obtient si le mot M et bien une formule. Dans le cas du langage du premier ordre, on introduira une fonction p[·] appel´ee poids pour les mots dansM(L) qui est similaire `a la diff´erence de o[·] et f[·]. En examinant cette fonction en tous les pr´efixe d’un motM, on d´eduit si le motM est un terme.

D´efinition 5.2 Pour tout symbole de fonction f dans Fn, le poids de f est par d´efinition l’entier positifn−1. Le poids d’un symbole de variable ou

d’un symbole de constante est par d´efinition −1. On appelle poidsd’un mot M ∈M(L) la somme des poids de tous les symboles constituant le motM, not´e p[M]. Enfin le poid du mot vide est par convention 0.

Exercice 5.3 Calculer les poids des pr´efixes des mots dans l’exercice 5.2.

Que pouvez-vous dire sur votre r´esultats ?

Th´eor`eme 5.3 Un mot M ∈ M(L) est un terme si et seulement si les conditions suivantes sont v´erifi´ees :

1) p[M] =−1,

2) pour tout pr´efix propre N de M, p[N]≥0.

Avant de d´emontrer le th´eor`eme 5.2, on introduit le principe d’induction suivant. Supposons que l’on veut v´erifier une conditionPpour tous les termes dansT (L). Il suffit de la d´emontrer en deux ´etapes. Premi`erement on v´erifie que la conditionPest v´erifi´ee pour des symboles de constante ou de variable, c’est-`a-dire des symboles dans T0(L) ; ensuit, pour tout entier n ≥ 1 et tout symbole de fonction f `a n places, en supposons que la propi´et´e P soit v´erifi´ee pour les termes t1,· · · , tn, on montre que elle est ´egalement vraie pour f t1· · ·tn. Ce principe d’induction peut ˆetre justifi´e par la r´ecurrence sur la hauteur des termes, comme ce que l’on a fait dans le chapitre 2.

D´emonstration du th´eor`eme 5.3

“N´ecessit´e” : Sit est un mot dansT0(L), alors par d´efinition on a p[t] =

−1. Le seule pr´efixe propre de t est le mot vide et donc de poids 0. On a alors montr´e que les conditions 1) et 2) sont v´erif´e pour le mott.

Consid´erons maintenant un symbole de fonction f de n places (n ≥ 1) et une famille (ti)1≤i≤n de termes. On suppose que les terme ti satisfont les conditions 1) et 2). Consid´erons le temer M =f t1· · ·tn. On a ´evidement

p[M] = p[f] +

n

X

i=1

p[ti] =n−1 + (−1)×n =n−1−n=−1.

Un pr´efixe propre N deM s’´ecrit sous l’une des formes suivantes : i) N est vide ;

ii) il existe un entier 0 ≤ j < n et un pr´efixe uj de tj tels que N = f t1· · ·tj−1uj;

iii) il existe un pr´efixe propre un de tn tel que N =f t1· · ·tn−1un.

Dans le premier cas, on a p[N] = 0 par convention ; dans le deuxi`eme, on a

enfin, dans le troisi`eme, on a p[N] = p[f] +

n−1

X

i=1

p[ti] + p[un]≥n−1 + (−1)∗(n−1) = 0.

On a donc d´emontr´e que M satisfait les deux conditions.

“Suffisance” : Supposons que M est un mot dans M(L) v´erifiant les condi-tions 1) et 2). Si la longueur de M est ´egale `a 1, donc M est dans T0(L) puisque p[M] =−1. Donc M est un terme. Dans la suite, on suppose que la longueur deM est sup´erieure ou ´egale `a 2 et que la suffisance soit v´erifi´ee pour les mots de longueur strictement inf´erieure `a celle de M. Dans ce cas-l`a, le premier symbolef du motM est un symbole de fonction puisque la condition 2) implique que m= p[f]≥0. Soit M1 le sous-mot de M tel queM =f M1. On va d´ecomposer M1 en l’union disjointe de sous-mots v´erifiant les deux conditons 1) et 2). Soitt1 le plus court pr´efixe tel que p[t1] =−1. Comme le premier symbole det1 est de poids≥ −1 et comme p[M1] =−1−m ≤ −1, on obtient que le mot t1 existe et v´erifie les conditions 1) et 2). Par l’hypoth`ese de r´ecurrence, le mott1 est bien un terme.

Si t1 6= M1 on d´esigne par M2 le sous-mot tel que M1 = t1M2. On a p[M2] = −m. En it´erant le pr´ec´ed´e ci-dessus on obtient des sous-mots t1,· · · , tm qui v´erifie les conditions 1) et 2). On suppose M1 = t1· · ·tmMm. Alors Mm doit ˆetre vide puisque p[f t1· · ·tm] =−1<0 et que M satisfait `a la condition 2). Par cons´equent, M =f t1· · ·tm est un terme.

Corollaire 5.4 Si M est un terme, alors tout pr´efixe propre n’est pas un terme.

Th´eor`eme 5.5 (Lecture unique) Soit t ∈ T(L) un terme quelconque.

Alors un et un seul des deux cas suivant se pr´esente : 1) t ∈V ∪C;

2) il existe un unique entier n ≥1, un unique symbole de fonction `an places f, et un unique ´el´ement (t1,· · · , tn)∈T (L)n tels que t=f t1· · ·tn. D´emonstration En effet, il est claire que les deux cas sont exclus l’un l’autre et que un terme quelconque est tomb´e dans l’un des deux cas. Il suffit donc de v´erifier l’unicit´e dans le deuxi`eme cas. Supposons qu’il existe deux

entiers n, m ≥ 1, un symbole f `a n places, un symbole g `a m places et des

´

el´ements t1,· · · , tn, u1,· · · , um dans T (L) tels que t=f t1· · ·tn =gu1· · ·um.

On obtient f =g et donc n = m. S’il existe un indice j tel que tj 6= uj, on d´esigne parile plus petit indice tel queti 6=ui. De l’´egalit´eti· · ·tn=ui· · ·un on obtient que, ou bienti est un pr´efixe propre deuiou bienui est un pr´efixe propre de ti. Par cons´equent, l’un des mots ui et ti n’est pas un terme, cela est absurde. Donc pour tout entier 1≤i≤n, on aui =ti.

Soient t un terme, (ui)1≤i≤k une famile de symboles de variables dis-tincts et (ti)1≤i≤k des termes. On d´esigne par tt1/u1,···,tk/uk le mot obtenu par substituer syst´ematiquement les ui qui apparaissement danst par ti.

Par exemeple, si t = ui, alors tt1/u1,···,tk/uk = ti; si t = c est un symbole de constant, alors tt1/u1,···,tk/uk =c; si t=f s1· · ·sn, alors

tt1/u1,···,tk =f s1t1/u1,···,tk/uk· · ·sn t1/u1,···,tk/uk.

Proposition 5.6 Le mot tt1/u1,···,tk/uk obtenu ci-dessus par substitution est en fait un terme.

Exercice 5.4 Un exercice de substitution, a compl´eter.

Documents relatifs