Định lý: Tồn tại một ngôn ngữ đệ quy đếm được nhưng không đệ quy.

Một phần của tài liệu Giáo trình lý thuyết ngôn ngữ hình thức và ôtômát (Trang 69)

MÁY TURING

4.3.4. Định lý: Tồn tại một ngôn ngữ đệ quy đếm được nhưng không đệ quy.

Chứng minh: Xét ngôn ngữ T(U) được đoán nhận bởi máy Turing U. Khi đó T(U) là đệ quy đếm được.

Giả sử T(U) là đệ quy. Điều này có nghĩa là tồn tại một máy Turing M (không đòi hỏi là trùng với U) sao cho T(M)=T(U) và sẽ dừng sau một số hữu hạn bước dưới tác động của mọi từ trên bảng chữ vào. Ta xây dựng máy Turing M’ như

sau:

Giả sử ω là một từ trên bảng chữ vào của M’. Trước hết M’ cho mã [ω] của

ω, đồng thời trên cơ sở sắp xếp các từ trên bảng chữ vào tìm chỉ số i của ω (số thứ

tự của ω trong dãy là i). Tiếp theo ứng với các chỉ số i, máy Turing M’ thiết lập sự

mô tả mã của máy Turing thứ i trong dãy các máy Turing M1, M2, …Cuối cùng M thiết lập sự mô tả chuẩn của từ ωi và Mi, <Miωi>. M’ bắt chước sự hoạt động của máy Turing M với từ <Miωi> mà theo giả thiết nó tồn tại, đoán nhận ngôn ngữ

T(U) và dừng sau một số hữu hạn bước đối với mọi từ trên bảng chữ vào. Nếu M kết thúc sự hoạt động với trạng thái không kết thúc thì khi đó M’ chuyển sang một trạng thái kết thúc riêng và dừng. Nếu M dừng ở trạng thái kết thúc thì M’ bắt đầu bắt chước sự hoạt động của máy Turing mà nó không dừng với mọi từ của bảng chữ vào.

Rõ ràng rằng máy Turing M’ đoán nhận từ ω=ωi khi và chỉ khi không đoán nhận <Miωi>. Ta biết rằng T(M)=T(U)={<Miϕ> | ϕ∈T(Mi)}. Đồng thời mọi máy Turing đều có mặt trong dãy M1, M2, … và do đó M’ cũng nằm trong dãy này, có nghĩa là tồn tại một số tự nhiên h sao cho M’=Mh.

Bây giờ ta xem máy Turing M1 hoạt động như thế nào với từ ω1. Ta nhận

được ω1∈T(M’) khi và chỉ khi ω1∈T(M1). Điều này mâu thuẫn với giả thiết. Vậy T(U) không đệ quy.

Một phần của tài liệu Giáo trình lý thuyết ngôn ngữ hình thức và ôtômát (Trang 69)