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 relation⇒♯ v´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 ψ = ff♯ alors renvoyer ff♯ finsi
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= ff♯ et ψ
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 que∨♯calcule 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=∞.