Usted tiene que demostrar dos cosas:
Para cada una de las w∈{a,b}∗ si G∗⇒w,|w|a=|w|b.
Para cada una de las w∈{a,b}∗ si |w|a=|w|b,G∗⇒w.
A veces una prueba por inducción es más fácil si usted probar algo más fuerte que el resultado deseado. Yo probaría (1) en la prueba de los siguientes más fuerte
Reclamo: Para u∈{S,A,B,a,b}∗ deje α(u)=|u|a+|u|Aβ(u)=|u|b+|u|B. Vamos S=u0⇒u1⇒u2⇒⋯⇒un be a derivation in G, where uk∈{S,A,B,a,b}∗ for k=0,…,n. Then α(uk)=β(uk) for k=0,…,n. In particular, if un∈{a,b}∗, then |w|A=|w|B=0, so |un|a=α(un)=β(un)=|un|b, and therefore un\enL.
Me gustaría probar esto por inducción en n, la longitud de la derivación. La única derivación de longitud 1 es la que ya tiene, S⇒ϵ, e α(S)=β(S)=α(ϵ)=β(ϵ)=0, por lo que tenemos la inducción comenzó bien. Ahora supongamos que la Afirmación es verdadera para todas las derivaciones de longitud en la mayoría de las n, y vamos a S=u0⇒u1⇒u2⇒⋯⇒un⇒un+1 be a derivation of length n+1. Then S=u0⇒u1⇒u2⇒⋯⇒un is a derivation of length n, so by the induction hypothesis α(uk)=β(uk) for k=0,…,n. To complete the induction step you must show that α(un+1)=β(un+1). You do this by investigating how each of the productions of G changes α(un) and β(un). Suppose, for instance, that the derivation un⇒un+1 uses the production \abAA. Then |un+1|a=|un|a, |un+1|A=|un|A+1, |un+1|b=|un|b+1, and |un+1|B=|un|B, so α(un+1)=α(un)+1=β(un)+1=β(un+1), como se desee. Voy a dejar las otras seis producciones.
Añadido: La prueba de (2) es por inducción sobre la longitud de w, que por supuesto debe ser, incluso si |w|a=|w|b. Tienes esto empezó bien: si |w|=0,w=ϵ, e G∗⇒ϵ.
Supongamos ahora que si |w|<2n|w|a=|w|b,G∗⇒w; esa es su hipótesis de inducción. Deje w∈{a,b} ser tal que |w|=2n|w|a=|w|b=n; usted necesita para demostrar que G∗⇒w.
Hay dos casos. El más simple es cuando se w es la concatenación de dos cortas palabras pertenecientes a L; en ese caso, simplemente podemos "pegar" las derivaciones de la corta de palabras. He aquí una manera de hacer que precisa.
Deje w=s1s2…s2n, donde cada una de las sk∈{a,b}. Para k=1,…,2n vamos m(k)=|s1…sk|a−|s1…sk|b, the excess of un's over b's in the first k letters of w. Suppose that m(k)=0 for some k<2n; then k is even, and the words u=s1…sk and v=sk+1…s2n belong to L. (Why?) By the induction hypothesis, therefore, there are derivations S=u0⇒u1⇒⋯⇒up−1⇒up=u and S=v0⇒v1⇒⋯⇒vq−1⇒vq=v. The only terminal production is S→ϵ, so it must be the case that up−1=xSy, where x,y∈{a,b}∗ are such that xy=u. If x=u and y=ϵ, we can simply paste (1) and (2) together: S=u0⇒u1⇒⋯⇒up−1=uS=uv0⇒uv1⇒⋯⇒uvq−1⇒uvq=uv=w, and therefore G∗⇒w, como se desee.
Si y≠ϵ, me afirmación de que la derivación de w puede ser reorganizado de modo que up−1=uS, y, a continuación, podemos pegar el reordenado derivación junto con (2) a ver que G∗⇒w. Cada producción con la excepción de S→ϵ deja un símbolo no terminal en la mano derecha final de la palabra, así que debe haber algo de k<p tal que uk=xS uk+1=x algunos x∈{S,A,B,a,b}∗. A continuación, x=uk+1∗⇒w es un legítimo derivación en G, lo S∗⇒xS∗⇒wS⇒w es un legítimo derivación de w cuyo último paso nos permite pegarlo junto con el (2).
Tenga en cuenta que m(k) m(k+1) siempre difieren en exactamente 1, por lo que si m(k) nunca cambia de signo como k pistas de12n, debe haber alguna k<2n tal que m(k)=0. Ahora supongamos que w no es la concatenación de dos cortas palabras de L; lo que significa que m(k)≠01≤k<2n, lo m(k) no cambia de signo k pistas de12n. Si s1=a,m(1)=1, e m(k)>01≤k<2n: cada apropiado segmento inicial de w a's de b's. Pero sabemos que m(2n)=0, ya que el w∈L, por lo que debe ser el caso de que m(2n−1)=1, e s2n=b. Del mismo modo, si s1=b, luego m(1)=−1, m(k)<0 para 1≤k<2n, cada apropiado segmento inicial de w b's de a's, y s2n=a.
En el primer caso w=aub algunos u∈{a,b}∗, y en el segundo caso w=bua; en cualquier caso, es claro que u∈L. (Por qué?) Por otra parte, |u|<2n, de modo que por la hipótesis de inducción G∗⇒u. Se puede ver cómo modificar la derivación de u para obtener una derivación de w, y de esta manera completar la inducción paso?