Definiciones
Definición 1 : Sea un conjunto de palabras. Decimos que está muy bien libre de prefijos infinitos (nombre inventado a los efectos de esta respuesta) si hay palabras y tales que:SSu 0 , ... , u n , ... v 1 , ... , v n , ...u0,…,un,…v1,…,vn,…
Para cada , y no están vacías y comienzan con letras distintas;n≥1unvn
S={u0v1,…,u0…unvn+1,…} .
La intuición es que puede poner todas esas palabras en un árbol con raíces infinitas ( ■
es la raíz, ▲
son las hojas y •
son los nodos interiores restantes) de la siguiente forma, de modo que las palabras en son exactamente las etiquetas de los caminos de la raíz a una hoja:S
u₀ u₁ u₂
■-----•-----•-----•⋅⋅⋅
| | |
| v₁ | v₂ | v₃
| | |
▲ ▲ ▲
Proposición 1.1 : Un conjunto sin prefijos muy bien infinito no tiene prefijos.
Prueba de la proposición 1.1 : Suponga que es un prefijo estricto de . Hay dos casos:u0…unvn+1u0…umvm+1
Si entonces es un prefijo de . Esto es imposible porque y tienen primeras letras distintas.n<mvn+1un+1…umvm+1un+1vn+1
Si entonces es un prefijo de . Esto es imposible porque y tienen primeras letras distintas.n>mum+1…unvn+1vm+1um+1vm+1
Proposición 1.2 : Un conjunto libre de prefijos muy infinito es infinito.
Prueba de la proposición 1.2 : En la prueba 1.1, mostramos que si entonces y no son comparables para el orden de prefijo. Por lo tanto, no son iguales.n≠mu0…unvn+1u0…umvm+1
Prueba principal
Proposición 2 : cualquier conjunto sin prefijo infinito contiene un buen conjunto sin prefijo infinito.
Proposición 3 : un lenguaje contiene un conjunto libre de prefijos infinito si y solo si contiene un conjunto libre de prefijos infinito.
Prueba a continuación.
Prueba de la proposición 3 : por la proposición 2. por las proposiciones 1.1 y 1.2.⇒⇐
Propuesta 4 : El conjunto de subconjuntos sin prefijos de un lenguaje regular (codificado como una palabra infinita ) es -regular (y el tamaño del autómata Büchi que lo reconoce es polinómico en el tamaño del NFA que reconoce el lenguaje regular).u0¯¯¯¯¯v1ˆu1¯¯¯¯¯v2ˆu2¯¯¯¯¯…ω
Prueba a continuación.
Teorema 5 : Decidir si un lenguaje regular descrito por un NFA contiene un subconjunto infinito libre de prefijos puede hacerse a tiempo polinomial en el tamaño del NFA.
Prueba del teorema 5 : mediante la proposición 3, es suficiente probar si contiene un subconjunto libre de prefijos muy bien infinito, que se puede hacer en tiempo polinomial construyendo el autómata Büchi dado por la proposición 4 y probando la falta de vacío de su lenguaje (que se puede hacer en tiempo lineal en el tamaño del autómata Büchi).
Prueba de proposición 2
Lema 2.1 : Si es un conjunto libre de prefijos, entonces también lo es (para cualquier palabra ).Sw−1Sw
Prueba 2.1 : por definición.
Lema 2.2 : Sea un conjunto infinito de palabras. Deje sea la más larga común prefijo a todas las palabras en . y tienen el mismo cardenal.Sw:=lcp(Sn)SSw−1S
Prueba 2.2 : Definir por . Está bien definido por definición de , inyectivo por definición de y sobrejetivo por definición de .f:w−1S→Sf(x)=wxw−1Sfw
Prueba de la proposición 2 : Construimos y por inducción en , con la hipótesis de inducción compuesta de las siguientes partes:unvnnHn
(P1) Para todos los , ;k∈{1,…,n}u0…uk−1vk∈S
(P2) Para todos los , y no están vacíos y comienzan con letras distintas;k∈{1,…,n}ukvk
(P3) Sn:=(u0…un)−1S es infinito;
(P4) No hay un prefijo no vacío común a todas las palabras en . En otras palabras: no hay letra tal que .SnaSn⊆aΣ∗
Observación 2.3 : Si tenemos secuencias que verifican sin , podemos modificar para que también satisfagan . De hecho, es suficiente reemplazar por . no se ve afectado. es trivial. es por construcción. es por lema 3.Hn(P4)un(P4)ununlcp(Sn)(P1)(P2)(P4)(P3)
Ahora construimos las secuencias por inducción en :n
Inicialización: es verdadero tomando (es decir, tomando y aplicando el comentario 3.1).H0u0:=lcp(S)u0:=ε
Paso de inducción: supongamos que tenemos las palabras y modo que para algunos . Construiremos y manera que .u1,…,unv1,…,vnHnnun+1vn+1Hn+1
Dado que es infinito y libre de prefijos (por el lema 1), no contiene modo que . Como es infinito, hay una letra tal que es infinito. Por , hay una letra distinta de tal que no está vacía. Elija . Tomar como satisfaría , ySnεSn=⨆a∈Σ(Sn∩aΣ∗)SnaSn∩aΣ∗(P4)baSn∩bΣ∗vn+1∈Sn∩bΣ∗un+1a(P1)(P2)(P3)entonces aplicamos el comentario 3.1 para obtener : .(P4)un+1:=alcp(a−1Sn)
(P1) u1…unvn+1∈u1…un(Sn∩bΣ∗)⊆S .
(P2) Por definición de y .un+1vn+1
(P3) a−1Sn es infinito por definición de , y es por lo tanto infinito por el lema 3.aSn+1
(P4) Por definición de .un+1
Prueba de proposición 4
Prueba de la proposición 4 : Sea un NFA.A=(Q,→,Δ,q0,F)
La idea es la siguiente: leemos , recordamos dónde estamos, leemos , retrocedemos a donde estábamos después de leer , leemos , recordamos dónde estamos ... También recordamos la primera letra que se leyó en cada para asegurarse de que comience con otra letra.u0v1u0u1vnun
Me han dicho que esto podría ser más fácil con autómatas de múltiples cabezales, pero no estoy muy familiarizado con el formalismo, así que lo describiré usando un autómata Büchi (con solo una cabeza).
Configuramos , donde los símbolos se usarán para describir los sy los símbolos con sombreros para los s.Σ′:=Σ¯¯¯¯⊔Σˆukvk
Configuramos , donde:Q′:=Q×({⊥}⊔(Q×Σ))
(q,⊥) significa que estás leyendo alguna ;un
(q,(p,a)) significa que terminó de leer algo de en el estado , que ahora está leyendo que comienza con una , y que una vez que haya terminado, volverá a para leer un que no comienza con .unpvn+1apun+1a
Establecemos porque comenzamos leyendo .q′0:=(q0,⊥)u0
Definimos como .F′F×Q×Σ
El conjunto de transiciones se define de la siguiente manera:→′
" " Para cada transición , agregue ;unq→aq′(q,⊥)→′a¯¯¯(q′,⊥)
" a " Para cada transición , agregue ;unvn+1q→aq′(q,⊥)→′aˆ(q′,(q,a))
" " Para cada transición , agregue ;vnq→aq′(q,(p,a))→′aˆ(q′,(p,a))
" to " Para cada transición donde es final y la letra distinta de , add ;vnunp→ap′pba(q,(p,b))→′a¯¯¯(p′,⊥)
Lema 4.1 : es aceptado por iff para cada , y no están vacías y comienzan con letras distintas, y para cada , .u0¯¯¯¯¯v1ˆu1¯¯¯¯¯v2ˆ…un¯¯¯¯¯vn+1ˆA′n≥1unvnn≥0u0…unvn+1∈L(A)
Prueba del lema 4.1 : Dejado al lector.