Vous êtes sur la page 1sur 37

Théorie des Langages et Calculabilité

Chapitre I
Mots et Langages

Yousra Hlaoui

Cycle d’Ingénieurs en Informatique


FST-IF4

2019-2020

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 1 / 32


Chapitre I
Mots et Langages

1 Vocabulaire et Mot
Opérations sur les mots

2 Langage
Opérations sur les langages

3 Propriétés des Langages

4 Langages Réguliers

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 2 / 32


Introduction

La théorie des langages a pour but de décrire un langage et de le


reconnaı̂tre en utilisant des fondements mathématiques pour
contribuer à améliorer l’activité de programmation.
Description : donner un modèle mathématique de ce qui est un
langage,
Reconnaissance : construire une machine capable de
reconnaı̂tre les textes qui appartiennent à un langage donné.

Donner une description finie et générique d’un ensemble infini


d’objets : infinité de textes d’une langue bien déterminée ou infinité de
programmes C.

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 3 / 32


Vocabulaire et Mot

Vocabulaire et Mot
Comme pour la description des langages naturels, on commence par fixer
l’ensemble de symboles constituant les mots des langages.

Définition 1. Vocabulaire
Un vocabulaire ( alphabet, ou lexique) est un ensemble fini, non vide de symboles. On
le note généralement X ou Σ.

Exemple 1
Σbool = {0, 1} est l’alphabet des booléens,
Σlat = {a, b, c, d, . . . , z} est l’alphabet Latin,
Σfl èches = {←, →, ↑, ↓} est l’alphabet des flèches,
Σclavier = Σlat ∪ {A, B, . . . , Z , t, <, >, (, ), . . . . . . , . . .!} est l’alphabet de tous les
symboles du clavier d’un ordinateur,
Σn = {0, 1, 2, . . . , n − 1}, ∀ n ≥ 1 est l’alphabet d’une représentation n − aire
des nombres,
Σlogique = {0, 1, x, (, ), ∨, ∧, ¬} est l’alphabet qui peut être utilisé pour représenter
une formule logique.
Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 4 / 32
Vocabulaire et Mot

Vocabulaire et Mot

Contrairement aux langages naturels où les mots sont des unités verbales du
langage, les mots dans la terminologie informatiques sont des textes arbitraires.

Définition 2. Mot
Un mot, ω sur un alphabet Σ, est une séquence finie, éventuellement vide, de
symboles de Σ.
ω = ω1 ω2 . . . ωi . . . ωn , où ωi est le symbole de rang de i dans ω. La longueur
de ω qui se note |ω| est le nombre de symboles ωi qu’il contient. Si
ω = ω1 ω2 . . . ωn , alors |ω| = n.
Un mot ω sur Σ est un élément de Σ∗ qui est l’ensemble de tous les mots
définis sur Σ.
Le mot vide, ε, est le seul mot constitué de zéro symboles : |ω| = 0. ε est défini
sur tous les alphabets.

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 5 / 32


Vocabulaire et Mot

Vocabulaire et Mot

Remarques
1 Σ∗ représente l’ensemble de tous les mots définis sur l’alphabet Σ.
2 Σ+ = Σ∗ − {ε} est l’ensemble des mots définis sur Σ∗ privé du mot vide ε.

Exemple 2
Le mot ω = 01010010 sur Σbool est de longueur |ω| = 8
Les ωi associés aux mots suivants sont :
1 abba sur le vocabulaire {a, b}
ω1 = a, ω2 = b, ω3 = b, ω4 = a
2 (x1 ∗ (x2 + x1)) sur le vocabulaire {x1 , x2 , +, ∗, (, )}
ω1 = ( , ω2 = x1 , ω3 = ∗,ω4 = (, ω5 = x2 , ω6 = +, ω7 = x1 , ω8 =),
ω9 =)

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 6 / 32


Vocabulaire et Mot

Vocabulaire et Mot

Définition 3. Nombre d’occurrences d’un symbole dans un mot


Le nombre d’occurrences d’un symbole x dans un mot ω est le nombre
de foisPoù ce symbole apparaı̂t dans ce mot ω. On le note |ω|x .
|ω| = x |ω|x .

Exemple 3
Le nombre d’occurrences de b dans les mots abba et ε :
1 |abba|b = 2
2 |ε|b = 0

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 7 / 32


Vocabulaire et Mot Opérations sur les mots

Opérations sur les mots

Les opérations sur les mots produisent de nouveaux mots à partir des mots
existants.
Nous distinguons comme opérations :
1 opération de concaténation des mots :.,
2 opération d’itération : ∗ ,
3 opération d’itération stricte : +.

1. Opération de Concaténation (.)


Soit Σ un alphabet. Une concaténation respectant Σ est la fonction C définie
par :
C : Σ∗ × Σ∗ → Σ∗
(u, v ) 7→ u . v = ω
C(u, v ) = u . v = ω, où ω est le mot résultant de la concaténation avec :
Si |u| = n et |v | = m alors ∀i ∈ [1..n] , ωi = ui et ∀j ∈ [1..m], ωn+j = vj .

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 8 / 32


Vocabulaire et Mot Opérations sur les mots

Opérations sur les mots

Exemple : Opération de concaténation (.)


Soient u = 0aa1bb et v = 111b deux mot pour Σ = {0, 1, a, b}.
Alors C(u, v ) = u . v = ω = 0aa1bb111b

Remarques
1 La concaténation C pour Σ est associative sur Σ∗ :
∀u, v , ω, C(u, C(v, ω)) = u .(v .ω) = uv ω = (u .v ).ω = C(C(u, v ), ω)
2 Le mot vide ε est un élément neutre pour la concaténation :
u.ε = ε.u = u
3 La concaténation n’est pas commutative : ∀ u, v, u . v 6= v . u.
4 ∀ u, v, |u . v| = |v| + |u|

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 9 / 32


Vocabulaire et Mot Opérations sur les mots

Opérations sur les mots


2. Opération d’itération (*)
Soit Σ un alphabet. ∀ ω ∈ Σ∗ et ∀ : i ≥ 0, on définit la i i èm itération
de ω par :
ω i = ω . ω i−1
Elle se note par *, ω ∗ = ω i , avec ω 0 = ε.

Exemple : Opération d’itération (*)


Soit le mot ω ∈ {a}∗ , ω = a, alors :
ω 0 = ε,
ω 1 = a,
ω2 = a a
ω 3 = a a2 = a a a
..
.
ω k = a ak−1 = a| a {z
. . . a}
k fois
Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 10 / 32
Vocabulaire et Mot Opérations sur les mots

Opérations sur les mots

3. Opération d’itération stricte +


a+ = ai avec i > 0

Définition.4 (égalité)
Soient X un alphabet, u = x1 . . . xn ∈ X ∗ et v = y1 . . . yp ∈ X ∗ , u = v
sssi p = n et ∀i ∈ [1..n], xi = yi .

Définition.5
Soit X un alphabet et soient u, v deux mots sur X :
u est un facteur de v sssi ∃x ∈ X ∗ et ∃y ∈ X ∗ tels que v = x.u.y
u est suffixe ou facteur droit de v sssi ∃x ∈ X ∗ tel que v = x.u
u est préfixe ou facteur gauche de v sssi ∃y ∈ X ∗ tel que v = u.y
si (x 6= ε ou y 6= ε et v = x.u.y alors u est appelé facteur stricte
de v .
Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 11 / 32
Langage

Langage

Définition 6. Langage
Un langage L est un ensemble de mots définis sur un alphabet Σ. L
est un sous ensemble de Σ∗

Exemple
L∅ = ∅
Lε = {ε}
Si le vocabulaire est X = {0, 1, 2, 3, . . . 9} alors
L = { représentations décimales des nombres entiers naturels}
Si le vocabulaire est X = {x1 , x2 , +, *, (, )}
L = { expressions arithmétiques parenthésées manipulant
x1 , x2 , + et *}

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 12 / 32


Langage Opérations sur les langages

Opérations sur les langages

Un langage peut être le résultat d’une opération sur les langages existants ou le
résultat du théorème d’Arden appliqué sur aussi des langages existants.

Soient L1 et L2 deux langages alors on a les opérations suivantes :


1 Intersection : L1 ∩ L2 = {ω/ ω ∈ L1 et ω ∈ L2 }
2 Union : L1 + L2 = {ω/ ω ∈ L1 ou ω ∈ L2 }
3 Complémentation : L1 − L2 = {ω/ ω ∈ L1 et ω ∈ / L2 }
4 . L2 = {ω/ ∃ u ∈ L1 et ∃ v ∈ L2 et ω = u . v }
Concaténation : L1 [
5 opération * : L∗ = Li (* est la fermeture de Kleen de L) :
i≥0
L0 = {ε},
L1 = L . L0 ,
∀ i ≥ 0, Li+1 = L . Li .
[
6 opération + :L+ = Li
i≥1

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 13 / 32


Langage Opérations sur les langages

Opérations sur les langages

Exemples de langages
Les ensembles suivants sont des langages sur Σ {a, b} :
1 L1 = ∅,
2 L2 = {ε},
3 L3 = {ε, ab, abab},
4 L4 = Σ∗ = {ε, a, b, aa, ab, . . .},
5 L5 = Σ+ = {a, b, aa, ab, . . .},
6 L6 = {a}∗ = {ε, a, aa, aaa, . . .},
7 L7 = Σ,
8 L8 = Σ3 = {aaa, aab, aba, abb, baa, bab, bba, bbb},

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 14 / 32


Langage Opérations sur les langages

Opérations sur les langages

Exercice 1
Calculer A∗ pour A = {a}.

Solution
Si A = {a} alors A∗ = {a}∗ = a∗
Car A∗ = A0 + A1 + A2 + . . . + Ai + . . .
A0 = {ε} = {a0 }
A1 = AA0 = {a}{ε} = {a} = {a1 }
A2 = AA1 = {a}{a} = {aa} = {a2 }
Ai = {ai }
Ai+1 = AAi = {a}{ai } = {ai+1 }
..
.
A∗ = {ε, a, aa, aaa, . . .} = {a0 , a1 , a2 , a3 , . . .} = a∗

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 15 / 32


Langage Opérations sur les langages

Opérations sur les langages

Exercice
Définissez la fermeture de Kleene (L∗ ) pour chacun des langages
suivants :
1 L = {ε} ;
2 L = {a, aa} ;
3 L = {a, ab} ;
4 L = {a, bb} ;

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 16 / 32


Langage Opérations sur les langages

Opérations sur les langages

Solution
L∗ = L0 ∪ L1 ∪ L2 ∪ . . . Li ∪ . . . Ln } où 0 ≤ i ≤ n avec : Li = L . Li−1
1 L = {ε} ; L∗ = {ε}
2 L = {a, aa} ; L0 = {ε}
L1 = L . L0 = {a, aa} . {ε} = {a, aa}
L2 = L . L1 = {a, aa} . {a, aa} = {aa, aaa, aaaa}
L3 = L . L2 = {a, aa} . {aa, aaa, aaaa} = {aaa, aaaa, aaaaa, aaaaaa}
L4 = L . L3 = {a, aa} . {aaa, aaaa, aaaaa, aaaaaa} =
{aaaa, aaaaa, aaaaaa, aaaaaaa, aaaaaaaa}
..
.
Ln = L . Ln−1 = {an , an+1 , an+2 , . . . , an+k , . . . , an+n }
L∗ = {ε, a, aa, , aaa, . . . , an , an+1 , an+2 , . . . , an+k , . . . , an+n }, d’où :
L∗ = {a0 , a1 , a2 , , a3 , . . . , an , an+1 , an+2 , . . . , an+k , . . . , an+n }

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 16 / 32


Langage Opérations sur les langages

Opérations sur les langages

Solution-Suite
3 L = {a, ab} ; L0 = {ε}
L1 = L . L0 = {a, ab} . {ε} = {a, ab}
L2 = L . L1 = {a, ab} . {a, ab} = {aa, aab, aba, abab}
L3 = L . L2 = {a, ab} . {aa, aab, aba, abab} =
{aaa, aaab, aaba, aabab, abaa, abaab, ababa, ababab}
..
.
Ln = L . Ln−1 = {an , an b, . . . , (ab)n }
L∗ = {ε, a, ab, aa, aab, aba, abab, . . . , an , . . . , (ab)n }.

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 17 / 32


Langage Opérations sur les langages

Opération sur les langages

Lemme d’Arden
Soient A et B deux langages, on définit l’équation, d’inconnu L,
(E) : L = A L + B. Alors les items suivants sont valides :
1 L0 = A∗ . B est solution de (E)
2 Toute solution de (E) contient L0 , et
3 Si ε ∈
/ A alors L0 est l’unique solution de (E).

Exemple
Si L = {a} L + {b}, alors L = {a∗ b}.
Si L = {a} L + ε, alors L = {a∗ } .

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 18 / 32


Propriétés des Langages

Propriétés des Langages

Propriétés
Soient A, B, C des langages, on a :
1 A.∅ = ∅.A = ∅
2 A.{ε} = {ε}.A = A.
3 A.(B + C) = A.B + A.C
4 (A + B).C = A.C + B.C
5 A ⊆ B ⇒ AC ⊆ BC et A ⊆ B ⇒ CA ⊆ CB

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 19 / 32


Propriétés des Langages

Propriétés des Langages

Exercice
Montrer qu’on a A.(B + C) = A.B + A.C mais pas
A.(B ∩ C) = A.B ∩ A.C

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 20 / 32


Propriétés des Langages

Propriétés des Langages

Exercice
Montrer qu’on a A.(B + C) = A.B + A.C mais pas
A.(B ∩ C) = A.B ∩ A.C

Solution
Pour montrer que A.(B ∩ C) 6= A.B ∩ A.C il suffit de donner un
contre exemple.
Contre exemple :
A = {ε, x}, B = {xy} et C = {y}
A.(B ∩ C) 6= A.B ∩ A.C car (B ∩ C) = ∅ donc A.(B ∩ C) = ∅
Par contre A.B = {xy, xxy } et A.C = {y , xy} donc
A.B ∩ A.C = {xy}

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 20 / 32


Propriétés des Langages

Spécification d’un langage

1 Un langage peut être décrit ou spécifié par une définition


récursive
Exemple :
L = {ω ∈ {a, b}∗ / ω = ε ou ω = a ω 0 b avec ω 0 ∈ L}
2 Un langage peut être défini à l’aide d’une propriété que doivent
vérifier les mots du langage : L = {ω ∈ X ∗ / ω vérifie une
propriété P}
Exemple :
L = {ω ∈ {a, b}∗ / ω se termine par b}
3 Si le langage est fini, il peut être défini explicitement en
énumérant ses mots.
Exemple :
L = {a, ab, aa, abb}

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 21 / 32


Propriétés des Langages

Spécification d’un langage

Exemples
Soit L l’ensemble des mots sur {a, b} où tous les a précèdent tous les
b et ils sont de même nombre :

Exemple 1 : Définir récursivement L


L = {ω ∈ {a, b}∗ / ω = ε ou ω = a ω 0 b avec ω 0 ∈ L}

Exemple 2 : Définir par une propriété mesurable L


L = {an bn , n ≥ 0}

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 22 / 32


Langages Réguliers

Langages Réguliers

Les langages qu’on peut construire à partir des langages élémentaires, L∅ et Lε ,


et des opérations d’union, de concaténation et de fermeture itérative sont des
langages bien particuliers : Les langages réguliers.
Les langages réguliers sont très simples mis ils possèdent de nombreuses
propriétés remarquables.
Ils peuvent être introduits par des définitions de natures très différentes : preuve
de leur rôle central en théorie des langages formels.

Définition.6 (Langages réguliers)


L’ensemble LR des langages réguliers sur un alphabet Σ, est le plus
petit ensemble de langages satisfaisant les conditions suivantes :
1 ∅ ∈ LR; {ε} ∈ LR ;
2 {a} ∈ LR pour tout a ∈ Σ ;
3 si A ∈ LR et B ∈ LR alors A ∪ B, A.B et A∗ ∈ LR

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 23 / 32


Langages Réguliers

Langages Réguliers

Exemples de langages réguliers


1 Le langage {ε} est régulier car il s’écrit ∅∗ .
[
2 Le langage A = {a} est régulier car il s’écrit A = {a}.
a∈A
3 Le langage Lpair de mots sur A de longueur paire est régulier car il
s’écrit Lpair = (A . A)∗ = (A2 )∗ .
4 Le langage Limpair de mots sur A de longueur impaire est régulier
car il s’écrit Limpair = A . Lpair .

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 24 / 32


Langages Réguliers

Expressions Régulières

Un langage régulier est spécifié par une représentation ou une


notation bien spécifique : l’expression régulière.
Elle indique comment l’ensemble régulier dénoté à partir des
ensembles réguliers élémentaires.

Définition.7 (Expression régulière)


Les expressions régulières pour un alphabet Σ sont les expressions
formées par les règles syntaxiques suivantes :
1 ∅, ε et les éléments de Σ sont des expressions régulières.
2 si α et β sont des expressions régulières, alors :
(α ∪ β),
(α . β) et
α∗
sont des expressions régulières.

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 25 / 32


Langages Réguliers

Expressions Régulières

Remarques
1 Les parenthèses sont utilisées pour lever les ambiguı̈tés. Elles
sont omises lorsqu’elles ne sont pas nécessaires.
2 L’opérateur est le plus souvent placé dans la position d’un indice
supérieur : a∗ au lieu de (a)∗ .
3 L’opérateur ∪ peut être remplacé par | ou par +.
4 Les priorités des opérateurs sont : ∪ < . < ∗.
5 Les opérateurs ∪ et . sont associatifs à gauche et l’opérateur ∗ est
postfixé.
6 Simplifications :
Omission des accolades et du point : ({a} + {b} . {a})∗ est écrite
(a + b a)∗ .
Si A = {a1 , . . . , an }, alors on utilise A comme abréviation pour
a1 + . . . + an

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 26 / 32


Langages Réguliers

Expressions Régulières

Exemples d’expressions régulières


Soit A un alphabet.
1 A∗ est une e.r dénotant tous les mots sur A.
2 a A∗ est une e.r dénotant tous les mots sur A commençant par a.
3 A∗ a est une e.r dénotant tous les mots sur A finissant par a.
4 (b + ab)∗ (a + ε) est une e.r dénotant les mots n’ayant pas deux
a consécutifs.
5 a∗ + b∗ est une e.r dénotant les mots n’ayant que des a ou que
des b.
6 (aa + b)∗ est une e.r dénotant les mots ayant des blocs de a de
longueur paire.
7 (ab∗ a + b)∗ est une e.r dénotant les mots ayant un nombre pair
de a.

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 27 / 32


Langages Réguliers

Expressions régulières et Langages réguliers

Définition.8 (Langage dénoté par une expression régulière)


Le langage L(ξ) dénoté par une expression régulière ξ sur l’alphabet Σ
est défini par :
1 L(∅) = ∅, L(ε) = {ε}
2 L(a) = {a} pour tout a ∈ Σ
3 L((α|β)) = L(α) ∪ L(β)
4 L((α.β)) = L(α).L(β)
5 L((α)∗ ) = (L(α))∗

Théorème
Un langage est régulier si et seulement s’il est dénoté par une
expression régulière.

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 28 / 32


Langages Réguliers

Langages Réguliers

Exemples de langages réguliers


L’ensemble de tous les mots définis à partir d’un alphabet
Σ = {a1 , a2 , . . . , an } est dénoté par l’expression régulière
(a1 + a2 + . . . + an )∗ . Cette expression abrégée en Σ∗
L’ensemble de tous les mots non vides sur X = {a1 , . . . , an } est
défini par l’expression (a1 + . . . + an ).(a1 + . . . + an )∗ . On écrit
souvent cette expression X .X ∗ ou X + .
(a + b)∗ a(a + b)∗ dénote tous les mots sur X = {a, b} qui
contiennent au moins une occurrence de a.

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 29 / 32


Langages Réguliers

Langages Réguliers

Exercice 1
Décrire en français les langages dénotés par les expressions
régulières : AA, (ε + A)(ε + A), (AA)∗ , A∗ aA∗ , A∗ abA∗ , A∗ aA∗ bA∗ et
(ab)∗ .

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 30 / 32


Langages Réguliers

Langages Réguliers
Exercice 1
Décrire en français les langages dénotés par les expressions
régulières : AA, (ε + A)(ε + A), (AA)∗ , A∗ aA∗ , A∗ abA∗ , A∗ aA∗ bA∗ et
(ab)∗ .

Solution
1 AA est le langage des mots de longueur 2.
2 (ε + A)(ε + A) est le langage des mots de longueur au plus 2.
3 (AA)∗ est le langage des mots de longueur paire.
4 A∗ aA∗ est le langage des mots ayant au moins une occurrence de a.
5 A∗ abA∗ est le langage des mots ayant au moins une occurrence du facteur ab.
6 A∗ aA∗ bA∗ est le langage des mots ayant au moins une occurrence de a puis
ensuite une occurrence d’un b.
7 (ab)∗ est le langage des mots commençant par a, finissant par b et n’ayant pas
deux a ou deux b consécutifs.
Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 30 / 32
Langages Réguliers

Langages Réguliers

Exercice 2
Dans chacun des cas suivants, exprimer, en langage naturel, le
langage dénoté par l’expression régulière correspondante :
1 E1 = c ∗ (a + (bc ∗ ))∗ sur l’alphabet X = {a, b, c} ?
2 E2 = (0 + )(1 + 10)∗ sur l’alphabet X = {0, 1} ?
3 E3 = (0 + 110 + 10)∗ (11 + 1 + ) sur l’alphabet X = {0, 1} ?

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 31 / 32


Langages Réguliers

Langages Réguliers

Exercice 2
Dans chacun des cas suivants, exprimer, en langage naturel, le
langage dénoté par l’expression régulière correspondante :
1 E1 = c ∗ (a + (bc ∗ ))∗ sur l’alphabet X = {a, b, c} ?
2 E2 = (0 + )(1 + 10)∗ sur l’alphabet X = {0, 1} ?
3 E3 = (0 + 110 + 10)∗ (11 + 1 + ) sur l’alphabet X = {0, 1} ?

Solution
1 E1 dénote les mots sur X ne contenant pas ac comme facteur,
puisque chaque occurrence de a est suivie d’une occurrence de b
ou de a.
2 E2 dénote les mots ne contenant pas deux 0 consécutifs.
3 E3 représente les mots sur {0, 1} ne contenant pas comme
facteur 111.
Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 31 / 32
Langages Réguliers

Langages Réguliers

Exercice 3
Montrons que (a∗ b)∗ ∪ (b∗ a)∗ = (a ∪ b)∗

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 32 / 32


Langages Réguliers

Langages Réguliers
Exercice 3
Montrons que (a∗ b)∗ ∪ (b∗ a)∗ = (a ∪ b)∗

Exercice- Solution
(a∗ b)∗ ∪ (b∗ a)∗ ⊂ (a ∪ b)∗ puisque (a ∪ b)∗ dénote l’ensemble de tous les mots sur
{a, b}.
A-t-on (a ∪ b)∗ ⊂ (a∗ b)∗ ∪ (b∗ a)∗ ?
Soit ω = ω1 ω2 . . . ωn ∈ (a ∪ b)∗ montrons que ω ∈ (a∗ b)∗ ∪ (b∗ a)∗
4 cas se présentent :
1 ω = an donc ω ∈ (εa)∗ ⊂ (b∗ a)∗
2 ω = bn donc ω ∈ (εb)∗ ⊂ (a∗ b)∗
3 ω contient des a et des b et se termine par b. On a alors :
ω = a . . ab} b
| . {z . . b} a
| .{z . . ab} b
| . {z . . b}
| .{z
a∗ b (a∗ b)∗ a∗ b (a∗ b)∗
ce qui montre que ω ∈ (a∗ b)∗ ∪ (b∗ a)∗
4 ω contient des a et des b et se termine par a. Même décomposition que (3) mais
en utilisant (b∗ a)∗ .

Yousra Hlaoui (FST-IF4) Mots et Langages 2019-2020 32 / 32

Vous aimerez peut-être aussi