• Aucun résultat trouvé

3.3 Délai de séparabilité contextuel

3.3.1 Ports d’entrée-sortie et notion de contexte

Nous avons défini les éléments contenus dans les flots d’entrée et de sortie de nos machines comme des n-uplets. Une notion naturelle de port est de sélectionner certaines composantes particulières de ces n-uplets. Cela revient à encoder un port par une fonction de projection sur les données, où les données sélectionnées par la projection sont par définition les données sur le port considéré.

3.3.1.1 Définition de la notion de port comme fonction de projection

Dans la définition des types de données pour les machines concrètes (Sec. 2.1.2 p. 24), il est fait référence à l’existence d’isomorphismes correspondants à l’associativité, la commuta- tivité et l’absorption de l’élément neutre. Les ensembles des ports d’entrée et de sortie sont alors toutes les fonctions de projection possibles sur les données et les machines, modulo ces isomorphismes. Ceci nous permet de réduire notre étude au cas exposé ci-après.

Définition 23 (Ports d’entrée-sortie). Soit A× B le produit cartésien de deux ensembles A et B. Les deux ports sur A× B sont les deux projections πA(a, b) = a et πB(a, b) = b.

Il est possible d’étendre cette définition à des machines (concrètes ou sur treillis) à l’aide de deux fonctions de projections correspondant respectivement à un port d’entrée et un port de sortie.

Définition 24 (Projections de données). Soient In, Out, X, Y des ensembles finis quelconques et soit M = ⟨In × X, Out × Y, Q, E, out, Qi⟩ une machine. Nous définissons l’effacement des

composantes X et Y dans M , dont la signature est :

∏[In, Out] ∶ Moore(In × X, Out × Y ) → Moore(In, Out), par l’équation suivante :

∏[In, Out](M) = ⟨In, Out, Q, ∏[In, Out](E′), ∏[In,Out](out),Q i⟩; où :

– ∏[In, Out](E) = {(p, πIn(in), q) ∣ (p, in, q) ∈ E} et

– ∏[In, Out](out(q)) = πOut(out(q)).

Exemple 3.19 : La figure 3.6 montre un exemple d’application d’une fonction de projection. Soit M ∈ Moore(In1× In2, Out1× Out2) la machine montrée en Fig. 3.6(a). Nous avons donc

i1, j1 ∈ In1, i2, j2 ∈ In2, a1, b1, c1 ∈ Out1 et a2, b2, c2 ∈ Out2. Nous calculons la projection de

M sur la première composante en entrée et sur la seconde composante en sortie, nommément ∏[In1, Out2](M). Le résultat est montré en Fig. 3.6(b).

q0: �a1, a2�

q1: �b1, b2� . . .

q2:�c1, c2� . . .

�i1, i2�

�j1, j2�

(a) Machine avant projection

q0 : a2

q1 : b2 . . .

q2 :c2 . . . i1

j1

(b) Machine après projection

FIGURE3.6 – Exemple de projection sur une machine

Notons que la projection de donnée peut également être définie sur les dépliages (définis au chapitre 2, Sec. 2.2.4 p. 29). ConsidéronsTIn,TOut∈ Dαdeux abstractions de types de données :

TIn = ⟨In, ≼I,⊔I,⊓I,⊺I,–I⟩ TOut = ⟨Out, ≼o,⊔o,⊓o,⊺o,–o⟩ T+,− In = ⟨In+,−,≼ +,− I ,⊔ +,− I ,⊓ +,− I ,⊺ +,− I ,– +,− I ⟩ T+,− Out = ⟨Out+,−,≼ +,− o ,⊔+,−o ,⊓+,−o ,⊺+,−o ,–+,−o ⟩

Supposons que les équivalences TIn ≃ TIn− × TIn+ et TOut ≃ TOut− × TOut+ soient vérifiées. Cela

revient à partitionner chaque donnée en entrée en deux composantes, que nous désignerons “actives” et “passives”.

Définition 25 (Ports actifs et passifs). Soient une paire de ports d’entrée (AIn,AOut) et une

paire de ports de sortie(PIn,POut) :

AIn∶ TIn→ TIn+ PIn∶ TIn→ TIn− (ports d’entrée)

Supposons que ces ports forment une partition deTIn etTOut:

λx.⟨AIn(x), PIn(x)⟩ ≃ id, λx.⟨AOut(x), POut(x)⟩ ≃ id.

Les portsAInetAOutsont appelés portsactifs, respectivement en entrée et en sortie. Les ports

PIn etPOut, complémentaires des précédents, sont désignés portspassifs.

Les ports entre lesquels nous allons considérer le délai de séparabilité seront précisément les ports actifs. Les ports complémentaires de ces derniers seront les ports passifs. Intuitivement, nous serions tentés d’affirmer que les données sur les ports passifs n’influent pas sur le com- portement du reste de la machine et d’effacer purement et simplement les données sur les ports passifs. Nous verrons dans la suite que ce n’est pas le cas.

Etant donnés ces ports actifs et passifs, les isomorphismes de commutativité et d’associativité sous lesquels nous travaillons nous permettent d’associer à toute machine M ∈ Moore(In, Out) une machine :

M′∈ Moore(TIn+ × TIn−,TOut+ × TOut− )

telle que M ≃ M′. Nous dirons que l’interface de la machine Mest bien structurée, car elle

met en évidence les ports sur lesquels nous voulons déterminer le délai de séparabilité.

Afin d’alléger la notation de la projection de donnée∏[In, Out], nous omettrons les paramètres In, Out lorsque ces paramètres sont précisément les ports actifs d’une machine. Dans la suite, nous ne traiterons que le cas des machines dont les ports sont bien structurés, sans perte de généralité.

Soit une machine sur treillis à l’interface bien structurée :

M = ⟨In+× In−, Out+× Out−, Q, out, E, q0⟩.

Nous définissons un contexte comme un mot infini appliqué aux ports passifs d’une machine de Moore depuis un état particulier, suivi d’une restriction de l’interface aux ports actifs. Afin de donner une définition plus synthétique, nous considérons des systèmes sous forme de machines dépliées (cf. Chapitre 2 Sec. 2.2.4 p. 29).

Définition 26 (Application d’un contexte à un état). Soient q∈ Q un état quelconque et UM(q)

le dépliage de M à partir de q. Soit cw = a.cw′ ∈ (In−)ω un mot infini pour les ports passifs

de M . Nous définissons l’application du contexte cw au dépliageUM(q), notée C(UM(q), cw),

par :

C(UM(q), a.cw′) = (AOut(out(q)), { (AIn(in), C(UM(q

′), cw′)) qÐ→ qin ′∈ E,

PIn(in) ⊓−I a /=⊥I }).

Cette définition calcule la restriction d’une machine de Moore aux transitions compatibles avec le mot de contexte. Par commodité, pour tout état q on notera C(q, cw) en lieu et place de C(UM(q), cw).

3.3.1.2 Effacement des données sur les ports passifs comme abstraction

La notion de projection définie précédemment peut être vue comme une fonction d’abstrac- tion de machines. Informellement, le système de transitions étiqueté associé à toute machine M a pour espace d’état le produit cartésien Q× Out, si Q est l’espace d’état de M et Out son

alphabet de sortie. Effacer une partie des données sur Out revient à quotienter l’espace d’état du système de transition étiqueté sous-jacent par la relation d’équivalence induite par la fonction d’effacement. Nous formalisons cette idée dans le cadre des machines sur treillis. Les actions d’effacer les composantesT−

InetTOut− peuvent s’écrire :

αIn ∶ TIn+ × TIn− →TIn+ = AIn,

= πIn+

αOut ∶ TOut+ × TOut− → TOut+ = AOut.

= πOut+

Ces opérations induisent deux correspondances de Galois entre le treillis produit T+

In× TIn− et

T+

Ind’une part et entre TOut+ × TOut− et TOut+ d’autre part. Les fonctions de concrétisation sont les

suivantes :

γIn = λin.(in, ⊺X),

γOut = λout.(out, ⊺Y).

Il est facile de vérifier que ces fonctions définissent des correspondances, c’est-à-dire que : (αIn, γIn) ∈ Galois(TIn+ × TIn−,TIn+)

(αOut, γOut) ∈ Galois(TOut+ × TOut− ,TOut)

puisque α(a, b) ≼ a ⇐⇒ (a, b) ≼ (a, ⊺). L’extension aux machines de Moore de cette abstrac- tion de données est précisément l’opération de projection∏ définie plus haut.

La forme de la fonction de concrétisation suggère que plutôt que calculer explicitement une projection, nous pouvons nous contenter des fonctions d’abstraction suivantes :

αIn ∶ TIn+ × TIn− → TIn+ × TIn− = λ(in, x).(in, ⊺X)

αOut ∶ TOut+ × TOut− → TOut+ × TOut− = λ(out, x).(out, ⊺Y).

Dans les développements qui suivent, nous utiliserons pour plus de clarté la première variante, sauf où mentionné explicitement.