È la lingua


8

È la lingua L={0n1mn and m are co-prime} senza contesto?

Immagino che non sia privo di contesto perché sembra troppo complicato per un PDA decidere se 2 numeri sono corretti o meno.

Ho provato a usare il lemma del pompaggio senza risultati.

Qualsiasi aiuto sarebbe felicemente apprezzato.

Modificare:

Ecco uno dei miei tentativi falliti con il lemma del pompaggio:

Permettere Nessere una costante. Prendi un numero primop tale che p>N! e poi prendi la parola z=0p1p+N!L. Permetterez=uvwxy essere una decomposizione di z soddisfacendo le condizioni nel lemma di pompaggio.

Se vx contiene solo zeri quindi |vx|=k è un numero intero compreso tra 1 e N. Definirem come m=N!/k. Peri=m+1 la parola uviwxiy=0p+N!1p+N!L

Tuttavia, non sono riuscito a trovare un numero intero i per gli altri casi di decomposizione.


1
Benvenuti in Informatica ! Permettimi di indirizzarti verso le nostre domande di riferimento che potrebbero coprire il tuo problema. Esamina le domande correlate elencate di seguito, prova a risolvere nuovamente il problema e modifica per includere i tuoi tentativi insieme ai problemi specifici che hai riscontrato. Penso che il teorema di Parikh potrebbe risolversi per te.
Raffaello

2
Parikh dovrebbe funzionare, ma anche il pompaggio standard / Ogden, giusto?
Ran G.

In realtà è una domanda a quiz. Dato che non abbiamo imparato il teorema di Parikh, c'è probabilmente un modo per dimostrare che non è privo di contesto con il lemma di pompaggio o con proprietà di chiusura.
Robert777,

@Raphael, in questo caso il teorema di Parikh in realtà non aggiunge nulla oltre il lemma di pompaggio diretto (cioè, da 0n1m può ottenere tutto 0n+ka1m+kb per alcuni a, b non entrambi zero e k1). Ma non vedo alcun modo per forzaregcd(n+ka,m+kb)1.
vonbrand,

@vonbrand Potremmo invece lavorare su ; vedi qui . L¯L(01)
Raffaello

Risposte:


4

Ridicolo che non l'ho visto prima ...

La prova che il linguaggio (chiamalo ) non è privo di contesto è per contraddizione. Supponiamo che sia privo di contesto, dal lemma di pompaggio per i CFG c'è una costante tale che ogni stringa tale che possa essere scritta con tale che per tutti la stringa . Prendi numeri primi diversi (tale che ) e e prendi . La stringa pompata saràLLNσL|σ|Nσ=uvxyzvyϵk0uvkxykzLm,ngcd(m,n)=1m,n>2Nσ=0m1n0m+ka1n+kb per alcune costanti , , non entrambe zero, e tale che e (abbiamo tra l'altro sono stati selezionati , ). Il caso di uno di questi zero era coperto da OP, quindi considera . Adesso:aba<mb<na,bN<m/2,n/2mna,b0

m+ka0(modn)n+kb0(modm)

Questa ha una soluzione unica modulo dal teorema del resto cinese (abbiamo , e siccome è primo, ; allo stesso modo e ), e quindi possiamo scrivere: cioè, . Contraddizione.kmna<nngcd(a,n)=1bm

m+ka0(modmn)n+kb0(modmn)
mngcd(m+ka,n+kb)

Grazie per la tua risposta. Mi è piaciuto il modo in cui ti sei avvicinato a questo. Tuttavia, non capisco come hai usato il teorema del resto cinese se questo può essere applicato solo su un sistema di congruenze lineari del modulo:
xb1(modm1)xb2(modm2)
Robert777,

@ Robert777, basta scrivere e così via. kam(modn)
vonbrand,

1
ma ottieni una congruenza del modulo: e non è lo stesso. Ad esempio se allora la congruenza non ha soluzioni.
axb(modm)
gcd(a,m)|b
Robert777,

1
@ Robert777, hai assolutamente ragione. Modificato per selezionare , primo. Grazie! mn
vonbrand,

Ok, dopo aver usato il teorema del resto cinese, perché possiamo scrivere queste congruenze:
m+ka0(modmn)n+kb0(modmn)
Robert777,
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.