Suddividere una lingua regolare infinita in 2 lingue regolari infinite disgiunte


9

Dato qualsiasi linguaggio regolare infinito , come posso dimostrare che può essere partizionato in 2 linguaggi regolari infiniti disgiunti ? Cioè: , e e sono entrambi infiniti e regolari.LLL1,L2L1L2=LL1L2=L1L2

Finora ho pensato a:

  1. usando il lemma del pompaggio in modo tale che ma non è riuscito a dimostrare che sono digiunti o che coprono completamente

    L1={xynzn is even}L2={xymzm is odd}
    L
  2. Usando le normali partizioni linguistiche in classi di equivalenza dijoint, ma non ho capito come determinare se una classe di equivalenza è regolare o infinita.Σ

Risposte:


4

Sia . Il teorema di Parikh mostra che è un insieme eventualmente periodico. Lascia che l'eventuale periodo sia . Poiché è infinito, c'è un offset tale che per tutto . Pertanto la lingua è infinito (contiene tutte le parole di lunghezza per alcuni ), e anche la lingua è infinita (contiene tutto parole di lunghezza per alcuniS={|w|:wL}SLaa+kSk0L1={wL:|w|a(mod2)}a+2kk0L2=LL1a+(2k+1)k0, nonché eventualmente altre parole). Ti faccio mostrare che sono entrambi regolari.L1,L2


Funziona anche con linguaggi senza contesto.
Yuval Filmus,

8

Ogni lingua normale è accettata da un DFA minimo. Per un linguaggio regolare infinito , chiamiamo tale DFA . Considerare qualsiasi stato che può essere visitato più di una volta durante l'elaborazione di una stringa in . Se può essere visitato più di una volta, ne consegue che può essere visitato un numero qualsiasi di volte. Definisci e Questo è un DFA, quindi c'è solo un percorso. Qualsiasi stringa inLMLqLq

L1={wLq is visited an odd number of times}
L0={wLq is visited an even number of times}
Lè accettato dal DFA e deve visitare lo stato un numero di volte (forse zero). Lo stato può essere visitato un numero illimitato di volte; pertanto, sappiamo che ci sono infinite stringhe in (poiché ci sono parole che causano la visita dello stato 1 volta, 3 volte, ecc.) e che ci sono infinitamente stringhe in (poiché ci sono parole che causano il stato da visitare 0 volte, 2 volte, ecc.). Ogni stringa specificata è in o e non può trovarsi in entrambe, quindi . Tuttavia, qualsiasi parola è garantito per essere in uno di questi due insiemi, così .L1L0L1L0L0L1=LL0L1=L

Devo ancora convincere l'OP che le lingue secondarie sono regolari ...
vonbrand,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.