È noto che il complemento di è privo di contesto. Ma per quanto riguarda il complemento di ?
È noto che il complemento di è privo di contesto. Ma per quanto riguarda il complemento di ?
Risposte:
Ancora CFL, credo, con un adattamento della dimostrazione classica. Ecco uno schizzo.
Considera , che è il complemento di , con le parole di lunghezza non mod rimosse.
Lascia . Chiaramente, è CFL, dal momento che si può intuire una posizione e considerare che finisce dopo. Mostriamo che .
Quindi, in , questa è la posizione:
o, in altre parole, posizione in . Questo dimostra che .
Se , allora lascia che sia i primi caratteri di , in modo che sia ; è il resto di . Quindi:
quindi allo stesso modo, .
Ecco il modo in cui penso a risolvere questo problema, con un PDA. Secondo me, è intuitivamente più chiaro.
Usiamo il solito trucco di usare lo stack per mantenere un intero avendo un nuovo simbolo "bottom-of-stack" , memorizzando il valore assolutocome numero di contatori nello stack e sgn ( ) in base allo stato del PDA. In questo modo possiamo aumentare o diminuire eseguendo l'operazione appropriata.
L'obiettivo è utilizzare il non determinismo per indovinare le posizioni dei due simboli che si stanno confrontando e utilizzare lo stack per registrare , dove è la distanza tra questi due simboli.
Realizziamo ciò come segue: incrementa per ogni simbolo visto fino a quando non viene scelto il primo simbolo indovinato e registra nello stato. Per ogni successivo simbolo di input, fino a quando decidi di aver visto , diminuisci di ( per la lunghezza di input e per la distanza). Indovina la posizione del secondo simbolo e registra se . Continuare a incrementare per i simboli di input successivi. Accetta se (rilevabile da in alto) e .
La cosa bella di questo è che dovrebbe essere completamente chiaro come estenderlo a poteri arbitrari.
Solo una prospettiva diversa ("orientata alla grammatica") per dimostrare che il complemento di è CF per qualsiasi fisso che usa le proprietà di chiusura.
Prima nota che nel complemento di c'è sempre tale che . Ci concentriamo su e iniziamo con una semplice grammatica CF che genera:
Ad esempio per , abbiamo ,
Quindi applicare la chiusura sotto omomorfismo inverso e unione :
Primo omomorfismo:
Secondo omomorfismo:
è ancora libero dal contesto
Applicare la chiusura con turni ciclici su per ottenere l'insieme di stringhe di lunghezza non della forma :
.
Infine aggiungi l'insieme regolare di stringhe la cui lunghezza non è divisibile per per ottenere esattamente il complemento di :