Partisi bahasa reguler yang tak terbatas menjadi 2 bahasa yang tak terbatas yang terpisah

9

Diberi bahasa reguler tak terbatas L, bagaimana saya bisa membuktikannya L dapat dipartisi menjadi 2 bahasa reguler tak terhingga terpisah L1,L2? Itu adalah:L.1L.2=L., L.1L.2=, dan L.1 dan L.2 keduanya tak terbatas dan teratur.

Sejauh ini, saya memikirkan:

  1. menggunakan lemma pemompaan sedemikian rupa

    L.1={xynzn bahkan}L.2={xymzm aneh}
    tetapi tidak dapat membuktikan bahwa mereka dijoint atau menutupi L. sama sekali.
  2. Menggunakan partisi bahasa biasa Σ ke kelas-kelas kesetaraan dijoint, tapi saya belum menemukan cara untuk menentukan apakah kelas kesetaraan adalah reguler atau tak terbatas.

Tom
sumber

Jawaban:

4

Membiarkan S={|w|:wL.}. Teorema Parikh menunjukkan hal ituSadalah set akhirnya periodik. Biarkan periode akhirnya terjadi. SejakL. tidak terbatas, ada beberapa offset Sebuah seperti yang Sebuah+kS untuk semua k0. Jadi bahasanyaL.1={wL.:|w|Sebuah(mod2)} tidak terbatas (berisi semua kata panjangnya a+2k untuk beberapa k0), dan bahasanya L2=LL1 juga tak terbatas (berisi semua kata panjangnya a+(2k+1) untuk beberapa k0, serta mungkin kata lain). Saya akan membiarkan Anda menunjukkan ituL1,L2 keduanya biasa.

Yuval Filmus
sumber
Ini bahkan berfungsi untuk bahasa bebas konteks.
Yuval Filmus
8

Setiap bahasa reguler diterima oleh DFA minimal. Untuk bahasa reguler yang tak terbatasL, sebut saja DFA ML. Pertimbangkan kondisi apa punq yang dapat dikunjungi lebih dari sekali saat memproses beberapa string L. Jikaqdapat dikunjungi lebih dari sekali, karena itu dapat dikunjungi beberapa kali. Menetapkan

L1={wLq is visited an odd number of times}
dan
L0={wLq is visited an even number of times}
Ini adalah DFA, jadi hanya ada satu jalur. Semua stringLditerima oleh DFA, dan harus mengunjungi negara bagian beberapa kali (mungkin nol). Negara dapat dikunjungi dalam jumlah tidak terbatas; oleh karena itu, kita tahu bahwa ada banyak string tanpa batasL1 (karena ada kata-kata yang menyebabkan negara dikunjungi 1 kali, 3 kali, dll.) dan bahwa ada banyak string dalam L0(karena ada kata-kata yang menyebabkan negara dikunjungi 0 kali, 2 kali, dll.). String apa pun yang diberikan adalah dalamL1 atau L0, dan tidak bisa di keduanya, jadi L0L1=. Namun, kata apa pun diL dijamin berada di salah satu dari dua set ini, jadi L0L1=L.
Patrick87
sumber
Masih perlu meyakinkan OP bahwa bahasa terjemahannya teratur ...
vonbrand