Bintang Kleene dari bahasa unary yang tak terbatas selalu menghasilkan bahasa yang teratur

8

Biarkan , di mana dan untuk semua .L={ann0}a0=ϵan=an1an1

Jadi terdiri dari urutan dari semua panjang, termasuk urutan panjang . Mari menjadi subset tak terbatas . Saya perlu menunjukkan selalu ada DFA untuk mengenali .La0L2LL2

Jika adalah subset terbatas, sangat jelas karena akan menjadi DFA dan karenanya dengan penutupan Kleene akan dikenali oleh DFA. Tapi saya tidak bisa mendapatkannya untuk subset tak terbatas karena mungkin tidak dinyatakan sebagai DFA ketika, misalnya, panjang string adalah prima.L2L2L2L2

Aditya Nambiar
sumber

Jawaban:

8

Misalkan ada dua kata dalam bahasa yang panjangnya relatif prima. Biarkan panjang ini menjadi dan . Kita tahu (lihat ini ) bahwa dengan menambahkan angka-angka ini satu sama lain berulang kali, kita bisa mendapatkan angka yang lebih besar dari . Jadi jika dan adalah dan , kita dapat menulis angka apa pun yang lebih besar dari sebagai kombinasi linear dari dan . Apa artinya ini bagi kami: terdiri dari beberapa bahasa hingga yang sewenang-wenang (reguler, karena semua bahasa berhingga), bersatu dengan bahasaxy(x1)(y1)1xy13772713L2{wa|a|>(x1)(y1)1}. Bahasa ini teratur karena merupakan bahasa dari semua kata dengan sekumpulan kata yang terbatas dihapus. Karena adalah penyatuan bahasa biasa, itu juga harus teratur.L2

Jika semua kata dalam memiliki panjang yang berbagi faktor umum terbesar (sebut ini faktor umum ), maka ulangi argumen di atas, tetapi alih-alih menggunakan panjang string, gunakan panjang string dibagi dengan . Dalam hal ini, akan menjadi gabungan dari bahasa berhingga terbatas (reguler) dan bahasa , juga teratur (karena $ (a ^ m) ^ * teratur dan kami menghapus banyak kata dari itu).L2mmL2{w(am)|w|>m2[(x/m1)(y/m1)1]}

Misalnya, anggap semua kata dalam memiliki GCF 2, dan bahasanya berisi kata dan . Kami memiliki , , dan , yang relatif prima. Oleh karena itu, kita tahu bahwa kita dapat memperoleh kata yang panjangnya lebih dari jika panjangnya lebih besar dari dengan menggabungkan dan .La4a10m=2x/m=4/2=2y/m=10/2=5mm2[(x/m1)(y/m1)1]=22[(21)(51)1]=(4)(3)=12a4a10

Patrick87
sumber