Dưới đây là một giải pháp thay thế khả dĩ cho một đối số đệm, dựa trên khái quát của Schöning về định lý Ladner. Để hiểu được đối số, bạn cần có quyền truy cập vào bài viết này (điều không may sẽ đứng sau một bức tường trả tiền cho nhiều người):
Uwe Schöning. Một cách tiếp cận thống nhất để có được các bộ đường chéo trong các lớp phức tạp. Khoa học máy tính lý thuyết 18 (1): 95-103, 1982.
Chúng ta sẽ áp dụng định lý chính từ bài báo đó cho A 1A1 và A 2A2 là các ngôn ngữ và C 1C1 và C 2C2 là các lớp phức tạp như sau:
- Một 1 = ∅ (hoặc bất kỳ ngôn ngữ trong P )A1=∅P
- A 2 = SATA2=SAT
- C 1 = N P CC1=NPC
- C 2 = N P ∩ P / p o l yC2=NP∩P/poly
Vì mục đích rõ ràng, thực tế chúng tôi sẽ chứng minh là N P ⊈ P / p o l y ngụ ý N P Tôi ⊈ P / p o l y .NP⊈P/polyNPI⊈P/poly
Theo giả định rằng N P ⊈ P / p o l y chúng tôi có một 1 ∉ C 1 và A 2 ∉ C 2 . Rõ ràng là C 1 và C 2 được đóng dưới các biến thể hữu hạn. Bài viết của Schöning bao gồm một bằng chứng cho thấy C 1 có thể trình bày đệ quy (định nghĩa chính xác có thể tìm thấy trong bài viết), và phần khó nhất của lập luận là chứng minh rằng C 2 có thể trình bày đệ quy.NP⊈P/polyA1∉C1A2∉C2C1C2C1C2
Theo các giả định này, định lý ngụ ý rằng tồn tại một ngôn ngữ A không có trong C 1 cũng như trong C 2 ; và cho rằng A 1 ∈ P , nó cho rằng A là Karp khử để Một 2 , và do đó A ∈ N P . Cho rằng Một là trong N P nhưng không phải là N P -complete cũng không trong N P ∩ P / p o l y , nó sau đó N PAC1C2A1∈PAA2A∈NPANPNPNP∩P/polyTôi ⊈ P / p o l y .NPI⊈P/poly
Nó vẫn còn để chứng minh rằng N P ∩ P / p o l y là đệ quy đoan. Về cơ bản, điều này có nghĩa là có một mô tả rõ ràng về một chuỗi các máy Turing xác định M 1 , M 2 , Lọ mà tất cả dừng lại trên tất cả các đầu vào và sao cho N P ∩ P / p o l y = { L ( M k ) : k = 1 , 2 , ... }NP∩P/polyM1,M2,…NP∩P/poly={L(Mk):k=1,2,…}. Nếu có một sai lầm trong lập luận của tôi thì có lẽ là ở đây, và nếu bạn thực sự cần sử dụng kết quả này, bạn sẽ muốn làm điều này một cách cẩn thận. Dù sao, bằng cách phù hợp với tất cả các máy Turing không điều kiện thời gian đa thức (có thể được mô phỏng một cách xác định vì chúng tôi không quan tâm đến thời gian chạy của mỗi M kMk ) và tất cả các đa thức, đại diện cho giới hạn trên của một họ mạch Boolean cho ngôn ngữ đã cho, tôi tin rằng không khó để có được một bảng liệt kê hoạt động. Về bản chất, mỗi M k có thể kiểm tra NTM thời gian đa thức tương ứng của nó có đồng ý với một số họ mạch có kích thước đa thức cho đến độ dài của chuỗi đầu vào được đưa ra bằng cách tìm kiếm trên tất cả các mạch Boolean có thể. Nếu có thỏa thuận, M kMkMk đầu ra như NTM, nếu không nó sẽ từ chối (và kết quả là đại diện cho một ngôn ngữ hữu hạn).
Trực giác cơ bản đằng sau lập luận (ẩn trong kết quả của Schöning) là bạn không bao giờ có thể có hai lớp phức tạp "tốt đẹp" (nghĩa là các lớp có bản trình bày đệ quy) rời rạc và ngồi đối diện nhau. "Cấu trúc liên kết" của các lớp phức tạp sẽ không cho phép nó: bạn luôn có thể xây dựng một ngôn ngữ chính xác ở giữa hai lớp bằng cách xen kẽ giữa hai lớp với độ dài đầu vào rất dài. Định lý của Ladner cho thấy điều này đối với P và N P C , và khái quát hóa của Schöning cho phép bạn làm tương tự cho nhiều lớp khác.PNPC