Dimostriamo per prima cosa che ogni stringa di terminali
generata dalla Grammatica G1 e' derivabile in G2.
Ogni stringa di terminali x generata dalla Grammatica G1 èottenuta necessariamente da derivazioni del tipo:
S =>1 b
oppure
S =>n anS =>1 anb con n>0
Ogni stringa della forma anb (n>=0) si puo' generare con la grammatica G2
con una derivazione della forma
S =>1 b se n=0
oppure
S =>1 Ab =>n-1 Aan-1b =>1 anb se n>0
Viceversa, dimostriamo per prima cosa che ogni stringa di terminali
generata dalla Grammatica G2 e' derivabile in G1.
Dalla forma delle produzioni, si puo' vedere che
ogni derivazione nella grammatica G2 a partire da S
deve iniziare necessariamente con
S =>1 b
oppure con
S =>1 Ab
Nel primo caso la derivazione non puo' proseguire, mentre nel secondo puo'
proseguire solamente con A --> Aa oppure con A --> a.
Questo significa che le derivazioni che non terminano direttamente nella stringa "b"
hanno necessariamente la forma
S =>1 Ab =>n-1 Aan-1b =>1 anb con n>0.
Stringhe della forma anb con n>=0 si possono derivare nella grammatica G1
nel modo seguente;
S =>1 b
se n=0
oppure
S =>n anS =>1 anb se n>0
Avendo dimostrato che le stringhe di terminali generabili con G1 sono
gererabili anche con con G2 e viceversa, le due grammatiche sono equivalenti.
Una dimostrazione piu' formale di questa si puo' avere facendo ricorso al principio
di induzione ogni volta che si afferma una proprieta' che valga per ogni n.
Nel caso presente, essendo tali proprieta' abbastanza semplici, si puo' evitare di
fare ricorso al principio di induzione.