Pour être en mesure de mettre au point des techniques de vérification
symbo-liques sur les processus hors-contexte d’ordre supérieur, nous avons besoin d’un
moyen de représenter de façon finie des ensembles potentiellement infinis de
confi-gurations. Dans ce paragraphe nous présentons la représentation symbolique
choi-sie pour les ensembles de configurations (c’est à dire de piles), ainsi que la famille
d’automates qui y est associée.
Une n-pile s= [s
1. . . s
l] sur Γ est associée à un mot w(s) = [w(s
1). . . w(s
l)],
dans lequel les lettres de Γ n’apparaissent qu’à une profondeur de parenthésage
égale à n(nous omettrons souvent de distinguer une pile s du mot w(s)associé).
Un ensemble de piles sur Γest ditrégulier si l’ensemble des mots le représentant
est accepté par un automate fini sur Γ
′= Γ∪ {[,]}, que nous appelons dans ce
cas précis unautomate de piles.
Soit A un tel automate, un état p de A est dit de niveau 0 s’il n’a aucune
transition sortante par [ et aucune transition entrante par]. Il est de niveau k si
tous ses successeurs par [ et prédécesseurs par ] sont de niveau k−1. Le niveau
de p est noté l(p). Nous définissons également une notion de niveau pour les
chemins. Unchemin de niveau n est un chemin p
1. . . p
ktel quel(p
1) = l(p
k) = n
et ∀i ∈ [2,k−1], l(p
i) < n. Tous les chemins de niveau n d’un automate sont
étiquetés par des piles de niveaun. Enfin, pour pouvoir faire référence de manière
concise à l’ensemble des chemins de niveaunentre deux états de niveaundonnés,
on introduit la notation suivante. Soit
Q={q∈Q
A| l(q)< n∧p
1←→A+q←→A+p
2}
l’ensemble de tous les états de A apparaissant le long d’un chemin de niveau n
entrep
1etp
2. Si Qest non vide, on écrit p
1;
BA
p
2, où B est défini comme
B = Q
B=Q∪ {p
1,p
2},Γ
′, δ
B=δ
A∩(Q
B×Γ
′×Q
B), p
1, p
2.
Cette notation permet en quelque sorte d’isoler des « sous-automates » de
ni-veau inférieur au sein d’un automate de nini-veau plus élevé. Si l’on suit cette idée,
et en raison de la structure imbriquée des piles, il sera parfois plus commode
de caractériser directement des ensembles de piles à l’aide d’automates de piles
hiérarchiques.
Définition 5.2. Un automate de piles hiérarchique de niveau 1 est un automate
fini étiqueté sur l’alphabet de pile Γ. Un automate de pile hiérarchique de niveau
n≥2 est un automate fini dont les transitions sont étiquetées par des automates
hiérarchiques de niveau n−1 sur Γ.
Soit A = (Q,Γ,δ,q
0,q
f) un automate hiérarchique de niveau n
2avec n ≥ 2.
L’existence d’une transition étiquetée par un automate B de niveau 1 entre les
états de contrôle p et q dans A est notée comme de coutume p ←→ ABq, ou
simplement p −→
Bq. Le langage de niveau k de A, pour k ∈ [1,n], est défini
récursivement comme
L
k(A) = {[L
k(A
1). . . L
k(A
l)]| [A
1. . . A
l]∈L
n(A)} si k < n,
L
k(A) = {[A
1. . . A
l] | q
0←→AA
1. . .←→AA
lq
f} si k =n.
Par simplicité, on abrège souventL
1(A) enL(A). On dit qu’un automate
hiérar-chiqueB apparaît dansAsiB étiquette une transition deA, ou apparaît au sein
d’un automate étiquetant une transition de A.
Les automates hiérarchiques sont utiles pour représenter des ensembles de piles
d’ordre supérieur, mais on peut montrer qu’ils ont en fait la même expressivité
que les automates de piles ordinaires.
Proposition 5.1. Les langages de piles acceptés par les automates hiérarchiques
de piles sont les langages réguliers de piles.
Démonstration. Soit A = (Q,Γ,δ,i,f) un automate hiérarchique, nous calculons
par récurrence sur le niveaun deAun automate de piles non hiérarchique ♭Atel
que L
1(A) =L(♭A). Pourn = 1, on prend ♭A =A. Pour les valeurs plus élevées
den, soientA
1. . . A
mles automates hiérarchiques de niveau n−1étiquetant les
transitions de A. Par hypothèse de récurrence on peut construire des automates
♭A
1. . . ♭A
mtels que ∀j ∈ [1,m], L
1(A
j) = L(♭A
j). Soit ♭A
j= (Q
j,Γ,δ
j,i
j,f
j),
(tous les Q
jsont supposés disjoints). Nous construisons alors l’automate ♭A =
(Q
′,Γ,δ
′,i
′,f
′) où pour tous p,q ∈ Q, j ∈ [1,m], r,s,t,u ∈ Q
jet a ∈ Γ
′tels que
p←→AA
jq, i
j←→A
j↓[r, s←→A
j↓atet u←→A
j↓]f
j, on a :
i
′←→A↓[i p←→A↓[pr ps ←→A↓apt pu←→A↓]q f ←→A↓]f
′.
Suivant cette construction, un chemin de ♭A entre deux états de contrôle p et q
dans Q∩Q
′est étiqueté par le mot s si et seulement si s représente une pile de
niveau (n−1)acceptée par un certain A
jtel que p←→AA
jq. Ainsi ♭A accepte
tous les mots de la forme [s
1. . . s
l] tels que [A
i1. . . A
il] ∈ L
n(A) et tel que pour
tout j, s
j∈L(A
ij), ce qui est précisément la définition de L(A).
Ensembles de piles et représentation symbolique 161
Réciproquement, soit A = (Q,Γ
′,δ,i,f) un automate acceptant des piles de
niveau n. Nous voulons construire un automate hiérarchique A
′= (Q
′,Γ,δ
′,i
′,f
′)
de niveau n tel que L
1(A
′) =L(A). Comme aucun chemin de A étiqueté par un
mot qui ne représente pas une pile ne peut être acceptant, on peut supposer que
le niveau de chaque état dans Q est bien défini. Soit Q
n−1l’ensemble d’états de
niveaun−1de A. Les seuls états de niveaun sont i etf. Si n = 1, on construit
A
′avec un ensemble d’états Q
′=Q
n−1et l’ensemble de transitions
δ
′={i
′−→
aq | i←→A[p←→Aaq} ∪ δ ∩ (Q
n−1×Γ×Q
n−1)
∪ {p−→
af
′| p←→Aaq ←→A]f}.
Si n >1, pour tous p,q ∈ Q
n−1et tout automate B tel que p ;
Bq, on construit
d’abord récursivement l’automate hiérarchiqueB
′de niveaun−1tel queL
1(B
′) =
L(B). On donne ensuite à A
′l’ensemble de transitions
δ
′={i
′−→
B′q | ∃p,q ∈Q
n−1, i←→A[p ;
B Aq}
∪ {p−→
B′q | ∃p,q ∈Q
n−1, p;
B Aq}
∪ {p−→
af
′| ∃p,q ∈Q
n−1, p ;
a Aq←→A]f}.
Une pile s est acceptée par A
′si et seulement si il existe un chemin dans A
′étiqueté par B
1′. . . B
k′de i
′àf
′tel que s∈[L
1(B
1′). . . L
1(B
′k)]. Nous avons donc
égalements∈[L(B
1). . . L(B
k)], et par conséquent s∈L(A).
De plus, l’ensemble des langages réguliers de piles de niveau n est fermés par
union, intersection et complémentaire dans §n. Pour tout a ∈ Γ et n ∈ N, on
définit pour un usage ultérieur l’automate A
na
reconnaissant le langage L(A
n a) =
{s ∈ §
n| top(s) = a}. On note aussi A×B l’opération de produit synchrone
classique entre deux automates tel queL(A×B) =L(A)∩L(B).
Avant de continuer, nous présentons quelques définitions et notations
supplé-mentaires. Pour pouvoir facilement exprimer l’existence d’ensembles de calculs
d’automates hiérarchiques et les manipuler aisément, nous définissons la notion
d’expression de pile.
Définition 5.3. Une expression de pile de niveau 0 sur l’alphabet Γ est
simple-ment une lettre dans Γ. Une expression de pile de niveau n >0 est soit une pile
s de niveau n, le nom A d’un automate de piles de niveau n (hiérarchique ou
non), une concaténation d’expressions de piles de niveau n, une expression de
pile de niveau n−1 entre crochets droits [e], ou la concaténation itérée e
+d’une
expression de pile e de niveau n.
De plus, pour décrire les calculs d’automates hiérarchiques nous définissons
une relation binaire 7−→, qui exprime le choix d’un chemin particulier dans un
automate hiérarchique apparaissant au sein d’une expression.
Définition 5.4. Soit e = uAv une expression de piles où A est un automate
hiérarchique de piles de niveau n, on peut écrire e 7−→ u[w]v pour tout w ∈
L
n(A). Comme d’habitude on note 7−→
∗la clôture réflexive et transitive de 7−→.
Une séquence d’expressions de piles e
1. . . e
mtelles que e
1= A, e
m∈ §
net ∀i ∈
[1,m−1], e
i7−→ e
i+1est appelée un calcul hiérarchique de A.
Enfin, nous définissons une notion de concaténation sur les piles et expressions
de piles.
Définition 5.5. Soiente = [e
1e
2],f etg des expressions de piles, on écrite=f·g
si soit f = e
1et g = [e
2], soit e
1= f ·g
′et g = [g
′e
2]. Remarquons que si e est
une lettre de Γ ou un automate, il n’existe aucun f et g tels que e=f·g.
Par exemple, on pourrait écrire
[[aB][a][bcd]] =a·[[B][a][bcd]],oubien[[aB][a][bcd]] = [aB][a]·[[bcd]].
Dans le document
Graphes infinis de présentation finie
(Page 170-173)