• Aucun résultat trouvé

a une fonction niveau

C’est la classe (2) de la d´efinition au dessus, ces programmes ont toujours un mod`ele support´e unique (voir Seda & Hitzler [20]).

Th´eor`eme 6.3.1 [Seda et Hitzler, 1997] Soit P un programme logique normal qui est strictement d´ecroissant par rapport `a une fonction niveau l : BP −→ γ, alors TP est stricte-

ment contractante par rapport `a la distance ultram´etrique induite par l. Par cons´equent, TP

admet un point fixe et ainsi donc P a un mod`ele support´e unique Pour la preuve, voir [20].

Exemple 5 Soit P le programme

p(o) ←− p(s(x)) ←− p(x)

Consid´erons la fonction niveau l :Bp −→ ω; l(p(sn(0)) = n + 1.

P est strictement d´ecroissant par rapport `a l et l’ensemble {p(sn(0)),n < ω} est un point fixe de Tp.

Exemple 6 Consid´erons le programme suivant:

q(0) ←− ¬p(x),¬p(s(x)) p(0) ←−

p(s(x)) ←− ¬p(x) 75

Et d´efinissons l :BP −→ ω + 1 par l(p(sn(0))) = n et l(q(sn(0))) = ω pour tout n∈ IN. Donc,

P est strictement d´ecroissant et l’unique mod`ele support´e est l’ensemble {p(s2n(0)); n∈ IN}.

Exemple 7 P est d´efini comme suit: p(0,0) ←−

p(s(y),0) ←− ¬p(y,x),¬p(y,s(x)) p(y,s(x)) ←− ¬p(y,x)

et d´efinissons l : BP −→ ωω par l(p(sk(0),sj(0))) = ωk + j, o`u ωk d´esigne le k i`eme ordinal

limite. Alors P est strictement d´ecroissant par rapport `a l et son unique mod`ele support´e est l’ensemble {p(0,s2n(0)); n∈ IN} ∪ {p(sn+1(0)),s2k+1(0)); k,n∈ IN}

Exemple 8 Prenons le programme P des nombres pairs p(0) ←−

p(s(x)) ←− ¬p(x)

Avec la ω-fonction niveau d´efinie par l(p(sn(0)) = n. Alors le programme, avec un facteur

de contraction ´egal `a 1/2, produit l’ensemble {p(0),p(s2(0)),p(s4(0)),...} des nombres pairs comme unique point fixe de TP.

§6.4 Programmes semi-strictement d´ecroissants par

rapport `a une fonction niveau

La classe (3) est exactement la classe introduite par Przymusinski [16].

En effet, Soit P un programme localement stratifi´e et {S1,...Sα,...} une stratification locale

de P , alors on associe `a P une fonction niveau l de Bp dans γ definie comme suit: si A ∈ Sα

alors l(A) = α− 1 si α est un ordinal successeur et l(A) = α si α est un ordinal limite. R´eciproquement, soit P un programme semi strictement d´ecroissant par rapport `a l, alors nous construisons la stratification locale {S1,...Sα,...} comme suit: si le niveau du ground

atome A est α alors nous prenons A∈ Sα+1.

Seda et Hitzler ont donn´e une preuve constructive de l’existence des mod`eles support´es mini- maux dans cette classe par des techniques topologiques, voir [20].

Nous allons donner une preuve plus courte en utilisant le th´eor`eme 6.2.1 sur les espaces ultram´etriques.

Th´eor`eme 6.4.1 Soit P un programme logique normal qui est semi strictement d´ecroissant par rapport `a une fonction niveau l : Bp −→ γ, o`u γ est un ordinal d´enombrable, alors P

admet un mod`ele support´e.

Preuve. 1) Nous consid´erons l’espace (Ip,d,∆), qui a ´et´e introduit pour ∆0 = {α; α < γ}.

Nous montrons d’abord que l’op´erateur cons´equent au programme Tp :Ip −→ Ip est contrac-

tant.

Soient I1,I2 ∈ Ip et suppposons que dl(I1,I2) = 2−α.

Le cas α = 0 est ´evident car d(TP(I1),TP(I2))≤ 20.

Supposons que α > 0. Alors I1 et I2 diff`erent en un ´el´ement BP avec un niveau α, mais

coincident sur tous les ground atomes de niveau inf´erieur. Soit A ∈ TP(I1) avec l(A) < α.

Alors il existe une clause A←− A1,...,Ak,¬B1,...,¬Bm dans ground(P), o`u k,m ≥ 0, telle que

pour tout i,j, nous avons Ai ∈ I1 et Bj ∈ I/ 1. Comme P est semi-strictement d´ecroissant et

I1∩Lα = I2∩Lα, il s’ensuit que pour tout i,j, nous avons Aj ∈ I2 and Bj ∈ I/ 2. Par cons´equent

A ∈ TP(I2). De la mˆeme fa¸con, si A ∈ TP(I2) avec l(A) < α, alors A ∈ TP(I1). Ainsi nous

avons TP(I1)∩ Lα = TP(I2)∩ Lα et par suite

d(TP(I1),TP(I2))≤ 2−α = d(I1,I2)

Supposons que Tp n’admet pas de point fixe. Alors d’apr`es le th´eor`eme 6.2.1, il existe un

sous ensemble S tel que δ(S) = d(I0,Tp(I0)) = 2−α pour tout I0 ∈ S. Donc δ(S) 6= 0. Soit

I ∈ S. On montre de la mˆeme mani`ere que dans la preuve du th´eor`eme 2.2.1 du chapitre 2 que B2−α = B(I,d(I,TP(I)) = S.

2) Posons J = T

I0∈S

I0. Soit Lα = {A ∈ Bp; l(A) < α}. Ainsi pour tout I0 ∈ S nous avons

Lα∩ I0 =Lα∩ I, nous obtenons J ∈ S.

3) On prouve que J ∩ Hα = ∅ o`u Hα = {A ∈ Bp; l(A) = α}. En effet si on assume le

contraire, posons J0 = J ∩ Lα. Il est facile de v´erifier que d(J,J0) ≤ 2−α et par cons´quent

J0 ∈ S. Donc J0 = J .

4) Montrons que ∅ = J ∩ Hα ⊂ Tp(J ) ∩ Hα ⊆ Tp2(J )∩ Hα ⊆ ...(la relation binaire ⊂

d´esigne l’inclusion stricte)

En premier lieu Tp(J )∩ Hα 6= ∅ puisque d(J,Tp(J )) = 2−α. Maintenant soit A∈ Tp(J )∩ Hα.

Il existe dans ground(P ) une clause A ←− A1,...,Ak,¬B1,...¬Bm o`u

A ∈ Hα,A1,...,Ak ∈ J et B1,...Bm ∈ J. Alors A/ 1,...,Ak ∈ Tp(J ) puisque J ⊂ Tp(J ) et

B1,...Bm ∈ T/ p(J ) car Tp(J )∈ B et l(Bj) < α pour tout j; par cons´equent A∈ Tp2(J )∩ Hα.

5) Posons Tω p(J ) =

S

n<ω

Tn

p(J ) (ω d´esigne le premier ordinal d´enombrable), nous avons

p(J ) ∈ B, alors TP(TPω(J )) d’apr`es le th´eor`eme 6.2.1 et donc d(TPω(J ),TP(TPω(J )) ≤ 2−α,

nous prouvons que Tpω(J )∩ Hα = Tp(Tpω(J ))∩ Hα.

En premier lieu, Tω

p(J )∩ Hα ⊆ Tp(Tpω(J ))∩ Hα.

Montrons maintenant que Tp(Tpω(J ))∩ Hα ⊆ Tpω(J )∩ Hα. Soit A∈ Tp(Tpω(J ))∩ Hα, alors il

existe dans ground(P ) une clause A ←− A1,...,Ak,¬B1,...¬Bm o`u

l(A) = α,A1,...,Ak ∈ Tpω(J ) et B1,...,Bm ∈ J. Nous avons l(A/ i)≤ α pour i = 1,...,k comme P

est semi-strictement d´ecroissant. Soit{k1,...kr} un sous ensemble de {1,...,k} tel que l(Aki) = α pour tout i ∈ {1,...,r}, alors il existe mk1,...mkr tels que Aki ∈ T

mki

p (J ) pour tout i = 1,...,r.

Posons mk = max

1≤i≤rmki. Alors Ak1,...,Akr ∈ T mk

p (J ) et pour j /∈ {k1,...kr},

l(Aj) < α, nous avons Aj ∈ Tpmk(J ) et B1,...,Bm ∈ T/ Pmk(J ). Par cons´equent

A∈ Tmk+1

p (J )∩ Hα ⊆ Tpω(J )∩ Hα.

Ainsi d(Tω

p (J ),Tp(Tpω(J )))≤ 2−(α+1). Ce qui est une contradiction.

6) Montrons que le programme a un mod`ele support´e minimal.

Pour chaque n v´erifiant o < n < γ, soit P[n]l’ensemble des clauses de ground(P ) o`u seulement

les atomes A avec l(A) < n apparaissent et TP[n] l’op´erateur cons´equent. Nous ´etablissons par induction transfinie la proposition suivante P(n) : ”P[n] a un mod`ele support´e minimal.”

P[1] est un programme positif, donc il a un mod`ele support´e minimal.

Supposons que la proposition est vraie pour tout n < α pour un ordinal α ∈ γ o`u α > 1, montrons P(α).

Cas 1: α = k + 1 est un ordinal successeur, o`u k > 0.

Soit Ikle mod`ele donn´e dans l’hypoth`ese de r´ecurrence. Consid´erons la boule Bk+1 = B2−k(Ik).

Bk+1 est hyperconvexe (comme une boule dans un espace hyperconvexe) et invariante par Tp

comme I[k] est un point fixe de Tp[k]. Donc P[k+1] a un mod`ele support´e Bk+1 puisqu’il est semi strictement d´ecroissant et d’apr`es la premi`ere partie de la preuve. Soit Ik+1 l’ensemble

de ces mod`eles support´es. Prenons Ik+1 =

T

J∈Ik+1

J . Donc Tp(Ik+1)∩ Hk = Ik+1 ∩ Hk car

d(Ik+1,J )≤ 2−k pour chaque J ∈ Ik+1. Ainsi Ik+1 est un mod`ele support´e de P[k+1].

Soit J un mod`ele de P[k+1] tel que J ⊆ Ik+1. Donc J ∩ Lk ⊆ Ik+1∩ Lk= Ik, d’o`u J∩ Lk = Ik

d’apr`es l’hypoth`ese. Nous consid´erons PJ

[k+1] le sous programme de P[k+1] consistant en seule-

ment les clauses dont les tˆetes A ∈ J. PJ

[k+1] est un programme semi-strictement d´ecroissant,

donc il a un mod`ele support´e Bk+1 qu’on d´enote J1. Soit A ←− A1,...,Ak1,¬B1,...,¬Bl1 une clause de P[k+1] o`u A /∈ J. Donc A /∈ Tp[k+1](J ), ainsi il existe i tel que Ai ∈ J ou il existe l/ tel que Bl ∈ Ik puisque l(Bl) < k, donc Ai ∈ J/ 1 car J1 ⊆ J ou Bl ∈ J1 car J1 ∈ Bk+1. Par

suite A /∈ Tp[k+1](J1). Il vient que Tp[k+1](J1) = J1, On conclut que Ik+1 ⊆ J1 ⊆ J. Case 2: α est un ordinal limite.

Dans ce cas, nous prenons la boule Bα =

T

n<α

B2−n(In) et pour chaque n < α, nous rempla¸cons dans (cas 1) k par n et (k + 1) par α. Nous obtenons de la mˆeme fa¸con Iα v´erifiant P(α).

Exemples

Exemple 9 Soit P le programme:

p(s(x),0)←− p(s(x),0) et consid´erons la fonction niveau

l : Bp −→ ω , l(sn(0),sm(0)) = n + m + 1. Tp est contractante, nous montrons que Tp est

strictement contractante sur orbites.

Premi`erement, nous montrons que pour tout I ∈ Ip, n,m6= 0, p(sn(0),sm(0)) /∈ Tp(I) et aussi

p(0,0) /∈ Tp(I) et si n 6= 0, p(sn(0),0) ∈ Tp(I) si et seulement si p(sn(0),0) ∈ I. Donc soit

d(I,Tp(I)) = i + 1. Ainsi il existe A ∈ Bp, l(A) = i + 1, o`u I et Tp(I) diff`erent. Il s’ensuit

que A = p(0,0) ou A = p(sn(0),sm(0)), m6= 0, n + m = i, alors A /∈ Tp(I) et A /∈ Tp(Tp(I)).

Donc Tp est strictement contractante sur orbites donc par le th´eor`eme 2.2.2 du chapitre 2, il

a un point fixe.

Exemple 10 Consid´erons le programme:

p(s(0)) ←− ¬q(0) p(x) ←− r(x) r(x) ←− p(x) q(0) ←−

Consid´erons l : Bp −→ ω, l(p(sn(0)) = n, l(q(0)) = 0, l(r(sn(0)) = n.

P est semi-strictement d´ecroissant par rapport `a l mais n’est jamais strictement d´ecroissant pour n’importe quelle fonction niveau `a cause du cycle cr´e´e par la deuxi`eme et la troisi`eme clause.

L’ensemble {q(0),p(sn(0)),r(sn(0))} est un point fixe de T p.