In un corso di CS che non vi sto prendendo è un esempio di un linguaggio che non è regolare:Perché {a^nb^n | n> = 0} non regolare?
{a^nb^n | n >= 0}
posso capire che non è regolare in quanto non Finite State Automaton/macchina può essere scritto che convalida e accetta questo input poiché manca un componente di memoria. (Si prega di correggermi se ho torto)
Il wikipedia entry on Regular Language elenca anche questo esempio, ma non fornisce una prova (matematica) del perché non è regolare.
Qualcuno mi può illuminare su questo e fornire una prova per questo, o indicare anche me una buona risorsa?
Grazie, proprio quello che stavo cercando. –
l'ultima richiesta richiede spiegazioni migliori. La parola x2yz potrebbe contenere più lettere di un tipo (se y ha più di a che b o vice versa), o duplicarla manderebbe in frantumi l'ordine delle lettere, in cui b dovrebbe venire dopo tutte le a. –
prova incompleta. non hai definito x, y, z. x ha solo la limitazione che | xy | <= p, dove p è la lunghezza di pompaggio. devi dividere la prova in tre casi, con le stringhe y basate su (a | ab | b) perché sia completa. xy potrebbe consistere di più di b: a: x = a, y = b^n, z = b – oligofren