Théorie des langages Expressions régulières

Documents pareils
INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

= constante et cette constante est a.

Calcul différentiel sur R n Première partie

Évaluation et implémentation des langages

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en Énoncé.

C algèbre d un certain groupe de Lie nilpotent.

LE PROCESSUS ( la machine) la fonction f. ( On lit : «fonction f qui à x associe f (x)» )

Le théorème de Thalès et sa réciproque

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

Optimisation Discrète

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

Résolution de systèmes linéaires par des méthodes directes

Continuité et dérivabilité d une fonction

Exercices - Polynômes : corrigé. Opérations sur les polynômes

a et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe le nombre ax + b

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable

1 radian. De même, la longueur d un arc de cercle de rayon R et dont l angle au centre a pour mesure α radians est α R. R AB =R.

Méthodes de quadrature. Polytech Paris-UPMC. - p. 1/48

Activités numériques [13 Points]

Informatique Théorique : Théorie des Langages, Analyse Lexicale, Analyse Syntaxique Jean-Pierre Jouannaud Professeur

Introduction à l étude des Corps Finis

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Cours d Analyse. Fonctions de plusieurs variables

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Résolution d équations non linéaires

Programmation linéaire

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Calculabilité Cours 3 : Problèmes non-calculables.

Théorème du point fixe - Théorème de l inversion locale

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

CH.6 Propriétés des langages non contextuels

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Représentation géométrique d un nombre complexe

Rappels sur les suites - Algorithme

Cours 1 : Qu est-ce que la programmation?

Les BRMS Business Rules Management System. Groupe GENITECH

Problème 1 : applications du plan affine

Fonctions de deux variables. Mai 2011

Sujet 4: Programmation stochastique propriétés de fonction de recours

Cours 02 : Problème général de la programmation linéaire

Planche n o 22. Fonctions de plusieurs variables. Corrigé

Géométrie dans l espace Produit scalaire et équations

3 Approximation de solutions d équations

MIS 102 Initiation à l Informatique

BES WEBDEVELOPER ACTIVITÉ RÔLE

TOUT CE QU IL FAUT SAVOIR POUR LE BREVET

Chapitre 2. Matrices

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

Model checking temporisé

Optimisation des fonctions de plusieurs variables

Items étudiés dans le CHAPITRE N5. 7 et 9 p 129 D14 Déterminer par le calcul l'antécédent d'un nombre par une fonction linéaire

DOCM Solutions officielles = n 2 10.

Nombres premiers. Comment reconnaître un nombre premier? Mais...

Utilisation des tableaux sémantiques dans les logiques de description

Chapitre 3. Les distributions à deux variables

Cours 1 : La compilation

Théorie des Langages

Algorithmes récursifs

CRÉER UN COURS EN LIGNE

M2 IAD UE MODE Notes de cours (3)

Programmation Linéaire - Cours 1

Apprentissage Automatique

LE PRODUIT SCALAIRE ( En première S )

Raisonnements standard et non-standard pour les systèmes décentralisés de gestion de données et de connaissances

Examen optimisation Centrale Marseille (2008) et SupGalilee (2008)

Cours d Informatique

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Raisonnement probabiliste

Rappels et compléments, première partie : Nombres complexes et applications à la géométrie

Chapitre 2. Eléments pour comprendre un énoncé

Initiation à l algorithmique

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

Intégration et probabilités TD1 Espaces mesurés Corrigé

Représentation d un entier en base b

Ecole Technique «Transformation de données documentaires» Poitiers, mars Atelier 1: Sphinx. import, conversion, export de données

Polynômes à plusieurs variables. Résultant

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Construction d un cercle tangent à deux cercles donnés.

Quelques contrôle de Première S

Fonctions linéaires et affines. 1 Fonctions linéaires. 1.1 Vocabulaire. 1.2 Représentation graphique. 3eme

Correction de l examen de la première session

Bases de données documentaires et distribuées Cours NFE04

Fonctions de plusieurs variables

Tâche complexe produite par l académie de Clermont-Ferrand. Mai 2012 LE TIR A L ARC. (d après une idée du collège des Portes du Midi de Maurs)

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Générer du code à partir d une description de haut niveau

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Probabilités sur un univers fini

1 Complément sur la projection du nuage des individus

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

«Bienvenue en Europe» : fiche Apprenant Thème : technologies, innovations et médias

Limites finies en un point

Cours d algorithmique pour la classe de 2nde

CHAPITRE IV Oscillations libres des systèmes à plusieurs degrés de liberté

Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM)

Cours Fonctions de deux variables

Transcription:

Théorie des langages Expressions régulières Elise Bonzon http://web.mi.parisdescartes.fr/ bonzon/ elise.bonzon@parisdescartes.fr 1 / 30

Expressions régulières 1 Introduction 2 Définitions 3 Le théorème d Arden 4 Automates et expressions régulières 5 Caractérisation des langages réguliers 6 Au delà des langages réguliers 2 / 30

Introduction Expressions régulières 1 Introduction 2 Définitions 3 Le théorème d Arden 4 Automates et expressions régulières 5 Caractérisation des langages réguliers 6 Au delà des langages réguliers 3 / 30

Introduction (Re)mise en contexte Un compilateur est un programme qui prend en entrée une donnée textuelle source (programme, donnée xml, fichier de configuration, etc) la reconnaît (l analyse) pour vérifier sa correction émet éventuellement un message d erreur le traduit dans un langage cible programme source Compilateur programme cible messages d erreur 4 / 30

Introduction (Re)mise en contexte Compiler : Définir rigoureusement et reconnaître algorithmiquement (pour les langages source et cible) : leur vocabulaire ou lexique : les mots autorisés - analyse lexicale leur syntaxe : la structure des phrases autorisées - analyse syntaxique leur sémantique : la signification des phrases autorisées - analyse sémantique On se situe au niveau de l analyse lexicale Problème : étant donné un langage, comment décrire tous les mots acceptables? Comment décrire un langage? Utiliser des expressions régulières (pour certains types de langages) 5 / 30

Introduction (Re)mise en contexte Compiler : Définir rigoureusement et reconnaître algorithmiquement (pour les langages source et cible) : leur vocabulaire ou lexique : les mots autorisés - analyse lexicale leur syntaxe : la structure des phrases autorisées - analyse syntaxique leur sémantique : la signification des phrases autorisées - analyse sémantique On se situe au niveau de l analyse lexicale Problème : étant donné un langage, comment décrire tous les mots acceptables? Comment décrire un langage? Utiliser des expressions régulières (pour certains types de langages) 5 / 30

Introduction (Re)mise en contexte Compiler : Définir rigoureusement et reconnaître algorithmiquement (pour les langages source et cible) : leur vocabulaire ou lexique : les mots autorisés - analyse lexicale leur syntaxe : la structure des phrases autorisées - analyse syntaxique leur sémantique : la signification des phrases autorisées - analyse sémantique On se situe au niveau de l analyse lexicale Problème : étant donné un langage, comment décrire tous les mots acceptables? Comment décrire un langage? Utiliser des expressions régulières (pour certains types de langages) 5 / 30

Définitions Expressions régulières 1 Introduction 2 Définitions 3 Le théorème d Arden 4 Automates et expressions régulières 5 Caractérisation des langages réguliers 6 Au delà des langages réguliers 6 / 30

Définitions Langages réguliers Langages réguliers L ensemble R des langages réguliers sur un alphabet Σ est le plus petit ensemble (qui contient le moins d éléments) des langages satisfaisant les conditions : 1. R et {ɛ} R 2. a Σ, {a} R 3. Si A, B R, alors A B R, A.B R et A R 7 / 30

Définitions Expressions régulières Expressions régulières Les expressions régulières sur un alphabet Σ sont les règles formées par les règles suivantes : 1. et ɛ sont des expressions régulières 2. a Σ, a est une expression régulière 3. Si α et β sont des expressions régulières alors (α + β) (α.β) sont des expressions régulières (α) 8 / 30

Définitions Expressions régulières Expressions régulières Les expressions régulières sur un alphabet Σ sont les règles formées par les règles suivantes : 1. et ɛ sont des expressions régulières 2. a Σ, a est une expression régulière 3. Si α et β sont des expressions régulières alors (α + β) (α.β) sont des expressions régulières (α) Priorité dans l ordre décroissant : *,., + 8 / 30

Définitions Expressions régulières Langage représenté par une expression régulière Soit r une expression régulière. L(r) est le langage représenté par r. 1. L( ) =, L(ɛ) = {ɛ} 2. a Σ, L(a) = {a} 3. L(α, β) = L(α) L(β) = L(α) + L(β) 4. L(α.β) = L(α).L(β) 5. L((α) ) = (L(α)) 9 / 30

Définitions Expressions régulières Théorème Un langage est régulier si et seulement si il peut être dénoté par une expression régulière. 10 / 30

Définitions Expressions régulières Théorème Un langage est régulier si et seulement si il peut être dénoté par une expression régulière. Le langage L(M) engendré par l automate M suivant est un langage régulier. a,b a,b a 0 1 L(M) = (a + b) a(a + b) 10 / 30

Définitions Expressions régulières Egalité d expressions régulières Deux expressions régulières sont égales si elles représentent le même langage. 11 / 30

Définitions Expressions régulières Egalité d expressions régulières Deux expressions régulières sont égales si elles représentent le même langage. Exemple : r = r + ɛ car ɛ r 11 / 30

Définitions Propriétés des expressions régulières Soient r, s et t trois expressions régulières sur le même alphabet Σ. 1. r + s = s + r 2. r + = + r = r 3. r + r = r 4. (r + s) + t = r + (s + t) = r + s + t 5. r.ɛ = ɛ.r = r 6. r. =.r = 7. (r.s).t = r.(s.t) = r.s.t 8. r.(s + t) = rs + rt 12 / 30

Définitions Propriétés des expressions régulières Soient r, s et t trois expressions régulières sur le même alphabet Σ. 9. r = (r ) = r r = (ɛ + r) = r (r + ɛ) = (r + ɛ)r = ɛ + rr = ɛ + r r 10. (r + s) = (r s ) = (r s) r = (s r) s = r (sr ) 11. r(sr) = (rs) r 12. (r s) = ɛ + (r + s) s 13. (rs ) = ɛ + r(r + s) 14. (r + ɛ) (r + ɛ) + s = sr 15. rr = r r = r + 13 / 30

Le théorème d Arden Expressions régulières 1 Introduction 2 Définitions 3 Le théorème d Arden 4 Automates et expressions régulières 5 Caractérisation des langages réguliers 6 Au delà des langages réguliers 14 / 30

Le théorème d Arden Le théorème d Arden Théorème d Arden Une équation sur les langages de la forme X = AX + B, où ɛ A, a une solution unique X = A B 15 / 30

Le théorème d Arden Le théorème d Arden Théorème d Arden Une équation sur les langages de la forme X = AX + B, où ɛ A, a une solution unique X = A B Si ɛ A, A B est une solution mais ce n est pas une solution unique. (A B est inclus dans toutes les solutions.) 15 / 30

Le théorème d Arden Le théorème d Arden Théorème d Arden Une équation sur les langages de la forme X = AX + B, où ɛ A, a une solution unique X = A B Si ɛ A, A B est une solution mais ce n est pas une solution unique. (A B est inclus dans toutes les solutions.) Démonstration : 1. X = A B est solution : AX + B = A.A B + B = (A.A + ɛ)b = A B 2. A B est solution unique : si Y est solution, alors Y est de la forme A B. 15 / 30

Automates et expressions régulières Expressions régulières 1 Introduction 2 Définitions 3 Le théorème d Arden 4 Automates et expressions régulières 5 Caractérisation des langages réguliers 6 Au delà des langages réguliers 16 / 30

Automates et expressions régulières Intérêt du théorème d Arden Grâce au Théorème d Arden, il est possible de résoudre un système d équations et d obtenir une expression régulière qui représente le langage reconnu par l automate. 17 / 30

Automates et expressions régulières Transformation d un automate en ER : le théorème d Arden a a,b b q 0 q b 1 q 2 a L 0 = al 0 + bl 1 L 1 = al 0 + bl 2 L 2 = al 2 + bl 2 + ɛ 18 / 30

Automates et expressions régulières Transformation d un automate en ER : le théorème d Arden a a,b b q 0 q b 1 q 2 a L 0 = al 0 + bl 1 L 1 = al 0 + bl 2 L 2 = al 2 + bl 2 + ɛ L 0 = (a + ba) bb(a + b) 18 / 30

Automates et expressions régulières Transformation d un automate en ER : élimination d états Méthode d élimination d état (algorithme BMC) On cherche une expression régulière dénotant le langage reconnu par un automate M. On procède par suppression successive de transitions et d états : 1. Ajouter à M deux nouveaux états, notés α et ω, et les transitions (α, ɛ, q 0) pour q 0 l état initial; et (q n, ɛ, ω) pour q n F. 2. Itérer les réductions suivantes tant que possible : s il existe deux transitions (q i, x, q j ) et (q i, y, q j ), les remplacer par la transition (q i, x + y, q j ) supprimer un état q (autre que α et ω) et remplacer, pour tous les états p, r q, les transitions (p, x, q), (q, y, q), (q, z, r), par la transition (p, xy z, r). Cet algorithme termine car on diminue le nombre de transitions et d états, jusqu à obtenir une seule transition (α, e, ω). e est alors une expression régulière pour le langage L(M). 19 / 30

Automates et expressions régulières Transformation d un automate en ER : élimination d états a b a 1 b 0 b a 2 20 / 30

Automates et expressions régulières Transformation d un automate en ER : élimination d états a b a 1 b 0 b a 2 ɛ ɛ α ω 20 / 30

Automates et expressions régulières Transformation d un automate en ER : élimination d états a b a 1 b 0 b a 2 ɛ ɛ α ω 20 / 30

Automates et expressions régulières Transformation d un automate en ER : élimination d états a b a 1 b 0 b a 2 ɛ ɛ α ω 20 / 30

Automates et expressions régulières Transformation d un automate en ER : élimination d états b aa b aa b α 0 2 ω ɛ ɛ b 20 / 30

Automates et expressions régulières Transformation d un automate en ER : élimination d états b aa b aa b α 0 2 ω ɛ ɛ b 20 / 30

Automates et expressions régulières Transformation d un automate en ER : élimination d états b aa b aa b α 0 2 ω ɛ ɛ b 20 / 30

Automates et expressions régulières Transformation d un automate en ER : élimination d états aa b α b aa b 2 ɛ ω bb aa b 20 / 30

Automates et expressions régulières Transformation d un automate en ER : élimination d états aa b α b aa b 2 ɛ ω bb aa b 20 / 30

Automates et expressions régulières Transformation d un automate en ER : élimination d états aa b + bb aa b α 2 ω b aa b ɛ 20 / 30

Automates et expressions régulières Transformation d un automate en ER : élimination d états aa b + bb aa b α 2 ω b aa b ɛ 20 / 30

Automates et expressions régulières Transformation d un automate en ER : élimination d états b aa b(aa b + bb aa b) α ω 20 / 30

Automates et expressions régulières Transformation d un automate en ER : élimination d états α b aa b(aa b + bb aa b) ω b aa b(aa b + bb aa b) = b a + b(a + b + b + a + b) R. 15. : rr = r + 21 / 30

Automates et expressions régulières Transformation d un automate en ER : élimination d états α b aa b(aa b + bb aa b) ω b aa b(aa b + bb aa b) = b a + b(a + b + b + a + b) R. 15. : rr = r + = b a + b((ɛ + b + )a + b) 21 / 30

Automates et expressions régulières Transformation d un automate en ER : élimination d états α b aa b(aa b + bb aa b) ω b aa b(aa b + bb aa b) = b a + b(a + b + b + a + b) R. 15. : rr = r + = b a + b((ɛ + b + )a + b) = b a + b(b a + b) 21 / 30

Automates et expressions régulières Transformation d un automate en ER : élimination d états α b aa b(aa b + bb aa b) ω b aa b(aa b + bb aa b) = b a + b(a + b + b + a + b) R. 15. : rr = r + = b a + b((ɛ + b + )a + b) = b a + b(b a + b) = (b a + b) b a + b R. 15. : rr = r r 21 / 30

Automates et expressions régulières Transformation d un automate en ER : élimination d états α b aa b(aa b + bb aa b) ω b aa b(aa b + bb aa b) = b a + b(a + b + b + a + b) R. 15. : rr = r + = b a + b((ɛ + b + )a + b) = b a + b(b a + b) = (b a + b) b a + b R. 15. : rr = r r = (b + a + b) a + b R. 10. : (r s) r = (r + s) 21 / 30

Automates et expressions régulières Transformation d un automate en ER : élimination d états α b aa b(aa b + bb aa b) ω b aa b(aa b + bb aa b) = b a + b(a + b + b + a + b) R. 15. : rr = r + = b a + b((ɛ + b + )a + b) = b a + b(b a + b) = (b a + b) b a + b R. 15. : rr = r r = (b + a + b) a + b R. 10. : (r s) r = (r + s) = (a b) a + b r + s + r = s + r + r = r(s + + ɛ) = s r 21 / 30

Automates et expressions régulières Transformation d un automate en ER : élimination d états α b aa b(aa b + bb aa b) ω b aa b(aa b + bb aa b) = b a + b(a + b + b + a + b) R. 15. : rr = r + = b a + b((ɛ + b + )a + b) = b a + b(b a + b) = (b a + b) b a + b R. 15. : rr = r r = (b + a + b) a + b R. 10. : (r s) r = (r + s) = (a b) a + b r + s + r = s + r + r = r(s + + ɛ) = s r = (a b) a ab R. 15. : r r = r + 21 / 30

Automates et expressions régulières Transformation d un automate en ER : élimination d états α b aa b(aa b + bb aa b) ω b aa b(aa b + bb aa b) = b a + b(a + b + b + a + b) R. 15. : rr = r + = b a + b((ɛ + b + )a + b) = b a + b(b a + b) = (b a + b) b a + b R. 15. : rr = r r = (b + a + b) a + b R. 10. : (r s) r = (r + s) = (a b) a + b r + s + r = s + r + r = r(s + + ɛ) = s r = (a b) a ab R. 15. : r r = r + = (a + b) ab R. 10. : (r s) r = (r + s) 21 / 30

Automates et expressions régulières Transformation d une ER en automate Théorème Pour chaque expression régulière, il existe un automate fini qui reconnaît cette expression 22 / 30

Automates et expressions régulières Transformation d une ER en automate : le théorème d Arden Soit L = a b(a + b) + ba 23 / 30

Automates et expressions régulières Transformation d une ER en automate : le théorème d Arden Soit L = a b(a + b) + ba On obtient : L =al 3 + bl 1 + bl 2 L 1 =al 1 + bl 1 + ɛ L 2 =al 2 + ɛ L 3 =al 3 + bl 1 23 / 30

Automates et expressions régulières Transformation d une ER en automate : le théorème d Arden Soit L = a b(a + b) + ba On obtient : L =al 3 + bl 1 + bl 2 L 1 =al 1 + bl 1 + ɛ L 2 =al 2 + ɛ L 3 =al 3 + bl 1 b 0 2 a a b a b 3 1 a,b 23 / 30

Caractérisation des langages réguliers Expressions régulières 1 Introduction 2 Définitions 3 Le théorème d Arden 4 Automates et expressions régulières 5 Caractérisation des langages réguliers 6 Au delà des langages réguliers 24 / 30

Caractérisation des langages réguliers Caractérisation des langages réguliers Les langages réguliers peuvent être caractérisés de 4 façons. En utilisant : 1. Les expressions régulières 2. Les automates finis déterministes 3. Les automates finis non déterministes 4. Les grammaires régulières (linéaires à droite) Pour démontrer qu un langage est régulier, il suffit donc de le décrire à l aide de l une de ces caractérisations Pour démontrer des propriétés sur les langages réguliers, il est possible de choisir la caractérisation la mieux adaptée 25 / 30

Caractérisation des langages réguliers Caractérisation des langages réguliers Les langages réguliers peuvent être caractérisés de 4 façons. En utilisant : 1. Les expressions régulières 2. Les automates finis déterministes 3. Les automates finis non déterministes 4. Les grammaires régulières (linéaires à droite) Pour démontrer qu un langage est régulier, il suffit donc de le décrire à l aide de l une de ces caractérisations Pour démontrer des propriétés sur les langages réguliers, il est possible de choisir la caractérisation la mieux adaptée 25 / 30

Caractérisation des langages réguliers Caractérisation des langages réguliers Les langages réguliers peuvent être caractérisés de 4 façons. En utilisant : 1. Les expressions régulières 2. Les automates finis déterministes 3. Les automates finis non déterministes 4. Les grammaires régulières (linéaires à droite) Pour démontrer qu un langage est régulier, il suffit donc de le décrire à l aide de l une de ces caractérisations Pour démontrer des propriétés sur les langages réguliers, il est possible de choisir la caractérisation la mieux adaptée 25 / 30

Caractérisation des langages réguliers Rappels sur les langages réguliers Soient L, L 1 et L 2 trois langages réguliers. Les langages suivants sont réguliers : L 1.L 2 L 1 + L 2 L L L 1 L 2 L R (miroir de L) 26 / 30

Au delà des langages réguliers Expressions régulières 1 Introduction 2 Définitions 3 Le théorème d Arden 4 Automates et expressions régulières 5 Caractérisation des langages réguliers 6 Au delà des langages réguliers 27 / 30

Au delà des langages réguliers Observations de base 1. Tous les langages finis sont réguliers 2. Un langage non régulier comporte un nombre infini de mots Attention! La réciproque n est pas vraie : Σ est un langage infini et régulier 3. Si un langage comporte un nombre infini de mots, il n y a pas de borne à la taille des mots du langage 4. Tout langage régulier est accepté par un automate fini qui comporte un nombre fini d états 5. Soit L un langage régulier infini, reconnu par un automate à m états. Soit w L tel que w m. Au cours de la reconnaissance de w par l automate, il faut nécessairement passer au moins 2 fois par un même état. 28 / 30

Au delà des langages réguliers Pumping theorem Pumping theorem (dit aussi théorème de pompage ou théorème du gonflement) Soit L un langage régulier infini sur l alphabet Σ. Alors, il existe p 0 tel que w L tel que w p, il existe x, u, y Σ, u ɛ et xu p tels que w = xuy et n 0, xu n y L 29 / 30

Au delà des langages réguliers Pumping theorem Pumping theorem (dit aussi théorème de pompage ou théorème du gonflement) Soit L un langage régulier infini sur l alphabet Σ. Alors, il existe p 0 tel que w L tel que w p, il existe x, u, y Σ, u ɛ et xu p tels que w = xuy et n 0, xu n y L Autre formulation du théorème de pompage Soit L un langage régulier infini sur l alphabet Σ, et soit w L tel que w Q, où Q est l ensemble des états d un automate déterministe acceptant L. Alors, x, u, y Σ, avec u ɛ, xu Q, et w = xuy. On a alors k 0, xu k y L. 29 / 30

Au delà des langages réguliers Pumping theorem Pumping theorem (dit aussi théorème de pompage ou théorème du gonflement) Soit L un langage régulier infini sur l alphabet Σ. Alors, il existe p 0 tel que w L tel que w p, il existe x, u, y Σ, u ɛ et xu p tels que w = xuy et n 0, xu n y L Autre formulation du théorème de pompage Soit L un langage régulier infini sur l alphabet Σ, et soit w L tel que w Q, où Q est l ensemble des états d un automate déterministe acceptant L. Alors, x, u, y Σ, avec u ɛ, xu Q, et w = xuy. On a alors k 0, xu k y L. On utilise ces théorèmes pour montrer qu un langage n est pas régulier. 29 / 30

Au delà des langages réguliers Montrer qu un langage n est pas régulier : exemple Soit Σ = {a, b}, L = {a n b n n 0}. Supposons L régulier. Il existe donc p 0 tel que w L et w p, et il est possible de décomposer w = xuy. On sait de plus que n 0, xu n y L. Soit w = a p b p = xuy. On a bien w = 2p p. Il y a trois possibilités : 1. u a : w = a r }{{} x a s }{{} u }{{} a t b p, avec r + s + t = p et s > 0. y On a donc n 0, xu n y L. Prenons n = 0. On a a r a t b p L. Contradiction. 2. u b. Raisonnement identique. 3. u = a s b t : w = }{{} a r }{{} a s b t }{{} b q, avec r + s = t + q = p. x u y On a donc n 0, xu n y L. Prenons n = 2. On a a r a s b t a s b t b q L. Contradiction. Le théorème de gonflement n est pas vérifié. Ce langage n est donc pas un langage régulier. 30 / 30