Ya, dan Setelah ( β ) adalah bahasa bebas konteks. Begini cara saya membuktikannya. Pertama, sebuah lemma (yang merupakan inti). Jika L adalah CF maka:Before(β)After(β)L
Before(L,β)={γ | ∃δ.γβδ∈L}
dan
After(L,β)={γ | ∃δ.δβγ∈L}
adalah CF.
Bukti? For membuat transduser T- β kondisi-terbatas non-deterministik yang memindai string, mengeluarkan setiap simbol input yang dilihatnya dan secara simultan mencari β secara deterministik . Setiap kali T β melihat simbol pertama β, ia bercabang secara non-deterministik dan berhenti menghasilkan simbol sampai ia selesai melihat β atau terlihat melihat simbol yang menyimpang dari β , berhenti pada kedua kasus. Jika T β melihat βBefore(L,β)TββTββββTββsecara penuh, ia menerima pada saat berhenti, yang merupakan satu-satunya cara ia menerimanya. Jika ia melihat penyimpangan dari , ia menolak.β
Lemma bisa disulap untuk menangani kasus-kasus di mana bisa tumpang tindih dengan dirinya sendiri (seperti sebuah b a b - terus mencari β bahkan saat di tengah-tengah scanning untuk sebelum β ) atau muncul beberapa kali (sebenarnya, asli non-determinisic forking sudah menangani itu). βababββ
Sudah cukup jelas bahwa , dan karena CFL ditutup di bawah transduksi keadaan-terbatas, Before ( L , β ) adalah CF. Tβ(L)=Before(L,β)Before(L,β)
Argumen serupa berlaku untuk , atau bisa juga dilakukan dengan pembalikan string dari Before ( L , β ) , CFL juga ditutup dengan pembalikan:After(L,β)Before(L,β)
After(L,β)=rev(Before(rev(L),rev(β)))
Sebenarnya, sekarang saya melihat argumen pembalikan, akan lebih mudah untuk memulai dengan , karena transduser untuk itu lebih mudah untuk dijelaskan dan diverifikasi - itu menghasilkan string kosong sambil mencari β . Ketika menemukan β itu bercabang non-deterministik, satu garpu terus mencari salinan lebih lanjut dari β , garpu lainnya menyalin semua karakter berikutnya secara verbatim dari input ke output, menerima semua sementara.After(L,β)βββ
Yang tersisa adalah membuat ini berfungsi untuk bentuk sentensial serta CFL. Tapi itu cukup mudah, karena bahasa bentuk sentimental CFG itu sendiri adalah CFL. Anda dapat menunjukkan bahwa dengan mengganti setiap non-terminal di seluruh G dengan mengatakan X ′ , menyatakan X sebagai terminal, dan menambahkan semua produksi X ′ → X ke tata bahasa.XGX′XX′→X
Saya harus memikirkan pertanyaan Anda tentang ambiguitas.