プレスブルガー算術の帰納的不変セパレーター問題は決定できません。
私はあなたを指摘する文献の証拠を知りません。(それはどこかにあると思いますので、非常に簡単な質問のようです。)私が思いついた証明は、停止の問題とほぼ同じ構造です。ここでは簡単な概要です。最初に決定手続きが存在すると仮定し、次に入力マシンを構築します。はを使用して非終了を決定し、は出力を反転します。次に、の構成を使用して、が自体の実行について不正解を返す必要があることを示します。S M S D M S S D SDSMSDMSSDS
停止問題への削減の代わりに、証拠はすべての意図と目的のために停止問題の証拠の再説明です。正確な最強のポスト条件を表現できる必要があるため、これは少し冗長です。(もっと簡単な証明が可能であるなら、私はそれを聞くことに非常に興味があります。)次に、悲惨な詳細に進みます。
プレスブルガー算術の帰納的不変セパレーターの問題は、指定された4タプルのに対するものです。ここで、は変数名の有限セットであり、とは、その自由なプレスブルガー式です。変数はである、その自由変数であるプレスバーガーの式でまたは(の下塗りされたコピー式が存在しない)における自由変数とプレスバーガー算術でのような:ˉ V INITBD ˉ V NのEXT ˉ V ˉ V ' ˉ のV φ ˉ V⟨v¯,Init,Next,Bad⟩v¯InitBadv¯Nextv¯v¯′v¯ϕv¯
- Init⟹ϕ
- ϕ∧Next⟹ϕ′
- ϕ⟹¬Bad
ここで、はすべての自由変数をます。 φϕ′ϕ
この問題は決定可能であるとします。次に、セパレーターの問題を決定するチューリングマシンが存在します(プレスブルガーの数式の特定のエンコードについて)。してみましょうシミュレートし、確定チューリングマシンである。終了し、セパレーターの問題を決定します。 D D ' DD′DD′D
変数の有限セットに対する変数の割り当ては、結合ここで、は整数定数です。⋀ V I = C I C I{vi}⋀vi=cici
また、合理的ではあるが強い制限のある、プレスブルガー算術コンパイラへのチューリングマシンの存在も想定します。は、固有の最終状態、、および入力持つチューリングマシンを入力として受け取り、変数の有限セットに対してプレスブルガー公式およびを構築し。非公式に、でのの実行をシミュレートするには、プレスブルガー公式のパスが必要です。さらに、ステップシミュレーションである必要があります。正式には、以下が必要です。C M のT Eのr個のM W I N I T NのE X T ˉ V M WCCMtermwInitNextv¯Mw
- M T E R M ⟨ T E R M ⟩C内のすべての制御状態に固有の一定の割り当てとするための定ましょうする、Mterm⟨term⟩
- P C ˉ V MCは、実行のすべてのステップでの制御状態を追跡する変数を含めます。pcv¯M
- I N I T ˉ VCは、での変数割り当ての形式になるようにを生成します。Initv¯
- N E X T ˉ V I N I T MCは、が決定論的である場合、が(から到達可能)を超える変数割り当てに一意の後続を確実に持つようにします。Nextv¯InitM
- 単射に存在する状態から上変数割り当てに(コントロールとテープ)ように、後継の初期状態有するに正確にマッピングされているの制御状態一貫して割り当て、M b a r v N e x t M w I n i t M p cfMbarvNextMwInitMpc
- Cは決定論的であり、
- C終了します。
次に、チューリングマシンを入力として受け取り、次の処理(疑似コード)を行うチューリングマシンを作成します。MSM
S(M):
Run C(M,M) to get v, Init and Next
Simulate D on v, Init, Next, Bad := (pc = <term>)
If D says a separator exists:
terminate
If D says no separator exists:
loop: goto loop
ここで、がに対して入力で一貫した答えを出すことができないことを示します。実行を開始します。は、入力をシミュレートできるおよびで終了します。実行の状態、、およびから始まるの実行の番目の変数割り当ての間の対応を設定します。は構造によって決定論的であり、したがって、S S S (S )C I N I T NのE X T S S I S (S )S I I ˉ V iが = F (sはI)のN E X T I N I T S C N E X TのI N iがT F (S 0)= ˉ VDSSS(S)CInitNextSSiS(S)siiv¯i=f(si)NextInitSC、は、変数の割り当てで一意の後続を保持する必要があり、は変数の割り当てです。(参考として、)NextInitf(s0)=v¯i=Init
仮定、セパレータが存在していると言います。してみましょう、このようなセパレーターこと。次に、の実行はステップでに到達します。(これにはと実行も含まれます。)は、がに到達するときのセパレーターとしての反例です。は一貫性のない答えを出しました。DϕS(S)termkCDv¯1…v¯kϕpc=⟨term⟩D
ここで、がそのようなセパレーターは存在しないと言ったとしましょう。次に、は、ステップで制御状態に到達します。後のすべての状態は同一です。後の対応する変数割り当てシーケンスでは、各変数を同じ定数に割り当てる必要があります。ましょう。(注:は、現在、から始まるによる到達可能な変数割り当てです。)次に、DS(S)loopkksk+1=sk+2=…kϕ=⋁k+1i=1v¯iϕNextInit
- Init⟹ϕは正確にため、はを。Initv¯1
- ϕ∧Next⟹ϕ′はが確定的であり、すべてのに対してが成り立つ場合、が成り立つのでをます。Nextiv¯iv¯′i+1
- ϕ⟹¬Bad各変数の割り当て暗示するので。v¯ipc≠⟨term⟩
したがって、は帰納的不変セパレーターであり、は一貫性のない答えを出しました。ϕ⟨v¯,Init,Next,Bad⟩D
Dは常に一貫性のない答えを出す必要があるため、決定手順は存在しません。
この演習を行うことで、ベクトル加算システムのセパレーターに関するJerome Lerouxの仕事に本当に感謝しました。