Mari kita rasakan dulu dan setelah ( β ) . Pertimbangkan pohon derivasi yang mengandung β ; "mengandung" di sini berarti bahwa Anda dapat memotong sub pohon sehingga β adalah subword dari depan pohon. Kemudian, set sebelum (setelah) adalah semua bidang potensial dari bagian pohon kiri (kanan) dari β :Before(β)After(β)βββ
[ sumber ]
Jadi kita harus membangun tata bahasa untuk bagian pohon yang berjejer secara horizontal. Tampaknya cukup mudah karena kita sudah memiliki tata bahasa untuk seluruh pohon; kita hanya perlu memastikan bahwa semua bentuk sentensial adalah kata-kata (ubah abjad), saring yang tidak mengandung (yang merupakan properti reguler karena β sudah diperbaiki) dan potong semua setelah (sebelum) β , termasuk β . Pemotongan ini juga harus dimungkinkan.ββββ
Sekarang menjadi bukti formal. Kami akan mengubah tata bahasa seperti diuraikan dan penggunaan penutupan sifat untuk melakukan penyaringan dan pemotongan, yaitu kita melakukan bukti non-konstruktif.CFL
Biarkan tata bahasa bebas konteks. Sangat mudah untuk melihat bahwa SF ( G ) bebas konteks; membangun G ′ = ( N ′ , T ′ , δ ′ , N S ) seperti ini:G=(N,T,δ,S)SF(G)G′=(N′,T′,δ′,NS)
- N′={NA∣A∈N}
- T′=N∪T
- δ′={α(A)→α(β)∣A→β∈δ}∪{NA→A∣A∈N}
dengan untuk semua t ∈ T dan α ( A ) = N A untuk semua a ∈ N . Jelas bahwa L ( G ′ ) = SF ( G ) ; oleh karena itu Pref penutupan closure yang sesuai ( SF ( G ) ) dan suffix closure suff ( SF ( G ) ) juga bebas konteks-.α(t)=tt∈Tα(A)=NAa∈NL(G′)=SF(G)Pref(SF(G))Suff(SF(G))
Sekarang, untuk semua bahasa adalah L ( β ( N ∪ T ) ∗ ) dan L ( ( N ∪ T ) ∗ β ) . Seperti C F L ditutup di bawah persimpangan dan kanan / kiri quotient dengan bahasa biasa, kita mendapatkanβ∈(N∪T)∗L(β(N∪T)∗)L((N∪T)∗β)CFL
Before(β)=(Pref(SF(G)) ∩ L((N∪T)∗β))/β∈CFL
dan
.After(β)=(Suff(SF(G)) ∩ L(β(N∪T)∗))∖β∈CFL
¹ adalah tertutup di bawah kanan (dan kiri) quotient ; Pref ( L ) = L / Σ * dan sama untuk Suff hasil awalan resp. penutupan akhiran.CFLPref(L)=L/Σ∗Suff
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
dan
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,β)
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.X G X′ X X′→X
Saya harus memikirkan pertanyaan Anda tentang ambiguitas.
sumber