Возможно, вы можете построить язык в DPSACE (n), который не может быть распознан MPA с используя аргумент диагонализации (возможно, идея похожа на ту, что была в ответе Бена, но я не стал в нее разбираться):k=1
Предположим, что по алфавиту вы кодируете MPA, используя список переходов:Σ={0,1}
s,a,p→s′,p′,L|R;...#
где - текущее состояние, - текущий символ, - состояние гальки, - новое состояние, - новое состояние гальки, - направление движения, - маркер конца).a p s ′ p ′ L | R #saps′p′L|R#
Машина Тьюринга на входе может проверить, является ли она действительным описанием и смоделировать его на входе течение шагов, используя ячейки, растягивая входные данные таким образом:х М Р х х 4 | х | 6 | х | + журнал | х |MxMPAxx4|x|6|x|+log|x|
MPA description # MPA tape # curr_state # counter #
Где:
- Описание MPA - исходная строка ввода (имеет длину );| х |x|x|
- Лента MPA - это представление ленты MPA: для каждой ячейки мы можем использовать 3 бита для хранения флага заголовка, флага pebble и (фиксированного) содержимого ленты (имеет длину );3|x|
- curr_state хранит текущее состояние MPA (имеет длину );log|x|
- counter - это счетчик шагов моделирования, который обновляется после каждого шага моделирования (имеет длину ).2|x|
Если останавливается за шага, то TM выдает противоположное (если не останавливает выдает 0).MPAx4|x|MM
При достаточно больших , то этапы моделирования больше , чемкоторая превышает длину полного описания конфигурации ; таким образом, если не останавливается за шага, то мы уверены, что он будет зацикливаться вечно.x>x04|x|2|x|+2|x|log|x|MPAxMPAx4|x|
Предположим, что существует который определяет тот же язык из , затем он всегда останавливается, и вы можете создать «больший» который решает тот же язык, с (просто добавьте dum состояния).MPAyLMMPAy′y′>x0
По построению имеем что является противоречием.MPAy′(y′)=1−M(y′)=1−MPAy′(y′)