• Aucun résultat trouvé

Deuxi`eme abstraction : repr´esentation de FS n par des contraintes

6.2 Domaines abstraits

6.2.2 Deuxi`eme abstraction : repr´esentation de FS n par des contraintes

Une fonction abstraite f ∈ FSnrepr´esente un ensemble infini de fonctions continuesY ∈ PC0. Cependant, nous n’avons pas encore d´efini de repr´esentation efficace des fonctions en escalier ; en particulier, les op´erateurs d’union et d’intersection que nous avons d´efini ne sont pas calculables en l’´etat car ils n´ecessitent de calculer une infinit´e d’unions (ou d’intersections) d’intervalle. De plus, la comparaison entre deux fonctions en escalier n’est pas simples : deux fonctions peuvent ˆetre ´egales mais avoir des marches de longueurs diff´erentes ; il est alors difficile de les comparer. Nous pr´esentons donc maintenant une abstraction des fonctions en escalier sous forme d’une conjonction de contraintes qui permet une repr´esentation et un calcul efficace sur les ´el´ements abstraits. Cette abstraction (qui est en fait une bijection de Galois) consiste `a ne conserver que les instants o`u la fonction change de valeur et permet une repr´esentation unique des ´el´ements deFSn.

Repr´esentation canonique des fonctions de FSn Nous introduisons un nouveau type de contraintes, appel´ees contraintes de changements d’´etat, qui sont une extension des contraintes d´efinies par Bertrane [Ber05].

D´efinition 6.7 (Domaine des contraintes de changement d’´etat) Un pr´edicat de change- ment d’´etat de dimension n est un pr´edicat de la forme t : [x] avec t ∈ R+ et [x] ∈ IRn. Une

contrainte de changement d’´etat est une conjonction positive de pr´edicats de changement d’´etat. Nous noterons FSn l’ensemble de ces contraintes.

FSn =    ^ 0≤i≤N

ti: [xi] tel que N ∈ N, ∀i ∈ [0, N] , ti∈ R+, [xi]∈ IRn

  ∪ {ff

} (6.8)

6.2. DOMAINES ABSTRAITS 113

Intuitivement, une contrainte de changement d’´etat repr´esente toutes les discontinuit´es d’une fonc- tion en escalier. Ainsi, la contrainte 0 : [0, 1]∧ 1 : [1, 1] repr´esente la fonction en escalier valant [0, 1] pour tout t∈ [0, 1[ et 1 pour tout t ≥ 1 (il s’agit de la fonction f1 de la figure 6.2). Cette

repr´esentation n’est pas unique, ce qui est probl´ematique pour l’utilisation efficace de ce domaine. En effet, on voit bien que les contraintes 0 : [0, 1]∧ 1 : [1, 2] et 0 : [0, 1] ∧ 1 : [1, 2] ∧ 2 : [1, 2] repr´esentent la mˆeme fonction f = λt.if (t < 1) then [0, 1] else [1, 2]. Dans le deuxi`eme cas, la derni`ere contrainte n’apporte aucun information suppl´ementaire, on peut l’´eliminer ; nous choisi- rons donc la premi`ere contrainte comme repr´esentant canonique de la fonction f . Par ailleurs, les contraintes 0 : [0, 1]∧ 1 : [1, 2] et 1 : [1, 2] ∧ 0 : [0, 1] repr´esentent toutes les deux la fonction f. Pour des questions de performance de la comparaison, nous choisissons de garder la premi`ere comme repr´esentant ; nous d´ecidons donc de toujours garder les contraintes tri´ees par temps croissant. Enfin, par soucis de coh´erence, nous n’autorisons pas une conjonction de deux contraintes avec le mˆeme temps t : [x]∧ t : [y] ; dans ce cas, nous ne garderons que le premier pr´edicat. Ces trois r`egles permettent de d´efinir une fonction de normalisation Norm sur FSn.

D´efinition 6.8 (Normalisation des fonctions de FSn) La fonction Norm de normalisation des fonctions de FSn est donn´ee par l’algorithme suivant :

Entr´ee : φ = ^

i∈[0,N]

ti: [xi]∈ FSn

R´esultat : φ sous forme normalis´ee d´ebut

Si φ = tt♯ou φ = ff♯renvoyer φ;

Tri les contraintes avec l’ordre ti: [xi]≤ tj: [xj]⇔ (ti≤ tj)∨ (i ≤ j);

ψ = t0: [x0]; t = t0; [x] = [x0]; pour 1≤ i ≤ N − 1 faire si t6= ti et [x]6= [xi] alors ψ = ψ∧ ti: [xi]; t = ti; [x] = [xi] ; finsi finpour renvoyer ψ ; fin

Nous noterons FSnn l’ensemble des contraintes normalis´ees, FSnn = {f ∈ FSn : Norm(f ) = f}.

Entre deux contraintes normalis´ees f =V0≤i≤Nti: [xi]∈ FSnn et g =

V

0≤i≤Mui : [yi]∈ FSnn, on

peut d´efinir une ´egalit´e structurelle =s par :

f =sg    f = g = tt♯ ou f = g = ff♯ ou N = M∧ ∀i ∈ [0, N] , ti= ui∧ [xi] = [yi] .

Remarque La fonction de normalisation sert essentiellement `a r´eorganiser les pr´edicats de chan- gement d’´etat de telle sorte qu’ils soient tri´es par temps croissants. De plus, elle ´elimine les pr´edicats superflus. Notons que cette fonction n’introduit aucun nouveau pr´edicat, comme le montre la pro- position 6.2

Proposition 6.2 Soit φ∈ FSn, φ =V0≤i≤Nti : [xi]. Alors, il existe M ∈ [0, N] et une fonction

σ : [0, M ]→ [0, N] telle que Norm(φ) = ^ 0≤i≤M tσ(i): £ xσ(i) ¤ .

Preuve La preuve de cette proposition est simple mais fastidieuse : on doit faire une analyse d´etaill´ee de l’algorithme de la d´efinition 6.8 et on prouve que la forme normale d´ecrite par cette proposition est un invariant de l’algorithme.

¤ Proposition 6.3 (Relation d’´equivalence) La fonction de normalisation Norm induit une re- lation d’´equivalence sur FSn d´efinie par f≡ g ⇔ Norm(f) =sNorm(g).

Preuve D’apr`es la d´efinition 6.8, l’´egalit´e structurelle =sest une relation d’´equivalence (elle est

clairement r´eflexive, transitive et sym´etrique). On en conclut imm´ediatement que≡ est ´egalement

une relation d’´equivalence. ¤

Nous travaillerons d´esormais dans l’ensemble r´eduit FSn/≡ et nous identifierons une contrainte

f ∈ FSn avec sa forme normalis´ee Norm(f )∈ FSnn. Par abus de notation, nous noterons toujours

FSn pour FSn

/≡. Nous d´efinissons maintenant un ordre partiel sur les contraintes normalis´ees.

Remarque Par un l´eger abus de notation, pour toute contrainte f = V0≤i≤Nti : [xi] ∈ FSn,

nous noterons tN +1= +∞.

D´efinition 6.9 (Ordre partiel sur FSn) Soit f =V

0≤i≤Nti: [xi]∈ FSn et g =V0≤i≤Mui:

[yi]∈ FSn. On d´efinit la relation d’ordre partiel f ⇒♯g par :

f♯g⇐⇒ ∀(i, j) ∈ [0, N] × [0, M] , [ti, ti+1[∩[uj, uj+1[6= ∅ ⇒ [xi]⊑n[yj] . (6.9)

On aura de plus∀φ ∈ FSn, ff♯⇒ φ.

Exemple 6.3 La figure 6.5 repr´esente deux cas de contraintes comparables et incomparables. En dimension 1, une contrainte V0≤i≤nti : [xi] est repr´esent´ee graphiquement par une suite de

rectangles s´epar´es par une ligne verticale pointill´ee repr´esentant l’instant de changement d’´etat. Sur la figure de gauche, la contrainte rouge est plus petite que la contrainte bleue.

Proposition 6.4 ⇒♯ est un ordre partiel sur FSn

.

Preuve Dans toute cette preuve, φ, ψ ∈ FSn seront deux contraintes avec φ6= ff♯ et ψ

6= ff♯.

Nous poserons φ =V0≤i≤Nti : [xi] et ψ =V0≤i≤Mui: [yi].

Nous devons montrer que la relationv´erifie les conditions de la d´efinition 2.1. Nous montrons

donc qu’elle est :

(i) r´eflexive, c’est-`a-dire que φ φ. Clairement, pour tout i, j

∈ [0, N], [ti, ti+1[∩[tj, tj+1[6=

∅ ⇔ i = j, donc on a bien [xi]⊑n[xj], et donc φ⇒♯φ.

(ii) transitive. On suppose que φψ, et soit ζ

∈ FSntelle que ψζ. On veut montrer que

φ⇒♯ζ. On pose ζ =V

0≤i≤Pvi: [zi]. Soit (i, k)∈ [0, N]×[0, P ] tels que [ti, ti+1]∩[vk, vk+1]6=

∅, il existe donc t ∈ R+tel que t∈ [ti, ti+1]∩ [vk, vk+1]. Soit j∈ [0, N] tel que t ∈ [uj, uj+1].

Alors, [ti, ti+1]∩ [uj, uj+1]6= ∅ et [uj, uj+1]∩ [vk, vk+1]6= ∅, donc [xi]⊑n [yj]⊑n [zk], d’o`u

[xi]⊑n[zk], et donc φ⇒♯ζ.

(iii) antisym´etrique : on suppose que φ ⇒♯ ψ et ψ

⇒♯ φ. On peut toujours supposer que

N ≥ M. On montre alors que :

1. ∀i ≤ M, ti = ui∧ [xi] = [yi]. Supposons que ∃i ∈ [0, M] tel que ti 6= ui, et posons

i0 = min{i ∈ [0, M] : ti 6= ui}, on sait que i0 > 0. On peut toujours supposer que

ti0 < ui0. On est alors dans la situation suivante : ui0−1 = ti0−1 < ti0 < ui0. On a

alors : [ui0−1, ui0[∩[ti0−1, ti0[6= ∅ ⇒ yi0−1⊑ nx i0−1∧ xi0−1⊑ ny i0−1⇒ yi0−1= xi0−1 [ui0−1, ui0[∩[ti0, ti0+1[6= ∅ ⇒ yi0⊑ nx i0−1∧ xi0−1⊑ ny i0 ⇒ yi0 = xi0−1

On a alors [yi0] = [yi0−1] ce qui est impossible car φ est normalis´ee. On a donc∀i ∈

6.2. DOMAINES ABSTRAITS 115

Fonctions comparables. Fonctions incomparables.

Fig.6.5 – Ordre partiel dans le domaine des fonctions en escalier `a valeur intervalle.

2. N = M . Supposons que N > M , on sait que tM = uM et [yM] = [xM]. On a alors

[tM +1, tM +2[∩[xM,∞[6= ∅ (si N = M + 1, on pose tM +2=∞), et donc [xM +1]⊑n [yM]

et [yM]⊑n [xM +1], d’o`u [xM +1] = [yM] = [xM], on a donc [xM +1] = [xM], ce qui est

impossible car φ est normalis´ee.

¤

Correspondance de Galois Nous relions maintenant le domaine des contraintes de changement d’´etat FSn au domaine des fonctions en escalier FSn via une correspondance de Galois. Pour la fonction d’abstraction α′ (´equation (6.10)), nous utilisons le fait que pour toute fonction en

escalier finie f ∈ FSn, il existe N ∈ N et un ensemble d’instants 0 = t0 < t1 < · · · < tN tels

que f est constante sur chaque intervalle [ti, ti+1[ et f est constante sur [tN,∞[. La concr´etisation

d’une contrainte φ = V0≤i≤Nti : [xi] est la fonction f ∈ FSn v´erifiant ∀i ∈ [0, N − 1], ∀t ∈

[ti, ti+1[, f (t) = [xi] et∀t ≥ tN, f (t) = [xN] (fonction γ′ donn´ee par l’´equation (6.11)).

f ∈ FSn, soit N ∈ N et 0 = t0≤ · · · ≤ tN < tN +1=∞ tels que f est constante sur [ti, ti+1[.

α′: 8 > > < > > : FSn → FSn f 7→ Norm` ^ 0≤i≤N ti: f (ti)´ ⊥f sn 7→ ff♯ (6.10) γ′: 8 > > < > > : FSn → FSn ^ 0≤i≤N

ti: [xi] 7→ λt. [xi0] tel que i0 = max

˘

i∈ [0, N] : ti≤ t¯

ff♯ 7→ ⊥f sn

(6.11)

Proposition 6.5 Les fonctions α′ :FSn

→ FSn et γ′: FSn

→ FSn sont monotones.

Preuve Soit f, g ∈ FSn telles que f ·⊑g, montrons que α(f ) α(g). Soit φ = α(f ) et ψ =

α′(g), d’apr`es la proposition 6.2, on peut supposer que φ =V

0≤i≤Nti : f (ti) et ψ =V0≤Mui :

g(ui). Soit donc i, j∈ [0, N]×[0, M] tels que [ti, ti+1[∩[uj, uj+1[6= ∅, et soit t ∈ [ti, ti+1[∩[uj, uj+1[.

On sait que f (t) = f (ti) et g(t) = g(uj), et que f (t)⊑n g(t) car f ⊑ g. Donc, f(ti)⊑ng(uj), et

donc φψ. Donc, αest croissante.

Soit maintenant φ, ψ∈ FSntelles que φ

⇒♯ψ, montrons que γ(φ)·⊑γ(ψ). On pose φ =V

0≤i≤Nti:

[xi] et ψ =V0≤i≤Mui : [yi]. Soit f = γ′(φ) et g = γ′(ψ), et soit t∈ R+. Soit i ∈ [0, N] tel que

φψ, [x

i] ⊑n [yj]. Or, f (t) = [xi] et g(t) = [yj], donc f (t) ⊑n g(t), et donc f·⊑g, donc γ′ est

croissante. ¤

Proposition 6.6 Les domaines FSn et FSn sont reli´es par une bijection de Galois : (FSn,⊑) −−−→←−−−−←−→

α′ γ′

(FSn,) ,

c’est-`a-dire que (α′, γ) forme une correspondance de Galois telle que∀f ∈ FSn, γ

◦ α′(f ) = f

et∀φ ∈ FSn, α′◦ γ(φ) = φ.

Preuve Montrons d’abord que (α′, γ) est une correspondance de Galois. On sait que αet γ

sont monotones (proposition 6.5), nous devons montrer qu’elles v´erifient l’´equation (2.24). Soit donc f ∈ FSn et φ∈ FSn, et soit ψ = α′(f ) et g = γ(φ). On pose φ = V

0≤i≤Nti : [xi] et soit

u0, u1, . . . , uM ∈ R+ tels que α′(f ) =V0≤i≤Mui: f (ui).

Supposons que α′(f )φ. Soit alors t

∈ R+, et soient i, j∈ [0, N] × [0, M] tels que t ∈ [ti, ti+1[

et t∈ [uj, uj+1[. On sait alors que g(t) = [xi] et f (t) = f (uj). Comme [ti, ti+1[∩[uj, uj+1[6= ∅, on

a f (uj)⊑n[xi], et donc f (t)⊑ng(t). Donc, on a f ⊑ g, soit f ⊑ γ′(φ).

Supposons maintenant que f·⊑γ(φ). Soit i, j∈ [0, N] × [0, M] tels que [t

i, ti+1[∩[uj, uj+1[6= ∅, et

soit t∈ [ti, ti+1[∩[uj, uj+1[. On a alors f (t) = f (uj) et g(t) = [xi]. Comme f ·⊑g, on a f(t) ⊑n g(t),

et donc f (uj)⊑n [xi]. On a donc ψ⇒♯φ, soit α′(f )⇒♯φ.

On a donc montr´e que (α′, γ) est une correspondance de Galois. Montrons maintenant l’aspect

bijectif. On veut montrer que γ′(f )) = f . Soit t ∈ R

+, et i ∈ [0, M] tel que t ∈ [ui, ui+1[.

Comme α′(f ) =V

0≤i≤Mui: f (ui), on sait que γ′(α′(f )) = f (ui) = f (t). Donc, γ′(α′(f )) = f . De

mˆeme, on montre que α′(φ)) = φ. Il suffit en fait de remarquer que γest injectif, et d’utiliser

le fait que γ′◦ αest la fonction identit´e. ¤

On a donc une bijection entre le domaineFSn des fonctions en escalier et le domaine FSn des contraintes. Pour une contrainte φ∈ FSn, on peut donc parler de la valeur que prend φ au temps t, que nous noterons φ(t), comme ´etant la valeur prise par sa concr´etisation : φ(t) = γ′(φ)(t). La

bijection de Galois nous indique donc que :

∀φ, ψ ∈ FSn, φ♯ψ⇔ γ′(φ)⊑ γ′(ψ)⇔ ∀t ∈ R+, φ(t)⊑n ψ(t) (6.12)

Op´erateurs abstraits Nous d´efinissons maintenant les ´equivalents abstraits ∨♯ et

∧♯ des

op´erateurs d’union ·⊔ et d’intersection ·⊓ sur le domaine FSn.

D´efinition 6.10 (Op´erateur d’intersection pour le domaine FSn) L’op´erateur abstrait d’intersection sur FSn fonctionne comme d´ecrit dans l’algorithme suivant :

Entr´ee : φ =Vi∈[0,N]ti : [xi]∈ FSn

Entr´ee : ψ =Vi∈[0,M]ui: [yi]∈ FSn

R´esultat : φψ

d´ebut

si φ = ff♯ou ψ = ffalors renvoyer fffinsi

pour 0≤ i ≤ N faire

j = max{k : uk≤ ti} ; [xi]′= [xi]⊓n[yj];

si [xi]′=∅ alors renvoyer ff♯ finsi

finpour

pour 0≤ i ≤ M faire

j = max{k : tk ≤ ui} ; [yi]′= [yi]⊓n[xj];

si [yi]′ =∅ alors renvoyer ff♯ finsi

finpour

renvoyer Norm¡ V0≤i≤Nti: [xi]′∧V0≤i≤Mui: [yi]′¢;

6.2. DOMAINES ABSTRAITS 117

Intuitivement, l’intersection de φ∈ FSn et ψ∈ FSn fonctionne ainsi : on commence par r´eduire chaque intervalle intervenant dans chacune des deux contraintes, puis on normalise la conjonction des deux contraintes ainsi obtenues.

Exemple 6.4 La figure 6.6 montre graphiquement l’intersection de deux contraintes : l’intersec- tion des fonctions rouge et bleu (`a gauche) donne la fonction grise (`a droite).

Proposition 6.7 L’op´erateur ∧♯ est la meilleure abstraction de ·⊓, c’est-`a-dire que pour toutes

contraintes φ, ψ∈ FSn, on a

φ∧♯ψ = α′¡γ(φ)·⊓γ(ψ)¢. (6.13)

Preuve Soit φ, ψ ∈ FSn, avec φ 6= ffet ψ

6= ff♯. On pose φ = V

0≤i≤Nti : [xi] et ψ =

V

0≤i≤Mui: [yi]. Soit f = γ′(φ) et g = γ′(ψ), on montre que∀t ∈ R+, γ′(φ∧♯ψ)(t) = f (t)⊓ng(t).

Soit t ∈ R+, et i0 = max{i ∈ [0, N] : ti ≤ t} et j0 = max{i ∈ [0, M] : ui ≤ t}. D’apr`es la

d´efinition de la fonction de normalisation et de∧♯, on a γ′¡φψ¢(t) = [x i0]⊓ n[y j0]. Par ailleurs, f (t) = [xi0] et g(t) = [yj0]. On a donc γ′(φ∧ ♯ψ) = f·⊓g, d’o`u : φψ = α′¡f·⊓g¢= α′¡γ(φ)·⊓γ(ψ)¢. ¤ ∧♯

Fig.6.6 – Op´erateur d’intersection pour les contraintes de changement d’´etat.

D´efinition 6.11 (Op´erateur d’union pour le domaine FSn) L’op´erateur abstrait d’union sur FSn fonctionne comme d´ecrit dans l’algorithme suivant :

Entr´ee : φ =Vi∈[0,N]ti: [xi]∈ FSn

Entr´ee : ψ =Vi∈[0,M]ui : [yi]∈ FSn

Entr´ee : φψ

d´ebut

si φ = ff♯ alors renvoyer ψ finsi

si ψ = ff♯alors renvoyer φ finsi

pour 0≤ i ≤ N faire j = max{k : uk ≤ ti} ; [xi]′= [xi]⊔n[yj]; finpour pour 0≤ i ≤ M faire j = max{k : tk≤ ui} ; [yi]′ = [yi]⊔n[xj]; finpour

renvoyer Norm¡ V0≤i≤Nti: [xi]′∧V0≤i≤Mui : [yi]′¢;

Intuitivement, pour effectuer l’union de deux contraintes φ et ψ, on effectue la mˆeme op´eration que pour l’intersection sauf que l’on commence par faire l’union des intervalles de φ et ψ avant de normaliser la conjonction des contraintes.

Exemple 6.5 La figure 6.7 montre l’effet de l’op´erateur d’union entre contraintes : l’intersection des fonctions rouge et bleu (`a gauche) donne la fonction grise (`a droite).

Proposition 6.8 L’op´erateur ∨♯ est la meilleure abstraction de ·⊔, c’est-`a-dire que pour toutes

contraintes φ, ψ∈ FSn, on a

φ∨♯ψ = α′¡γ(φ)·⊔γ(ψ)¢. (6.14)

Preuve La preuve est similaire `a celle de la proposition 6.7. ¤

∨♯

Fig. 6.7 – Op´erateur d’union pour les contraintes de changement d’´etat.

Th´eor`eme 6.9 ¡FSn,

⇒♯,

∧♯,

∨♯, ff, tt♯¢est un treillis.

Preuve Il faut montrer que calcule bien la borne sup´erieure et

∧♯ la borne inf´erieure. Soit

φ, ψ∈ FSn. Si on montre que γ(φψ) = γ(φ)·⊔γ(ψ), alors comme FSn et

FSnsont reli´es par une bijection de Galois, on pourra conclure quecalcule la borne sup´erieure. De mˆeme, si on montre

que γ(φψ) = γ(φ)·⊓γ(ψ), on pourra conclure que ∧ calcule la borne inf´erieure. Les propositions

6.7 et 6.8 permettent justement de conclure que ces conditions sont v´erifi´ees. ¤ Remarque Pour les mˆemes raisons que pourFSn, le treillis FSn

n’est ni un treillis complet ni un CPO.

Les ´el´ements de FSn sont facilement et efficacement repr´esentables en machine. De plus, les fonctions de comparaison, union et intersection sont efficaces : la normalisation, qui est l’op´eration la plus coˆuteuse, s’ex´ecute en O¡n· log(n)¢car elle n´ecessite un tri des contraintes pr´esentes. On utilisera donc ce domaine comme abstraction des ensembles de fonctions continues. Il faut donc que l’on adapte le crit`ere CS1 (d´efinition 6.6) au domaine FSn pour s’assurer de la sˆuret´e des s´emantiques abstraites.

D´efinition 6.12 (Crit`ere de sˆuret´e pour la s´emantique abstraite (2)) Une s´emantique abstraite L.M♯ :

PCI → FSn v´erifie le crit`ere de sˆuret´e CS2 si et seulement si, pour tout PCI P , elle v´erifie la formule (6.15), avec φ = LP M♯=V

0≤i≤Nti: [xi] et tN +1=∞.