Như Max cho biết việc sửa đổi không phải là khó khăn, tôi đề nghị rằng bạn không đọc phần còn lại của câu trả lời này và suy nghĩ về vấn đề này một chút cắn hơn, chỉ có một phần mà cần sửa đổi và ghi nhớ định nghĩa khi một máy chấp nhận sẽ giúp bạn sửa phần đó.coNP
Tôi sẽ giải thích các sửa đổi cần thiết dưới đây, nhưng trước tiên chúng ta hãy có một cái nhìn ngắn gọn về bằng chứng ban đầu.
Trong chứng cứ gốc được xây dựng trong các bước nơi ở bước i với đảm bảo rằng tôi thứ máy trong P , M i , không quyết định ngôn ngữ { x | ∃ y ∈ A | x | = | y | } chính xác. Lưu ý rằng các thiết lập là trong N P Một .A=⋃nAniiPMi{x∣∃y∈A |x|=|y|}NPA
Chúng tôi đạt được điều này bằng cách mô phỏng bằng cách sử dụng phần A mà chúng tôi đã xây dựng trên 0 m trong đó m đủ lớn (chuỗi dài hơn chuỗi được xem xét trong các bước trước). M i chấp nhận, chúng tôi không thêm bất cứ điều gì, nếu nó từ chối, chúng tôi sẽ thêm một chuỗi có độ dài m mà M tôi không tạo truy vấn cho tập hợp (Một chuỗi như vậy tồn tại vì có nhiều chuỗi có độ dài m nhưng M i không thể hỏi về tất cả chúng trong thời gian đa thức). Chúng tôi sẽ không sửa đổi phần này của A trong các bước trong tương lai (nghĩa là các chuỗi có độ dài mMiA0mmMimMimMiAmhoặc ít hơn sẽ giữ nguyên). Điều này đảm bảo rằng sẽ không quyết định ngôn ngữ chính xác và hoàn thành bằng chứng.MAi
Bây giờ, giả sử rằng các máy là trong c o N P ở vị trí của P . Chúng tôi cần phải sửa đổi các bằng chứng để đảm bảo rằng M Một tôi sẽ không nhận ra L . Nếu nó chấp nhận, chúng tôi giữ A như trước và mọi thứ hoạt động tốt như trong bằng chứng ban đầu. Nếu nó từ chối, chúng ta cần thêm một chuỗi vào tập hợp để đảm bảo nó không trả lời đúng. Chúng ta vẫn có thể mô phỏng M i với phần A chúng ta có, vấn đề là M i có thể truy vấn tất cả các chuỗi có độ dài n . Đây là cách a c oMicoNPPMAiLAMiAMin hoạt động trở nên quan trọng. Nó chấp nhận nếu và chỉ khitất cảcác đường dẫn tính toán chấp nhận. Vì nó đang từ chối trong trường hợp này, có một đường dẫn tính toán đang từ chối. Miễn là chúng ta giữ nguyên đường dẫn này, mọi thứ sẽ hoạt động, vì vậy chúng ta chỉ cần giữ câu trả lời cho các truy vấn trong đường dẫn đó như cũ. Số lượng truy vấn trong đường dẫn này là đa thức (vì máy chạy trong thời gian đa thức), do đó, có các chuỗi có độ dài m mà đường dẫn không truy vấn, chỉ cần thêm một trong số chúng vào A và phần còn lại của chứng minh hoạt động như trước.coNPmA
Các bước là thuật toán, do đó, tập hợp được đệ quy (phần thiết yếu của cấu trúc là có thể mô phỏng các máy có thể được thực hiện theo D S p a c e ( n ω ( 1 ) ) ).ADSpace(nω(1))