1 数詞ごとの表現
定義 1.1. k ≥ 1 k\ge1 k ≥ 1 とし、R ⊆ N k R\subseteq\mathbb N^k R ⊆ N k を関係とする。L A L_A L A 論理式ρ R ( x 1 , … , x k ) \rho_R(x_1,\ldots,x_k) ρ R ( x 1 , … , x k ) がR R R をQ Q Q で数詞ごとに表現する (numeralwise representation of a relation ) とは、任意の標準自然数n 1 , … , n k n_1,\ldots,n_k n 1 , … , n k について次が成り立つことをいう。
R ( n 1 , … , n k ) ⟹ Q ⊢ ρ R ( n ‾ 1 , … , n ‾ k ) , ¬ R ( n 1 , … , n k ) ⟹ Q ⊢ ¬ ρ R ( n ‾ 1 , … , n ‾ k ) . \begin{aligned}
R(n_1,\ldots,n_k)&\quad\Longrightarrow\quad
Q\vdash\rho_R(\overline n_1,\ldots,\overline n_k),\\
\neg R(n_1,\ldots,n_k)&\quad\Longrightarrow\quad
Q\vdash\neg\rho_R(\overline n_1,\ldots,\overline n_k).
\end{aligned} R ( n 1 , … , n k ) ¬ R ( n 1 , … , n k ) ⟹ Q ⊢ ρ R ( n 1 , … , n k ) , ⟹ Q ⊢ ¬ ρ R ( n 1 , … , n k ) .
真の場合だけでなく、偽の場合の否定もQ Q Q で証明することが定義に含まれる。
定義 1.2. k ≥ 1 k\ge1 k ≥ 1 とし、f : N k → N f\colon\mathbb N^k\to\mathbb N f : N k → N を全関数とする。L A L_A L A 論理式φ f ( x 1 , … , x k , y ) \varphi_f(x_1,\ldots,x_k,y) φ f ( x 1 , … , x k , y ) がf f f をQ Q Q で強く数詞ごとに表現する (strong numeralwise representation of a function ) とは、任意の標準入力n 1 , … , n k n_1,\ldots,n_k n 1 , … , n k とm = f ( n 1 , … , n k ) m=f(n_1,\ldots,n_k) m = f ( n 1 , … , n k ) について
Q ⊢ ∀ y ( φ f ( n ‾ 1 , … , n ‾ k , y ) ↔ y = m ‾ ) Q\vdash\forall y\bigl(
\varphi_f(\overline n_1,\ldots,\overline n_k,y)
\leftrightarrow y=\overline m\bigr) Q ⊢ ∀ y ( φ f ( n 1 , … , n k , y ) ↔ y = m ) が成り立つことをいう。
この定義は、正しい出力m ‾ \overline m m が式を満たすことと、任意の出力候補がm ‾ \overline m m に限られることを同時に要求する。一方、自由な入力変数についてQ ⊢ ∀ x ⃗ ∃ ! y φ f ( x ⃗ , y ) Q\vdash\forall\vec x\exists!y\,\varphi_f(\vec x,y) Q ⊢ ∀ x ∃ ! y φ f ( x , y ) を要求していない。
2 有界量化子とΔ 0 \Delta_0 Δ 0 論理式・Σ 1 \Sigma_1 Σ 1 論理式
固定した標準入力についての有限検証を述べる前に、量化子に上界を与える書き方と、そのように上界を与えた量化子だけで作る論理式の類を定める。ここで定める二つの類は証明述語に固有のものではなく、Robinson 算術Q Q Q を含む理論について一般に用いる。
四つの略記の∃ d \exists d ∃ d を有界量化子として扱う規約は、次の二つの事実によって支えられる。標準モデルでは、四つの略記のいずれについても証人d d d はs s s の値以下であるから、この規約はN \mathbb N N における決定可能性を損なわない。Q Q Q の内部では、Q Q Q が加法の単調性を証明しないため証人の大小そのものを用いることができないが、必要になるのは数詞を代入した場合だけであり、そこでは補題 3.3 が与える有限分解が証人の候補を有限個の数詞へ落とす。Δ 0 \Delta_0 Δ 0 論理式について本記事と下流の記事が主張することは、いずれもこの二つの道筋のどちらかで閉じる。
≼ \preccurlyeq ≼ では加法の第2引数にt t t が来るので、t t t が数詞n ˉ \bar n n ˉ のときはd + n ˉ = S n d d+\bar n=S^nd d + n ˉ = S n d を§E16.15 定義 2.1 の (Q4)、(Q5) の固定回数の適用で得ることができる。≤ \le ≤ の側では、n ˉ + d \bar n+d n ˉ + d の展開がd d d について進まないため、同じ書き換えを行うことができない。≼ \preccurlyeq ≼ と≺ \prec ≺ は、この書き換えが必要になる箇所でだけ用いる。
3 固定上界の有限分解と展開
補題 3.1. r r r を固定した標準自然数とする。Q Q Q では、自由変数x x x について
x < r ‾ ↔ ( x = 0 ‾ ∨ ⋯ ∨ x = r − 1 ‾ ) , x ≤ r ‾ ↔ ( x = 0 ‾ ∨ ⋯ ∨ x = r ‾ ) \begin{aligned}
x<\overline r&\leftrightarrow
(x=\overline0\lor\cdots\lor x=\overline{r-1}),\\
x\le\overline r&\leftrightarrow
(x=\overline0\lor\cdots\lor x=\overline r)
\end{aligned} x < r x ≤ r ↔ ( x = 0 ∨ ⋯ ∨ x = r − 1 ) , ↔ ( x = 0 ∨ ⋯ ∨ x = r ) を有限回の公理適用で証明することができる。r = 0 r=0 r = 0 の第1の選言は空である。
証明. (Q3) をx x x と順序の証人へ外側で固定した回数だけ適用し、各変数を零、固定回数以内の後続者、またはさらに後続者をもつ残余のいずれかへ分ける。(Q4)、(Q5) で加法をその固定回数だけ展開する。右辺がr ‾ \overline r r を越える場合は、(Q2) で共通する後続者を除いた後に (Q1) を用いて排除することができる。残る場合は§E16.15 補題 4.1 の固定数詞加法により、表示した各数詞と一致する。これはr r r ごとに長さの異なる有限導出であり、自由変数r r r に関する帰納法ではない。▨
補題 3.2. r r r を標準自然数とし、θ ( i , z ⃗ ) \theta(i,\vec z) θ ( i , z ) を任意のL A L_A L A 論理式とする。Q Q Q では、固定数詞r ‾ \overline r r による有界全称条件を有限連言へ展開することができる。すなわち
Q ⊢ ∀ i ( i < r ‾ → θ ( i , z ⃗ ) ) ↔ ⋀ j < r θ ( j ‾ , z ⃗ ) . Q\vdash
\forall i\,(i<\overline r\to\theta(i,\vec z))
\leftrightarrow
\bigwedge_{j<r}\theta(\overline j,\vec z). Q ⊢ ∀ i ( i < r → θ ( i , z )) ↔ j < r ⋀ θ ( j , z ) . r = 0 r=0 r = 0 の右辺は恒真式とする。
証明. 補題 3.1 により、
Q ⊢ i < r ‾ ↔ ( i = 0 ‾ ∨ ⋯ ∨ i = r − 1 ‾ ) Q\vdash i<\overline r
\leftrightarrow(i=\overline0\lor\cdots\lor i=\overline{r-1}) Q ⊢ i < r ↔ ( i = 0 ∨ ⋯ ∨ i = r − 1 ) である。左辺の有界全称条件からは、i = j ‾ i=\overline j i = j を各j < r j<r j < r について代入してθ ( j ‾ , z ⃗ ) \theta(\overline j,\vec z) θ ( j , z ) を得る。逆に右辺の有限連言を仮定する。i < r ‾ i<\overline r i < r を満たすi i i は表示した有限選言のいずれかの数詞に等しいため、等号の置換可能性によりθ ( i , z ⃗ ) \theta(i,\vec z) θ ( i , z ) を得る。i i i を全称化すると左辺が従う。r = 0 r=0 r = 0 では候補の選言と右辺の連言がともに空であり、同じ論証が成り立つ。▨
この補題は、自由変数r r r に関する一様な帰納法を述べていない。各標準自然数r r r に対して別々の有限導出を構成する。
数詞を代入した有界文についてQ Q Q が真偽を決定することを、次の補題として取り出す。この補題も、固定した標準自然数ごとに長さの異なる有限導出を与えるものであり、Q Q Q 内の帰納法ではない。
補題 3.3.
任意の標準自然数m m m について
Q ⊢ ∀ z ( z ≼ m ˉ ↔ ( z = 0 ˉ ∨ ⋯ ∨ z = m ˉ ) ) , Q ⊢ ∀ z ( z ≺ m ˉ ↔ ( z = 0 ˉ ∨ ⋯ ∨ z = m − 1 ‾ ) ) \begin{aligned}
Q&\vdash\forall z\,\bigl(z\preccurlyeq\bar m\leftrightarrow
(z=\bar0\lor\cdots\lor z=\bar m)\bigr),\\
Q&\vdash\forall z\,\bigl(z\prec\bar m\leftrightarrow
(z=\bar0\lor\cdots\lor z=\overline{m-1})\bigr)
\end{aligned} Q Q ⊢ ∀ z ( z ≼ m ˉ ↔ ( z = 0 ˉ ∨ ⋯ ∨ z = m ˉ ) ) , ⊢ ∀ z ( z ≺ m ˉ ↔ ( z = 0 ˉ ∨ ⋯ ∨ z = m − 1 ) )
である。m = 0 m=0 m = 0 の第2の選言は空とする。
任意の標準自然数m m m についてQ ⊢ ∀ z ( z ≺ m ˉ ∨ m ˉ ≼ z ) Q\vdash\forall z\,(z\prec\bar m\lor\bar m\preccurlyeq z) Q ⊢ ∀ z ( z ≺ m ˉ ∨ m ˉ ≼ z ) である。
δ ( x ⃗ ) \delta(\vec x) δ ( x ) を定義 2.1 のΔ 0 \Delta_0 Δ 0 論理式とする。任意の標準自然数n ⃗ \vec n n について、N ⊨ δ ( n ⃗ ) \mathbb N\models\delta(\vec n) N ⊨ δ ( n ) ならばQ ⊢ δ ( n ⃗ ‾ ) Q\vdash\delta(\overline{\vec n}) Q ⊢ δ ( n ) であり、N ⊭ δ ( n ⃗ ) \mathbb N\not\models\delta(\vec n) N ⊨ δ ( n ) ならばQ ⊢ ¬ δ ( n ⃗ ‾ ) Q\vdash\neg\delta(\overline{\vec n}) Q ⊢ ¬ δ ( n ) である。
証明. (1) を示す。z ≼ m ˉ z\preccurlyeq\bar m z ≼ m ˉ は∃ d ( d + z = m ˉ ) \exists d\,(d+z=\bar m) ∃ d ( d + z = m ˉ ) である。左から右を示す。(Q3) をz z z へm + 1 m+1 m + 1 回適用すると、z z z は0 ˉ , … , m ˉ \bar0,\ldots,\bar m 0 ˉ , … , m ˉ のいずれかに等しいか、あるe e e についてz = S m + 1 e z=S^{m+1}e z = S m + 1 e である。最後の場合、(Q5) をm + 1 m+1 m + 1 回用いるとd + S m + 1 e = S m + 1 ( d + e ) d+S^{m+1}e=S^{m+1}(d+e) d + S m + 1 e = S m + 1 ( d + e ) であり、m ˉ = S m 0 \bar m=S^m0 m ˉ = S m 0 と合わせて (Q2) でm m m 個の後続者を消すとS ( d + e ) = 0 S(d+e)=0 S ( d + e ) = 0 を得るので、(Q1) に反する。右から左は、各j ≤ m j\le m j ≤ m について§E16.15 補題 4.1 がm − j ‾ + j ˉ = m ˉ \overline{m-j}+\bar j=\bar m m − j + j ˉ = m ˉ を与えることによる。≺ \prec ≺ の同値は、z ≺ m ˉ z\prec\bar m z ≺ m ˉ がS z ≼ m ˉ Sz\preccurlyeq\bar m S z ≼ m ˉ であることと、S z = 0 ˉ Sz=\bar0 S z = 0 ˉ が (Q1) に反すること、およびS z = S j ˉ Sz=S\bar j S z = S j ˉ から (Q2) でz = j ˉ z=\bar j z = j ˉ が従うことから得る。
(2) を示す。(Q3) をz z z へm m m 回適用すると、z z z は0 ˉ , … , m − 1 ‾ \bar0,\ldots,\overline{m-1} 0 ˉ , … , m − 1 のいずれかに等しいか、あるd d d についてz = S m d z=S^md z = S m d である。前者の各場合は(1) によりz ≺ m ˉ z\prec\bar m z ≺ m ˉ を与える。後者では、(Q4)、(Q5) をm m m 回用いてd + m ˉ = S m d = z d+\bar m=S^md=z d + m ˉ = S m d = z を得るのでm ˉ ≼ z \bar m\preccurlyeq z m ˉ ≼ z である。m = 0 m=0 m = 0 では最初の選言が空であり、(Q4) のd + 0 = d d+0=d d + 0 = d から0 ˉ ≼ z \bar0\preccurlyeq z 0 ˉ ≼ z である。
(3) をδ \delta δ の構成に関するメタ理論の帰納法で示す。数詞を代入した後、各量化子の上界と各原子式の項は閉項である。任意の閉項t t t についてQ ⊢ t = t N ‾ Q\vdash t=\overline{t^{\mathbb N}} Q ⊢ t = t N が成り立つことを、項の構成に関するメタ理論の帰納法で先に確かめる。t t t が0 0 0 のときは自明であり、t = S u t=Su t = S u のときは帰納法の仮定と等号の合同から従う。t = u + u ′ t=u+u' t = u + u ′ とt = u × u ′ t=u\times u' t = u × u ′ のときは、帰納法の仮定で両辺を数詞へ移したうえで、§E16.15 補題 4.1 が与えるQ ⊢ a ‾ + b ‾ = a + b ‾ Q\vdash\overline a+\overline b=\overline{a+b} Q ⊢ a + b = a + b とQ ⊢ a ‾ × b ‾ = a b ‾ Q\vdash\overline a\times\overline b=\overline{ab} Q ⊢ a × b = ab を用いる。原子式t = s t=s t = s については、両辺を値の数詞へ移したうえで、同補題が真の場合の等号の証明と偽の場合のQ ⊢ a ‾ ≠ b ‾ Q\vdash\overline a\ne\overline b Q ⊢ a = b を与える。順序の略記t ≤ s t\le s t ≤ s 、t < s t<s t < s 、t ≼ s t\preccurlyeq s t ≼ s 、t ≺ s t\prec s t ≺ s については、閉項の値を数詞へ移したうえで、≤ \le ≤ と< < < には補題 3.1 を、≼ \preccurlyeq ≼ と≺ \prec ≺ には(1) を適用して証人の候補を有限個の数詞へ分け、各候補について数詞の等式を§E16.15 補題 4.1 で判定する。命題結合子の場合は、部分式についての帰納法の仮定と命題論理の有限導出で閉じる。有界量化∀ v ≤ t δ ′ \forall v\le t\,\delta' ∀ v ≤ t δ ′ と∃ v ≤ t δ ′ \exists v\le t\,\delta' ∃ v ≤ t δ ′ は、t t t の値を数詞r ˉ \bar r r ˉ へ移した後、補題 3.1 が与える同値v ≤ r ˉ ↔ ( v = 0 ˉ ∨ ⋯ ∨ v = r ˉ ) v\le\bar r\leftrightarrow(v=\bar0\lor\cdots\lor v=\bar r) v ≤ r ˉ ↔ ( v = 0 ˉ ∨ ⋯ ∨ v = r ˉ ) により、v = 0 ˉ , … , r ˉ v=\bar0,\ldots,\bar r v = 0 ˉ , … , r ˉ についての有限連言と有限選言へ展開されるので、各項に帰納法の仮定を適用することができる。上界が< < < で与えられる全称量化については、補題 3.2 が同じ展開を直接与える。上界が< < < で与えられる存在量化は同じ補題 3.1 の第1の同値で、上界が≼ \preccurlyeq ≼ 、≺ \prec ≺ で与えられる有界量化は(1) の有限分解で、それぞれ同様に扱う。▨
4 Q における有限列算術式 API
自然数上の対関数と有限列符号は§E16.17 定義 1.1 と§E16.17 定義 2.1 で固定し、Len、Entry、Concat の原始再帰性は§E16.17 定理 4.2 で証明した。本節では同じ外的な符号値を用いる。自然数上で固定した Pair、Cons、Len、Entry、Concat をQ Q Q の内部で扱うため、外側の関数名を算術言語の関数記号として追加せず、各関数のグラフを表す有限なL A L_A L A 論理式を固定する。
順序の略記x < y x<y x < y とx ≤ y x\le y x ≤ y は定義 2.1 が固定したものを用いる。以下の各略記は右辺をそのまま展開することができるため、新しい対象言語記号ではない。
まず、対と Cons の raw 式を次のように固定する。
Pair Q 0 ( a , b , c ) : ⟺ ∃ w ( w = a + b ∧ c ≤ ( w × S w ) + ( b + b ) ∧ c + c = ( w × S w ) + ( b + b ) ) , Cons Q 0 ( a , t , c ) : ⟺ ∃ p ( Pair Q 0 ( a , t , p ) ∧ c = S p ) . \begin{aligned}
\operatorname{Pair}^{0}_Q(a,b,c)
&:\!\!\Longleftrightarrow
\exists w\bigl(w=a+b\land
c\le (w\times Sw)+(b+b)\land
c+c=(w\times Sw)+(b+b)\bigr),\\
\operatorname{Cons}^{0}_Q(a,t,c)
&:\!\!\Longleftrightarrow
\exists p\bigl(\operatorname{Pair}^{0}_Q(a,t,p)\land c=Sp\bigr).
\end{aligned} Pair Q 0 ( a , b , c ) Cons Q 0 ( a , t , c ) : ⟺ ∃ w ( w = a + b ∧ c ≤ ( w × S w ) + ( b + b ) ∧ c + c = ( w × S w ) + ( b + b ) ) , : ⟺ ∃ p ( Pair Q 0 ( a , t , p ) ∧ c = S p ) .
第1式は2 c = ( a + b ) ( a + b + 1 ) + 2 b 2c=(a+b)(a+b+1)+2b 2 c = ( a + b ) ( a + b + 1 ) + 2 b を表す。付加した有界条件は標準自然数上で自動的に成り立ち、固定入力における任意の出力候補を有限個の数詞へ分けるために用いる。
可変長の復号履歴は、Cons 列の Len または Entry を用いず、一つの有限表を検査する式で保持する。項の略記
M ( i , C ) : = S ( ( S i ) × C ) M(i,C):=S((Si)\times C) M ( i , C ) := S (( S i ) × C )
と、次の二式を固定する。
Tab Q 0 ( B , C , i , x ) : ⟺ x < M ( i , C ) ∧ ∃ q ( q ≤ B ∧ B = ( q × M ( i , C ) ) + x ) , Cell Q ( B , C , i , x ) : ⟺ Tab Q 0 ( B , C , i , x ) ∧ ∀ z ( Tab Q 0 ( B , C , i , z ) → z = x ) . \begin{aligned}
\operatorname{Tab}^{0}_Q(B,C,i,x)
&:\!\!\Longleftrightarrow
x<M(i,C)\land
\exists q\bigl(q\le B\land B=(q\times M(i,C))+x\bigr),\\
\operatorname{Cell}_Q(B,C,i,x)
&:\!\!\Longleftrightarrow
\operatorname{Tab}^{0}_Q(B,C,i,x)\land
\forall z\bigl(\operatorname{Tab}^{0}_Q(B,C,i,z)\to z=x\bigr).
\end{aligned} Tab Q 0 ( B , C , i , x ) Cell Q ( B , C , i , x ) : ⟺ x < M ( i , C ) ∧ ∃ q ( q ≤ B ∧ B = ( q × M ( i , C )) + x ) , : ⟺ Tab Q 0 ( B , C , i , x ) ∧ ∀ z ( Tab Q 0 ( B , C , i , z ) → z = x ) .
M ( i , C ) M(i,C) M ( i , C ) は文字どおりL A L_A L A の項S ( ( S i ) × C ) S((Si)\times C) S (( S i ) × C ) である。Tab の存在変数q q q にもq ≤ B q\le B q ≤ B を課したため、B , C , i B,C,i B , C , i が固定数詞なら Cell の全称節は二つの固定有界探索へ展開することができる。
Cell は復号履歴を一つの式へ詰めるための証明内の補助関係にすぎず、有限列を表す公開 API ではない。公開する列の符号は引き続き右入れ子の Cons 符号だけである。
補題 4.2. m 0 , … , m r m_0,\ldots,m_r m 0 , … , m r を二つずつ互いに素な正の標準自然数とし、x 0 , … , x r x_0,\ldots,x_r x 0 , … , x r を標準自然数とする。このとき、すべてのi ≤ r i\le r i ≤ r について
B ≡ x i ( m o d m i ) B\equiv x_i\pmod{m_i} B ≡ x i ( mod m i ) を満たす標準自然数B B B が存在する。
証明. 最初に Bézout の等式を Euclid の互除法から導く。正の自然数a , b a,b a , b に除法を反復し、
r k − 1 = q k r k + r k + 1 , 0 ≤ r k + 1 < r k r_{k-1}=q_kr_k+r_{k+1},
\qquad 0\le r_{k+1}<r_k r k − 1 = q k r k + r k + 1 , 0 ≤ r k + 1 < r k とする。正の余りは真に減少するため、有限回で余り0 0 0 に達する。最後の非零余りd d d は、各等式を逆向きにたどるとa , b a,b a , b の公約数であり、a , b a,b a , b の任意の公約数は各余りを割るためd d d も割る。したがってd = gcd ( a , b ) d=\gcd(a,b) d = g cd( a , b ) である。また、最後の非零余りから等式を順に逆代入すると、整数u , v u,v u , v が存在して
d = u a + v b d=ua+vb d = u a + v b となる。
互いに素な二法m , n m,n m , n について、u m + v n = 1 um+vn=1 u m + v n = 1 を満たす整数u , v u,v u , v を取る。剰余α , β \alpha,\beta α , β に対して
x = α v n + β u m x=\alpha vn+\beta um x = α v n + β u m とおけば、x ≡ α ( m o d m ) x\equiv\alpha\pmod m x ≡ α ( mod m ) かつx ≡ β ( m o d n ) x\equiv\beta\pmod n x ≡ β ( mod n ) である。x x x をm n mn mn で割った非負の余りをB B B とすれば、B B B は同じ二つの合同式を満たす。これで二法の場合が従う。
法の個数に関する有限帰納法を用いる。一法m 0 m_0 m 0 の場合は、x 0 x_0 x 0 をm 0 m_0 m 0 で割った非負の余りをB 0 B_0 B 0 とすればよい。最初のk + 1 k+1 k + 1 個の合同式を満たす数をB k B_k B k とし、
M k = ∏ i = 0 k m i M_k=\prod_{i=0}^{k}m_i M k = i = 0 ∏ k m i とおく。各i ≤ k i\le k i ≤ k についてgcd ( m i , m k + 1 ) = 1 \gcd(m_i,m_{k+1})=1 g cd( m i , m k + 1 ) = 1 なので、
Bézout の等式からu i m i ≡ 1 ( m o d m k + 1 ) u_im_i\equiv1\pmod{m_{k+1}} u i m i ≡ 1 ( mod m k + 1 ) を満たす整数u i u_i u i を取ることができる。これらを掛け合わせると
( ∏ i = 0 k u i ) M k ≡ 1 ( m o d m k + 1 ) \left(\prod_{i=0}^{k}u_i\right)M_k\equiv1\pmod{m_{k+1}} ( i = 0 ∏ k u i ) M k ≡ 1 ( mod m k + 1 ) となるため、M k M_k M k とm k + 1 m_{k+1} m k + 1 は互いに素である。二法の場合を、法M k , m k + 1 M_k,m_{k+1} M k , m k + 1 と剰余B k , x k + 1 B_k,x_{k+1} B k , x k + 1 へ適用する。得られたB k + 1 B_{k+1} B k + 1 は最初のk + 1 k+1 k + 1 個の合同式を保ち、新しい合同式も満たす。有限帰納法により結論を得る。この論証は標準自然数と整数についての有限なメタ理論上の証明であり、外部の中国剰余定理もQ Q Q 内の帰納法も用いていない。▨
補題 4.3. x 0 , … , x r x_0,\ldots,x_r x 0 , … , x r を標準自然数の有限列とする。ある標準自然数B , C B,C B , C が存在し、すべての固定したi ≤ r i\le r i ≤ r について
Q ⊢ ∀ z ( Cell Q ( B ‾ , C ‾ , i ‾ , z ) ↔ z = x i ‾ ) Q\vdash\forall z\bigl(
\operatorname{Cell}_Q(\overline B,\overline C,\overline i,z)
\leftrightarrow z=\overline{x_i}\bigr) Q ⊢ ∀ z ( Cell Q ( B , C , i , z ) ↔ z = x i ) が成り立つ。
証明. C C C を1 , … , r 1,\ldots,r 1 , … , r のすべてで割り切れ、かつx i < 1 + ( i + 1 ) C x_i<1+(i+1)C x i < 1 + ( i + 1 ) C をすべてのi ≤ r i\le r i ≤ r で満たす正の標準自然数とする。例えばr ! ( 1 + max i ≤ r x i ) r!\,(1+\max_{i\le r}x_i) r ! ( 1 + max i ≤ r x i ) を必要ならさらに大きく取ればよい。M i = 1 + ( i + 1 ) C M_i=1+(i+1)C M i = 1 + ( i + 1 ) C とおく。M i − ( i + 1 ) C = 1 M_i-(i+1)C=1 M i − ( i + 1 ) C = 1 なので、M i M_i M i はC C C と互いに素である。i < j i<j i < j とし、d d d をM i M_i M i とM j M_j M j の正の公約数とする。差を取るとd d d は( j − i ) C (j-i)C ( j − i ) C を割る。d d d とC C C は互いに素であるから、Bézout の等式を用いるとd d d はj − i j-i j − i を割る。一方、j − i j-i j − i はC C C を割るためM i ≡ 1 ( m o d j − i ) M_i\equiv1\pmod{j-i} M i ≡ 1 ( mod j − i ) である。従ってd d d は1 1 1 を割り、M i M_i M i とM j M_j M j は互いに素である。したがって補題 4.2 により、次の合同式をすべてのi ≤ r i\le r i ≤ r について満たす標準自然数B B B が存在する。
B ≡ x i ( m o d M i ) B\equiv x_i\pmod{M_i} B ≡ x i ( mod M i ) 対応する商をq i q_i q i とすればq i ≤ B q_i\le B q i ≤ B である。
固定したB , C , i B,C,i B , C , i に対する Cell の強い検証は、補題 3.1 だけで行うことができる。
Tab のz < M ( i , C ) z<M(i,C) z < M ( i , C ) によりz z z は固定個の数詞へ、存在するq ≤ B q\le B q ≤ B によりq q q も固定個の数詞へ分かれる。各組ではB = q × M ( i , C ) + z B=q\times M(i,C)+z B = q × M ( i , C ) + z は数詞だけの等式であるから、§E16.15 補題 4.1 により正しい一組を証明し、ほかの組を (Q1)、(Q2) で否定することができる。したがってQ Q Q は Cell の存在連言と任意候補の一意性連言を直接証明し、表示した双条件を得る。ここでは本記事後半の一般表現可能性定理を用いていない。▨
補題 4.4. Q Q Q は、自由な入力に対する PairQ _Q Q 、ConsQ _Q Q 、LenQ _Q Q 、EntryQ _Q Q 、ConcatQ _Q Q の出力機能性を証明する。例えば任意の添字変数i i i について
Q ⊢ ∀ s ∀ u ∀ v ( Entry Q ( s , i , u ) ∧ Entry Q ( s , i , v ) → u = v ) Q\vdash\forall s\forall u\forall v\bigl(
\operatorname{Entry}_Q(s,i,u)\land\operatorname{Entry}_Q(s,i,v)\to u=v\bigr) Q ⊢ ∀ s ∀ u ∀ v ( Entry Q ( s , i , u ) ∧ Entry Q ( s , i , v ) → u = v ) である。ただし、自由な入力における出力の存在をQ Q Q が証明するとは主張しない。
証明. 一般に Unique[ R ] ( x ⃗ , u ) [R](\vec x,u) [ R ] ( x , u ) と Unique[ R ] ( x ⃗ , v ) [R](\vec x,v) [ R ] ( x , v ) を仮定する。第1の式の全称節を第2の式が与えるR ( x ⃗ , v ) R(\vec x,v) R ( x , v ) へ適用するとv = u v=u v = u を得る。等号の対称律からu = v u=v u = v である。この論証はR R R の算術的性質を使わない純粋な一階論理の導出である。五つの API 式はすべて Unique の形で定義したので、各機能性がQ Q Q で証明される。
Unique の第1連言は raw 計算の存在を要求するため、この定義だけから全入力での出力存在は従わない。▨
定理 4.5. a , b a,b a , b を標準自然数とし、p = pair ( a , b ) p=\operatorname{pair}(a,b) p = pair ( a , b ) 、c ′ = Cons ( a , b ) c'=\operatorname{Cons}(a,b) c ′ = Cons ( a , b ) とする。このとき
Q ⊢ ∀ z ( Pair Q ( a ‾ , b ‾ , z ) ↔ z = p ‾ ) , Q ⊢ ∀ z ( Cons Q ( a ‾ , b ‾ , z ) ↔ z = c ′ ‾ ) . \begin{aligned}
Q&\vdash\forall z\bigl(
\operatorname{Pair}_Q(\overline a,\overline b,z)
\leftrightarrow z=\overline p\bigr),\\
Q&\vdash\forall z\bigl(
\operatorname{Cons}_Q(\overline a,\overline b,z)
\leftrightarrow z=\overline{c'}\bigr).
\end{aligned} Q Q ⊢ ∀ z ( Pair Q ( a , b , z ) ↔ z = p ) , ⊢ ∀ z ( Cons Q ( a , b , z ) ↔ z = c ′ ) . a 0 , … , a n − 1 a_0,\ldots,a_{n-1} a 0 , … , a n − 1 を任意の標準有限列とし、その外的な符号をc c c とする。任意の固定した標準自然数i i i について、
Q ⊢ ∀ z ( Len Q ( c ‾ , z ) ↔ z = n ‾ ) , Q\vdash\forall z\bigl(\operatorname{Len}_Q(\overline c,z)
\leftrightarrow z=\overline n\bigr), Q ⊢ ∀ z ( Len Q ( c , z ) ↔ z = n ) , および
{ Q ⊢ ∀ z ( Entry Q ( c ‾ , i ‾ , z ) ↔ z = a i ‾ ) ( i < n ) , Q ⊢ ∀ z ( Entry Q ( c ‾ , i ‾ , z ) ↔ z = 0 ‾ ) ( i ≥ n ) \begin{cases}
Q\vdash\forall z\bigl(\operatorname{Entry}_Q(\overline c,\overline i,z)
\leftrightarrow z=\overline{a_i}\bigr)&(i<n),\\
Q\vdash\forall z\bigl(\operatorname{Entry}_Q(\overline c,\overline i,z)
\leftrightarrow z=\overline0\bigr)&(i\ge n)
\end{cases} { Q ⊢ ∀ z ( Entry Q ( c , i , z ) ↔ z = a i ) Q ⊢ ∀ z ( Entry Q ( c , i , z ) ↔ z = 0 ) ( i < n ) , ( i ≥ n ) が成り立つ。また、標準列a ⃗ , b ⃗ \vec a,\vec b a , b の符号をc , d c,d c , d 、連結列の符号をe e e とすれば
Q ⊢ ∀ z ( Concat Q ( c ‾ , d ‾ , z ) ↔ z = e ‾ ) Q\vdash\forall z\bigl(\operatorname{Concat}_Q(\overline c,\overline d,z)
\leftrightarrow z=\overline e\bigr) Q ⊢ ∀ z ( Concat Q ( c , d , z ) ↔ z = e ) が成り立つ。
証明. a , b a,b a , b を固定すると PairQ 0 ^{0}_Q Q 0 のw w w は固定数詞a + b ‾ \overline{a+b} a + b に等しい。候補出力z z z は PairQ 0 ^{0}_Q Q 0 に加えた固定上界以下なので、補題 3.1 で有限個の数詞へ分けることができる。z + z = ( w × S w ) + ( b + b ) z+z=(w\times Sw)+(b+b) z + z = ( w × S w ) + ( b + b ) を固定数詞計算で調べるとz = p ‾ z=\overline p z = p だけが残る。正しい数詞は同じ計算から raw 式を満たすため、Unique の連言も含めて PairQ _Q Q の双条件を得る。
ConsQ 0 ^{0}_Q Q 0 では Pair の raw 出力が同じ議論でp ‾ \overline p p に固定され、z = S p z=Sp z = S p からz = c ′ ‾ z=\overline{c'} z = c ′ が従う。これにより ConsQ _Q Q の双条件も得る。
c 0 = c c_0=c c 0 = c 、c j + 1 = Tail ( c j ) c_{j+1}=\operatorname{Tail}(c_j) c j + 1 = Tail ( c j ) とおくと、外側の標準計算によりc 0 , … , c n = 0 c_0,\ldots,c_n=0 c 0 , … , c n = 0 と各a j = Head ( c j ) a_j=\operatorname{Head}(c_j) a j = Head ( c j ) が具体的な数詞として得られる。
PairQ 0 ^{0}_Q Q 0 には出力の固定上界を入れたので、固定した入力a , t a,t a , t について候補p p p を有限分解し、数詞計算により正しい pair 値だけを残すことができる。Cons についてもc = S p c=Sp c = S p から同じことが従う。したがって各標準c j > 0 c_j>0 c j > 0 について
Q ⊢ ∀ a ∀ t ( Dec Q ( c j ‾ , a , t ) ↔ ( a = a j ‾ ∧ t = c j + 1 ‾ ) ) (2) Q\vdash\forall a\forall t\bigl(
\operatorname{Dec}_Q(\overline{c_j},a,t)
\leftrightarrow
(a=\overline{a_j}\land t=\overline{c_{j+1}})\bigr)
\tag{2} Q ⊢ ∀ a ∀ t ( Dec Q ( c j , a , t ) ↔ ( a = a j ∧ t = c j + 1 ) ) ( 2 ) を得る。a , t < c j a,t<c_j a , t < c j は補題 3.1 により有限個の数詞へ分かれるため、
(2) は Pair の一般的な逆関数定理をQ Q Q 内で用いたものではない。
長さの正しい候補を作る。標準表c 0 , … , c n c_0,\ldots,c_n c 0 , … , c n に対して補題 4.3 で構成したB , C B,C B , C を数詞として代入する。各 Cell と各 (2) を用い、j < n j<n j < n を固定有限選言へ分けるとQ ⊢ Len Q 0 ( c ‾ , n ‾ ) Q\vdash\operatorname{Len}^{0}_Q(\overline c,\overline n) Q ⊢ Len Q 0 ( c , n ) を得る。ここでn ≤ c n\le c n ≤ c は、正である間に Tail が真に減少する外側の有限計算から得た数詞不等式である。
任意の候補z z z について LenQ 0 ( c ‾ , z ) ^{0}_Q(\overline c,z) Q 0 ( c , z ) を仮定する。z ≤ c ‾ z\le\overline c z ≤ c なので、z = 0 ‾ , … , c ‾ z=\overline0,\ldots,\overline c z = 0 , … , c へ有限分解することができる。z = k ‾ z=\overline k z = k を一つ固定する。
Prefix の第0 Cell と各段の Cell の機能性を用い、(2) をk k k またはn n n まで有限回適用すると、第j j j Cell の値はc j ‾ \overline{c_j} c j に限られる。k < n k<n k < n なら終端 Cell の値0 0 0 とc k > 0 c_k>0 c k > 0 が矛盾する。k > n k>n k > n なら Prefix の第n n n 段がx = c n = 0 x=c_n=0 x = c n = 0 とx ≠ 0 x\ne0 x = 0 を同時に要求するため矛盾する。したがってk = n k=n k = n だけが残る。これにより
Q ⊢ ∀ z ( Len Q 0 ( c ‾ , z ) ↔ z = n ‾ ) Q\vdash\forall z\bigl(
\operatorname{Len}^{0}_Q(\overline c,z)\leftrightarrow z=\overline n\bigr) Q ⊢ ∀ z ( Len Q 0 ( c , z ) ↔ z = n ) を得る。raw 式の存在と一意性を得たため、Unique を加えた LenQ _Q Q についても同じ双条件が成り立つ。
Entry を検証する。i < n i<n i < n なら標準表c 0 , … , c i c_0,\ldots,c_i c 0 , … , c i を AtQ 0 ^{0}_Q Q 0 の証人とし、
(2) の Head 成分から出力a i ‾ \overline{a_i} a i を得る。任意の候補では Len の直前の一意性からn n n が固定され、At の Prefix と Cell の機能性から反復尾がc i ‾ \overline{c_i} c i に固定され、
(2) から Head がa i ‾ \overline{a_i} a i に固定される。i ≥ n i\ge n i ≥ n では Len がn ‾ \overline n n に固定され、
EntryQ 0 ^{0}_Q Q 0 の第2選言が出力を0 0 0 に固定する。固定数詞i , n i,n i , n のi < n i<n i < n とn ≤ i n\le i n ≤ i の場合分けも七公理からの有限数詞計算である。よって範囲内と範囲外の両方で、EntryQ _Q Q の表示した双条件を得る。
最後に Concat を検証する。第1表にc 0 , … , c n c_0,\ldots,c_n c 0 , … , c n 、第2表に
e j = Concat ( c j , d ) ( 0 ≤ j ≤ n ) e_j=\operatorname{Concat}(c_j,d)\qquad(0\le j\le n) e j = Concat ( c j , d ) ( 0 ≤ j ≤ n ) を入れると、e 0 = e e_0=e e 0 = e 、e n = d e_n=d e n = d 、e j = Cons ( a j , e j + 1 ) e_j=\operatorname{Cons}(a_j,e_{j+1}) e j = Cons ( a j , e j + 1 ) である。二つの標準有限表の Cell、(2)、および固定入力に対する ConsQ _Q Q の存在を並べれば
ConcatQ 0 ( c ‾ , d ‾ , e ‾ ) ^{0}_Q(\overline c,\overline d,\overline e) Q 0 ( c , d , e ) を得る。任意の候補出力では、長さの議論がn n n と第1表の各c j , a j c_j,a_j c j , a j を固定する。第2表の終端はe n = d e_n=d e n = d に固定されるので、j = n − 1 , … , 0 j=n-1,\ldots,0 j = n − 1 , … , 0 の順に ConsQ _Q Q の固定入力一意性を有限回用いると、第0 Cell と出力候補はe ‾ \overline e e に固定される。n = 0 n=0 n = 0 では第0 Cell が同時に候補出力とd d d を表し、Cell の機能性から直ちに一致する。
以上は、各標準列と各固定添字について、(Q3) による有限分解、(Q1)、(Q2) による数詞の分離、
(Q4)–(Q7) による固定数詞計算を有限回並べた導出である。P A PA P A の帰納法も、本記事後半の原始再帰関数の一般表現可能性も、Len または Entry を Cell の定義に用いる循環もない。▨
例 4.6 (固定有限列の Q 内検証). c = SeqCode ( 4 , 1 , 7 ) c=\operatorname{SeqCode}(4,1,7) c = SeqCode ( 4 , 1 , 7 ) とする。定理 4.5 により、
Q ⊢ ∀ z ( Len Q ( c ‾ , z ) ↔ z = 3 ‾ ) , Q ⊢ ∀ z ( Entry Q ( c ‾ , 2 ‾ , z ) ↔ z = 7 ‾ ) , Q ⊢ ∀ z ( Entry Q ( c ‾ , 5 ‾ , z ) ↔ z = 0 ‾ ) \begin{aligned}
Q&\vdash\forall z\bigl(\operatorname{Len}_Q(\overline c,z)
\leftrightarrow z=\overline3\bigr),\\
Q&\vdash\forall z\bigl(\operatorname{Entry}_Q(\overline c,\overline2,z)
\leftrightarrow z=\overline7\bigr),\\
Q&\vdash\forall z\bigl(\operatorname{Entry}_Q(\overline c,\overline5,z)
\leftrightarrow z=\overline0\bigr)
\end{aligned} Q Q Q ⊢ ∀ z ( Len Q ( c , z ) ↔ z = 3 ) , ⊢ ∀ z ( Entry Q ( c , 2 , z ) ↔ z = 7 ) , ⊢ ∀ z ( Entry Q ( c , 5 , z ) ↔ z = 0 ) が成り立つ。三つの導出は、自由な列符号に対する一様な全域性ではなく、固定した数詞c ‾ \overline c c に対する有限検証である。
5 初期関数と合成
原始再帰関数の規約は§E15.7 定義 2.1 に従う。初期関数は単項零関数Z ( x ) = 0 Z(x)=0 Z ( x ) = 0 、単項後続者S ( x ) = x + 1 S(x)=x+1 S ( x ) = x + 1 、正アリティの射影P i k P_i^k P i k である。
補題 5.1. 次の式は各初期関数を強く数詞ごとに表現する。
φ Z ( x , y ) : ⟺ y = 0 , φ S ( x , y ) : ⟺ y = S x , φ P i k ( x 1 , … , x k , y ) : ⟺ y = x i . \begin{aligned}
\varphi_Z(x,y)&:\!\!\Longleftrightarrow y=0,\\
\varphi_S(x,y)&:\!\!\Longleftrightarrow y=Sx,\\
\varphi_{P_i^k}(x_1,\ldots,x_k,y)&:\!\!\Longleftrightarrow y=x_i.
\end{aligned} φ Z ( x , y ) φ S ( x , y ) φ P i k ( x 1 , … , x k , y ) : ⟺ y = 0 , : ⟺ y = S x , : ⟺ y = x i .
証明. 固定した標準入力を代入する。零関数と射影では、表示した式自体がy = 0 ‾ y=\overline0 y = 0 またはy = n i ‾ y=\overline{n_i} y = n i である。後続者ではS n ‾ S\overline n S n は定義によりn + 1 ‾ \overline{n+1} n + 1 である。等号の反射律、対称律、推移律から、各場合にQ ⊢ ∀ y ( φ ( y ) ↔ y = m ‾ ) Q\vdash\forall y(\varphi(y)\leftrightarrow y=\overline m) Q ⊢ ∀ y ( φ ( y ) ↔ y = m ) を得る。▨
補題 5.2. f : N m → N f\colon\mathbb N^m\to\mathbb N f : N m → N とg 1 , … , g m : N k → N g_1,\ldots,g_m\colon\mathbb N^k\to\mathbb N g 1 , … , g m : N k → N が強く数詞ごとに表現されるとする。
h ( x ⃗ ) = f ( g 1 ( x ⃗ ) , … , g m ( x ⃗ ) ) h(\vec x)=f(g_1(\vec x),\ldots,g_m(\vec x)) h ( x ) = f ( g 1 ( x ) , … , g m ( x )) に対して
φ h ( x ⃗ , y ) : ⟺ ∃ z 1 ⋯ ∃ z m ( ⋀ j = 1 m φ g j ( x ⃗ , z j ) ∧ φ f ( z 1 , … , z m , y ) ) \varphi_h(\vec x,y):\!\!\Longleftrightarrow
\exists z_1\cdots\exists z_m
\left(
\bigwedge_{j=1}^m\varphi_{g_j}(\vec x,z_j)
\land\varphi_f(z_1,\ldots,z_m,y)
\right) φ h ( x , y ) : ⟺ ∃ z 1 ⋯ ∃ z m ( j = 1 ⋀ m φ g j ( x , z j ) ∧ φ f ( z 1 , … , z m , y ) ) はh h h を強く数詞ごとに表現する。
証明. 標準入力n ⃗ \vec n n を固定し、b j = g j ( n ⃗ ) b_j=g_j(\vec n) b j = g j ( n ) 、c = f ( b 1 , … , b m ) c=f(b_1,\ldots,b_m) c = f ( b 1 , … , b m ) とおく。帰納法の仮定は
Q ⊢ ∀ z j ( φ g j ( n ⃗ ‾ , z j ) ↔ z j = b j ‾ ) Q\vdash\forall z_j\bigl(
\varphi_{g_j}(\overline{\vec n},z_j)\leftrightarrow z_j=\overline{b_j}\bigr) Q ⊢ ∀ z j ( φ g j ( n , z j ) ↔ z j = b j ) を各j j j について与える。したがってφ h ( n ⃗ ‾ , y ) \varphi_h(\overline{\vec n},y) φ h ( n , y ) の存在量化された各z j z_j z j はb j ‾ \overline{b_j} b j へ順に消去することができる。f f f に関する仮定を固定入力b ⃗ \vec b b へ適用すると
Q ⊢ φ h ( n ⃗ ‾ , y ) ↔ y = c ‾ Q\vdash\varphi_h(\overline{\vec n},y)\leftrightarrow y=\overline c Q ⊢ φ h ( n , y ) ↔ y = c を得る。y y y を全称閉包して必要な強い表現が従う。▨
6 原始再帰と有限計算列
ℓ ≥ 1 \ell\ge1 ℓ ≥ 1 の場合を先に扱う。f : N ℓ → N f\colon\mathbb N^\ell\to\mathbb N f : N ℓ → N とg : N ℓ + 2 → N g\colon\mathbb N^{\ell+2}\to\mathbb N g : N ℓ + 2 → N から
h ( x ⃗ , 0 ) = f ( x ⃗ ) , h ( x ⃗ , r + 1 ) = g ( x ⃗ , r , h ( x ⃗ , r ) ) \begin{aligned}
h(\vec x,0)&=f(\vec x),\\
h(\vec x,r+1)&=g(\vec x,r,h(\vec x,r))
\end{aligned} h ( x , 0 ) h ( x , r + 1 ) = f ( x ) , = g ( x , r , h ( x , r ))
を作る。LenQ _Q Q 、EntryQ _Q Q は定義 4.1 の式である。
Base f ( x ⃗ , s ) : ⟺ ∃ b ( Entry Q ( s , 0 , b ) ∧ φ f ( x ⃗ , b ) ) , Step g ( x ⃗ , s , i ) : ⟺ ∃ u ∃ v ( Entry Q ( s , i , u ) ∧ Entry Q ( s , S i , v ) ∧ φ g ( x ⃗ , i , u , v ) ) , Run h ( x ⃗ , r , s ) : ⟺ Len Q ( s , S r ) ∧ Base f ( x ⃗ , s ) ∧ ∀ i ( i < r → Step g ( x ⃗ , s , i ) ) , φ h ( x ⃗ , r , y ) : ⟺ ∃ s ( Run h ( x ⃗ , r , s ) ∧ Entry Q ( s , r , y ) ) . \begin{aligned}
\operatorname{Base}_f(\vec x,s)
&:\!\!\Longleftrightarrow
\exists b\bigl(\operatorname{Entry}_Q(s,0,b)\land\varphi_f(\vec x,b)\bigr),\\
\operatorname{Step}_g(\vec x,s,i)
&:\!\!\Longleftrightarrow
\exists u\exists v\bigl(
\operatorname{Entry}_Q(s,i,u)\land
\operatorname{Entry}_Q(s,Si,v)\land
\varphi_g(\vec x,i,u,v)\bigr),\\
\operatorname{Run}_h(\vec x,r,s)
&:\!\!\Longleftrightarrow
\operatorname{Len}_Q(s,Sr)\land
\operatorname{Base}_f(\vec x,s)\land
\forall i\,(i<r\to\operatorname{Step}_g(\vec x,s,i)),\\
\varphi_h(\vec x,r,y)
&:\!\!\Longleftrightarrow
\exists s\bigl(\operatorname{Run}_h(\vec x,r,s)\land
\operatorname{Entry}_Q(s,r,y)\bigr).
\end{aligned} Base f ( x , s ) Step g ( x , s , i ) Run h ( x , r , s ) φ h ( x , r , y ) : ⟺ ∃ b ( Entry Q ( s , 0 , b ) ∧ φ f ( x , b ) ) , : ⟺ ∃ u ∃ v ( Entry Q ( s , i , u ) ∧ Entry Q ( s , S i , v ) ∧ φ g ( x , i , u , v ) ) , : ⟺ Len Q ( s , S r ) ∧ Base f ( x , s ) ∧ ∀ i ( i < r → Step g ( x , s , i )) , : ⟺ ∃ s ( Run h ( x , r , s ) ∧ Entry Q ( s , r , y ) ) .
補題 6.1. f f f とg g g が強く数詞ごとに表現されるなら、上のφ h \varphi_h φ h はh h h を強く数詞ごとに表現する。パラメータ列の長さℓ = 0 \ell=0 ℓ = 0 の場合にも、基底値を一つの自然数c c c とし、Base f \operatorname{Base}_f Base f をEntry Q ( s , 0 , c ‾ ) \operatorname{Entry}_Q(s,0,\overline c) Entry Q ( s , 0 , c ) に置き換えれば同じ結論が成り立つ。この場合のh h h は再帰引数r r r をもつ一変数関数である。
証明. 最初にℓ ≥ 1 \ell\ge1 ℓ ≥ 1 とし、標準入力n ⃗ , r \vec n,r n , r を固定する。外側の自然数計算で
a 0 = f ( n ⃗ ) , a j + 1 = g ( n ⃗ , j , a j ) ( 0 ≤ j < r ) a_0=f(\vec n),
\qquad
a_{j+1}=g(\vec n,j,a_j)\quad(0\le j<r) a 0 = f ( n ) , a j + 1 = g ( n , j , a j ) ( 0 ≤ j < r ) という実際の有限計算列を作る。その Cons 符号をc c c とする。定理 4.5 により、Q Q Q は
LenQ ( c ‾ , r + 1 ‾ ) _Q(\overline c,\overline{r+1}) Q ( c , r + 1 ) と、各j ≤ r j\le r j ≤ r に対する
EntryQ ( c ‾ , j ‾ , a j ‾ ) _Q(\overline c,\overline j,\overline{a_j}) Q ( c , j , a j ) を、一意出力の形で証明する。
f f f の強い表現をn ⃗ \vec n n に適用するとQ ⊢ φ f ( n ⃗ ‾ , a 0 ‾ ) Q\vdash\varphi_f(\overline{\vec n},\overline{a_0}) Q ⊢ φ f ( n , a 0 ) である。g g g の強い表現を各固定入力( n ⃗ , j , a j ) (\vec n,j,a_j) ( n , j , a j ) に適用すると
Q ⊢ φ g ( n ⃗ ‾ , j ‾ , a j ‾ , a j + 1 ‾ ) Q\vdash\varphi_g(
\overline{\vec n},\overline j,\overline{a_j},\overline{a_{j+1}}) Q ⊢ φ g ( n , j , a j , a j + 1 ) である。これらはj = 0 , … , r − 1 j=0,\ldots,r-1 j = 0 , … , r − 1 の有限個の証明である。補題 3.2 により有限連言を固定有界全称条件へ戻すと、Q ⊢ Run h ( n ⃗ ‾ , r ‾ , c ‾ ) Q\vdash\operatorname{Run}_h(\overline{\vec n},\overline r,\overline c) Q ⊢ Run h ( n , r , c ) を得る。最後の成分を存在導入して
Q ⊢ φ h ( n ⃗ ‾ , r ‾ , a r ‾ ) Q\vdash\varphi_h(\overline{\vec n},\overline r,\overline{a_r}) Q ⊢ φ h ( n , r , a r ) となる。これが正しい出力の存在である。
次に任意の候補y y y を取り、φ h ( n ⃗ ‾ , r ‾ , y ) \varphi_h(\overline{\vec n},\overline r,y) φ h ( n , r , y ) を仮定する。存在証人s s s を固定する。Run h \operatorname{Run}_h Run h の基底節は、
EntryQ ( s , 0 , b ) _Q(s,0,b) Q ( s , 0 , b ) とφ f ( n ⃗ ‾ , b ) \varphi_f(\overline{\vec n},b) φ f ( n , b ) を同時に満たす自然数b b b が存在することを与える。f f f の強い表現からb = a 0 ‾ b=\overline{a_0} b = a 0 である。補題 4.4 の添字0 0 0 における機能性により、s s s の第0 0 0 成分として現れる任意の候補もa 0 ‾ \overline{a_0} a 0 に等しい。
ここからj = 0 , … , r − 1 j=0,\ldots,r-1 j = 0 , … , r − 1 を外側で有限回処理する。補題 3.2 で展開した第j j j の Step 節から、自然数u , v u,v u , v が存在して
Entry Q ( s , j ‾ , u ) , Entry Q ( s , j + 1 ‾ , v ) , φ g ( n ⃗ ‾ , j ‾ , u , v ) \operatorname{Entry}_Q(s,\overline j,u),
\quad
\operatorname{Entry}_Q(s,\overline{j+1},v),
\quad
\varphi_g(\overline{\vec n},\overline j,u,v) Entry Q ( s , j , u ) , Entry Q ( s , j + 1 , v ) , φ g ( n , j , u , v ) となる。固定添字での Entry の機能性と、それ以前の有限段で得た成分値からu = a j ‾ u=\overline{a_j} u = a j である。g g g の固定入力( n ⃗ , j , a j ) (\vec n,j,a_j) ( n , j , a j ) における強い表現からv = a j + 1 ‾ v=\overline{a_{j+1}} v = a j + 1 となる。再び Entry の機能性により第j + 1 j+1 j + 1 成分の任意の候補がa j + 1 ‾ \overline{a_{j+1}} a j + 1 に等しい。
この有限な論証をr r r 回連結すると、第r r r 成分の候補y y y はa r ‾ \overline{a_r} a r に等しい。したがって
Q ⊢ ∀ y ( φ h ( n ⃗ ‾ , r ‾ , y ) → y = a r ‾ ) . Q\vdash\forall y\bigl(
\varphi_h(\overline{\vec n},\overline r,y)\to y=\overline{a_r}\bigr). Q ⊢ ∀ y ( φ h ( n , r , y ) → y = a r ) . 既に証明したφ h ( n ⃗ ‾ , r ‾ , a r ‾ ) \varphi_h(\overline{\vec n},\overline r,\overline{a_r}) φ h ( n , r , a r ) と等号の置換可能性から逆向きも従い、
Q ⊢ ∀ y ( φ h ( n ⃗ ‾ , r ‾ , y ) ↔ y = a r ‾ ) Q\vdash\forall y\bigl(
\varphi_h(\overline{\vec n},\overline r,y)
\leftrightarrow y=\overline{a_r}\bigr) Q ⊢ ∀ y ( φ h ( n , r , y ) ↔ y = a r ) を得る。
ℓ = 0 \ell=0 ℓ = 0 では外側の計算列をa 0 = c a_0=c a 0 = c 、a j + 1 = g ( j , a j ) a_{j+1}=g(j,a_j) a j + 1 = g ( j , a j ) とする。基底で関数f : N 0 → N f\colon\mathbb N^0\to\mathbb N f : N 0 → N を導入せず、閉じた数詞等式
EntryQ ( s , 0 , c ‾ ) _Q(s,0,\overline c) Q ( s , 0 , c ) を用いる。step 関数g g g は二変数、得られるh h h は一変数なので、すべて正のアリティである。残りの有限列検証と一意性の論証は同一である。
いずれの場合も、r r r は固定した標準自然数であり、対象理論内の帰納法は用いていない。また、自由なr r r について計算列の存在をQ Q Q が証明するとは主張していない。▨
7 原始再帰関数と関係の表現定理
定理 7.1 (原始再帰関数と関係の Q における表現可能性). 次が成り立つ。
任意の正のアリティk ≥ 1 k\ge1 k ≥ 1 と任意の原始再帰全関数f : N k → N f\colon\mathbb N^k\to\mathbb N f : N k → N に対して、f f f をQ Q Q で強く数詞ごとに表現するL A L_A L A 論理式φ f ( x ⃗ , y ) \varphi_f(\vec x,y) φ f ( x , y ) が存在する。
任意の正のアリティk ≥ 1 k\ge1 k ≥ 1 と任意の原始再帰関係R ⊆ N k R\subseteq\mathbb N^k R ⊆ N k に対して、R R R を肯定例と否定例の双方でQ Q Q に数詞ごとに表現するL A L_A L A 論理式ρ R ( x ⃗ ) \rho_R(\vec x) ρ R ( x ) が存在する。
証明. (1) を、原始再帰関数を生成する有限な式の構造に関する帰納法で証明する。初期関数の場合は補題 5.1 による。合成の場合は補題 5.2 による。原始再帰の場合は補題 6.1 による。パラメータ列が空の場合も同補題で扱っており、一変数の再帰関数を得る。したがって、各構成子で強い一意出力を保ったまま、すべての正アリティ原始再帰全関数を表現することができる。
(2) を示す。原始再帰関係R R R の特性関数を
χ R ( n ⃗ ) = { 1 R ( n ⃗ ) , 0 ¬ R ( n ⃗ ) \chi_R(\vec n)=
\begin{cases}1&R(\vec n),\\0&\neg R(\vec n)\end{cases} χ R ( n ) = { 1 0 R ( n ) , ¬ R ( n ) とする。χ R \chi_R χ R はR R R と同じ正のアリティをもつ原始再帰全関数である。(1) により、その強い表現式φ χ R ( x ⃗ , y ) \varphi_{\chi_R}(\vec x,y) φ χ R ( x , y ) が存在する。そこで
ρ R ( x ⃗ ) : ⟺ φ χ R ( x ⃗ , 1 ‾ ) \rho_R(\vec x):\!\!\Longleftrightarrow
\varphi_{\chi_R}(\vec x,\overline1) ρ R ( x ) : ⟺ φ χ R ( x , 1 ) と定める。
R ( n ⃗ ) R(\vec n) R ( n ) ならχ R ( n ⃗ ) = 1 \chi_R(\vec n)=1 χ R ( n ) = 1 なので、強い表現からQ ⊢ φ χ R ( n ⃗ ‾ , 1 ‾ ) Q\vdash\varphi_{\chi_R}(\overline{\vec n},\overline1) Q ⊢ φ χ R ( n , 1 ) 、すなわちQ ⊢ ρ R ( n ⃗ ‾ ) Q\vdash\rho_R(\overline{\vec n}) Q ⊢ ρ R ( n ) を得る。¬ R ( n ⃗ ) \neg R(\vec n) ¬ R ( n ) ならχ R ( n ⃗ ) = 0 \chi_R(\vec n)=0 χ R ( n ) = 0 であり、強い表現は
Q ⊢ φ χ R ( n ⃗ ‾ , 1 ‾ ) ↔ 1 ‾ = 0 ‾ Q\vdash
\varphi_{\chi_R}(\overline{\vec n},\overline1)
\leftrightarrow\overline1=\overline0 Q ⊢ φ χ R ( n , 1 ) ↔ 1 = 0 を与える。(Q1) からQ ⊢ 1 ‾ ≠ 0 ‾ Q\vdash\overline1\ne\overline0 Q ⊢ 1 = 0 なのでQ ⊢ ¬ ρ R ( n ⃗ ‾ ) Q\vdash\neg\rho_R(\overline{\vec n}) Q ⊢ ¬ ρ R ( n ) である。したがって肯定例と否定例の双方が表現される。▨
8 定数値と主張の境界
命題 8.1. 各標準自然数c c c について、C c ( x ) = c C_c(x)=c C c ( x ) = c は単項原始再帰関数であり、
φ C c ( x , y ) : ⟺ y = c ‾ \varphi_{C_c}(x,y):\!\!\Longleftrightarrow y=\overline c φ C c ( x , y ) : ⟺ y = c によって強く数詞ごとに表現される。
証明. C 0 = Z C_0=Z C 0 = Z である。C c + 1 = S ∘ C c C_{c+1}=S\circ C_c C c + 1 = S ∘ C c として、外側で固定したc c c 回だけ後続者と合成すればC c C_c C c を作ることができる。入力変数x x x は残るのでアリティは1 1 1 である。表示したグラフ式は任意の固定入力でy = c ‾ y=\overline c y = c そのものであり、強い表現条件を満たす。▨
閉じた定数値だけが必要なら数詞c ‾ \overline c c を用いる。零変数関数または零変数関係を定理 7.1 の base case へ加えてはならない。
注意 8.2 (非標準モデルでの全域性を主張しない). 定理 7.1 は各標準入力n ⃗ \vec n n についてQ ⊢ ∀ y ( φ f ( n ⃗ ‾ , y ) ↔ y = f ( n ⃗ ) ‾ ) Q\vdash\forall y(\varphi_f(\overline{\vec n},y)\leftrightarrow y=\overline{f(\vec n)}) Q ⊢ ∀ y ( φ f ( n , y ) ↔ y = f ( n ) ) を与える。この無限個のメタ理論上の結論から、一つの文Q ⊢ ∀ x ⃗ ∃ ! y φ f ( x ⃗ , y ) Q\vdash\forall\vec x\exists!y\,\varphi_f(\vec x,y) Q ⊢ ∀ x ∃ ! y φ f ( x , y ) は従わない。したがって、Q Q Q の任意の非標準モデルでφ f \varphi_f φ f が外側の関数f f f を非標準入力へ外延的に延長すると主張していない。
例 8.3 (加法の表現). 加法は二変数原始再帰関数である。言語に+ + + が既にあるため
φ a d d ( x 1 , x 2 , y ) : ⟺ y = x 1 + x 2 \varphi_{\rm add}(x_1,x_2,y):\!\!\Longleftrightarrow y=x_1+x_2 φ add ( x 1 , x 2 , y ) : ⟺ y = x 1 + x 2 を選べる。固定した標準入力m , n m,n m , n では§E16.15 補題 4.1 によりQ ⊢ m ‾ + n ‾ = m + n ‾ Q\vdash\overline m+\overline n=\overline{m+n} Q ⊢ m + n = m + n である。等号の置換可能性からQ ⊢ ∀ y ( y = m ‾ + n ‾ ↔ y = m + n ‾ ) Q\vdash\forall y(y=\overline m+\overline n\leftrightarrow y=\overline{m+n}) Q ⊢ ∀ y ( y = m + n ↔ y = m + n ) を得る。
9 演習
問題 9.1.
関数の強い表現が、正しい出力についての肯定例だけより強い理由を説明せよ。
有限列算術式 API の定義依存が循環しないことを、Pair、Cons、Cell、Prefix、Len、At、Head、Entry、Concat の順序から確認せよ。
補題 4.2 で二法の解を有限個の法へ拡張するとき、法の積と次の法が互いに素である理由を示せ。
原始再帰の場合に、任意の候補計算列の末尾も実際の出力に等しいことを、固定添字での Entry の機能性から示せ。
パラメータ列が空の原始再帰で、基底を零項関数として扱わない構成を書け。
特性関数の強い表現から、関係の否定例をQ Q Q で証明する方法を示せ。
解答 (確認問題の解答).
肯定例はφ f ( n ⃗ ‾ , m ‾ ) \varphi_f(\overline{\vec n},\overline m) φ f ( n , m ) だけを与える。強い表現は任意の候補y y y について式が成り立つこととy = m ‾ y=\overline m y = m が同値であることまで要求する。
Pair と Cons の raw 式を先に固定し、その一段復号 Dec を用いて Prefix を定める。Cell は Tab だけを用い、Prefix から Len と At を定める。Head は Dec から定め、最後に Len、At、Head を用いて Entry を、Prefix、Cell、Dec、Cons を用いて Concat を定める。後に定める式を先の定義へ用いていない。
各m i m_i m i は次の法m k + 1 m_{k+1} m k + 1 と互いに素なので、m i m_i m i はm k + 1 m_{k+1} m k + 1 を法として逆元をもつ。逆元を掛け合わせると積M k M_k M k の逆元が得られるため、M k M_k M k とm k + 1 m_{k+1} m k + 1 も互いに素である。
基底成分をf f f の強い一意性で固定し、各固定 step で直前成分、g g g の強い一意性、次成分の順に有限回固定する。最後に第r r r 成分の候補を実際のa r a_r a r へ一致させる。
自然数c c c を基底値としてh ( 0 ) = c h(0)=c h ( 0 ) = c 、h ( r + 1 ) = g ( r , h ( r ) ) h(r+1)=g(r,h(r)) h ( r + 1 ) = g ( r , h ( r )) とする。表現式の基底節は EntryQ ( s , 0 , c ‾ ) _Q(s,0,\overline c) Q ( s , 0 , c ) とし、h h h は再帰変数をもつ一変数関数である。
¬ R ( n ⃗ ) \neg R(\vec n) ¬ R ( n ) なら特性関数値は0 0 0 である。強い表現を出力候補1 1 1 に適用してρ R ( n ⃗ ‾ ) ↔ 1 ‾ = 0 ‾ \rho_R(\overline{\vec n})\leftrightarrow\overline1=\overline0 ρ R ( n ) ↔ 1 = 0 を得て、(Q1) から右辺を否定する。
▨