1 1. PA の内部で用いる初等的な数論
以下、L A = { 0 , S , + , × } L_A=\{0,S,+,\times\} L A = { 0 , S , + , × } とし、順序は§E16.15 定義 1.1 の略記
x < y : ⟺ ∃ z ( y = x + S z ) , x ≤ y : ⟺ ∃ z ( y = x + z ) x<y:\!\!\Longleftrightarrow\exists z\,(y=x+Sz),
\qquad
x\le y:\!\!\Longleftrightarrow\exists z\,(y=x+z) x < y : ⟺ ∃ z ( y = x + S z ) , x ≤ y : ⟺ ∃ z ( y = x + z )
に従う。P A PA P A は§E16.15 定義 3.1 の理論であり、帰納法公理スキーマはすべてのL A L_A L A 論理式について成り立つ。以下の帰納法は、いずれもこの図式の一つの例であって、論理式の複雑さによる制限を受けない。
補題 1.1. P A PA P A は次を証明する。
加法と乗法の結合律と交換律、および分配律x × ( y + z ) = x × y + x × z x\times(y+z)=x\times y+x\times z x × ( y + z ) = x × y + x × z 。
加法の消約律x + z = y + z → x = y x+z=y+z\to x=y x + z = y + z → x = y 、およびz ≠ 0 z\ne0 z = 0 のときの乗法の消約律x × z = y × z → x = y x\times z=y\times z\to x=y x × z = y × z → x = y 。
x ≤ y ∨ y ≤ x x\le y\lor y\le x x ≤ y ∨ y ≤ x 、≤ \le ≤ の反射律・推移律・反対称律、およびx < y ↔ S x ≤ y x<y\leftrightarrow Sx\le y x < y ↔ S x ≤ y 。
x ≠ 0 → ∃ u ( x = S u ) x\ne0\to\exists u\,(x=Su) x = 0 → ∃ u ( x = S u ) 、y ≤ 0 → y = 0 y\le0\to y=0 y ≤ 0 → y = 0 、y ≤ S x → ( y ≤ x ∨ y = S x ) y\le Sx\to(y\le x\lor y=Sx) y ≤ S x → ( y ≤ x ∨ y = S x ) 、y < S x → y ≤ x y<Sx\to y\le x y < S x → y ≤ x 。
加法と乗法の単調性x ≤ y → x + z ≤ y + z x\le y\to x+z\le y+z x ≤ y → x + z ≤ y + z およびx ≤ y → x × z ≤ y × z x\le y\to x\times z\le y\times z x ≤ y → x × z ≤ y × z 。
乗法の単調性の逆0 < z ∧ x × z ≤ y × z → x ≤ y 0<z\land x\times z\le y\times z\to x\le y 0 < z ∧ x × z ≤ y × z → x ≤ y 。
証明. (1) を示す。0 + x = x 0+x=x 0 + x = x はx x x に関する帰納法による。x = 0 x=0 x = 0 では (Q4)、x x x からS x Sx S x へは (Q5) により0 + S x = S ( 0 + x ) = S x 0+Sx=S(0+x)=Sx 0 + S x = S ( 0 + x ) = S x である。S x + y = S ( x + y ) Sx+y=S(x+y) S x + y = S ( x + y ) もy y y に関する帰納法で得る。この二つから、y y y に関する帰納法でx + y = y + x x+y=y+x x + y = y + x を得る。結合律( x + y ) + z = x + ( y + z ) (x+y)+z=x+(y+z) ( x + y ) + z = x + ( y + z ) はz z z に関する帰納法により、(Q4) と (Q5) だけから従う。
分配律x × ( y + z ) = x × y + x × z x\times(y+z)=x\times y+x\times z x × ( y + z ) = x × y + x × z はz z z に関する帰納法による。z = 0 z=0 z = 0 では (Q4) と (Q6)、z z z からS z Sz S z へは (Q5) と (Q7) および加法の結合律・交換律を用いる。0 × x = 0 0\times x=0 0 × x = 0 はx x x に関する帰納法で、S x × y = x × y + y Sx\times y=x\times y+y S x × y = x × y + y はy y y に関する帰納法で示し、これらからy y y に関する帰納法でx × y = y × x x\times y=y\times x x × y = y × x を得る。乗法の結合律はz z z に関する帰納法と分配律による。
(2) の加法の消約律はz z z に関する帰納法による。z = 0 z=0 z = 0 では (Q4)、z z z からS z Sz S z へは (Q5) と (Q2) を用いる。乗法の消約律は(3) の後に示す。
(3) を示す。∀ y ( x ≤ y ∨ y ≤ x ) \forall y\,(x\le y\lor y\le x) ∀ y ( x ≤ y ∨ y ≤ x ) をx x x に関する帰納法で示す。x = 0 x=0 x = 0 ではy = 0 + y y=0+y y = 0 + y より0 ≤ y 0\le y 0 ≤ y である。x x x からS x Sx S x へ進む段でy y y を取る。y ≤ x y\le x y ≤ x ならばx = y + d x=y+d x = y + d と書くことができ、S x = y + S d Sx=y+Sd S x = y + S d よりy ≤ S x y\le Sx y ≤ S x である。x ≤ y x\le y x ≤ y ならばy = x + d y=x+d y = x + d と書くことができる。d = 0 d=0 d = 0 ならy = x ≤ S x y=x\le Sx y = x ≤ S x である。d = S u d=Su d = S u ならy = x + S u = S x + u y=x+Su=Sx+u y = x + S u = S x + u よりS x ≤ y Sx\le y S x ≤ y である。反射律と推移律は加法の結合律から従う。反対称律は、y = x + d y=x+d y = x + d とx = y + e x=y+e x = y + e からx = x + ( d + e ) x=x+(d+e) x = x + ( d + e ) を得て、消約律によりd + e = 0 d+e=0 d + e = 0 、(Q1) と (Q5) によりd = e = 0 d=e=0 d = e = 0 となることによる。x < y ↔ S x ≤ y x<y\leftrightarrow Sx\le y x < y ↔ S x ≤ y はx + S z = S x + z x+Sz=Sx+z x + S z = S x + z から従う。
(4) の第1式は (Q3) である。y ≤ 0 y\le0 y ≤ 0 は0 = y + d 0=y+d 0 = y + d を与え、y = S u y=Su y = S u ならy + d = S ( u + d ) y+d=S(u+d) y + d = S ( u + d ) が (Q1) に反するのでy = 0 y=0 y = 0 である。y ≤ S x y\le Sx y ≤ S x はS x = y + d Sx=y+d S x = y + d を与え、d = 0 d=0 d = 0 ならy = S x y=Sx y = S x 、d = S e d=Se d = S e ならS x = S ( y + e ) Sx=S(y+e) S x = S ( y + e ) と (Q2) からx = y + e x=y+e x = y + e 、すなわちy ≤ x y\le x y ≤ x である。y < S x y<Sx y < S x はS x = y + S z = S ( y + z ) Sx=y+Sz=S(y+z) S x = y + S z = S ( y + z ) を与え、(Q2) からx = y + z x=y+z x = y + z 、すなわちy ≤ x y\le x y ≤ x である。
(5) の加法の単調性は結合律から直ちに従う。乗法の単調性は分配律から従う。
(2) の乗法の消約律を示す。z ≠ 0 z\ne0 z = 0 としx × z = y × z x\times z=y\times z x × z = y × z とする。(3) によりx ≤ y x\le y x ≤ y としてよい。x ≠ y x\ne y x = y ならばy = x + S d y=x+Sd y = x + S d と書くことができ、分配律によりy × z = x × z + S d × z y\times z=x\times z+Sd\times z y × z = x × z + S d × z である。消約律によりS d × z = 0 Sd\times z=0 S d × z = 0 である。一方S d × z = d × z + z Sd\times z=d\times z+z S d × z = d × z + z であり、z ≠ 0 z\ne0 z = 0 からS d × z ≠ 0 Sd\times z\ne0 S d × z = 0 である。これは矛盾なのでx = y x=y x = y である。
(6) を示す。0 < z 0<z 0 < z としx × z ≤ y × z x\times z\le y\times z x × z ≤ y × z とする。(3) によりx ≤ y x\le y x ≤ y またはy ≤ x y\le x y ≤ x である。前者ならば示すことがない。後者でx ≠ y x\ne y x = y とすると、x = y + S d x=y+Sd x = y + S d を満たすd d d が存在し、分配律によりx × z = y × z + S d × z x\times z=y\times z+Sd\times z x × z = y × z + S d × z である。一方x × z ≤ y × z x\times z\le y\times z x × z ≤ y × z からy × z = x × z + w y\times z=x\times z+w y × z = x × z + w を満たすw w w が存在するので、y × z = y × z + S d × z + w y\times z=y\times z+Sd\times z+w y × z = y × z + S d × z + w となり、加法の消約律によりS d × z + w = 0 Sd\times z+w=0 S d × z + w = 0 であり、S d × z ≤ 0 Sd\times z\le0 S d × z ≤ 0 と(4) によりS d × z = 0 Sd\times z=0 S d × z = 0 である。S d × z = d × z + z Sd\times z=d\times z+z S d × z = d × z + z と0 < z 0<z 0 < z からこれは矛盾である。よってx = y x=y x = y であり、いずれにせよx ≤ y x\le y x ≤ y である。▨
補題 1.2. φ ( x , z ⃗ ) \varphi(x,\vec z) φ ( x , z ) を任意のL A L_A L A 論理式とする。P A PA P A は
∃ x φ ( x , z ⃗ ) → ∃ x ( φ ( x , z ⃗ ) ∧ ∀ y < x ¬ φ ( y , z ⃗ ) ) \exists x\,\varphi(x,\vec z)
\to
\exists x\,\bigl(\varphi(x,\vec z)\land\forall y<x\,\neg\varphi(y,\vec z)\bigr) ∃ x φ ( x , z ) → ∃ x ( φ ( x , z ) ∧ ∀ y < x ¬ φ ( y , z ) ) を証明する。
証明. 対偶を示す。∀ x ( φ ( x , z ⃗ ) → ∃ y < x φ ( y , z ⃗ ) ) \forall x\,\bigl(\varphi(x,\vec z)\to\exists y<x\,\varphi(y,\vec z)\bigr) ∀ x ( φ ( x , z ) → ∃ y < x φ ( y , z ) ) を仮定する。論理式ψ ( x ) : ⟺ ∀ y ≤ x ¬ φ ( y , z ⃗ ) \psi(x):\!\!\Longleftrightarrow\forall y\le x\,\neg\varphi(y,\vec z) ψ ( x ) : ⟺ ∀ y ≤ x ¬ φ ( y , z ) にP A PA P A の帰納法を適用する。
x = 0 x=0 x = 0 の場合、補題 1.1 (4) によりy ≤ 0 y\le0 y ≤ 0 はy = 0 y=0 y = 0 を与えるので、¬ φ ( 0 , z ⃗ ) \neg\varphi(0,\vec z) ¬ φ ( 0 , z ) を示せばよい。φ ( 0 , z ⃗ ) \varphi(0,\vec z) φ ( 0 , z ) を仮定すると、仮定からy < 0 y<0 y < 0 を満たすy y y が存在することになる。しかし0 = y + S d = S ( y + d ) 0=y+Sd=S(y+d) 0 = y + S d = S ( y + d ) は (Q1) に反する。よって¬ φ ( 0 , z ⃗ ) \neg\varphi(0,\vec z) ¬ φ ( 0 , z ) である。
x x x からS x Sx S x へ進む段では、ψ ( x ) \psi(x) ψ ( x ) を仮定する。φ ( S x , z ⃗ ) \varphi(Sx,\vec z) φ ( S x , z ) とすると、y < S x y<Sx y < S x かつφ ( y , z ⃗ ) \varphi(y,\vec z) φ ( y , z ) を満たすy y y が存在する。補題 1.1 (4) によりy ≤ x y\le x y ≤ x であり、ψ ( x ) \psi(x) ψ ( x ) に反する。よって¬ φ ( S x , z ⃗ ) \neg\varphi(Sx,\vec z) ¬ φ ( S x , z ) であり、補題 1.1 (4) のy ≤ S x → ( y ≤ x ∨ y = S x ) y\le Sx\to(y\le x\lor y=Sx) y ≤ S x → ( y ≤ x ∨ y = S x ) と合わせてψ ( S x ) \psi(Sx) ψ ( S x ) を得る。
従って∀ x ψ ( x ) \forall x\,\psi(x) ∀ x ψ ( x ) であり、とくに∀ x ¬ φ ( x , z ⃗ ) \forall x\,\neg\varphi(x,\vec z) ∀ x ¬ φ ( x , z ) である。▨
補題 1.3. P A PA P A は次を証明する。0 < b 0<b 0 < b とすると、
a = q × b + r , r < b a=q\times b+r,\qquad r<b a = q × b + r , r < b を満たすq , r q,r q , r がちょうど一組存在する。
証明. 存在をa a a に関する帰納法で示す。a = 0 a=0 a = 0 ではq = r = 0 q=r=0 q = r = 0 とすればよい。a a a からS a Sa S a へ進む段では、a = q × b + r a=q\times b+r a = q × b + r 、r < b r<b r < b とする。S a = q × b + S r Sa=q\times b+Sr S a = q × b + S r である。S r < b Sr<b S r < b ならばこの組でよい。そうでなければ補題 1.1 (3) と補題 1.1 (4) によりS r = b Sr=b S r = b であるから、S a = q × b + b = S q × b + 0 Sa=q\times b+b=Sq\times b+0 S a = q × b + b = S q × b + 0 となり、0 < b 0<b 0 < b よりこの組でよい。
一意性を示す。q × b + r = q ′ × b + r ′ q\times b+r=q'\times b+r' q × b + r = q ′ × b + r ′ 、r < b r<b r < b 、r ′ < b r'<b r ′ < b とする。補題 1.1 (3) によりq ≤ q ′ q\le q' q ≤ q ′ としてよく、q ′ = q + e q'=q+e q ′ = q + e と書く。分配律によりq × b + r = q × b + e × b + r ′ q\times b+r=q\times b+e\times b+r' q × b + r = q × b + e × b + r ′ であり、加法の消約律によりr = e × b + r ′ r=e\times b+r' r = e × b + r ′ である。e ≠ 0 e\ne0 e = 0 ならばe × b ≥ b e\times b\ge b e × b ≥ b であるからr ≥ b r\ge b r ≥ b となり、r < b r<b r < b に反する。よってe = 0 e=0 e = 0 、すなわちq = q ′ q=q' q = q ′ であり、消約律からr = r ′ r=r' r = r ′ である。▨
定義 1.4 (PA 内の整除式と合同式). L A L_A L A 論理式の略記を
d ∣ a : ⟺ ∃ q ( a = q × d ) , a ≡ b ( m o d m ) : ⟺ ∃ s ∃ t ( a + m × s = b + m × t ) d\mid a
\quad:\!\!\Longleftrightarrow\quad
\exists q\,(a=q\times d),
\qquad
a\equiv b\ (\mathrm{mod}\ m)
\quad:\!\!\Longleftrightarrow\quad
\exists s\,\exists t\,(a+m\times s=b+m\times t) d ∣ a : ⟺ ∃ q ( a = q × d ) , a ≡ b ( mod m ) : ⟺ ∃ s ∃ t ( a + m × s = b + m × t ) と定める。左の略記を PA 内の整除式 (divisibility formula in PA ) 、右の略記を PA 内の合同式 (congruence formula in PA ) という。合同の定義に自然数の引き算を用いていないので、右辺はそのままL A L_A L A 論理式である。
補題 1.5. P A PA P A は次を証明する。
≡ ( m o d m ) \equiv\ (\mathrm{mod}\ m) ≡ ( mod m ) は反射的、対称的、推移的であり、a ≡ b a\equiv b a ≡ b かつc ≡ d c\equiv d c ≡ d ならばa + c ≡ b + d a+c\equiv b+d a + c ≡ b + d かつa × c ≡ b × d a\times c\equiv b\times d a × c ≡ b × d である。
0 < d 0<d 0 < d 、d ∣ a d\mid a d ∣ a 、a + r = a ′ a+r=a' a + r = a ′ 、d ∣ a ′ d\mid a' d ∣ a ′ ならばd ∣ r d\mid r d ∣ r である。
m ∣ M m\mid M m ∣ M かつa ≡ b ( m o d M ) a\equiv b\ (\mathrm{mod}\ M) a ≡ b ( mod M ) ならばa ≡ b ( m o d m ) a\equiv b\ (\mathrm{mod}\ m) a ≡ b ( mod m ) である。
0 < m 0<m 0 < m とする。a ≡ b ( m o d m ) a\equiv b\ (\mathrm{mod}\ m) a ≡ b ( mod m ) であることと、a a a とb b b をm m m で割った余りが等しいこととは同値である。とくにb < m b<m b < m ならば、a ≡ b ( m o d m ) a\equiv b\ (\mathrm{mod}\ m) a ≡ b ( mod m ) はa a a をm m m で割った余りがb b b であることと同値である。
証明. (1) の反射律と対称律は定義から直ちに従う。推移律は、a + m s = b + m t a+ms=b+mt a + m s = b + m t とb + m s ′ = c + m t ′ b+ms'=c+mt' b + m s ′ = c + m t ′ からa + m ( s + s ′ ) = c + m ( t + t ′ ) a+m(s+s')=c+m(t+t') a + m ( s + s ′ ) = c + m ( t + t ′ ) を得ることによる。加法との両立は二つの等式を辺ごとに加えることによる。乗法との両立は、まずa + m s = b + m t a+ms=b+mt a + m s = b + m t の両辺にc c c を掛けてa c + m ( s c ) = b c + m ( t c ) ac+m(sc)=bc+m(tc) a c + m ( sc ) = b c + m ( t c ) を得てa c ≡ b c ac\equiv bc a c ≡ b c とし、同様にb c ≡ b d bc\equiv bd b c ≡ b d を得て推移律を用いることによる。
(2) を示す。a = q d a=qd a = q d 、a ′ = q ′ d a'=q'd a ′ = q ′ d とするとq d + r = q ′ d qd+r=q'd q d + r = q ′ d であり、とくにq × d ≤ q ′ × d q\times d\le q'\times d q × d ≤ q ′ × d である。0 < d 0<d 0 < d であるから補題 1.1 (6) によりq ≤ q ′ q\le q' q ≤ q ′ であり、q ′ = q + w q'=q+w q ′ = q + w と書くことができる。分配律と加法の消約律によりr = w d r=wd r = w d 、すなわちd ∣ r d\mid r d ∣ r である。
(3) は、M = m × k M=m\times k M = m × k とa + M s = b + M t a+Ms=b+Mt a + M s = b + M t からa + m ( k s ) = b + m ( k t ) a+m(ks)=b+m(kt) a + m ( k s ) = b + m ( k t ) を得ることによる。
(4) を示す。補題 1.3 によりa = q × m + ρ a=q\times m+\rho a = q × m + ρ 、b = q ′ × m + ρ ′ b=q'\times m+\rho' b = q ′ × m + ρ ′ 、ρ , ρ ′ < m \rho,\rho'<m ρ , ρ ′ < m と書くことができる。ρ = ρ ′ \rho=\rho' ρ = ρ ′ ならばa + m q ′ = b + m q a+m q'=b+m q a + m q ′ = b + m q となりa ≡ b a\equiv b a ≡ b である。逆にa + m s = b + m t a+ms=b+mt a + m s = b + m t とすると、ρ + m ( q + s ) = ρ ′ + m ( q ′ + t ) \rho+m(q+s)=\rho'+m(q'+t) ρ + m ( q + s ) = ρ ′ + m ( q ′ + t ) である。補題 1.1 (3) によりq + s ≤ q ′ + t q+s\le q'+t q + s ≤ q ′ + t としてよく、q ′ + t = ( q + s ) + e q'+t=(q+s)+e q ′ + t = ( q + s ) + e と書くと、消約律によりρ = ρ ′ + m × e \rho=\rho'+m\times e ρ = ρ ′ + m × e を得る。e ≠ 0 e\ne0 e = 0 ならばρ ≥ m \rho\ge m ρ ≥ m となりρ < m \rho<m ρ < m に反するのでe = 0 e=0 e = 0 、すなわちρ = ρ ′ \rho=\rho' ρ = ρ ′ である。最後の主張は、b < m b<m b < m のときb b b をm m m で割った余りがb b b 自身であることによる。▨
2 2. Bézout の等式と中国剰余定理
有限族の表符号は、二つずつ互いに素な法に対する合同式の同時可解性から得る。§E16.19 補題 4.2 は同じ事実をメタ理論で証明しているが、そこでは整数と可変長の積を用いており、P A PA P A の内部の主張ではない。ここでは自然数だけを用いてP A PA P A 内の版を証明する。
0 < a 0<a 0 < a かつ0 < b 0<b 0 < b のとき、a a a とb b b が互いに素 であるとは、e ∣ a e\mid a e ∣ a かつe ∣ b e\mid b e ∣ b を満たす任意のe e e についてe = 1 e=1 e = 1 であることをいう。
補題 2.1 (PA における Bézout の等式). P A PA P A は次を証明する。0 < a 0<a 0 < a かつ0 < b 0<b 0 < b とし、L A L_A L A 論理式
σ a , b ( z ) : ⟺ 0 < z ∧ ∃ u ∃ v ( z + b × v = a × u ) \sigma_{a,b}(z):\!\!\Longleftrightarrow
0<z\land\exists u\,\exists v\,(z+b\times v=a\times u) σ a , b ( z ) : ⟺ 0 < z ∧ ∃ u ∃ v ( z + b × v = a × u ) を満たす最小のz z z をd d d とする。このときd d d は存在し、d ∣ a d\mid a d ∣ a かつd ∣ b d\mid b d ∣ b である。さらに、e ∣ a e\mid a e ∣ a かつe ∣ b e\mid b e ∣ b を満たす任意のe e e についてe ∣ d e\mid d e ∣ d である。
証明. u = 1 u=1 u = 1 、v = 0 v=0 v = 0 と取るとa + b × 0 = a × 1 a+b\times0=a\times1 a + b × 0 = a × 1 であるから、0 < a 0<a 0 < a と合わせてσ a , b ( a ) \sigma_{a,b}(a) σ a , b ( a ) が成り立つ。補題 1.2 をσ a , b \sigma_{a,b} σ a , b へ適用して、σ a , b \sigma_{a,b} σ a , b を満たす最小のd d d を取る。d + b v 0 = a u 0 d+b v_0=a u_0 d + b v 0 = a u 0 を満たすu 0 , v 0 u_0,v_0 u 0 , v 0 を固定する。
d ∣ b d\mid b d ∣ b を示す。補題 1.3 によりb = q × d + r b=q\times d+r b = q × d + r 、r < d r<d r < d と書く。r = 0 r=0 r = 0 でないと仮定する。A : = q u 0 A:=q u_0 A := q u 0 、B : = 1 + q v 0 B:=1+q v_0 B := 1 + q v 0 、s : = A + B s:=A+B s := A + B と置く。0 < b 0<b 0 < b よりb s ≥ s ≥ A b s\ge s\ge A b s ≥ s ≥ A であるから、U + A = b s U+A=b s U + A = b s を満たすU U U が存在する。0 < a 0<a 0 < a よりa s ≥ s ≥ B a s\ge s\ge B a s ≥ s ≥ B であるから、V + B = a s V+B=a s V + B = a s を満たすV V V が存在する。
U + A = b s U+A=bs U + A = b s の両辺にa a a を掛けてa U + a A = a b s aU+aA=abs a U + a A = ab s 、V + B = a s V+B=as V + B = a s の両辺にb b b を掛けてb V + b B = a b s bV+bB=abs bV + b B = ab s を得る。従って
a U + a q u 0 = b V + b + b q v 0 aU+a q u_0=bV+b+b q v_0 a U + a q u 0 = bV + b + b q v 0 である。d + b v 0 = a u 0 d+bv_0=au_0 d + b v 0 = a u 0 の両辺にq q q を掛けるとq d + q b v 0 = q a u 0 qd+q b v_0=q a u_0 q d + q b v 0 = q a u 0 であり、左辺のa q u 0 aqu_0 a q u 0 をこれで置き換えると
a U + q d + q b v 0 = b V + b + b q v 0 aU+qd+q b v_0=bV+b+b q v_0 a U + q d + q b v 0 = bV + b + b q v 0 となる。加法の消約律によりa U + q d = b V + b aU+qd=bV+b a U + q d = bV + b である。b = q d + r b=qd+r b = q d + r を代入して再び消約するとa U = b V + r aU=bV+r a U = bV + r 、すなわちr + b V = a U r+bV=aU r + bV = a U を得る。0 < r 0<r 0 < r であるからσ a , b ( r ) \sigma_{a,b}(r) σ a , b ( r ) が成り立ち、r < d r<d r < d はd d d の最小性に反する。よってr = 0 r=0 r = 0 、すなわちd ∣ b d\mid b d ∣ b である。
d ∣ a d\mid a d ∣ a を示す。補題 1.3 によりa = q × d + r a=q\times d+r a = q × d + r 、r < d r<d r < d と書き、r = 0 r=0 r = 0 でないと仮定する。0 < b 0<b 0 < b よりb × q u 0 ≥ q u 0 b\times q u_0\ge q u_0 b × q u 0 ≥ q u 0 であるから、U + q u 0 = 1 + b × q u 0 U+q u_0=1+b\times q u_0 U + q u 0 = 1 + b × q u 0 を満たすU U U が存在する。またd + b v 0 = a u 0 d+bv_0=au_0 d + b v 0 = a u 0 からb v 0 ≤ a u 0 b v_0\le a u_0 b v 0 ≤ a u 0 であり、0 < b 0<b 0 < b よりv 0 ≤ b v 0 ≤ a u 0 v_0\le b v_0\le a u_0 v 0 ≤ b v 0 ≤ a u 0 であるからq v 0 ≤ a × q u 0 q v_0\le a\times q u_0 q v 0 ≤ a × q u 0 であり、V + q v 0 = a × q u 0 V+q v_0=a\times q u_0 V + q v 0 = a × q u 0 を満たすV V V が存在する。
U + q u 0 = 1 + b q u 0 U+qu_0=1+b q u_0 U + q u 0 = 1 + b q u 0 の両辺にa a a を掛けてa U + a q u 0 = a + a b q u 0 aU+a q u_0=a+ab q u_0 a U + a q u 0 = a + ab q u 0 、V + q v 0 = a q u 0 V+qv_0=a q u_0 V + q v 0 = a q u 0 の両辺にb b b を掛けてb V + b q v 0 = a b q u 0 bV+b q v_0=ab q u_0 bV + b q v 0 = ab q u 0 を得る。従って
a U + a q u 0 = a + b V + b q v 0 aU+a q u_0=a+bV+b q v_0 a U + a q u 0 = a + bV + b q v 0 である。上と同じくa q u 0 = q d + q b v 0 aqu_0=qd+qbv_0 a q u 0 = q d + q b v 0 を代入し、消約するとa U + q d = a + b V aU+qd=a+bV a U + q d = a + bV となる。a = q d + r a=qd+r a = q d + r を代入して消約するとa U = r + b V aU=r+bV a U = r + bV を得る。0 < r 0<r 0 < r であるからσ a , b ( r ) \sigma_{a,b}(r) σ a , b ( r ) が成り立ち、r < d r<d r < d は最小性に反する。よってr = 0 r=0 r = 0 、すなわちd ∣ a d\mid a d ∣ a である。
共通の約数がd d d を割ることを示す。 a = e a ′ a=e a' a = e a ′ 、b = e b ′ b=e b' b = e b ′ とする。0 < a 0<a 0 < a よりe ≠ 0 e\ne0 e = 0 である。d + e b ′ v 0 = e a ′ u 0 d+e b' v_0=e a' u_0 d + e b ′ v 0 = e a ′ u 0 からe b ′ v 0 ≤ e a ′ u 0 e b' v_0\le e a' u_0 e b ′ v 0 ≤ e a ′ u 0 であり、0 < e 0<e 0 < e と補題 1.1 (6) によりb ′ v 0 ≤ a ′ u 0 b' v_0\le a' u_0 b ′ v 0 ≤ a ′ u 0 である。b ′ v 0 + w = a ′ u 0 b' v_0+w=a' u_0 b ′ v 0 + w = a ′ u 0 と書くとd + e b ′ v 0 = e b ′ v 0 + e w d+e b' v_0=e b' v_0+e w d + e b ′ v 0 = e b ′ v 0 + e w となり、消約によりd = e w d=e w d = e w 、すなわちe ∣ d e\mid d e ∣ d である。▨
系 2.2. P A PA P A は次を証明する。0 < d 0<d 0 < d 、0 < C 0<C 0 < C とし、d d d とC C C が互いに素であるとする。このときd ∣ e × C d\mid e\times C d ∣ e × C ならばd ∣ e d\mid e d ∣ e である。
証明. 補題 2.1 をa : = d a:=d a := d 、b : = C b:=C b := C へ適用する。σ d , C \sigma_{d,C} σ d , C を満たす最小の数d 0 d_0 d 0 はd d d とC C C の共通の約数であるから、互いに素という仮定によりd 0 = 1 d_0=1 d 0 = 1 である。従って1 + C v = d u 1+C v=d u 1 + C v = d u を満たすu , v u,v u , v が存在する。両辺にe e e を掛けて
e + e C v = e d u e+e C v=e d u e + e C v = e d u を得る。e C = d k e C=d k e C = d k と書くとe + d k v = d × e u e+d k v=d\times e u e + d k v = d × e u である。とくにd × ( k v ) ≤ d × ( e u ) d\times(k v)\le d\times(e u) d × ( k v ) ≤ d × ( e u ) であり、0 < d 0<d 0 < d と補題 1.1 (6) によりk v ≤ e u k v\le e u k v ≤ e u であるから、k v + w = e u k v+w=e u k v + w = e u を満たすw w w が存在する。これを代入するとe + d k v = d k v + d w e+d k v=d k v+d w e + d k v = d k v + d w となり、消約によりe = d w e=d w e = d w 、すなわちd ∣ e d\mid e d ∣ e である。▨
補題 2.3 (二つの法に対する中国剰余定理). P A PA P A は次を証明する。0 < m 0<m 0 < m 、0 < n 0<n 0 < n とし、m m m とn n n が互いに素であるとする。このとき、x < m x<m x < m とy < n y<n y < n を満たす任意のx , y x,y x , y に対して
c < m × n , c ≡ x ( m o d m ) , c ≡ y ( m o d n ) c<m\times n,
\qquad
c\equiv x\ (\mathrm{mod}\ m),
\qquad
c\equiv y\ (\mathrm{mod}\ n) c < m × n , c ≡ x ( mod m ) , c ≡ y ( mod n ) を満たすc c c が存在する。
証明. 補題 2.1 をa : = m a:=m a := m 、b : = n b:=n b := n へ適用する。σ m , n \sigma_{m,n} σ m , n を満たす最小の数d 0 d_0 d 0 はm m m とn n n の共通の約数であるから、互いに素という仮定によりd 0 = 1 d_0=1 d 0 = 1 である。従って
1 + n v = m u (1) 1+n v=m u
\tag{1} 1 + n v = m u ( 1 ) を満たすu , v u,v u , v が存在する。0 < m 0<m 0 < m よりm = S m ′ m=Sm' m = S m ′ を満たすm ′ m' m ′ が存在する。(1) の両辺にm ′ m' m ′ を掛けるとm ′ + n v m ′ = m u m ′ m'+n v m'=m u m' m ′ + n v m ′ = m u m ′ であり、両辺に1 1 1 を加えると
m + n × ( v m ′ ) = m × ( u m ′ ) + 1 (2) m+n\times(v m')=m\times(u m')+1
\tag{2} m + n × ( v m ′ ) = m × ( u m ′ ) + 1 ( 2 ) を得る。ここでE m : = n × ( v m ′ ) E_m:=n\times(v m') E m := n × ( v m ′ ) 、E n : = m u E_n:=m u E n := m u と置く。
(2) はE m + m × 1 = 1 + m × ( u m ′ ) E_m+m\times1=1+m\times(um') E m + m × 1 = 1 + m × ( u m ′ ) を意味するのでE m ≡ 1 ( m o d m ) E_m\equiv1\ (\mathrm{mod}\ m) E m ≡ 1 ( mod m ) であり、E m E_m E m はn n n の倍数なのでE m ≡ 0 ( m o d n ) E_m\equiv0\ (\mathrm{mod}\ n) E m ≡ 0 ( mod n ) である。(1) はE n = 1 + n v E_n=1+n v E n = 1 + n v を意味するのでE n ≡ 1 ( m o d n ) E_n\equiv1\ (\mathrm{mod}\ n) E n ≡ 1 ( mod n ) であり、E n E_n E n はm m m の倍数なのでE n ≡ 0 ( m o d m ) E_n\equiv0\ (\mathrm{mod}\ m) E n ≡ 0 ( mod m ) である。
c 0 : = x × E m + y × E n c_0:=x\times E_m+y\times E_n c 0 := x × E m + y × E n と置く。補題 1.5 (1) により
c 0 ≡ x × 1 + y × 0 = x ( m o d m ) , c 0 ≡ x × 0 + y × 1 = y ( m o d n ) c_0\equiv x\times1+y\times0=x\ (\mathrm{mod}\ m),
\qquad
c_0\equiv x\times0+y\times1=y\ (\mathrm{mod}\ n) c 0 ≡ x × 1 + y × 0 = x ( mod m ) , c 0 ≡ x × 0 + y × 1 = y ( mod n ) である。0 < m × n 0<m\times n 0 < m × n であるから補題 1.3 によりc 0 c_0 c 0 をm × n m\times n m × n で割った余りc c c を取ることができ、c < m × n c<m\times n c < m × n かつc ≡ c 0 ( m o d m × n ) c\equiv c_0\ (\mathrm{mod}\ m\times n) c ≡ c 0 ( mod m × n ) である。m ∣ m × n m\mid m\times n m ∣ m × n とn ∣ m × n n\mid m\times n n ∣ m × n に補題 1.5 (3) を適用し、推移律を用いると、c ≡ x ( m o d m ) c\equiv x\ (\mathrm{mod}\ m) c ≡ x ( mod m ) かつc ≡ y ( m o d n ) c\equiv y\ (\mathrm{mod}\ n) c ≡ y ( mod n ) を得る。▨
3 3. 表符号の存在
§E16.19 定義 4.1 は、可変長の復号履歴を一つの対( B , C ) (B,C) ( B , 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 ) M(i,C):=S((Si)\times C),
\qquad
\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) 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 ) \operatorname{Cell}_Q(B,C,i,x) Cell Q ( B , C , i , x ) を固定している。M ( i , C ) M(i,C) M ( i , C ) はL A L_A L A の項である。
補題 3.1. P A PA P A は次を証明する。
任意のB , C , i B,C,i B , C , i についてCell Q ( B , C , i , x ) \operatorname{Cell}_Q(B,C,i,x) Cell Q ( B , C , i , x ) を満たすx x x がちょうど一つ存在する。
Cell Q ( B , C , i , x ) \operatorname{Cell}_Q(B,C,i,x) Cell Q ( B , C , i , x ) が成り立つことと、x < M ( i , C ) x<M(i,C) x < M ( i , C ) かつB ≡ x ( m o d M ( i , C ) ) B\equiv x\ (\mathrm{mod}\ M(i,C)) B ≡ x ( mod M ( i , C )) が成り立つこととは同値である。
証明. M ( i , C ) = S ( ( S i ) × C ) M(i,C)=S((Si)\times C) M ( i , C ) = S (( S i ) × C ) は後続者の値なので (Q1) により0 < M ( i , C ) 0<M(i,C) 0 < M ( i , C ) である。補題 1.3 により、B = q × M ( i , C ) + x B=q\times M(i,C)+x B = q × M ( i , C ) + x かつx < M ( i , C ) x<M(i,C) x < M ( i , C ) を満たすq , x q,x q , x がちょうど一組存在する。0 < M ( i , C ) 0<M(i,C) 0 < M ( i , C ) と乗法の単調性によりq ≤ q × M ( i , C ) ≤ B q\le q\times M(i,C)\le B q ≤ q × M ( i , C ) ≤ B であるから、Tab Q 0 ( B , C , i , x ) \operatorname{Tab}^{0}_Q(B,C,i,x) Tab Q 0 ( B , C , i , x ) が成り立つ。逆にTab Q 0 ( B , C , i , z ) \operatorname{Tab}^{0}_Q(B,C,i,z) Tab Q 0 ( B , C , i , z ) ならば、z z z は同じ除法の余りであるから一意性によりz = x z=x z = x である。従ってCell Q ( B , C , i , x ) \operatorname{Cell}_Q(B,C,i,x) Cell Q ( B , C , i , x ) が成り立ち、他の値では第2連言が破れるのでx x x は一意である。これが(1) である。
(2) は、補題 1.5 (4) により、x < M ( i , C ) x<M(i,C) x < M ( i , C ) の下で「B ≡ x B\equiv x B ≡ x 」と「B B B をM ( i , C ) M(i,C) M ( i , C ) で割った余りがx x x である」が同値であることによる。▨
補題 3.2. φ ( i , y , z ⃗ ) \varphi(i,y,\vec z) φ ( i , y , z ) を任意のL A L_A L A 論理式とする。P A PA P A は次を証明する。k k k とz ⃗ \vec z z を固定し、i < k i<k i < k の各i i i に対してφ ( i , y , z ⃗ ) \varphi(i,y,\vec z) φ ( i , y , z ) を満たすy y y が一意に存在するとする。このとき、
∀ i < k ∀ y ( φ ( i , y , z ⃗ ) → Cell Q ( B , C , i , y ) ) \forall i<k\;\forall y\,\bigl(\varphi(i,y,\vec z)\to\operatorname{Cell}_Q(B,C,i,y)\bigr) ∀ i < k ∀ y ( φ ( i , y , z ) → Cell Q ( B , C , i , y ) ) を満たすB , C B,C B , C が存在する。
証明. 以下はすべてP A PA P A の内部の議論である。
法を定めるC C C を選ぶ。 k k k に関する帰納法により、0 < P 0<P 0 < P かつ1 ≤ t ≤ k 1\le t\le k 1 ≤ t ≤ k を満たすすべてのt t t についてt ∣ P t\mid P t ∣ P となるP P P が存在する。k = 0 k=0 k = 0 ではP = 1 P=1 P = 1 とし、k k k からS k Sk S k へ進む段では前段のP P P にS k Sk S k を掛ける。次に、i < k i<k i < k の各i i i の値を上から抑えるb b b を取る。補題の仮定が値の一意な存在を与えるのはi < k i<k i < k の範囲だけであるから、k k k 自身へ帰納法を行うことはできない。そこで、k k k を固定したままl l l に関する帰納法を行い、l ≤ k l\le k l ≤ k を満たすすべてのl l l について
Θ 0 ( l ) : ∃ b ∀ i < l ∀ y ( φ ( i , y , z ⃗ ) → y ≤ b ) \Theta_0(l):\quad
\exists b\,\forall i<l\,\forall y\,\bigl(\varphi(i,y,\vec z)\to y\le b\bigr) Θ 0 ( l ) : ∃ b ∀ i < l ∀ y ( φ ( i , y , z ) → y ≤ b ) を示す。l = 0 l=0 l = 0 ではb : = 0 b:=0 b := 0 とすればよく、i < 0 i<0 i < 0 を満たすi i i が無いので全称条件は空虚に成り立つ。l l l からS l Sl S l へ進む段ではS l ≤ k Sl\le k S l ≤ k とする。このときl < k l<k l < k であるから、補題の仮定をi : = l i:=l i := l について用いることができ、φ ( l , y l , z ⃗ ) \varphi(l,y_l,\vec z) φ ( l , y l , z ) を満たすy l y_l y l が一意に存在する。Θ 0 ( l ) \Theta_0(l) Θ 0 ( l ) の証人b l b_l b l を取り、補題 1.1 (3) によりb l b_l b l とy l y_l y l の大きいほうをb S l b_{Sl} b S l とすれば、i < S l i<Sl i < S l のすべての値がb S l b_{Sl} b S l 以下である。l = k l=k l = k におけるΘ 0 ( k ) \Theta_0(k) Θ 0 ( k ) の証人をb b b とする。ここでC : = P × S b C:=P\times Sb C := P × S b と置く。0 < P 0<P 0 < P よりb < C b<C b < C であり、1 ≤ t ≤ k 1\le t\le k 1 ≤ t ≤ k を満たすすべてのt t t がC C C を割る。
法が二つずつ互いに素であることを示す。 i < j < k i<j<k i < j < k とし、e ∣ M ( i , C ) e\mid M(i,C) e ∣ M ( i , C ) かつe ∣ M ( j , C ) e\mid M(j,C) e ∣ M ( j , C ) とする。j = i + f j=i+f j = i + f と書くと1 ≤ f ≤ k 1\le f\le k 1 ≤ f ≤ k であり、
M ( j , C ) = S ( ( S j ) × C ) = S ( ( S i ) × C ) + f × C = M ( i , C ) + f × C M(j,C)=S((Sj)\times C)=S((Si)\times C)+f\times C=M(i,C)+f\times C M ( j , C ) = S (( S j ) × C ) = S (( S i ) × C ) + f × C = M ( i , C ) + f × C である。e = 0 e=0 e = 0 とするとM ( i , C ) = 0 M(i,C)=0 M ( i , C ) = 0 となり (Q1) に反するので0 < e 0<e 0 < e である。補題 1.5 (2) によりe ∣ f × C e\mid f\times C e ∣ f × C である。次にe e e とC C C が互いに素であることを示す。t ∣ e t\mid e t ∣ e かつt ∣ C t\mid C t ∣ C とする。t = 0 t=0 t = 0 とするとe = 0 e=0 e = 0 となるので0 < t 0<t 0 < t である。t ∣ M ( i , C ) = S ( ( S i ) × C ) t\mid M(i,C)=S((Si)\times C) t ∣ M ( i , C ) = S (( S i ) × C ) かつt ∣ ( S i ) × C t\mid(Si)\times C t ∣ ( S i ) × C であるから、補題 1.5 (2) によりt ∣ 1 t\mid1 t ∣ 1 、すなわちt = 1 t=1 t = 1 である。従って系 2.2 によりe ∣ f e\mid f e ∣ f である。1 ≤ f ≤ k 1\le f\le k 1 ≤ f ≤ k よりf ∣ C f\mid C f ∣ C であるからe ∣ C e\mid C e ∣ C である。e e e はe e e とC C C の共通の約数であるから、互いに素であることによりe = 1 e=1 e = 1 である。
表符号を作る。 N : = k N:=k N := k と置き、Ψ ( P , l ) : ⟺ ∀ e ∀ j ( l ≤ j ∧ j < N ∧ e ∣ P ∧ e ∣ M ( j , C ) → e = 1 ) \Psi(P,l):\!\!\Longleftrightarrow\forall e\,\forall j\,\bigl(l\le j\land j<N\land e\mid P\land e\mid M(j,C)\to e=1\bigr) Ψ ( P , l ) : ⟺ ∀ e ∀ j ( l ≤ j ∧ j < N ∧ e ∣ P ∧ e ∣ M ( j , C ) → e = 1 ) とする。l l l に関する帰納法により、l ≤ N l\le N l ≤ N を満たすすべてのl l l について次の主張Θ ( l ) \Theta(l) Θ ( l ) を示す。
Θ ( l ) : ∃ B ∃ P ( 0 < P ∧ B < P ∧ ∀ i < l ( M ( i , C ) ∣ P ) ∧ Ψ ( P , l ) ∧ ∀ i < l ∀ y ( φ ( i , y , z ⃗ ) → B ≡ y ( m o d M ( i , C ) ) ) ) \Theta(l):\quad
\exists B\,\exists P\,\Bigl(
0<P\land B<P\land
\forall i<l\,\bigl(M(i,C)\mid P\bigr)\land
\Psi(P,l)\land
\forall i<l\,\forall y\,\bigl(\varphi(i,y,\vec z)\to B\equiv y\ (\mathrm{mod}\ M(i,C))\bigr)\Bigr) Θ ( l ) : ∃ B ∃ P ( 0 < P ∧ B < P ∧ ∀ i < l ( M ( i , C ) ∣ P ) ∧ Ψ ( P , l ) ∧ ∀ i < l ∀ y ( φ ( i , y , z ) → B ≡ y ( mod M ( i , C )) ) ) 積P P P を証人として持ち回るので、法の積をL A L_A L A の項として書く必要はない。
l = 0 l=0 l = 0 ではB : = 0 B:=0 B := 0 、P : = 1 P:=1 P := 1 とする。0 < P 0<P 0 < P とB < P B<P B < P はいずれも0 < 1 0<1 0 < 1 から従い、二つの全称条件は空虚に成り立つ。Ψ ( 1 , 0 ) \Psi(1,0) Ψ ( 1 , 0 ) はe ∣ 1 → e = 1 e\mid1\to e=1 e ∣ 1 → e = 1 から従う。
l l l からS l Sl S l へ進む段ではS l ≤ N Sl\le N S l ≤ N とし、Θ ( l ) \Theta(l) Θ ( l ) の証人B l , P l B_l,P_l B l , P l を取る。m l : = M ( l , C ) m_l:=M(l,C) m l := M ( l , C ) と置くと0 < m l 0<m_l 0 < m l である。Ψ ( P l , l ) \Psi(P_l,l) Ψ ( P l , l ) をj : = l j:=l j := l について用いると、P l P_l P l とm l m_l m l は互いに素である。仮定によりφ ( l , y l , z ⃗ ) \varphi(l,y_l,\vec z) φ ( l , y l , z ) を満たすy l y_l y l が一意に存在し、m l = S ( ( S l ) × C ) ≥ S C m_l=S((Sl)\times C)\ge SC m l = S (( S l ) × C ) ≥ S C であるからy l ≤ b < C < m l y_l\le b<C<m_l y l ≤ b < C < m l である。補題 2.3 を法P l P_l P l とm l m_l m l 、剰余B l < P l B_l<P_l B l < P l とy l < m l y_l<m_l y l < m l へ適用すると、
B S l < P l × m l , B S l ≡ B l ( m o d P l ) , B S l ≡ y l ( m o d m l ) B_{Sl}<P_l\times m_l,
\qquad
B_{Sl}\equiv B_l\ (\mathrm{mod}\ P_l),
\qquad
B_{Sl}\equiv y_l\ (\mathrm{mod}\ m_l) B S l < P l × m l , B S l ≡ B l ( mod P l ) , B S l ≡ y l ( mod m l ) を満たすB S l B_{Sl} B S l を得る。P S l : = P l × m l P_{Sl}:=P_l\times m_l P S l := P l × m l と置く。0 < P S l 0<P_{Sl} 0 < P S l とB S l < P S l B_{Sl}<P_{Sl} B S l < P S l は明らかである。i < S l i<Sl i < S l についてM ( i , C ) ∣ P S l M(i,C)\mid P_{Sl} M ( i , C ) ∣ P S l であることは、i < l i<l i < l ではM ( i , C ) ∣ P l ∣ P S l M(i,C)\mid P_l\mid P_{Sl} M ( i , C ) ∣ P l ∣ P S l から、i = l i=l i = l ではm l ∣ P S l m_l\mid P_{Sl} m l ∣ P S l から従う。
剰余の条件を確かめる。i = l i=l i = l の場合は上で得た合同式そのものである。i < l i<l i < l の場合、M ( i , C ) ∣ P l M(i,C)\mid P_l M ( i , C ) ∣ P l とB S l ≡ B l ( m o d P l ) B_{Sl}\equiv B_l\ (\mathrm{mod}\ P_l) B S l ≡ B l ( mod P l ) に補題 1.5 (3) を適用するとB S l ≡ B l ( m o d M ( i , C ) ) B_{Sl}\equiv B_l\ (\mathrm{mod}\ M(i,C)) B S l ≡ B l ( mod M ( i , C )) である。Θ ( l ) \Theta(l) Θ ( l ) が与えるB l ≡ y i ( m o d M ( i , C ) ) B_l\equiv y_i\ (\mathrm{mod}\ M(i,C)) B l ≡ y i ( mod M ( i , C )) と推移律を合わせてB S l ≡ y i ( m o d M ( i , C ) ) B_{Sl}\equiv y_i\ (\mathrm{mod}\ M(i,C)) B S l ≡ y i ( mod M ( i , C )) を得る。
Ψ ( P S l , S l ) \Psi(P_{Sl},Sl) Ψ ( P S l , S l ) を示す。S l ≤ j < N Sl\le j<N S l ≤ j < N とし、e ∣ P l × m l e\mid P_l\times m_l e ∣ P l × m l かつe ∣ M ( j , C ) e\mid M(j,C) e ∣ M ( j , C ) とする。e = 0 e=0 e = 0 とするとM ( j , C ) = 0 M(j,C)=0 M ( j , C ) = 0 となり (Q1) に反するので0 < e 0<e 0 < e である。t ∣ e t\mid e t ∣ e かつt ∣ m l t\mid m_l t ∣ m l とするとt t t はM ( j , C ) M(j,C) M ( j , C ) とM ( l , C ) M(l,C) M ( l , C ) の共通の約数であり、l < j < N l<j<N l < j < N であるから、上で示した二つずつの互いに素性によりt = 1 t=1 t = 1 である。従ってe e e とm l m_l m l は互いに素であり、系 2.2 によりe ∣ P l e\mid P_l e ∣ P l である。Ψ ( P l , l ) \Psi(P_l,l) Ψ ( P l , l ) を同じj j j について用いるとe = 1 e=1 e = 1 を得る。
l = N = k l=N=k l = N = k におけるΘ ( k ) \Theta(k) Θ ( k ) の証人をB , P B,P B , P とする。各i < k i<k i < k についてB ≡ y i ( m o d M ( i , C ) ) B\equiv y_i\ (\mathrm{mod}\ M(i,C)) B ≡ y i ( mod M ( i , C )) かつy i < M ( i , C ) y_i<M(i,C) y i < M ( i , C ) であるから、補題 3.1 (2) によりCell Q ( B , C , i , y i ) \operatorname{Cell}_Q(B,C,i,y_i) Cell Q ( B , C , i , y i ) である。▨
4 4. 対関数と Cons 符号の PA 内での法則
§E16.17 補題 1.2 は対関数の全単射性をメタ理論で証明している。自由変数を残した議論では同じ事実をP A PA P A の内部で証明し直さなければならない。ここでは§E16.19 定義 4.1 が固定した raw 式
Pair Q 0 ( a , b , c ) : ⟺ ∃ w ( w = a + b ∧ c ≤ ( w × S w ) + ( b + b ) ∧ c + c = ( w × S w ) + ( b + b ) ) \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) Pair Q 0 ( a , b , c ) : ⟺ ∃ w ( w = a + b ∧ c ≤ ( w × S w ) + ( b + b ) ∧ c + c = ( w × S w ) + ( b + b ) )
の定義そのものへ戻って証明する。
補題 4.1. P A PA P A は次を証明する。
任意のa , b a,b a , b についてPair Q ( a , b , c ) \operatorname{Pair}_Q(a,b,c) Pair Q ( a , b , c ) を満たすc c c がちょうど一つ存在する。このc c c をpair ( a , b ) \operatorname{pair}(a,b) pair ( a , b ) と書く。
a ≤ pair ( a , b ) a\le\operatorname{pair}(a,b) a ≤ pair ( a , b ) かつb ≤ pair ( a , b ) b\le\operatorname{pair}(a,b) b ≤ pair ( a , b ) である。
pair ( a , b ) = pair ( a ′ , b ′ ) \operatorname{pair}(a,b)=\operatorname{pair}(a',b') pair ( a , b ) = pair ( a ′ , b ′ ) ならばa = a ′ a=a' a = a ′ かつb = b ′ b=b' b = b ′ である。
任意のp p p についてpair ( a , b ) = p \operatorname{pair}(a,b)=p pair ( a , b ) = p を満たすa , b a,b a , b が存在する。
任意のa , t a,t a , t についてCons Q ( a , t , c ) \operatorname{Cons}_Q(a,t,c) Cons Q ( a , t , c ) を満たすc c c がちょうど一つ存在する。このc c c をCons ( a , t ) \operatorname{Cons}(a,t) Cons ( a , t ) と書き、Cons ( a , t ) = S pair ( a , t ) \operatorname{Cons}(a,t)=S\operatorname{pair}(a,t) Cons ( a , t ) = S pair ( a , t ) である。とくに0 < Cons ( a , t ) 0<\operatorname{Cons}(a,t) 0 < Cons ( a , t ) 、a < Cons ( a , t ) a<\operatorname{Cons}(a,t) a < Cons ( a , t ) 、t < Cons ( a , t ) t<\operatorname{Cons}(a,t) t < Cons ( a , t ) である。
0 < s 0<s 0 < s ならばDec Q ( s , a , t ) \operatorname{Dec}_Q(s,a,t) Dec Q ( s , a , t ) を満たす対( a , t ) (a,t) ( a , t ) がちょうど一つ存在する。このa , t a,t a , t をHead ( s ) \operatorname{Head}(s) Head ( s ) 、Tail ( s ) \operatorname{Tail}(s) Tail ( s ) と書き、s = 0 s=0 s = 0 のときはHead ( 0 ) = Tail ( 0 ) = 0 \operatorname{Head}(0)=\operatorname{Tail}(0)=0 Head ( 0 ) = Tail ( 0 ) = 0 と定める。Dec Q ( 0 , a , t ) \operatorname{Dec}_Q(0,a,t) Dec Q ( 0 , a , t ) を満たすa , t a,t a , t は存在しない。
任意のs s s についてHead Q 0 ( s , a ) \operatorname{Head}^{0}_Q(s,a) Head Q 0 ( s , a ) を満たすa a a がちょうど一つ存在し、その値はHead ( s ) \operatorname{Head}(s) Head ( s ) である。
証明. (1) を示す。w w w に関する帰納法により、w × S w = h + h w\times Sw=h+h w × S w = h + h を満たすh h h が存在する。w = 0 w=0 w = 0 ではh = 0 h=0 h = 0 である。w w w からS w Sw S w へ進む段では、(Q7) と補題 1.1 (1) により
S w × S ( S w ) = S w × S w + S w = ( w × S w + S w ) + S w = ( h + S w ) + ( h + S w ) Sw\times S(Sw)=Sw\times Sw+Sw=(w\times Sw+Sw)+Sw=(h+Sw)+(h+Sw) S w × S ( S w ) = S w × S w + S w = ( w × S w + S w ) + S w = ( h + S w ) + ( h + S w ) であるからh + S w h+Sw h + S w を取ればよい。w : = a + b w:=a+b w := a + b に対するh h h を取り、c : = h + b c:=h+b c := h + b と置くとc + c = ( w × S w ) + ( b + b ) c+c=(w\times Sw)+(b+b) c + c = ( w × S w ) + ( b + b ) であり、c ≤ c + c c\le c+c c ≤ c + c であるからPair Q 0 ( a , b , c ) \operatorname{Pair}^{0}_Q(a,b,c) Pair Q 0 ( a , b , c ) が成り立つ。逆にc ′ + c ′ = c + c c'+c'=c+c c ′ + c ′ = c + c ならば、補題 1.1 (3) と加法の単調性によりc ′ = c c'=c c ′ = c である。従って raw 式の出力は一意であり、Unique \operatorname{Unique} Unique を加えたPair Q \operatorname{Pair}_Q Pair Q についても存在と一意性が成り立つ。
(2) を示す。2 pair ( a , b ) = w × S w + ( b + b ) ≥ b + b 2\operatorname{pair}(a,b)=w\times Sw+(b+b)\ge b+b 2 pair ( a , b ) = w × S w + ( b + b ) ≥ b + b よりb ≤ pair ( a , b ) b\le\operatorname{pair}(a,b) b ≤ pair ( a , b ) である。a = 0 a=0 a = 0 ならばa ≤ pair ( a , b ) a\le\operatorname{pair}(a,b) a ≤ pair ( a , b ) は明らかである。0 < a 0<a 0 < a ならば0 < w 0<w 0 < w であるからS w ≥ S 1 Sw\ge S1 S w ≥ S 1 であり、w × S w ≥ w + w ≥ a + a w\times Sw\ge w+w\ge a+a w × S w ≥ w + w ≥ a + a である。従って2 pair ( a , b ) ≥ a + a 2\operatorname{pair}(a,b)\ge a+a 2 pair ( a , b ) ≥ a + a でありa ≤ pair ( a , b ) a\le\operatorname{pair}(a,b) a ≤ pair ( a , b ) である。
(3) を示す。w : = a + b w:=a+b w := a + b 、w ′ : = a ′ + b ′ w':=a'+b' w ′ := a ′ + b ′ とする。w < w ′ w<w' w < w ′ と仮定するとS w ≤ w ′ Sw\le w' S w ≤ w ′ であり、乗法の単調性から
w ′ × S w ′ ≥ S w × S ( S w ) = w × S w + ( S w + S w ) w'\times Sw'\ge Sw\times S(Sw)=w\times Sw+(Sw+Sw) w ′ × S w ′ ≥ S w × S ( S w ) = w × S w + ( S w + S w ) である。一方b ≤ w b\le w b ≤ w よりb + b < S w + S w b+b<Sw+Sw b + b < S w + S w であるから
2 pair ( a , b ) = w × S w + ( b + b ) < w × S w + ( S w + S w ) ≤ w ′ × S w ′ ≤ 2 pair ( a ′ , b ′ ) 2\operatorname{pair}(a,b)=w\times Sw+(b+b)<w\times Sw+(Sw+Sw)\le w'\times Sw'\le 2\operatorname{pair}(a',b') 2 pair ( a , b ) = w × S w + ( b + b ) < w × S w + ( S w + S w ) ≤ w ′ × S w ′ ≤ 2 pair ( a ′ , b ′ ) となり、pair ( a , b ) = pair ( a ′ , b ′ ) \operatorname{pair}(a,b)=\operatorname{pair}(a',b') pair ( a , b ) = pair ( a ′ , b ′ ) に反する。w ′ < w w'<w w ′ < w の場合も同様である。従ってw = w ′ w=w' w = w ′ であり、消約律からb = b ′ b=b' b = b ′ 、さらにa + b = a ′ + b ′ a+b=a'+b' a + b = a ′ + b ′ と消約律からa = a ′ a=a' a = a ′ である。
(4) を示す。p p p を取る。w : = p + p w:=p+p w := p + p はp + p < ( S w ) × S ( S w ) p+p<(Sw)\times S(Sw) p + p < ( S w ) × S ( S w ) を満たすので、この条件を満たすw w w は存在する。補題 1.2 により最小のw w w を取る。w = 0 w=0 w = 0 ならばw × S w = 0 ≤ p + p w\times Sw=0\le p+p w × S w = 0 ≤ p + p である。w = S w 0 w=Sw_0 w = S w 0 ならば、w w w の最小性によりw 0 w_0 w 0 は条件を満たさないのでS w 0 × S ( S w 0 ) ≤ p + p Sw_0\times S(Sw_0)\le p+p S w 0 × S ( S w 0 ) ≤ p + p 、すなわちw × S w ≤ p + p w\times Sw\le p+p w × S w ≤ p + p である。いずれにせよ
w × S w ≤ p + p < w × S w + ( S w + S w ) w\times Sw\le p+p<w\times Sw+(Sw+Sw) w × S w ≤ p + p < w × S w + ( S w + S w ) である。w × S w = h + h w\times Sw=h+h w × S w = h + h を満たすh h h を取るとh + h ≤ p + p h+h\le p+p h + h ≤ p + p であるからh ≤ p h\le p h ≤ p であり、h + b = p h+b=p h + b = p を満たすb b b が存在する。このときb + b < S w + S w b+b<Sw+Sw b + b < S w + S w よりb ≤ w b\le w b ≤ w であり、a + b = w a+b=w a + b = w を満たすa a a が存在する。2 pair ( a , b ) = w × S w + ( b + b ) = ( h + h ) + ( b + b ) = p + p 2\operatorname{pair}(a,b)=w\times Sw+(b+b)=(h+h)+(b+b)=p+p 2 pair ( a , b ) = w × S w + ( b + b ) = ( h + h ) + ( b + b ) = p + p であるからpair ( a , b ) = p \operatorname{pair}(a,b)=p pair ( a , b ) = p である。
(5) はCons Q 0 ( a , t , c ) : ⟺ ∃ p ( Pair Q 0 ( a , t , p ) ∧ c = S p ) \operatorname{Cons}^{0}_Q(a,t,c):\!\!\Longleftrightarrow\exists p\,(\operatorname{Pair}^{0}_Q(a,t,p)\land c=Sp) Cons Q 0 ( a , t , c ) : ⟺ ∃ p ( Pair Q 0 ( a , t , p ) ∧ c = S p ) と(1) から従う。(Q1) により0 < S pair ( a , t ) 0<S\operatorname{pair}(a,t) 0 < S pair ( a , t ) であり、(2) によりa , t ≤ pair ( a , t ) < Cons ( a , t ) a,t\le\operatorname{pair}(a,t)<\operatorname{Cons}(a,t) a , t ≤ pair ( a , t ) < Cons ( a , t ) である。
(6) を示す。0 < s 0<s 0 < s とするとs = S p s=Sp s = S p を満たすp p p が存在する。(4) によりp = pair ( a , t ) p=\operatorname{pair}(a,t) p = pair ( a , t ) を満たすa , t a,t a , t が存在し、(5) によりCons Q ( a , t , s ) \operatorname{Cons}_Q(a,t,s) Cons Q ( a , t , s ) である。(2) によりa < s a<s a < s かつt < s t<s t < s であるからDec Q ( s , a , t ) \operatorname{Dec}_Q(s,a,t) Dec Q ( s , a , t ) が成り立つ。一意性は(3) と (Q2) による。s = 0 s=0 s = 0 の場合はCons Q ( a , t , 0 ) \operatorname{Cons}_Q(a,t,0) Cons Q ( a , t , 0 ) が0 = S p 0=Sp 0 = S p を要求し、(Q1) に反する。
(7) はHead Q 0 \operatorname{Head}^{0}_Q Head Q 0 の定義と(6) による。▨
5 5. 有限列符号の法則を PA 内で証明する
§E16.19 定義 4.1 のAt Q 0 ( s , i , t ) \operatorname{At}^{0}_Q(s,i,t) At Q 0 ( s , i , t ) は、s s s からDec Q \operatorname{Dec}_Q Dec Q をi i i 回たどった反復尾 がt t t であることを表す。第i i i 成分 はこれとは別で、Entry Q 0 ( s , i , a ) \operatorname{Entry}^{0}_Q(s,i,a) Entry Q 0 ( s , i , a ) が与える反復尾の先頭である。以下ではこの区別を保つ。
記法:一意に定まる値を項のように書く記法 R ( x ⃗ , y ) R(\vec x,y) R ( x , y ) をL A L_A L A 論理式とし、P A PA P A が∀ x ⃗ ∃ ! y R ( x ⃗ , y ) \forall\vec x\,\exists!y\,R(\vec x,y) ∀ x ∃ ! y R ( x , y ) を証明するとする。このときL A L_A L A 論理式θ ( y ) \theta(y) θ ( y ) に対して
θ ( f R ( x ⃗ ) ) を ∃ y ( R ( x ⃗ , y ) ∧ θ ( y ) ) \theta(\mathrm{f}_R(\vec x))
\quad\text{を}\quad
\exists y\,\bigl(R(\vec x,y)\land\theta(y)\bigr) θ ( f R ( x )) を ∃ y ( R ( x , y ) ∧ θ ( y ) ) の略記とし、f R \mathrm{f}_R f R に固有の名前を付けて用いる。全域性と一意性により、P A PA P A はこの略記と∀ y ( R ( x ⃗ , y ) → θ ( y ) ) \forall y\,(R(\vec x,y)\to\theta(y)) ∀ y ( R ( x , y ) → θ ( y )) との同値を証明する。等式f R ( x ⃗ ) = f R ′ ( x ⃗ ′ ) \mathrm{f}_R(\vec x)=\mathrm{f}_{R'}(\vec x') f R ( x ) = f R ′ ( x ′ ) も同じ規約で読む。L A L_A L A に新しい関数記号を追加してはいない。
補題 5.1. P A PA P A は次を証明する。
At Q 0 ( s , i , t ) \operatorname{At}^{0}_Q(s,i,t) At Q 0 ( s , i , t ) かつAt Q 0 ( s , i , t ′ ) \operatorname{At}^{0}_Q(s,i,t') At Q 0 ( s , i , t ′ ) ならばt = t ′ t=t' t = t ′ である。
At Q 0 ( s , 0 , s ) \operatorname{At}^{0}_Q(s,0,s) At Q 0 ( s , 0 , s ) である。
At Q 0 ( s , i , t ) \operatorname{At}^{0}_Q(s,i,t) At Q 0 ( s , i , t ) ならばt + i ≤ s t+i\le s t + i ≤ s である。
At Q 0 ( s , i , t ) \operatorname{At}^{0}_Q(s,i,t) At Q 0 ( s , i , t ) かつt ≠ 0 t\ne0 t = 0 ならばAt Q 0 ( s , S i , Tail ( t ) ) \operatorname{At}^{0}_Q(s,Si,\operatorname{Tail}(t)) At Q 0 ( s , S i , Tail ( t )) である。
次の三つをすべて満たすn n n が存在する。第一にAt Q 0 ( s , n , 0 ) \operatorname{At}^{0}_Q(s,n,0) At Q 0 ( s , n , 0 ) である。第二に、i ≤ n i\le n i ≤ n を満たすすべてのi i i についてAt Q 0 ( s , i , t ) \operatorname{At}^{0}_Q(s,i,t) At Q 0 ( s , i , t ) を満たすt t t が存在する。第三に、i < n i<n i < n を満たすすべてのi i i とAt Q 0 ( s , i , t ) \operatorname{At}^{0}_Q(s,i,t) At Q 0 ( s , i , t ) を満たすすべてのt t t についてt ≠ 0 t\ne0 t = 0 である。
At Q 0 ( s , S i , t ′ ) \operatorname{At}^{0}_Q(s,Si,t') At Q 0 ( s , S i , t ′ ) ならば、At Q 0 ( s , i , t ) \operatorname{At}^{0}_Q(s,i,t) At Q 0 ( s , i , t ) 、t ≠ 0 t\ne0 t = 0 、t ′ = Tail ( t ) t'=\operatorname{Tail}(t) t ′ = Tail ( t ) を満たすt t t が存在する。
証明. (1) を示す。j j j に関する帰納法により、次を示す。Prefix Q ( B , C , s , k ) \operatorname{Prefix}_Q(B,C,s,k) Prefix Q ( B , C , s , k ) 、Prefix Q ( B ′ , C ′ , s , k ′ ) \operatorname{Prefix}_Q(B',C',s,k') Prefix Q ( B ′ , C ′ , s , k ′ ) 、j ≤ k j\le k j ≤ k 、j ≤ k ′ j\le k' j ≤ k ′ 、Cell Q ( B , C , j , x ) \operatorname{Cell}_Q(B,C,j,x) Cell Q ( B , C , j , x ) 、Cell Q ( B ′ , C ′ , j , x ′ ) \operatorname{Cell}_Q(B',C',j,x') Cell Q ( B ′ , C ′ , j , x ′ ) ならばx = x ′ x=x' x = x ′ である。j = 0 j=0 j = 0 では、Prefix Q \operatorname{Prefix}_Q Prefix Q の第1連言が両方の第0 0 0 セルをs s s に定めるので、補題 3.1 の一意性からx = x ′ = s x=x'=s x = x ′ = s である。j j j からS j Sj S j へ進む段では、S j ≤ k Sj\le k S j ≤ k とS j ≤ k ′ Sj\le k' S j ≤ k ′ からj < k j<k j < k かつj < k ′ j<k' j < k ′ であるので、Prefix Q \operatorname{Prefix}_Q Prefix Q の第2連言が、第j j j セルの値x x x 、第S j Sj S j セルの値y y y 、およびDec Q ( x , a , y ) \operatorname{Dec}_Q(x,a,y) Dec Q ( x , a , y ) を与える。B ′ , C ′ B',C' B ′ , C ′ についても同様である。帰納法の仮定によりx = x ′ x=x' x = x ′ であり、補題 4.1 (6) の一意性によりy = y ′ y=y' y = y ′ である。(1) は、この主張をj : = i j:=i j := i 、k = k ′ : = i k=k':=i k = k ′ := i として用いれば従う。
(2) を示す。補題 3.2 を論理式y = s y=s y = s とk : = 1 k:=1 k := 1 へ適用すると、Cell Q ( B , C , 0 , s ) \operatorname{Cell}_Q(B,C,0,s) Cell Q ( B , C , 0 , s ) を満たすB , C B,C B , C が存在する。Prefix Q ( B , C , s , 0 ) \operatorname{Prefix}_Q(B,C,s,0) Prefix Q ( B , C , s , 0 ) は第1連言だけなので成り立ち、0 ≤ s 0\le s 0 ≤ s であるからAt Q 0 ( s , 0 , s ) \operatorname{At}^{0}_Q(s,0,s) At Q 0 ( s , 0 , s ) である。
(3) を示す。j j j に関する帰納法により、Prefix Q ( B , C , s , k ) \operatorname{Prefix}_Q(B,C,s,k) Prefix Q ( B , C , s , k ) 、j ≤ k j\le k j ≤ k 、Cell Q ( B , C , j , x ) \operatorname{Cell}_Q(B,C,j,x) Cell Q ( B , C , j , x ) ならばx + j ≤ s x+j\le s x + j ≤ s であることを示す。j = 0 j=0 j = 0 ではx = s x=s x = s である。j j j からS j Sj S j へ進む段では、Dec Q ( x , a , y ) \operatorname{Dec}_Q(x,a,y) Dec Q ( x , a , y ) がy < x y<x y < x を含むのでS y ≤ x Sy\le x S y ≤ x であり、帰納法の仮定x + j ≤ s x+j\le s x + j ≤ s と合わせてy + S j = S y + j ≤ x + j ≤ s y+Sj=Sy+j\le x+j\le s y + S j = S y + j ≤ x + j ≤ s である。
(4) を示す。At Q 0 ( s , i , t ) \operatorname{At}^{0}_Q(s,i,t) At Q 0 ( s , i , t ) の証人( B , C ) (B,C) ( B , C ) を取る。t ≠ 0 t\ne0 t = 0 であるから補題 4.1 (6) によりDec Q ( t , Head ( t ) , Tail ( t ) ) \operatorname{Dec}_Q(t,\operatorname{Head}(t),\operatorname{Tail}(t)) Dec Q ( t , Head ( t ) , Tail ( t )) が成り立つ。論理式
φ ( j , y ) : ⟺ ( j ≤ i ∧ Cell Q ( B , C , j , y ) ) ∨ ( j = S i ∧ y = Tail ( t ) ) ∨ ( S i < j ∧ y = 0 ) \varphi(j,y):\!\!\Longleftrightarrow
(j\le i\land\operatorname{Cell}_Q(B,C,j,y))
\lor(j=Si\land y=\operatorname{Tail}(t))
\lor(Si<j\land y=0) φ ( j , y ) : ⟺ ( j ≤ i ∧ Cell Q ( B , C , j , y )) ∨ ( j = S i ∧ y = Tail ( t )) ∨ ( S i < j ∧ y = 0 ) は、補題 3.1 によりj < S ( S i ) j<S(Si) j < S ( S i ) の各j j j に対して一意なy y y を定める。補題 3.2 をk : = S ( S i ) k:=S(Si) k := S ( S i ) へ適用して( B ′ , C ′ ) (B',C') ( B ′ , C ′ ) を得る。j < i j<i j < i では旧い表と同じ値をもつのでPrefix Q \operatorname{Prefix}_Q Prefix Q の第2連言が保たれ、j = i j=i j = i では第i i i セルがt ≠ 0 t\ne0 t = 0 、第S i Si S i セルがTail ( t ) \operatorname{Tail}(t) Tail ( t ) でありDec Q ( t , Head ( t ) , Tail ( t ) ) \operatorname{Dec}_Q(t,\operatorname{Head}(t),\operatorname{Tail}(t)) Dec Q ( t , Head ( t ) , Tail ( t )) が成り立つ。従ってPrefix Q ( B ′ , C ′ , s , S i ) \operatorname{Prefix}_Q(B',C',s,Si) Prefix Q ( B ′ , C ′ , s , S i ) とCell Q ( B ′ , C ′ , S i , Tail ( t ) ) \operatorname{Cell}_Q(B',C',Si,\operatorname{Tail}(t)) Cell Q ( B ′ , C ′ , S i , Tail ( t )) を得る。(3) によりt + i ≤ s t+i\le s t + i ≤ s であり0 < t 0<t 0 < t であるからS i ≤ s Si\le s S i ≤ s である。よってAt Q 0 ( s , S i , Tail ( t ) ) \operatorname{At}^{0}_Q(s,Si,\operatorname{Tail}(t)) At Q 0 ( s , S i , Tail ( t )) である。
(5) を示す。Λ ( i ) : ⟺ ∃ t ( At Q 0 ( s , i , t ) ∧ t ≠ 0 ) \Lambda(i):\!\!\Longleftrightarrow\exists t\,(\operatorname{At}^{0}_Q(s,i,t)\land t\ne0) Λ ( i ) : ⟺ ∃ t ( At Q 0 ( s , i , t ) ∧ t = 0 ) と置く。(3) によりΛ ( i ) \Lambda(i) Λ ( i ) ならばS i ≤ s Si\le s S i ≤ s 、すなわちi < s i<s i < s である。従って¬ Λ ( s ) \neg\Lambda(s) ¬Λ ( s ) である。補題 1.2 を¬ Λ \neg\Lambda ¬Λ へ適用し、¬ Λ ( n ) \neg\Lambda(n) ¬Λ ( n ) を満たす最小のn n n を取る。n ≤ s n\le s n ≤ s である。
i i i に関する帰納法により、i ≤ n → ∃ t At Q 0 ( s , i , t ) i\le n\to\exists t\,\operatorname{At}^{0}_Q(s,i,t) i ≤ n → ∃ t At Q 0 ( s , i , t ) を示す。i = 0 i=0 i = 0 は(2) による。i i i からS i Si S i へ進む段でS i ≤ n Si\le n S i ≤ n とするとi < n i<n i < n であるからn n n の最小性によりΛ ( i ) \Lambda(i) Λ ( i ) であり、(4) によりAt Q 0 ( s , S i , Tail ( t ) ) \operatorname{At}^{0}_Q(s,Si,\operatorname{Tail}(t)) At Q 0 ( s , S i , Tail ( t )) を得る。
従ってi ≤ n i\le n i ≤ n を満たす各i i i について反復尾が存在し、とくにAt Q 0 ( s , n , t n ) \operatorname{At}^{0}_Q(s,n,t_n) At Q 0 ( s , n , t n ) を満たすt n t_n t n について¬ Λ ( n ) \neg\Lambda(n) ¬Λ ( n ) からt n = 0 t_n=0 t n = 0 である。これが第二の主張と第一の主張である。i < n i<n i < n についてはΛ ( i ) \Lambda(i) Λ ( i ) と(1) から、At Q 0 ( s , i , t ) \operatorname{At}^{0}_Q(s,i,t) At Q 0 ( s , i , t ) を満たすt t t は0 0 0 でない。これが第三の主張である。
(6) を示す。At Q 0 ( s , S i , t ′ ) \operatorname{At}^{0}_Q(s,Si,t') At Q 0 ( s , S i , t ′ ) の証人( B , C ) (B,C) ( B , C ) を取ると、Prefix Q ( B , C , s , S i ) \operatorname{Prefix}_Q(B,C,s,Si) Prefix Q ( B , C , s , S i ) の第2連言はj < i j<i j < i についても成り立つのでPrefix Q ( B , C , s , i ) \operatorname{Prefix}_Q(B,C,s,i) Prefix Q ( B , C , s , i ) である。(3) によりt ′ + S i ≤ s t'+Si\le s t ′ + S i ≤ s であるからi ≤ s i\le s i ≤ s であり、( B , C ) (B,C) ( B , C ) の第i i i セルの値をt t t とするとAt Q 0 ( s , i , t ) \operatorname{At}^{0}_Q(s,i,t) At Q 0 ( s , i , t ) である。Prefix Q \operatorname{Prefix}_Q Prefix Q の第2連言をj : = i j:=i j := i について用いるとt ≠ 0 t\ne0 t = 0 かつDec Q ( t , a , y ) \operatorname{Dec}_Q(t,a,y) Dec Q ( t , a , y ) であり、補題 3.1 の一意性からy = t ′ y=t' y = t ′ である。補題 4.1 (6) によりt ′ = Tail ( t ) t'=\operatorname{Tail}(t) t ′ = Tail ( t ) である。▨
次の補題が本記事の中心である。以下では長さ、成分、連結の値を記法 の記法で書く。
補題 5.2. P A PA P A は次を証明する。
長さ。 任意のs s s についてLen Q 0 ( s , n ) \operatorname{Len}^{0}_Q(s,n) Len Q 0 ( s , n ) を満たすn n n がちょうど一つ存在する。このn n n をLen ( s ) \operatorname{Len}(s) Len ( s ) と書く。Len ( s ) = 0 \operatorname{Len}(s)=0 Len ( s ) = 0 であることとs = 0 s=0 s = 0 であることは同値である。At Q 0 ( s , i , t ) \operatorname{At}^{0}_Q(s,i,t) At Q 0 ( s , i , t ) を満たすt t t が存在するのはi ≤ Len ( s ) i\le\operatorname{Len}(s) i ≤ Len ( s ) のとき、かつそのときに限る。
成分。 任意のs , i s,i s , i についてEntry Q 0 ( s , i , a ) \operatorname{Entry}^{0}_Q(s,i,a) Entry Q 0 ( s , i , a ) を満たすa a a がちょうど一つ存在する。このa a a をEntry ( s , i ) \operatorname{Entry}(s,i) Entry ( s , i ) と書く。Len ( s ) ≤ i \operatorname{Len}(s)\le i Len ( s ) ≤ i のときEntry ( s , i ) = 0 \operatorname{Entry}(s,i)=0 Entry ( s , i ) = 0 である。
先頭追加。 Len ( Cons ( a , s ) ) = S Len ( s ) \operatorname{Len}(\operatorname{Cons}(a,s))=S\operatorname{Len}(s) Len ( Cons ( a , s )) = S Len ( s ) 、Entry ( Cons ( a , s ) , 0 ) = a \operatorname{Entry}(\operatorname{Cons}(a,s),0)=a Entry ( Cons ( a , s ) , 0 ) = a 、および任意のi i i についてEntry ( Cons ( a , s ) , S i ) = Entry ( s , i ) \operatorname{Entry}(\operatorname{Cons}(a,s),Si)=\operatorname{Entry}(s,i) Entry ( Cons ( a , s ) , S i ) = Entry ( s , i ) である。とくに0 < s 0<s 0 < s のときs = Cons ( Head ( s ) , Tail ( s ) ) s=\operatorname{Cons}(\operatorname{Head}(s),\operatorname{Tail}(s)) s = Cons ( Head ( s ) , Tail ( s )) でありLen ( s ) = S Len ( Tail ( s ) ) \operatorname{Len}(s)=S\operatorname{Len}(\operatorname{Tail}(s)) Len ( s ) = S Len ( Tail ( s )) である。
連結。 任意のs , t s,t s , t についてConcat Q 0 ( s , t , u ) \operatorname{Concat}^{0}_Q(s,t,u) Concat Q 0 ( s , t , u ) を満たすu u u がちょうど一つ存在する。このu u u をConcat ( s , t ) \operatorname{Concat}(s,t) Concat ( s , t ) と書く。
連結の再帰。 Concat ( 0 , t ) = t \operatorname{Concat}(0,t)=t Concat ( 0 , t ) = t であり、Concat ( Cons ( a , s ) , t ) = Cons ( a , Concat ( s , t ) ) \operatorname{Concat}(\operatorname{Cons}(a,s),t)=\operatorname{Cons}(a,\operatorname{Concat}(s,t)) Concat ( Cons ( a , s ) , t ) = Cons ( a , Concat ( s , t )) である。
連結の長さと成分。 Len ( Concat ( s , t ) ) = Len ( s ) + Len ( t ) \operatorname{Len}(\operatorname{Concat}(s,t))=\operatorname{Len}(s)+\operatorname{Len}(t) Len ( Concat ( s , t )) = Len ( s ) + Len ( t ) であり、i < Len ( s ) i<\operatorname{Len}(s) i < Len ( s ) についてEntry ( Concat ( s , t ) , i ) = Entry ( s , i ) \operatorname{Entry}(\operatorname{Concat}(s,t),i)=\operatorname{Entry}(s,i) Entry ( Concat ( s , t ) , i ) = Entry ( s , i ) 、j < Len ( t ) j<\operatorname{Len}(t) j < Len ( t ) についてEntry ( Concat ( s , t ) , Len ( s ) + j ) = Entry ( t , j ) \operatorname{Entry}(\operatorname{Concat}(s,t),\operatorname{Len}(s)+j)=\operatorname{Entry}(t,j) Entry ( Concat ( s , t ) , Len ( s ) + j ) = Entry ( t , j ) である。
末尾追加。 Snoc ( s , a ) : = Concat ( s , Cons ( a , 0 ) ) \operatorname{Snoc}(s,a):=\operatorname{Concat}(s,\operatorname{Cons}(a,0)) Snoc ( s , a ) := Concat ( s , Cons ( a , 0 )) と定めると、Len ( Snoc ( s , a ) ) = S Len ( s ) \operatorname{Len}(\operatorname{Snoc}(s,a))=S\operatorname{Len}(s) Len ( Snoc ( s , a )) = S Len ( s ) 、i < Len ( s ) i<\operatorname{Len}(s) i < Len ( s ) についてEntry ( Snoc ( s , a ) , i ) = Entry ( s , i ) \operatorname{Entry}(\operatorname{Snoc}(s,a),i)=\operatorname{Entry}(s,i) Entry ( Snoc ( s , a ) , i ) = Entry ( s , i ) 、およびEntry ( Snoc ( s , a ) , Len ( s ) ) = a \operatorname{Entry}(\operatorname{Snoc}(s,a),\operatorname{Len}(s))=a Entry ( Snoc ( s , a ) , Len ( s )) = a である。
証明. (1) を示す。補題 5.1 (5) が与えるn n n について、補題 5.1 (5) の証人( B , C ) (B,C) ( B , C ) はPrefix Q ( B , C , s , n ) \operatorname{Prefix}_Q(B,C,s,n) Prefix Q ( B , C , s , n ) とCell Q ( B , C , n , 0 ) \operatorname{Cell}_Q(B,C,n,0) Cell Q ( B , C , n , 0 ) を満たし、補題 5.1 (3) によりn ≤ s n\le s n ≤ s である。従ってLen Q 0 ( s , n ) \operatorname{Len}^{0}_Q(s,n) Len Q 0 ( s , n ) である。Len Q 0 ( s , n ′ ) \operatorname{Len}^{0}_Q(s,n') Len Q 0 ( s , n ′ ) を満たすn ′ n' n ′ を取る。n ′ n' n ′ の証人はAt Q 0 ( s , n ′ , 0 ) \operatorname{At}^{0}_Q(s,n',0) At Q 0 ( s , n ′ , 0 ) を与える。n < n ′ n<n' n < n ′ とすると、Prefix Q \operatorname{Prefix}_Q Prefix Q の第2連言が第n n n セルの値が0 0 0 でないことを要求するが、補題 5.1 (1) によりその値は0 0 0 である。n ′ < n n'<n n ′ < n とすると、補題 5.1 (5) の第三の主張により第n ′ n' n ′ 反復尾は0 0 0 でないが、Cell Q \operatorname{Cell}_Q Cell Q の一意性から0 0 0 である。いずれも矛盾なのでn ′ = n n'=n n ′ = n である。
s = 0 s=0 s = 0 ならば補題 5.1 (2) によりAt Q 0 ( 0 , 0 , 0 ) \operatorname{At}^{0}_Q(0,0,0) At Q 0 ( 0 , 0 , 0 ) であり、第0 0 0 反復尾が0 0 0 であるから補題 5.1 (5) が与えるn n n は0 0 0 である。従ってLen ( 0 ) = 0 \operatorname{Len}(0)=0 Len ( 0 ) = 0 である。逆にLen ( s ) = 0 \operatorname{Len}(s)=0 Len ( s ) = 0 ならばAt Q 0 ( s , 0 , 0 ) \operatorname{At}^{0}_Q(s,0,0) At Q 0 ( s , 0 , 0 ) であり、補題 5.1 (1) と補題 5.1 (2) からs = 0 s=0 s = 0 である。反復尾の存在範囲は、補題 5.1 (5) の第二の主張が与える「i ≤ n i\le n i ≤ n のとき存在する」ことと、i > n i>n i > n のときPrefix Q \operatorname{Prefix}_Q Prefix Q が第n n n セルの値が0 0 0 でないことを要求して矛盾することによる。
(2) を示す。n : = Len ( s ) n:=\operatorname{Len}(s) n := Len ( s ) を取る。i < n i<n i < n ならば(1) により反復尾t t t が一意に存在し、補題 5.1 (5) によりt ≠ 0 t\ne0 t = 0 であるから、補題 4.1 (7) によりHead Q 0 ( t , a ) \operatorname{Head}^{0}_Q(t,a) Head Q 0 ( t , a ) を満たすa a a が一意に存在する。n ≤ i n\le i n ≤ i ならばEntry Q 0 \operatorname{Entry}^{0}_Q Entry Q 0 の第2選言がa = 0 a=0 a = 0 を与える。長さn n n が一意であるから、二つの選言が同時に成り立つことはない。よってa a a は一意である。
(3) を示す。c : = Cons ( a , s ) c:=\operatorname{Cons}(a,s) c := Cons ( a , s ) と置く。補題 4.1 (5) と補題 4.1 (6) によりDec Q ( c , a , s ) \operatorname{Dec}_Q(c,a,s) Dec Q ( c , a , s ) であり、Head ( c ) = a \operatorname{Head}(c)=a Head ( c ) = a 、Tail ( c ) = s \operatorname{Tail}(c)=s Tail ( c ) = s である。i i i に関する帰納法により、任意のt t t についてAt Q 0 ( c , S i , t ) \operatorname{At}^{0}_Q(c,Si,t) At Q 0 ( c , S i , t ) とAt Q 0 ( s , i , t ) \operatorname{At}^{0}_Q(s,i,t) At Q 0 ( s , i , t ) が同値であることを示す。i = 0 i=0 i = 0 では、補題 5.1 (2) と補題 5.1 (4) によりAt Q 0 ( c , 1 , s ) \operatorname{At}^{0}_Q(c,1,s) At Q 0 ( c , 1 , s ) であり、補題 5.1 (1) の一意性から同値である。i i i からS i Si S i へ進む段では、まずAt Q 0 ( s , S i , t ′ ) \operatorname{At}^{0}_Q(s,Si,t') At Q 0 ( s , S i , t ′ ) を仮定する。補題 5.1 (6) によりAt Q 0 ( s , i , t ) \operatorname{At}^{0}_Q(s,i,t) At Q 0 ( s , i , t ) 、t ≠ 0 t\ne0 t = 0 、t ′ = Tail ( t ) t'=\operatorname{Tail}(t) t ′ = Tail ( t ) を満たすt t t を取ることができ、帰納法の仮定によりAt Q 0 ( c , S i , t ) \operatorname{At}^{0}_Q(c,Si,t) At Q 0 ( c , S i , t ) であり、補題 5.1 (4) によりAt Q 0 ( c , S ( S i ) , t ′ ) \operatorname{At}^{0}_Q(c,S(Si),t') At Q 0 ( c , S ( S i ) , t ′ ) である。逆にAt Q 0 ( c , S ( S i ) , t ′ ) \operatorname{At}^{0}_Q(c,S(Si),t') At Q 0 ( c , S ( S i ) , t ′ ) を仮定すると、補題 5.1 (6) と帰納法の仮定と補題 5.1 (4) を逆向きにたどってAt Q 0 ( s , S i , t ′ ) \operatorname{At}^{0}_Q(s,Si,t') At Q 0 ( s , S i , t ′ ) を得る。従ってc c c の第S i Si S i 反復尾はs s s の第i i i 反復尾である。また、補題 5.1 (2) によりc c c の第0 0 0 反復尾はc c c であり、補題 4.1 (5) によりc ≠ 0 c\ne0 c = 0 である。よってLen ( c ) = S Len ( s ) \operatorname{Len}(c)=S\operatorname{Len}(s) Len ( c ) = S Len ( s ) であり、成分についての二つの等式も(2) から従う。0 < s 0<s 0 < s のときの分解は補題 4.1 (6) による。
(4) の存在。n : = Len ( s ) n:=\operatorname{Len}(s) n := Len ( s ) とし、Prefix Q ( B , C , s , n ) \operatorname{Prefix}_Q(B,C,s,n) Prefix Q ( B , C , s , n ) とCell Q ( B , C , n , 0 ) \operatorname{Cell}_Q(B,C,n,0) Cell Q ( B , C , n , 0 ) を満たす( B , C ) (B,C) ( B , C ) を取る。l l l に関する帰納法により、l ≤ n l\le n l ≤ n を満たすすべてのl l l について次を示す。
Ξ ( l ) : ∃ D ∃ E ( Cell Q ( D , E , n , t ) ∧ ∀ j ( j < n ∧ n ≤ j + l → Γ ( D , E , j ) ) ) \Xi(l):\quad
\exists D\,\exists E\,\Bigl(
\operatorname{Cell}_Q(D,E,n,t)\land
\forall j\,\bigl(j<n\land n\le j+l\to\Gamma(D,E,j)\bigr)\Bigr) Ξ ( l ) : ∃ D ∃ E ( Cell Q ( D , E , n , t ) ∧ ∀ j ( j < n ∧ n ≤ j + l → Γ ( D , E , j ) ) ) ここでΓ ( D , E , j ) \Gamma(D,E,j) Γ ( D , E , j ) は、Cell Q ( B , C , j , x ) \operatorname{Cell}_Q(B,C,j,x) Cell Q ( B , C , j , x ) 、Cell Q ( B , C , S j , y ) \operatorname{Cell}_Q(B,C,Sj,y) Cell Q ( B , C , S j , y ) 、Dec Q ( x , a , y ) \operatorname{Dec}_Q(x,a,y) Dec Q ( x , a , y ) 、Cell Q ( D , E , j , r ) \operatorname{Cell}_Q(D,E,j,r) Cell Q ( D , E , j , r ) 、Cell Q ( D , E , S j , r ′ ) \operatorname{Cell}_Q(D,E,Sj,r') Cell Q ( D , E , S j , r ′ ) 、Cons Q ( a , r ′ , r ) \operatorname{Cons}_Q(a,r',r) Cons Q ( a , r ′ , r ) を満たすx , y , a , r , r ′ x,y,a,r,r' x , y , a , r , r ′ が存在することを表す。第2表はe n = t e_n=t e n = t 、e j = Cons ( a j , e S j ) e_j=\operatorname{Cons}(a_j,e_{Sj}) e j = Cons ( a j , e S j ) という後ろ向き の再帰で定まるので、第1表を作ったときの前向きの構成をそのまま流用することはできない。そこで、Ξ ( l ) \Xi(l) Ξ ( l ) では末尾からl l l 段だけ定めた表を主張する。
l = 0 l=0 l = 0 では条件j < n ∧ n ≤ j j<n\land n\le j j < n ∧ n ≤ j が成り立たないので、補題 3.2 を論理式( j = n ∧ y = t ) ∨ ( j ≠ n ∧ y = 0 ) (j=n\land y=t)\lor(j\ne n\land y=0) ( j = n ∧ y = t ) ∨ ( j = n ∧ y = 0 ) とk : = S n k:=Sn k := S n へ適用して得た( D , E ) (D,E) ( D , E ) でよい。
l l l からS l Sl S l へ進む段でS l ≤ n Sl\le n S l ≤ n とする。Ξ ( l ) \Xi(l) Ξ ( l ) の証人( D , E ) (D,E) ( D , E ) を取る。j 0 + S l = n j_0+Sl=n j 0 + S l = n を満たすj 0 j_0 j 0 が存在し、j 0 < n j_0<n j 0 < n である。Prefix Q ( B , C , s , n ) \operatorname{Prefix}_Q(B,C,s,n) Prefix Q ( B , C , s , n ) から、Cell Q ( B , C , j 0 , x ) \operatorname{Cell}_Q(B,C,j_0,x) Cell Q ( B , C , j 0 , x ) 、Cell Q ( B , C , S j 0 , y ) \operatorname{Cell}_Q(B,C,Sj_0,y) Cell Q ( B , C , S j 0 , y ) 、x ≠ 0 x\ne0 x = 0 、Dec Q ( x , a , y ) \operatorname{Dec}_Q(x,a,y) Dec Q ( x , a , y ) を満たすx , y , a x,y,a x , y , a を取る。( D , E ) (D,E) ( D , E ) の第S j 0 Sj_0 S j 0 セルの値をr ′ r' r ′ とし、r : = Cons ( a , r ′ ) r:=\operatorname{Cons}(a,r') r := Cons ( a , r ′ ) と置く。補題 3.2 を論理式( j = j 0 ∧ y ′ = r ) ∨ ( j ≠ j 0 ∧ Cell Q ( D , E , j , y ′ ) ) (j=j_0\land y'=r)\lor(j\ne j_0\land\operatorname{Cell}_Q(D,E,j,y')) ( j = j 0 ∧ y ′ = r ) ∨ ( j = j 0 ∧ Cell Q ( D , E , j , y ′ )) とk : = S n k:=Sn k := S n へ適用して( D ′ , E ′ ) (D',E') ( D ′ , E ′ ) を得る。j 0 < n j_0<n j 0 < n より第n n n セルはt t t のままである。j < n j<n j < n かつn ≤ j + S l n\le j+Sl n ≤ j + S l を満たすj j j を取る。n ≤ j + l n\le j+l n ≤ j + l の場合、j 0 < j j_0<j j 0 < j であるから第j j j セルと第S j Sj S j セルは( D , E ) (D,E) ( D , E ) と同じ値であり、Ξ ( l ) \Xi(l) Ξ ( l ) の条件がそのまま移る。n = j + S l n=j+Sl n = j + S l の場合はj = j 0 j=j_0 j = j 0 であり、S j 0 ≠ j 0 Sj_0\ne j_0 S j 0 = j 0 から第S j 0 Sj_0 S j 0 セルがr ′ r' r ′ のままであるので、構成によりΓ ( D ′ , E ′ , j 0 ) \Gamma(D',E',j_0) Γ ( D ′ , E ′ , j 0 ) が成り立つ。
l = n l=n l = n におけるΞ ( n ) \Xi(n) Ξ ( n ) では条件j < n ∧ n ≤ j + n j<n\land n\le j+n j < n ∧ n ≤ j + n がj < n j<n j < n と一致する。Ξ ( n ) \Xi(n) Ξ ( n ) の証人の第0 0 0 セルをu u u とすると、n ≤ s n\le s n ≤ s と合わせてConcat Q 0 ( s , t , u ) \operatorname{Concat}^{0}_Q(s,t,u) Concat Q 0 ( s , t , u ) が成り立つ。
(4) の一意性。Concat Q 0 ( s , t , u ) \operatorname{Concat}^{0}_Q(s,t,u) Concat Q 0 ( s , t , u ) とConcat Q 0 ( s , t , u ′ ) \operatorname{Concat}^{0}_Q(s,t,u') Concat Q 0 ( s , t , u ′ ) の証人を取る。Prefix Q \operatorname{Prefix}_Q Prefix Q と終端セルの条件はLen Q 0 ( s , n ) \operatorname{Len}^{0}_Q(s,n) Len Q 0 ( s , n ) そのものであるから、(1) により両者のn n n は一致し、補題 5.1 (1) の証明で示した主張により第1表のセルも一致する。l l l に関する帰納法により、j ≤ n j\le n j ≤ n かつn ≤ j + l n\le j+l n ≤ j + l を満たすj j j について二つの第2表のセルが一致することを示す。l = 0 l=0 l = 0 ではj = n j=n j = n であり、どちらもt t t である。l l l からS l Sl S l へ進む段では、n = j + S l n=j+Sl n = j + S l の場合を見ればよい。二つの表はいずれも第j j j セルをCons ( a j , ⋅ ) \operatorname{Cons}(a_j,\cdot) Cons ( a j , ⋅ ) の形に定め、a j a_j a j は一致した第1表からDec Q \operatorname{Dec}_Q Dec Q の一意性で定まり、第S j Sj S j セルは帰納法の仮定により一致する。従って第j j j セルも一致する。l = n l=n l = n 、j = 0 j=0 j = 0 としてu = u ′ u=u' u = u ′ を得る。
(5) を示す。Concat ( 0 , t ) = t \operatorname{Concat}(0,t)=t Concat ( 0 , t ) = t を示す。Len ( 0 ) = 0 \operatorname{Len}(0)=0 Len ( 0 ) = 0 よりConcat Q 0 ( 0 , t , u ) \operatorname{Concat}^{0}_Q(0,t,u) Concat Q 0 ( 0 , t , u ) のn n n は0 0 0 であり、∀ j < n \forall j<n ∀ j < n の条件は空虚である。残る条件は、第1表についてCell Q ( B , C , 0 , 0 ) \operatorname{Cell}_Q(B,C,0,0) Cell Q ( B , C , 0 , 0 ) 、第2表についてCell Q ( D , E , 0 , u ) \operatorname{Cell}_Q(D,E,0,u) Cell Q ( D , E , 0 , u ) とCell Q ( D , E , 0 , t ) \operatorname{Cell}_Q(D,E,0,t) Cell Q ( D , E , 0 , t ) だけである。補題 3.2 によりこれらを満たす表は存在し、補題 3.1 の一意性からu = t u=t u = t である。
第二の等式を示す。s + : = Cons ( a , s ) s^{+}:=\operatorname{Cons}(a,s) s + := Cons ( a , s ) と置き、n + : = Len ( s + ) = S Len ( s ) n^{+}:=\operatorname{Len}(s^{+})=S\operatorname{Len}(s) n + := Len ( s + ) = S Len ( s ) 、n : = Len ( s ) n:=\operatorname{Len}(s) n := Len ( s ) とする。Concat Q 0 ( s + , t , u ) \operatorname{Concat}^{0}_Q(s^{+},t,u) Concat Q 0 ( s + , t , u ) の証人( B , C ) (B,C) ( B , C ) と( D , E ) (D,E) ( D , E ) を取る。補題 3.2 を論理式Cell Q ( B , C , S j , y ) \operatorname{Cell}_Q(B,C,Sj,y) Cell Q ( B , C , S j , y ) とk : = S n k:=S n k := S n へ適用して( B ′ ′ , C ′ ′ ) (B'',C'') ( B ′′ , C ′′ ) を、論理式Cell Q ( D , E , S j , y ) \operatorname{Cell}_Q(D,E,Sj,y) Cell Q ( D , E , S j , y ) と同じk k k へ適用して( D ′ ′ , E ′ ′ ) (D'',E'') ( D ′′ , E ′′ ) を得る。すなわち添字を一つずらした表である。
( B , C ) (B,C) ( B , C ) の第1 1 1 セルはs + s^{+} s + の第1 1 1 反復尾、すなわちs s s であり、第n + n^{+} n + セルは0 0 0 である。従ってPrefix Q ( B ′ ′ , C ′ ′ , s , n ) \operatorname{Prefix}_Q(B'',C'',s,n) Prefix Q ( B ′′ , C ′′ , s , n ) とCell Q ( B ′ ′ , C ′ ′ , n , 0 ) \operatorname{Cell}_Q(B'',C'',n,0) Cell Q ( B ′′ , C ′′ , n , 0 ) が成り立つ。( D ′ ′ , E ′ ′ ) (D'',E'') ( D ′′ , E ′′ ) については、第n n n セルが( D , E ) (D,E) ( D , E ) の第n + n^{+} n + セル、すなわちt t t であり、j < n j<n j < n に対する後ろ向きの再帰条件は( D , E ) (D,E) ( D , E ) のS j < n + Sj<n^{+} S j < n + に対する条件がそのまま移る。( D ′ ′ , E ′ ′ ) (D'',E'') ( D ′′ , E ′′ ) の第0 0 0 セルをu 1 u_1 u 1 とすると、n ≤ s n\le s n ≤ s と合わせてConcat Q 0 ( s , t , u 1 ) \operatorname{Concat}^{0}_Q(s,t,u_1) Concat Q 0 ( s , t , u 1 ) を得る。すなわちu 1 = Concat ( s , t ) u_1=\operatorname{Concat}(s,t) u 1 = Concat ( s , t ) である。
一方( D , E ) (D,E) ( D , E ) の第0 0 0 セルu u u は、j = 0 j=0 j = 0 に対する条件によりCons ( a 0 , u 1 ) \operatorname{Cons}(a_0,u_1) Cons ( a 0 , u 1 ) に等しく、a 0 a_0 a 0 はDec Q ( s + , a 0 , s ) \operatorname{Dec}_Q(s^{+},a_0,s) Dec Q ( s + , a 0 , s ) から定まるのでa 0 = a a_0=a a 0 = a である。よってConcat ( s + , t ) = Cons ( a , Concat ( s , t ) ) \operatorname{Concat}(s^{+},t)=\operatorname{Cons}(a,\operatorname{Concat}(s,t)) Concat ( s + , t ) = Cons ( a , Concat ( s , t )) である。
(6) を示す。n n n に関する帰納法により、Len ( s ) = n \operatorname{Len}(s)=n Len ( s ) = n を満たすすべてのs s s について主張を示す。n = 0 n=0 n = 0 では(1) によりs = 0 s=0 s = 0 であり、(5) の第一の等式から従う。n n n からS n Sn S n へ進む段では、Len ( s ) = S n \operatorname{Len}(s)=Sn Len ( s ) = S n よりs ≠ 0 s\ne0 s = 0 であるから(3) によりs = Cons ( Head ( s ) , Tail ( s ) ) s=\operatorname{Cons}(\operatorname{Head}(s),\operatorname{Tail}(s)) s = Cons ( Head ( s ) , Tail ( s )) かつLen ( Tail ( s ) ) = n \operatorname{Len}(\operatorname{Tail}(s))=n Len ( Tail ( s )) = n である。(5) の第二の等式と(3) を合わせ、帰納法の仮定をTail ( s ) \operatorname{Tail}(s) Tail ( s ) へ適用すればよい。
(7) を示す。Cons ( a , 0 ) \operatorname{Cons}(a,0) Cons ( a , 0 ) は(3) により長さ1 1 1 で第0 0 0 成分がa a a の列であるから、(6) をそのまま適用すればよい。▨
§E16.19 定義 4.1 の公開する三式Len Q \operatorname{Len}_Q Len Q 、Entry Q \operatorname{Entry}_Q Entry Q 、Concat Q \operatorname{Concat}_Q Concat Q は、対応する raw 式へUnique \operatorname{Unique} Unique を加えたものである。上の補題が raw 式の出力の一意性を与えたので、P A PA P A は公開する三式と raw 式との同値を証明する。以下ではどちらの形も同じ値を表すものとして用いる。同じことがPair Q \operatorname{Pair}_Q Pair Q とCons Q \operatorname{Cons}_Q Cons Q についても補題 4.1 から成り立つ。
6 6. 原始再帰関数を PA の内部で扱う
補題 6.1. f f f を任意のk k k 変数原始再帰全関数とし、その原始再帰的定義列を一つ固定して、§E16.19 定理 7.1 が与える強い表現式をF f ( x ⃗ , y ) F_f(\vec x,y) F f ( x , y ) とする。このときP A PA P A は次を証明する。
∀ x ⃗ ∃ ! y F f ( x ⃗ , y ) \forall\vec x\,\exists!y\,F_f(\vec x,y) ∀ x ∃ ! y F f ( x , y ) 。
固定した定義列の各方程式がF f F_f F f について成り立つ。すなわち、初期関数については表示した等式、合成については構成要素の値による等式、原始再帰については
f ( x ⃗ , 0 ) = g ( x ⃗ ) , f ( x ⃗ , S n ) = h ( x ⃗ , n , f ( x ⃗ , n ) ) f(\vec x,0)=g(\vec x),
\qquad
f(\vec x,Sn)=h\bigl(\vec x,n,f(\vec x,n)\bigr) f ( x , 0 ) = g ( x ) , f ( x , S n ) = h ( x , n , f ( x , n ) )
に対応する等式が、いずれもP A PA P A の定理である。
記号の対応に注意する。上流の§E16.19 補題 6.1 は、基底関数をf f f 、step 関数をg g g 、原始再帰で得られる関数をh h h と書いている。本補題はこれと役割を入れ替え、得られる関数をf f f 、基底関数をg g g 、step 関数をh h h と書く。両者を突き合わせるときは、本補題の( f , g , h ) (f,g,h) ( f , g , h ) が上流の( h , f , g ) (h,f,g) ( h , f , g ) にあたる。
パラメータ列x ⃗ \vec x x の長さが0 0 0 の場合、上流は基底値を関数の値ではなく一つの自然数c c c とし、基底節をEntry Q ( s , 0 , c ‾ ) \operatorname{Entry}_Q(s,0,\overline c) Entry Q ( s , 0 , c ) へ置き換える別扱いをしている。§E16.18 定義 3.1 のNum \operatorname{Num} Num がまさにこの場合であり、このとき(2) の第一の方程式はf ( 0 ) = c f(0)=c f ( 0 ) = c という閉じた等式として読む。
証明. 固定した原始再帰的定義列に関するメタ理論の帰納法を行う。(1) と(2) を同時に示す。
初期関数の場合、§E16.19 補題 5.1 の表現式はy = 0 y=0 y = 0 、y = S x y=Sx y = S x 、y = x i y=x_i y = x i という明示的な等式であるから、Q ⊆ P A Q\subseteq PA Q ⊆ P A より全域性、一意性、および等式そのものを得る。
合成f ( x ⃗ ) = h ( g 1 ( x ⃗ ) , … , g m ( x ⃗ ) ) f(\vec x)=h(g_1(\vec x),\ldots,g_m(\vec x)) f ( x ) = h ( g 1 ( x ) , … , g m ( x )) の場合、§E16.19 補題 5.2 の表現式は構成要素の表現式の存在量化による合成である。外側の帰納法の仮定により、P A PA P A は各g j g_j g j とh h h について(1) と(2) を証明する。存在量化された各z j z_j z j を順に消去すれば、f f f の値の存在、一意性、および合成の等式を得る。ここではP A PA P A の帰納法を用いない。
原始再帰の場合を示す。§E16.19 補題 6.1 の表現式は
φ f ( x ⃗ , r , y ) : ⟺ ∃ s ( Run ( x ⃗ , r , s ) ∧ Entry Q ( s , r , y ) ) \varphi_f(\vec x,r,y):\!\!\Longleftrightarrow
\exists s\,\bigl(\operatorname{Run}(\vec x,r,s)\land\operatorname{Entry}_Q(s,r,y)\bigr) φ f ( x , r , y ) : ⟺ ∃ s ( Run ( x , r , s ) ∧ Entry Q ( s , r , y ) ) の形をもち、Run \operatorname{Run} Run はLen Q ( s , S r ) \operatorname{Len}_Q(s,Sr) Len Q ( s , S r ) 、基底節、および∀ i < r \forall i<r ∀ i < r の step 節の連言である。r r r に関するP A PA P A の帰納法により、Run ( x ⃗ , r , s ) \operatorname{Run}(\vec x,r,s) Run ( x , r , s ) を満たすs s s の存在を示す。r = 0 r=0 r = 0 では、外側の帰納法の仮定が与えるg ( x ⃗ ) g(\vec x) g ( x ) の値a 0 a_0 a 0 についてs : = Cons ( a 0 , 0 ) s:=\operatorname{Cons}(a_0,0) s := Cons ( a 0 , 0 ) を取る。補題 5.2 (3) によりLen ( s ) = 1 \operatorname{Len}(s)=1 Len ( s ) = 1 かつEntry ( s , 0 ) = a 0 \operatorname{Entry}(s,0)=a_0 Entry ( s , 0 ) = a 0 であり、step 節は空虚に成り立つ。r r r からS r Sr S r へ進む段では、帰納法の仮定が与えるs s s の第r r r 成分a r a_r a r へ、外側の帰納法の仮定が与えるh ( x ⃗ , r , a r ) h(\vec x,r,a_r) h ( x , r , a r ) の値a S r a_{Sr} a S r を取り、s ′ : = Snoc ( s , a S r ) s':=\operatorname{Snoc}(s,a_{Sr}) s ′ := Snoc ( s , a S r ) とする。補題 5.2 (7) によりLen ( s ′ ) = S ( S r ) \operatorname{Len}(s')=S(Sr) Len ( s ′ ) = S ( S r ) であり、i ≤ r i\le r i ≤ r の成分は変わらず、第S r Sr S r 成分はa S r a_{Sr} a S r である。従って基底節とi < S r i<Sr i < S r の step 節がすべて成り立つ。
一意性を示す。Run ( x ⃗ , r , s ) \operatorname{Run}(\vec x,r,s) Run ( x , r , s ) とRun ( x ⃗ , r , s ′ ) \operatorname{Run}(\vec x,r,s') Run ( x , r , s ′ ) を仮定する。j j j に関する帰納法により、j ≤ r j\le r j ≤ r についてEntry ( s , j ) = Entry ( s ′ , j ) \operatorname{Entry}(s,j)=\operatorname{Entry}(s',j) Entry ( s , j ) = Entry ( s ′ , j ) を示す。j = 0 j=0 j = 0 は基底節とg g g の値の一意性による。j j j からS j Sj S j へ進む段は、step 節とh h h の値の一意性による。従って第r r r 成分が一致し、φ f ( x ⃗ , r , y ) \varphi_f(\vec x,r,y) φ f ( x , r , y ) の出力は一意である。
(2) の定義方程式は、いま構成した計算列の基底節と最後の一段からそのまま読み取ることができる。r = 0 r=0 r = 0 の計算列の第0 0 0 成分がg ( x ⃗ ) g(\vec x) g ( x ) の値であることが第一の方程式であり、r r r からS r Sr S r への延長が第二の方程式である。
パラメータ列の長さが0 0 0 の場合も同じ議論が通る。この場合、上流が別扱いする基底節はEntry Q ( s , 0 , c ‾ ) \operatorname{Entry}_Q(s,0,\overline c) Entry Q ( s , 0 , c ) であり、上のr = 0 r=0 r = 0 の段でa 0 a_0 a 0 として取る値がg ( x ⃗ ) g(\vec x) g ( x ) の値ではなく固定した自然数c c c になる。step 関数h h h は二変数、得られるf f f は一変数であり、いずれも正のアリティである。以後の存在と一意性の帰納法は、基底の一段をこの閉じた等式に取り替えるだけで、そのまま成り立つ。▨
記法:PA 内で原始再帰関数を項として書く記法 f f f を原始再帰全関数とし、F f F_f F f を補題 6.1 の表現式とする。記法 の記法をR : = F f R:=F_f R := F f について用い、その値をf ( x ⃗ ) f(\vec x) f ( x ) と書く。(1) により略記は一意に定まり、(2) によりP A PA P A はf f f の定義方程式を等式として用いることができる。従って、P A PA P A の内部ではf f f を全域一価な関数記号のように扱うことができる。L A L_A L A に新しい関数記号を追加してはいない。
補題 6.2. R ( x ⃗ , i ) R(\vec x,i) R ( x , i ) を原始再帰関係とし、μ ( x ⃗ , n ) \mu(\vec x,n) μ ( x , n ) を、R ( x ⃗ , i ) R(\vec x,i) R ( x , i ) を満たすi ≤ n i\le n i ≤ n が存在すればその最小のもの、存在しなければS n Sn S n を返す関数とする。μ \mu μ は原始再帰全関数であり、P A PA P A は
μ ( x ⃗ , n ) ≤ n ↔ ∃ i ≤ n ρ R ( x ⃗ , i ) , μ ( x ⃗ , n ) ≤ n → ( ρ R ( x ⃗ , μ ( x ⃗ , n ) ) ∧ ∀ j < μ ( x ⃗ , n ) ¬ ρ R ( x ⃗ , j ) ) \mu(\vec x,n)\le n\leftrightarrow\exists i\le n\,\rho_R(\vec x,i),
\qquad
\mu(\vec x,n)\le n\to
\bigl(\rho_R(\vec x,\mu(\vec x,n))\land\forall j<\mu(\vec x,n)\,\neg\rho_R(\vec x,j)\bigr) μ ( x , n ) ≤ n ↔ ∃ i ≤ n ρ R ( x , i ) , μ ( x , n ) ≤ n → ( ρ R ( x , μ ( x , n )) ∧ ∀ j < μ ( x , n ) ¬ ρ R ( x , j ) ) を証明する。ここでρ R \rho_R ρ R は§E16.19 定理 7.1 (2) が与える表現式である。
証明. χ R \chi_R χ R をR R R の特性関数とする。μ \mu μ はn n n に関する通常の原始再帰
μ ( x ⃗ , 0 ) = { 0 χ R ( x ⃗ , 0 ) = 1 , 1 それ以外 , μ ( x ⃗ , S n ) = { μ ( x ⃗ , n ) μ ( x ⃗ , n ) ≤ n , S n n < μ ( x ⃗ , n ) ∧ χ R ( x ⃗ , S n ) = 1 , S ( S n ) それ以外 \mu(\vec x,0)=
\begin{cases}0&\chi_R(\vec x,0)=1,\\1&\text{それ以外},\end{cases}
\qquad
\mu(\vec x,Sn)=
\begin{cases}
\mu(\vec x,n)&\mu(\vec x,n)\le n,\\
Sn&n<\mu(\vec x,n)\land\chi_R(\vec x,Sn)=1,\\
S(Sn)&\text{それ以外}
\end{cases} μ ( x , 0 ) = { 0 1 χ R ( x , 0 ) = 1 , それ以外 , μ ( x , S n ) = ⎩ ⎨ ⎧ μ ( x , n ) S n S ( S n ) μ ( x , n ) ≤ n , n < μ ( x , n ) ∧ χ R ( x , S n ) = 1 , それ以外 で得るので原始再帰的である。場合分けの述語を関係R R R そのものではなく特性関数の値χ R ( x ⃗ , i ) = 1 \chi_R(\vec x,i)=1 χ R ( x , i ) = 1 で書いたのは、P A PA P A の内部で扱うことができるのがL A L_A L A 論理式と原始再帰関数の値だけだからである。§E16.19 定理 7.1 (2) はρ R ( x ⃗ ) : ⟺ φ χ R ( x ⃗ , 1 ‾ ) \rho_R(\vec x):\!\!\Longleftrightarrow\varphi_{\chi_R}(\vec x,\overline1) ρ R ( x ) : ⟺ φ χ R ( x , 1 ) と定めているので、記法 の記法のもとでP A PA P A は
ρ R ( x ⃗ , i ) ↔ χ R ( x ⃗ , i ) = 1 \rho_R(\vec x,i)\leftrightarrow\chi_R(\vec x,i)=1 ρ R ( x , i ) ↔ χ R ( x , i ) = 1 を証明する。以下ではこの同値により、表現式ρ R \rho_R ρ R と特性関数の値による条件とを同じものとして用いる。補題 6.1 によりP A PA P A は表示した二つの方程式を証明する。主張の二つの式は、n n n に関するP A PA P A の帰納法によって同時に得る。n = 0 n=0 n = 0 では場合分けそのものである。n n n からS n Sn S n へ進む段では、μ ( x ⃗ , n ) ≤ n \mu(\vec x,n)\le n μ ( x , n ) ≤ n の場合に帰納法の仮定をそのまま用い、そうでない場合にはi ≤ n i\le n i ≤ n の範囲にρ R ( x ⃗ , i ) \rho_R(\vec x,i) ρ R ( x , i ) を満たすi i i が無いことを帰納法の仮定から得て、S n Sn S n における判定と合わせる。▨
補題 6.3. 補題 6.1 がP A PA P A の定理として与えるのは、固定した原始再帰的定義列の方程式だけである。そこで、切捨て減法と固定数2 2 2 による商について、本記事が用いる定義列を次に明示する。
pred ( 0 ) = 0 , pred ( S x ) = x , x − ˙ 0 = x , x − ˙ S y = pred ( x − ˙ y ) , par ( 0 ) = 0 , par ( S x ) = S 0 − ˙ par ( x ) , half ( 0 ) = 0 , half ( S x ) = half ( x ) + par ( x ) . \begin{aligned}
\operatorname{pred}(0)&=0,&
\operatorname{pred}(Sx)&=x,\\
x\mathbin{\dot-}0&=x,&
x\mathbin{\dot-}Sy&=\operatorname{pred}(x\mathbin{\dot-}y),\\
\operatorname{par}(0)&=0,&
\operatorname{par}(Sx)&=S0\mathbin{\dot-}\operatorname{par}(x),\\
\operatorname{half}(0)&=0,&
\operatorname{half}(Sx)&=\operatorname{half}(x)+\operatorname{par}(x).
\end{aligned} pred ( 0 ) x − ˙ 0 par ( 0 ) half ( 0 ) = 0 , = x , = 0 , = 0 , pred ( S x ) x − ˙ S y par ( S x ) half ( S x ) = x , = pred ( x − ˙ y ) , = S 0 − ˙ par ( x ) , = half ( x ) + par ( x ) . 前者関数と切捨て減法の定義列は、§E15.7 命題 2.3 の証明が明示しているものと同じである。固定数2 2 2 による商については、上流は「x x x を2 2 2 で割った商」という値の特性づけを与えており、同証明が挙げるq b ≤ n qb\le n q b ≤ n を満たす最大のq ≤ n q\le n q ≤ n の有界探索は、原始再帰性を示すために選んだ一つの構成である。定義列を一つ固定するのは本記事の作業であり、上に表示したhalf \operatorname{half} half がその定義列である。メタ理論では上流の構成と値が一致するが、P A PA P A の内部で用いる方程式は定義列ごとに別であるから、以下では表示した定義列の方程式だけを用いる。
いずれも通常の原始再帰であり、メタ理論での値は順に前者関数、切捨て減法、x x x を2 2 2 で割った余り、x x x を2 2 2 で割った商である。P A PA P A は次を証明する。
x − ˙ y = 0 ↔ x ≤ y x\mathbin{\dot-}y=0\leftrightarrow x\le y x − ˙ y = 0 ↔ x ≤ y 、およびy ≤ x → ( x − ˙ y ) + y = x y\le x\to(x\mathbin{\dot-}y)+y=x y ≤ x → ( x − ˙ y ) + y = x 。
( x − ˙ y ) − ˙ z = x − ˙ ( y + z ) (x\mathbin{\dot-}y)\mathbin{\dot-}z=x\mathbin{\dot-}(y+z) ( x − ˙ y ) − ˙ z = x − ˙ ( y + z ) 。
par ( x ) ≤ S 0 \operatorname{par}(x)\le S0 par ( x ) ≤ S 0 、par ( x ) + par ( S x ) = S 0 \operatorname{par}(x)+\operatorname{par}(Sx)=S0 par ( x ) + par ( S x ) = S 0 、およびhalf ( x ) + half ( x ) + par ( x ) = x \operatorname{half}(x)+\operatorname{half}(x)+\operatorname{par}(x)=x half ( x ) + half ( x ) + par ( x ) = x 。したがってhalf ( x ) \operatorname{half}(x) half ( x ) はx x x をS S 0 SS0 S S 0 で割った商であり、par ( x ) \operatorname{par}(x) par ( x ) はその余りである。
half ( 0 ) = 0 \operatorname{half}(0)=0 half ( 0 ) = 0 、half ( S 0 ) = 0 \operatorname{half}(S0)=0 half ( S 0 ) = 0 、およびhalf ( S S x ) = S half ( x ) \operatorname{half}(SSx)=S\operatorname{half}(x) half ( S S x ) = S half ( x ) 。
証明. 補題 6.1 により、P A PA P A は表示した定義方程式をすべて証明する。以下の帰納法はいずれもP A PA P A の内部で行う。
(1) を示す。y y y に関する帰納法により、二つの主張「y ≤ x → ( x − ˙ y ) + y = x y\le x\to(x\mathbin{\dot-}y)+y=x y ≤ x → ( x − ˙ y ) + y = x 」と「x ≤ y → x − ˙ y = 0 x\le y\to x\mathbin{\dot-}y=0 x ≤ y → x − ˙ y = 0 」を同時に示す。y = 0 y=0 y = 0 では、前者はx − ˙ 0 = x x\mathbin{\dot-}0=x x − ˙ 0 = x そのものであり、後者は補題 1.1 (4) によりx = 0 x=0 x = 0 となることによる。y y y からS y Sy S y へ進む段で前者を示す。S y ≤ x Sy\le x S y ≤ x とするとy ≤ x y\le x y ≤ x であるから、帰納法の仮定により( x − ˙ y ) + y = x (x\mathbin{\dot-}y)+y=x ( x − ˙ y ) + y = x である。x − ˙ y = 0 x\mathbin{\dot-}y=0 x − ˙ y = 0 とするとx = y x=y x = y となりS y ≤ y Sy\le y S y ≤ y に反するので、x − ˙ y = S u x\mathbin{\dot-}y=Su x − ˙ y = S u を満たすu u u が存在する。定義方程式によりx − ˙ S y = pred ( S u ) = u x\mathbin{\dot-}Sy=\operatorname{pred}(Su)=u x − ˙ S y = pred ( S u ) = u であり、u + S y = S u + y = x u+Sy=Su+y=x u + S y = S u + y = x である。後者を示す。x ≤ S y x\le Sy x ≤ S y とすると、補題 1.1 (4) によりx ≤ y x\le y x ≤ y またはx = S y x=Sy x = S y である。x ≤ y x\le y x ≤ y ならば帰納法の仮定とpred ( 0 ) = 0 \operatorname{pred}(0)=0 pred ( 0 ) = 0 によりx − ˙ S y = 0 x\mathbin{\dot-}Sy=0 x − ˙ S y = 0 である。x = S y x=Sy x = S y ならば、いま示した前者により( x − ˙ y ) + y = S y = S 0 + y (x\mathbin{\dot-}y)+y=Sy=S0+y ( x − ˙ y ) + y = S y = S 0 + y であり、加法の消約律によりx − ˙ y = S 0 x\mathbin{\dot-}y=S0 x − ˙ y = S 0 、従ってx − ˙ S y = pred ( S 0 ) = 0 x\mathbin{\dot-}Sy=\operatorname{pred}(S0)=0 x − ˙ S y = pred ( S 0 ) = 0 である。
逆向きの含意x − ˙ y = 0 → x ≤ y x\mathbin{\dot-}y=0\to x\le y x − ˙ y = 0 → x ≤ y を示す。補題 1.1 (3) によりx ≤ y x\le y x ≤ y またはy ≤ x y\le x y ≤ x である。前者ならば示すことがない。後者でx ≠ y x\ne y x = y とすると、いま示した等式により( x − ˙ y ) + y = x (x\mathbin{\dot-}y)+y=x ( x − ˙ y ) + y = x であり、x − ˙ y = 0 x\mathbin{\dot-}y=0 x − ˙ y = 0 からy = x y=x y = x となって矛盾する。
(2) はz z z に関する帰納法による。z = 0 z=0 z = 0 では両辺がx − ˙ y x\mathbin{\dot-}y x − ˙ y である。z z z からS z Sz S z へ進む段では、定義方程式と帰納法の仮定により( x − ˙ y ) − ˙ S z = pred ( x − ˙ ( y + z ) ) = x − ˙ S ( y + z ) = x − ˙ ( y + S z ) (x\mathbin{\dot-}y)\mathbin{\dot-}Sz=\operatorname{pred}\bigl(x\mathbin{\dot-}(y+z)\bigr)=x\mathbin{\dot-}S(y+z)=x\mathbin{\dot-}(y+Sz) ( x − ˙ y ) − ˙ S z = pred ( x − ˙ ( y + z ) ) = x − ˙ S ( y + z ) = x − ˙ ( y + S z ) である。
(3) はx x x に関する帰納法による。x = 0 x=0 x = 0 ではpar ( 0 ) = 0 ≤ S 0 \operatorname{par}(0)=0\le S0 par ( 0 ) = 0 ≤ S 0 、par ( S 0 ) = S 0 − ˙ 0 = S 0 \operatorname{par}(S0)=S0\mathbin{\dot-}0=S0 par ( S 0 ) = S 0 − ˙ 0 = S 0 よりpar ( 0 ) + par ( S 0 ) = S 0 \operatorname{par}(0)+\operatorname{par}(S0)=S0 par ( 0 ) + par ( S 0 ) = S 0 、および0 + 0 + 0 = 0 0+0+0=0 0 + 0 + 0 = 0 である。x x x からS x Sx S x へ進む段では、帰納法の仮定par ( x ) ≤ S 0 \operatorname{par}(x)\le S0 par ( x ) ≤ S 0 によりpar ( x ) = 0 \operatorname{par}(x)=0 par ( x ) = 0 またはpar ( x ) = S 0 \operatorname{par}(x)=S0 par ( x ) = S 0 である。(1) により、前者ではpar ( S x ) = S 0 − ˙ 0 = S 0 \operatorname{par}(Sx)=S0\mathbin{\dot-}0=S0 par ( S x ) = S 0 − ˙ 0 = S 0 、後者ではpar ( S x ) = S 0 − ˙ S 0 = 0 \operatorname{par}(Sx)=S0\mathbin{\dot-}S0=0 par ( S x ) = S 0 − ˙ S 0 = 0 であるから、par ( S x ) ≤ S 0 \operatorname{par}(Sx)\le S0 par ( S x ) ≤ S 0 が成り立つ。このpar ( S x ) ≤ S 0 \operatorname{par}(Sx)\le S0 par ( S x ) ≤ S 0 に同じ場合分けを適用すると、par ( S x ) = 0 \operatorname{par}(Sx)=0 par ( S x ) = 0 のときpar ( S S x ) = S 0 \operatorname{par}(SSx)=S0 par ( S S x ) = S 0 、par ( S x ) = S 0 \operatorname{par}(Sx)=S0 par ( S x ) = S 0 のときpar ( S S x ) = 0 \operatorname{par}(SSx)=0 par ( S S x ) = 0 であるから、par ( S x ) + par ( S S x ) = S 0 \operatorname{par}(Sx)+\operatorname{par}(SSx)=S0 par ( S x ) + par ( S S x ) = S 0 が成り立つ。また
half ( S x ) + half ( S x ) + par ( S x ) = ( half ( x ) + half ( x ) + par ( x ) ) + ( par ( x ) + par ( S x ) ) = x + S 0 = S x \operatorname{half}(Sx)+\operatorname{half}(Sx)+\operatorname{par}(Sx)
=\bigl(\operatorname{half}(x)+\operatorname{half}(x)+\operatorname{par}(x)\bigr)
+\bigl(\operatorname{par}(x)+\operatorname{par}(Sx)\bigr)
=x+S0=Sx half ( S x ) + half ( S x ) + par ( S x ) = ( half ( x ) + half ( x ) + par ( x ) ) + ( par ( x ) + par ( S x ) ) = x + S 0 = S x である。(Q6) と (Q7) および補題 1.1 (1) によりhalf ( x ) × S S 0 = half ( x ) + half ( x ) \operatorname{half}(x)\times SS0=\operatorname{half}(x)+\operatorname{half}(x) half ( x ) × S S 0 = half ( x ) + half ( x ) であり、par ( x ) ≤ S 0 < S S 0 \operatorname{par}(x)\le S0<SS0 par ( x ) ≤ S 0 < S S 0 であるから、補題 1.3 の一意性によりhalf ( x ) \operatorname{half}(x) half ( x ) はx x x をS S 0 SS0 S S 0 で割った商、par ( x ) \operatorname{par}(x) par ( x ) はその余りである。
(4) を示す。half ( S 0 ) = half ( 0 ) + par ( 0 ) = 0 \operatorname{half}(S0)=\operatorname{half}(0)+\operatorname{par}(0)=0 half ( S 0 ) = half ( 0 ) + par ( 0 ) = 0 である。また(3) により
half ( S S x ) = half ( S x ) + par ( S x ) = half ( x ) + par ( x ) + par ( S x ) = half ( x ) + S 0 = S half ( x ) \operatorname{half}(SSx)=\operatorname{half}(Sx)+\operatorname{par}(Sx)
=\operatorname{half}(x)+\operatorname{par}(x)+\operatorname{par}(Sx)
=\operatorname{half}(x)+S0=S\operatorname{half}(x) half ( S S x ) = half ( S x ) + par ( S x ) = half ( x ) + par ( x ) + par ( S x ) = half ( x ) + S 0 = S half ( x ) である。▨
補題 6.4. §E16.17 定義 2.1 の対関数、先頭追加、先頭、尾と、§E16.17 補題 3.1 の証明が用いる反復尾I I I および成分取得E E E を、原始再帰全関数として記法 の記法で書く。記号を区別する。 補題 4.1 は、算術式Pair Q \operatorname{Pair}_Q Pair Q 、Cons Q \operatorname{Cons}_Q Cons Q 、Dec Q \operatorname{Dec}_Q Dec Q が一意に定める値をpair \operatorname{pair} pair 、Cons \operatorname{Cons} Cons 、Head \operatorname{Head} Head 、Tail \operatorname{Tail} Tail と書いている。原始再帰的定義列が与える値がこれらに一致することは(1) と(2) で示すことがらであるから、示すまでは原始再帰関数の側をpair ∗ \operatorname{pair}^{\ast} pair ∗ 、Cons ∗ \operatorname{Cons}^{\ast} Cons ∗ 、Head ∗ \operatorname{Head}^{\ast} Head ∗ 、Tail ∗ \operatorname{Tail}^{\ast} Tail ∗ と書く。
上流は対関数を三角数と固定数2 2 2 による商の合成として定めているが、その逆については、§E16.17 定義 1.1 がpair ( left ( z ) , right ( z ) ) = z \operatorname{pair}\bigl(\operatorname{left}(z),\operatorname{right}(z)\bigr)=z pair ( left ( z ) , right ( z ) ) = z という特性づけを与えるだけである。§E16.17 補題 1.2 の証明が挙げる0 ≤ a , b ≤ z 0\le a,b\le z 0 ≤ a , b ≤ z の範囲の二変数 の有界探索は、原始再帰性を示すために選んだ一つの構成であって、定義列の固定ではない。二変数の有界探索については、補題 6.2 が与える一変数の最小化の法則をそのまま用いることができない。そこで本記事では次の定義列を固定する。補題 6.3 のhalf \operatorname{half} half と切捨て減法を用い、
tri ( w ) = half ( w × S w ) , pair ∗ ( a , b ) = tri ( a + b ) + b , Cons ∗ ( a , t ) = S pair ∗ ( a , t ) \operatorname{tri}(w)=\operatorname{half}(w\times Sw),
\qquad
\operatorname{pair}^{\ast}(a,b)=\operatorname{tri}(a+b)+b,
\qquad
\operatorname{Cons}^{\ast}(a,t)=S\operatorname{pair}^{\ast}(a,t) tri ( w ) = half ( w × S w ) , pair ∗ ( a , b ) = tri ( a + b ) + b , Cons ∗ ( a , t ) = S pair ∗ ( a , t ) とする。逆関数は、対の探索を一変数の最小化へ落として
lev ( z ) = μ w ≤ z [ S z − ˙ tri ( S w ) = 0 ] , right ( z ) = z − ˙ tri ( lev ( z ) ) , left ( z ) = lev ( z ) − ˙ right ( z ) \operatorname{lev}(z)=\mu w\le z\,\bigl[\,Sz\mathbin{\dot-}\operatorname{tri}(Sw)=0\,\bigr],
\qquad
\operatorname{right}(z)=z\mathbin{\dot-}\operatorname{tri}(\operatorname{lev}(z)),
\qquad
\operatorname{left}(z)=\operatorname{lev}(z)\mathbin{\dot-}\operatorname{right}(z) lev ( z ) = μ w ≤ z [ S z − ˙ tri ( S w ) = 0 ] , right ( z ) = z − ˙ tri ( lev ( z )) , left ( z ) = lev ( z ) − ˙ right ( z ) と定める。lev ( z ) \operatorname{lev}(z) lev ( z ) はtri ( w ) ≤ z < tri ( S w ) \operatorname{tri}(w)\le z<\operatorname{tri}(Sw) tri ( w ) ≤ z < tri ( S w ) を満たす段w w w を一変数の最小化で選ぶ関数である。メタ理論での値は上流の定義と一致する。どちらもpair ∗ ( a , b ) = z \operatorname{pair}^{\ast}(a,b)=z pair ∗ ( a , b ) = z を満たす唯一の対( a , b ) (a,b) ( a , b ) を返すからである。Head ∗ \operatorname{Head}^{\ast} Head ∗ とTail ∗ \operatorname{Tail}^{\ast} Tail ∗ は上流と同じく、0 < s 0<s 0 < s のときHead ∗ ( s ) = left ( s − ˙ 1 ) \operatorname{Head}^{\ast}(s)=\operatorname{left}(s\mathbin{\dot-}1) Head ∗ ( s ) = left ( s − ˙ 1 ) 、Tail ∗ ( s ) = right ( s − ˙ 1 ) \operatorname{Tail}^{\ast}(s)=\operatorname{right}(s\mathbin{\dot-}1) Tail ∗ ( s ) = right ( s − ˙ 1 ) とし、s = 0 s=0 s = 0 のときはいずれも0 0 0 とする。P A PA P A は次を証明する。
Pair Q ( a , b , c ) ↔ c = pair ∗ ( a , b ) \operatorname{Pair}_Q(a,b,c)\leftrightarrow c=\operatorname{pair}^{\ast}(a,b) Pair Q ( a , b , c ) ↔ c = pair ∗ ( a , b ) 、およびCons Q ( a , t , c ) ↔ c = Cons ∗ ( a , t ) \operatorname{Cons}_Q(a,t,c)\leftrightarrow c=\operatorname{Cons}^{\ast}(a,t) Cons Q ( a , t , c ) ↔ c = Cons ∗ ( a , t ) 。すなわちpair ∗ ( a , b ) = pair ( a , b ) \operatorname{pair}^{\ast}(a,b)=\operatorname{pair}(a,b) pair ∗ ( a , b ) = pair ( a , b ) かつCons ∗ ( a , t ) = Cons ( a , t ) \operatorname{Cons}^{\ast}(a,t)=\operatorname{Cons}(a,t) Cons ∗ ( a , t ) = Cons ( a , t ) である。
任意のz z z についてpair ∗ ( left ( z ) , right ( z ) ) = z \operatorname{pair}^{\ast}\bigl(\operatorname{left}(z),\operatorname{right}(z)\bigr)=z pair ∗ ( left ( z ) , right ( z ) ) = z である。従って補題 4.1 (3) が与える対の一意性により、left ( pair ( a , b ) ) = a \operatorname{left}\bigl(\operatorname{pair}(a,b)\bigr)=a left ( pair ( a , b ) ) = a かつright ( pair ( a , b ) ) = b \operatorname{right}\bigl(\operatorname{pair}(a,b)\bigr)=b right ( pair ( a , b ) ) = b である。またHead ∗ \operatorname{Head}^{\ast} Head ∗ とTail ∗ \operatorname{Tail}^{\ast} Tail ∗ の値は補題 4.1 (6) が定めるHead \operatorname{Head} Head とTail \operatorname{Tail} Tail の値に等しい。
I ( s , i ) I(s,i) I ( s , i ) は、i ≤ Len ( s ) i\le\operatorname{Len}(s) i ≤ Len ( s ) のときAt Q 0 ( s , i , t ) \operatorname{At}^{0}_Q(s,i,t) At Q 0 ( s , i , t ) を満たすt t t に等しく、Len ( s ) < i \operatorname{Len}(s)<i Len ( s ) < i のとき0 0 0 である。
E ( s , i ) = Entry ( s , i ) E(s,i)=\operatorname{Entry}(s,i) E ( s , i ) = Entry ( s , i ) である。
証明. (1) を示す。w : = a + b w:=a+b w := a + b と置く。補題 4.1 (1) の証明で示したとおり、P A PA P A はw × S w = h + h w\times Sw=h+h w × S w = h + h を満たすh h h の存在を証明する。一方補題 6.3 (3) により
half ( w × S w ) + half ( w × S w ) + par ( w × S w ) = w × S w = h + h \operatorname{half}(w\times Sw)+\operatorname{half}(w\times Sw)+\operatorname{par}(w\times Sw)=w\times Sw=h+h half ( w × S w ) + half ( w × S w ) + par ( w × S w ) = w × S w = h + h であり、par ( w × S w ) ≤ S 0 < S S 0 \operatorname{par}(w\times Sw)\le S0<SS0 par ( w × S w ) ≤ S 0 < S S 0 であるから、補題 1.3 の一意性によりtri ( w ) = half ( w × S w ) = h \operatorname{tri}(w)=\operatorname{half}(w\times Sw)=h tri ( w ) = half ( w × S w ) = h かつpar ( w × S w ) = 0 \operatorname{par}(w\times Sw)=0 par ( w × S w ) = 0 である。この議論は任意のw w w について通るので、P A PA P A は∀ w ( tri ( w ) + tri ( w ) = w × S w ) \forall w\,\bigl(\operatorname{tri}(w)+\operatorname{tri}(w)=w\times Sw\bigr) ∀ w ( tri ( w ) + tri ( w ) = w × S w ) を証明する。従って固定した定義列による値pair ∗ ( a , b ) = tri ( w ) + b = h + b \operatorname{pair}^{\ast}(a,b)=\operatorname{tri}(w)+b=h+b pair ∗ ( a , b ) = tri ( w ) + b = h + b は
pair ∗ ( a , b ) + pair ∗ ( a , b ) = ( w × S w ) + ( b + b ) \operatorname{pair}^{\ast}(a,b)+\operatorname{pair}^{\ast}(a,b)=(w\times Sw)+(b+b) pair ∗ ( a , b ) + pair ∗ ( a , b ) = ( w × S w ) + ( b + b ) を満たし、pair ∗ ( a , b ) ≤ pair ∗ ( a , b ) + pair ∗ ( a , b ) \operatorname{pair}^{\ast}(a,b)\le\operatorname{pair}^{\ast}(a,b)+\operatorname{pair}^{\ast}(a,b) pair ∗ ( a , b ) ≤ pair ∗ ( a , b ) + pair ∗ ( a , b ) でもあるからPair Q 0 ( a , b , pair ∗ ( a , b ) ) \operatorname{Pair}^{0}_Q\bigl(a,b,\operatorname{pair}^{\ast}(a,b)\bigr) Pair Q 0 ( a , b , pair ∗ ( a , b ) ) が成り立つ。補題 4.1 (1) が与える一意性により、Pair Q ( a , b , c ) ↔ c = pair ∗ ( a , b ) \operatorname{Pair}_Q(a,b,c)\leftrightarrow c=\operatorname{pair}^{\ast}(a,b) Pair Q ( a , b , c ) ↔ c = pair ∗ ( a , b ) である。Cons ∗ \operatorname{Cons}^{\ast} Cons ∗ については、固定した定義Cons ∗ ( a , t ) = S pair ∗ ( a , t ) \operatorname{Cons}^{\ast}(a,t)=S\operatorname{pair}^{\ast}(a,t) Cons ∗ ( a , t ) = S pair ∗ ( a , t ) と補題 4.1 (5) から従う。
(2) を示す。まず、P A PA P A がtri ( S w ) = tri ( w ) + S w \operatorname{tri}(Sw)=\operatorname{tri}(w)+Sw tri ( S w ) = tri ( w ) + S w を証明することを見る。(1) で示したtri ( u ) + tri ( u ) = u × S u \operatorname{tri}(u)+\operatorname{tri}(u)=u\times Su tri ( u ) + tri ( u ) = u × S u をu : = S w u:=Sw u := S w とu : = w u:=w u := w について用いると
tri ( S w ) + tri ( S w ) = S w × S S w = w × S w + ( S w + S w ) = ( tri ( w ) + S w ) + ( tri ( w ) + S w ) \operatorname{tri}(Sw)+\operatorname{tri}(Sw)=Sw\times SSw=w\times Sw+(Sw+Sw)
=\bigl(\operatorname{tri}(w)+Sw\bigr)+\bigl(\operatorname{tri}(w)+Sw\bigr) tri ( S w ) + tri ( S w ) = S w × S S w = w × S w + ( S w + S w ) = ( tri ( w ) + S w ) + ( tri ( w ) + S w ) であり、補題 1.1 (2) の消約律により求める等式を得る。
lev \operatorname{lev} lev の最小化について、補題 6.2 を関係R ( z , w ) : ⟺ S z − ˙ tri ( S w ) = 0 R(z,w):\!\!\Longleftrightarrow Sz\mathbin{\dot-}\operatorname{tri}(Sw)=0 R ( z , w ) : ⟺ S z − ˙ tri ( S w ) = 0 へ適用する。その特性関数はχ R ( z , w ) = 1 − ˙ ( S z − ˙ tri ( S w ) ) \chi_R(z,w)=1\mathbin{\dot-}\bigl(Sz\mathbin{\dot-}\operatorname{tri}(Sw)\bigr) χ R ( z , w ) = 1 − ˙ ( S z − ˙ tri ( S w ) ) という切捨て減法の合成であり、補題 6.3 (1) によりP A PA P A はχ R ( z , w ) = 1 ↔ S z ≤ tri ( S w ) \chi_R(z,w)=1\leftrightarrow Sz\le\operatorname{tri}(Sw) χ R ( z , w ) = 1 ↔ S z ≤ tri ( S w ) を証明する。w : = z w:=z w := z は条件を満たす。実際、補題 1.1 (5) によりS z × S S z ≥ S z × S S 0 Sz\times SSz\ge Sz\times SS0 S z × S S z ≥ S z × S S 0 であり、(Q6) と (Q7) および補題 1.1 (1) によりS z × S S 0 = S z + S z Sz\times SS0=Sz+Sz S z × S S 0 = S z + S z であるから、tri ( S z ) + tri ( S z ) = S z × S S z \operatorname{tri}(Sz)+\operatorname{tri}(Sz)=Sz\times SSz tri ( S z ) + tri ( S z ) = S z × S S z と補題 1.1 (6) からS z ≤ tri ( S z ) Sz\le\operatorname{tri}(Sz) S z ≤ tri ( S z ) である。従ってlev ( z ) ≤ z \operatorname{lev}(z)\le z lev ( z ) ≤ z であり、最小性から
tri ( lev ( z ) ) ≤ z < tri ( S lev ( z ) ) = tri ( lev ( z ) ) + S lev ( z ) \operatorname{tri}(\operatorname{lev}(z))\le z<\operatorname{tri}(S\operatorname{lev}(z))=\operatorname{tri}(\operatorname{lev}(z))+S\operatorname{lev}(z) tri ( lev ( z )) ≤ z < tri ( S lev ( z )) = tri ( lev ( z )) + S lev ( z ) が成り立つ。左側は、lev ( z ) = 0 \operatorname{lev}(z)=0 lev ( z ) = 0 のときはtri ( 0 ) = 0 \operatorname{tri}(0)=0 tri ( 0 ) = 0 から、lev ( z ) = S w 1 \operatorname{lev}(z)=Sw_1 lev ( z ) = S w 1 のときはw 1 w_1 w 1 が条件を満たさないこと、すなわちtri ( lev ( z ) ) < S z \operatorname{tri}(\operatorname{lev}(z))<Sz tri ( lev ( z )) < S z から従う。右側はlev ( z ) \operatorname{lev}(z) lev ( z ) 自身が条件を満たすことによる。
w 0 : = lev ( z ) w_0:=\operatorname{lev}(z) w 0 := lev ( z ) 、b : = right ( z ) b:=\operatorname{right}(z) b := right ( z ) 、a : = left ( z ) a:=\operatorname{left}(z) a := left ( z ) と置く。補題 6.3 (1) によりb + tri ( w 0 ) = z b+\operatorname{tri}(w_0)=z b + tri ( w 0 ) = z であり、右側の不等式からb < S w 0 b<Sw_0 b < S w 0 、すなわちb ≤ w 0 b\le w_0 b ≤ w 0 である。補題 6.3 (1) によりa + b = w 0 a+b=w_0 a + b = w 0 であるから
pair ∗ ( a , b ) = tri ( a + b ) + b = tri ( w 0 ) + b = z \operatorname{pair}^{\ast}(a,b)=\operatorname{tri}(a+b)+b=\operatorname{tri}(w_0)+b=z pair ∗ ( a , b ) = tri ( a + b ) + b = tri ( w 0 ) + b = z である。この議論は任意のz z z について通るので、P A PA P A は∀ z pair ∗ ( left ( z ) , right ( z ) ) = z \forall z\ \operatorname{pair}^{\ast}\bigl(\operatorname{left}(z),\operatorname{right}(z)\bigr)=z ∀ z pair ∗ ( left ( z ) , right ( z ) ) = z を証明する。(1) によりpair ∗ \operatorname{pair}^{\ast} pair ∗ の値はpair \operatorname{pair} pair の値であるから、z : = pair ( a , b ) z:=\operatorname{pair}(a,b) z := pair ( a , b ) と取ると、補題 4.1 (3) が与える対の一意性によりleft ( pair ( a , b ) ) = a \operatorname{left}\bigl(\operatorname{pair}(a,b)\bigr)=a left ( pair ( a , b ) ) = a かつright ( pair ( a , b ) ) = b \operatorname{right}\bigl(\operatorname{pair}(a,b)\bigr)=b right ( pair ( a , b ) ) = b である。0 < s 0<s 0 < s とするとs = S p s=Sp s = S p を満たすp p p が存在し、s − ˙ 1 = p s\mathbin{\dot-}1=p s − ˙ 1 = p である。いま示したことによりpair ∗ ( left ( p ) , right ( p ) ) = p \operatorname{pair}^{\ast}\bigl(\operatorname{left}(p),\operatorname{right}(p)\bigr)=p pair ∗ ( left ( p ) , right ( p ) ) = p 、すなわちCons ∗ ( left ( p ) , right ( p ) ) = s \operatorname{Cons}^{\ast}\bigl(\operatorname{left}(p),\operatorname{right}(p)\bigr)=s Cons ∗ ( left ( p ) , right ( p ) ) = s である。補題 4.1 (3) により対は一意であるから、Head ∗ ( s ) \operatorname{Head}^{\ast}(s) Head ∗ ( s ) とTail ∗ ( s ) \operatorname{Tail}^{\ast}(s) Tail ∗ ( s ) は補題 4.1 (6) が定めるa , t a,t a , t に等しい。s = 0 s=0 s = 0 では双方の規約により値が0 0 0 である。
(3) を示す。I ( s , 0 ) = s I(s,0)=s I ( s , 0 ) = s 、I ( s , S j ) = Tail ∗ ( I ( s , j ) ) I(s,Sj)=\operatorname{Tail}^{\ast}(I(s,j)) I ( s , S j ) = Tail ∗ ( I ( s , j )) は通常の原始再帰であるから、補題 6.1 によりP A PA P A はこの二式を証明する。i i i に関するP A PA P A の帰納法を行う。i = 0 i=0 i = 0 では補題 5.1 (2) による。i i i からS i Si S i へ進む段では、i < Len ( s ) i<\operatorname{Len}(s) i < Len ( s ) ならば第i i i 反復尾t t t は0 0 0 でないので、(2) と補題 5.1 (4) により第S i Si S i 反復尾はTail ∗ ( t ) \operatorname{Tail}^{\ast}(t) Tail ∗ ( t ) である。i = Len ( s ) i=\operatorname{Len}(s) i = Len ( s ) ならばt = 0 t=0 t = 0 であり、Tail ∗ ( 0 ) = 0 \operatorname{Tail}^{\ast}(0)=0 Tail ∗ ( 0 ) = 0 であるから以後0 0 0 にとどまる。
(4) は、(2) と(3) および補題 5.2 (2) から従う。i < Len ( s ) i<\operatorname{Len}(s) i < Len ( s ) ではE ( s , i ) = Head ∗ ( I ( s , i ) ) E(s,i)=\operatorname{Head}^{\ast}(I(s,i)) E ( s , i ) = Head ∗ ( I ( s , i )) が第i i i 反復尾の先頭であり、Len ( s ) ≤ i \operatorname{Len}(s)\le i Len ( s ) ≤ i ではI ( s , i ) = 0 I(s,i)=0 I ( s , i ) = 0 からE ( s , i ) = 0 E(s,i)=0 E ( s , i ) = 0 である。▨
(1) と(2) により、原始再帰的定義列が与えるpair ∗ \operatorname{pair}^{\ast} pair ∗ 、Cons ∗ \operatorname{Cons}^{\ast} Cons ∗ 、Head ∗ \operatorname{Head}^{\ast} Head ∗ 、Tail ∗ \operatorname{Tail}^{\ast} Tail ∗ の値は、算術式が一意に定めるpair \operatorname{pair} pair 、Cons \operatorname{Cons} Cons 、Head \operatorname{Head} Head 、Tail \operatorname{Tail} Tail の値に等しい。以下では星印を落とし、どちらの側の定義から得た値も同じ記号で書く。
6.1 コース再帰の還元が定義方程式を満たすこと
§E16.17 補題 3.1 と§E16.17 補題 3.2 は、コース再帰を通常の原始再帰へ還元して原始再帰性を得る。しかし、還元によって得た関数が元の再帰方程式を満たす ことは、どちらの記事でもメタ理論の帰納法で示されている。補題 6.1 がP A PA P A の定理として与えるのは、還元後の通常の原始再帰の方程式だけである。P A PA P A の内部で元の構造再帰方程式を用いるには、次の補題が要る。
補題 6.5.
履歴版。 §E16.17 補題 3.1 の記号を用い、P A PA P A が∀ x ⃗ ∀ s ( 0 < s → D ( x ⃗ , s ) < s ) \forall\vec x\,\forall s\,(0<s\to D(\vec x,s)<s) ∀ x ∀ s ( 0 < s → D ( x , s ) < s ) を証明すると仮定する。このときP A PA P A は
F ( x ⃗ , 0 ) = B ( x ⃗ ) , 0 < s → F ( x ⃗ , s ) = G ( x ⃗ , s , F ( x ⃗ , D ( x ⃗ , s ) ) ) F(\vec x,0)=B(\vec x),
\qquad
0<s\to F(\vec x,s)=G\bigl(\vec x,s,F(\vec x,D(\vec x,s))\bigr) F ( x , 0 ) = B ( x ) , 0 < s → F ( x , s ) = G ( x , s , F ( x , D ( x , s )) )
を証明する。
有限分岐版。 §E16.17 補題 3.2 の記号を用い、P A PA P A が
∀ q ∀ j ( j < m ( q ) → r ( d ( q , j ) ) < r ( q ) ) , ∀ q m ( q ) ≤ K \forall q\,\forall j\,\bigl(j<m(q)\to r(d(q,j))<r(q)\bigr),
\qquad
\forall q\ m(q)\le K ∀ q ∀ j ( j < m ( q ) → r ( d ( q , j )) < r ( q ) ) , ∀ q m ( q ) ≤ K
の二つをともに証明すると仮定する。上流は子の個数の上界m ( q ) ≤ K m(q)\le K m ( q ) ≤ K をメタ理論の条件として置いているが、本項の証明はP A PA P A の内部でこの不等式を用いるので、P A PA P A の定理であることを別に仮定する。K K K の値そのものに制限は置かない。このときP A PA P A は
Eval ( q ) = C ( q , Hist ( q , m ( q ) ) ) \operatorname{Eval}(q)=C\bigl(q,\operatorname{Hist}(q,m(q))\bigr) Eval ( q ) = C ( q , Hist ( q , m ( q )) )
を証明する。ここでHist \operatorname{Hist} Hist はHist ( q , 0 ) = 0 \operatorname{Hist}(q,0)=0 Hist ( q , 0 ) = 0 、Hist ( q , S j ) = Cons ( Eval ( d ( q , j ) ) , Hist ( q , j ) ) \operatorname{Hist}(q,Sj)=\operatorname{Cons}\bigl(\operatorname{Eval}(d(q,j)),\operatorname{Hist}(q,j)\bigr) Hist ( q , S j ) = Cons ( Eval ( d ( q , j )) , Hist ( q , j ) ) で定まる原始再帰全関数であり、子の値を逆順に並べた列である。
証明. (1) を示す。還元は、履歴H H H と一段の値V V V を通常の原始再帰
H ( x ⃗ , 0 ) = 0 , H ( x ⃗ , S n ) = Cons ( V ( x ⃗ , n ) , H ( x ⃗ , n ) ) H(\vec x,0)=0,
\qquad
H(\vec x,Sn)=\operatorname{Cons}\bigl(V(\vec x,n),H(\vec x,n)\bigr) H ( x , 0 ) = 0 , H ( x , S n ) = Cons ( V ( x , n ) , H ( x , n ) ) で定め、F ( x ⃗ , n ) = E ( H ( x ⃗ , S n ) , 0 ) F(\vec x,n)=E(H(\vec x,Sn),0) F ( x , n ) = E ( H ( x , S n ) , 0 ) とする。ここでE ( t , j ) E(t,j) E ( t , j ) は第j j j 成分を取る関数である。補題 6.1 によりP A PA P A はこれらの方程式を証明する。また補題 6.4 により、ここに現れるCons \operatorname{Cons} Cons とE E E の値は API 式が定める先頭追加と成分に等しい。
n n n に関するP A PA P A の帰納法により、次を示す。j + S d = n j+Sd=n j + S d = n ならばE ( H ( x ⃗ , n ) , j ) = V ( x ⃗ , d ) E(H(\vec x,n),j)=V(\vec x,d) E ( H ( x , n ) , j ) = V ( x , d ) である。n = 0 n=0 n = 0 では前件を満たすj , d j,d j , d が存在しない。n n n からS n Sn S n へ進む段では、補題 5.2 (3) により、H ( x ⃗ , S n ) H(\vec x,Sn) H ( x , S n ) の第0 0 0 成分はV ( x ⃗ , n ) V(\vec x,n) V ( x , n ) であり、第S j Sj S j 成分はH ( x ⃗ , n ) H(\vec x,n) H ( x , n ) の第j j j 成分である。j + S d = S n j+Sd=Sn j + S d = S n においてj = 0 j=0 j = 0 ならd = n d=n d = n であり、j = S j ′ j=Sj' j = S j ′ ならj ′ + S d = n j'+Sd=n j ′ + S d = n であるから帰納法の仮定を用いることができる。
j : = 0 j:=0 j := 0 、d : = n d:=n d := n としてF ( x ⃗ , n ) = E ( H ( x ⃗ , S n ) , 0 ) = V ( x ⃗ , n ) F(\vec x,n)=E(H(\vec x,Sn),0)=V(\vec x,n) F ( x , n ) = E ( H ( x , S n ) , 0 ) = V ( x , n ) を得る。従ってF ( x ⃗ , 0 ) = V ( x ⃗ , 0 ) = B ( x ⃗ ) F(\vec x,0)=V(\vec x,0)=B(\vec x) F ( x , 0 ) = V ( x , 0 ) = B ( x ) である。0 < n 0<n 0 < n のとき、V V V の定義方程式は
V ( x ⃗ , n ) = G ( x ⃗ , n , E ( H ( x ⃗ , n ) , j ) ) , j + S D ( x ⃗ , n ) = n V(\vec x,n)=G\bigl(\vec x,n,E(H(\vec x,n),j)\bigr),
\qquad j+S D(\vec x,n)=n V ( x , n ) = G ( x , n , E ( H ( x , n ) , j ) ) , j + S D ( x , n ) = n である。§E16.17 補題 3.1 は第2引数の添字を切捨て減法の項( n − ˙ 1 ) − ˙ D ( x ⃗ , n ) (n\mathbin{\dot-}1)\mathbin{\dot-}D(\vec x,n) ( n − ˙ 1 ) − ˙ D ( x , n ) として書いているので、表示したj j j がこの項の値であることを確かめる。仮定によりP A PA P A はD ( x ⃗ , n ) < n D(\vec x,n)<n D ( x , n ) < n 、すなわちS D ( x ⃗ , n ) ≤ n SD(\vec x,n)\le n S D ( x , n ) ≤ n を証明する。補題 6.3 (2) により( n − ˙ 1 ) − ˙ D ( x ⃗ , n ) = n − ˙ S D ( x ⃗ , n ) (n\mathbin{\dot-}1)\mathbin{\dot-}D(\vec x,n)=n\mathbin{\dot-}SD(\vec x,n) ( n − ˙ 1 ) − ˙ D ( x , n ) = n − ˙ S D ( x , n ) であり、補題 6.3 (1) により
( ( n − ˙ 1 ) − ˙ D ( x ⃗ , n ) ) + S D ( x ⃗ , n ) = n \bigl((n\mathbin{\dot-}1)\mathbin{\dot-}D(\vec x,n)\bigr)+SD(\vec x,n)=n ( ( n − ˙ 1 ) − ˙ D ( x , n ) ) + S D ( x , n ) = n である。従ってj + S D ( x ⃗ , n ) = n j+SD(\vec x,n)=n j + S D ( x , n ) = n を満たすj j j が存在し、加法の消約律によりそれは切捨て減法の項の値に等しい。上で示した主張をd : = D ( x ⃗ , n ) d:=D(\vec x,n) d := D ( x , n ) について用いるとE ( H ( x ⃗ , n ) , j ) = V ( x ⃗ , D ( x ⃗ , n ) ) = F ( x ⃗ , D ( x ⃗ , n ) ) E(H(\vec x,n),j)=V(\vec x,D(\vec x,n))=F(\vec x,D(\vec x,n)) E ( H ( x , n ) , j ) = V ( x , D ( x , n )) = F ( x , D ( x , n )) であり、求める方程式を得る。
(2) を示す。還元は、状態遷移Step \operatorname{Step} Step と、上界を与える関数N K ( 0 ) = 1 N_K(0)=1 N K ( 0 ) = 1 、N K ( S s ) = 1 + K × N K ( s ) N_K(Ss)=1+K\times N_K(s) N K ( S s ) = 1 + K × N K ( s ) を用い、開始状態からの接頭トレースR ( q , n ) R(q,n) R ( q , n ) を通常の原始再帰で定め、Eval ( q ) = Out ( R ( q , 3 N K ( r ( q ) ) ) ) \operatorname{Eval}(q)=\operatorname{Out}\bigl(R(q,3N_K(r(q)))\bigr) Eval ( q ) = Out ( R ( q , 3 N K ( r ( q ))) ) とする。ここでOut \operatorname{Out} Out は唯一のVal \operatorname{Val} Val の成分を返す原始再帰関数であり、Out ( Cons ( Val ( v ) , 0 ) ) = v \operatorname{Out}(\operatorname{Cons}(\operatorname{Val}(v),0))=v Out ( Cons ( Val ( v ) , 0 )) = v である。Iter ( σ , 0 ) = σ \operatorname{Iter}(\sigma,0)=\sigma Iter ( σ , 0 ) = σ 、Iter ( σ , S n ) = Step ( Iter ( σ , n ) ) \operatorname{Iter}(\sigma,Sn)=\operatorname{Step}(\operatorname{Iter}(\sigma,n)) Iter ( σ , S n ) = Step ( Iter ( σ , n )) と置くと、P A PA P A はR ( q , n ) = Iter ( Cons ( Req ( q ) , 0 ) , n ) R(q,n)=\operatorname{Iter}(\operatorname{Cons}(\operatorname{Req}(q),0),n) R ( q , n ) = Iter ( Cons ( Req ( q ) , 0 ) , n ) とIter ( σ , m + n ) = Iter ( Iter ( σ , m ) , n ) \operatorname{Iter}(\sigma,m+n)=\operatorname{Iter}(\operatorname{Iter}(\sigma,m),n) Iter ( σ , m + n ) = Iter ( Iter ( σ , m ) , n ) をn n n に関する帰納法で証明する。
Step \operatorname{Step} Step は、タグ照合、Head \operatorname{Head} Head 、Tail \operatorname{Tail} Tail 、Cons \operatorname{Cons} Cons 、成分取得、有界比較、およびr , m , d , C r,m,d,C r , m , d , C の合成である。従って補題 6.1 、補題 6.2 、補題 6.4 、および補題 5.2 により、P A PA P A はStep \operatorname{Step} Step の定義の各場合の等式を証明する。とくに次の四つを用いる。
m ( q ) = 0 ⇒ Step ( Cons ( Req ( q ) , σ ) ) = Cons ( Val ( C ( q , 0 ) ) , σ ) , 0 < m ( q ) ⇒ Step ( Cons ( Req ( q ) , σ ) ) = Cons ( Req ( d ( q , 0 ) ) , Cons ( Frame ( q , 1 , 0 ) , σ ) ) , j < m ( q ) ⇒ Step ( Cons ( Val ( a ) , Cons ( Frame ( q , j , h ) , σ ) ) ) = Cons ( Req ( d ( q , j ) ) , Cons ( Frame ( q , S j , Cons ( a , h ) ) , σ ) ) , j = m ( q ) ⇒ Step ( Cons ( Val ( a ) , Cons ( Frame ( q , j , h ) , σ ) ) ) = Cons ( Val ( C ( q , Cons ( a , h ) ) ) , σ ) . \begin{aligned}
m(q)=0&\ \Rightarrow\
\operatorname{Step}\bigl(\operatorname{Cons}(\operatorname{Req}(q),\sigma)\bigr)
=\operatorname{Cons}\bigl(\operatorname{Val}(C(q,0)),\sigma\bigr),\\
0<m(q)&\ \Rightarrow\
\operatorname{Step}\bigl(\operatorname{Cons}(\operatorname{Req}(q),\sigma)\bigr)
=\operatorname{Cons}\bigl(\operatorname{Req}(d(q,0)),
\operatorname{Cons}(\operatorname{Frame}(q,1,0),\sigma)\bigr),\\
j<m(q)&\ \Rightarrow\
\operatorname{Step}\bigl(\operatorname{Cons}(\operatorname{Val}(a),
\operatorname{Cons}(\operatorname{Frame}(q,j,h),\sigma))\bigr)
=\operatorname{Cons}\bigl(\operatorname{Req}(d(q,j)),
\operatorname{Cons}(\operatorname{Frame}(q,Sj,\operatorname{Cons}(a,h)),\sigma)\bigr),\\
j=m(q)&\ \Rightarrow\
\operatorname{Step}\bigl(\operatorname{Cons}(\operatorname{Val}(a),
\operatorname{Cons}(\operatorname{Frame}(q,j,h),\sigma))\bigr)
=\operatorname{Cons}\bigl(\operatorname{Val}(C(q,\operatorname{Cons}(a,h))),\sigma\bigr).
\end{aligned} m ( q ) = 0 0 < m ( q ) j < m ( q ) j = m ( q ) ⇒ Step ( Cons ( Req ( q ) , σ ) ) = Cons ( Val ( C ( q , 0 )) , σ ) , ⇒ Step ( Cons ( Req ( q ) , σ ) ) = Cons ( Req ( d ( q , 0 )) , Cons ( Frame ( q , 1 , 0 ) , σ ) ) , ⇒ Step ( Cons ( Val ( a ) , Cons ( Frame ( q , j , h ) , σ )) ) = Cons ( Req ( d ( q , j )) , Cons ( Frame ( q , S j , Cons ( a , h )) , σ ) ) , ⇒ Step ( Cons ( Val ( a ) , Cons ( Frame ( q , j , h ) , σ )) ) = Cons ( Val ( C ( q , Cons ( a , h ))) , σ ) . さらに、停止状態ではStep \operatorname{Step} Step を恒等写像と定めているので、P A PA P A はStep ( Cons ( Val ( v ) , 0 ) ) = Cons ( Val ( v ) , 0 ) \operatorname{Step}(\operatorname{Cons}(\operatorname{Val}(v),0))=\operatorname{Cons}(\operatorname{Val}(v),0) Step ( Cons ( Val ( v ) , 0 )) = Cons ( Val ( v ) , 0 ) を証明し、n n n に関する帰納法により、いったん停止状態に達すればそれ以降の状態も同じであることを証明する。
β ( ρ ) : = ( 2 N K ( ρ ) ) − ˙ 1 \beta(\rho):=\bigl(2N_K(\rho)\bigr)\mathbin{\dot-}1 β ( ρ ) := ( 2 N K ( ρ ) ) − ˙ 1 と置く。ここで切捨て減法は補題 6.3 が固定した定義列のものであり、L A L_A L A の関数記号ではなく記法 の記法で読む。N K ( 0 ) = 1 N_K(0)=1 N K ( 0 ) = 1 とN K ( S s ) = 1 + K × N K ( s ) N_K(Ss)=1+K\times N_K(s) N K ( S s ) = 1 + K × N K ( s ) から、P A PA P A はs s s に関する帰納法により1 ≤ N K ( s ) 1\le N_K(s) 1 ≤ N K ( s ) を証明する。従ってP A PA P A は次の三つを証明する。
S β ( ρ ) = 2 N K ( ρ ) , β ( ρ ) ≤ 3 N K ( ρ ) , β ( S ρ ) = S ( K × ( 2 N K ( ρ ) ) ) S\beta(\rho)=2N_K(\rho),
\qquad
\beta(\rho)\le3N_K(\rho),
\qquad
\beta(S\rho)=S\bigl(K\times(2N_K(\rho))\bigr) S β ( ρ ) = 2 N K ( ρ ) , β ( ρ ) ≤ 3 N K ( ρ ) , β ( S ρ ) = S ( K × ( 2 N K ( ρ )) ) 三つの根拠は同じではないので、式ごとに分けて述べる。第一の等式は、1 ≤ N K ( ρ ) 1\le N_K(\rho) 1 ≤ N K ( ρ ) と補題 1.1 (5) の乗法の単調性が与えるS 0 ≤ 2 N K ( ρ ) S0\le2N_K(\rho) S 0 ≤ 2 N K ( ρ ) に、補題 6.3 (1) の後半y ≤ x → ( x − ˙ y ) + y = x y\le x\to(x\mathbin{\dot-}y)+y=x y ≤ x → ( x − ˙ y ) + y = x をx : = 2 N K ( ρ ) x:=2N_K(\rho) x := 2 N K ( ρ ) 、y : = S 0 y:=S0 y := S 0 として当てることによる。第二の不等式は、β ( ρ ) < S β ( ρ ) = 2 N K ( ρ ) \beta(\rho)<S\beta(\rho)=2N_K(\rho) β ( ρ ) < S β ( ρ ) = 2 N K ( ρ ) と、S S 0 ≤ S S S 0 SS0\le SSS0 S S 0 ≤ S S S 0 に同じく補題 1.1 (5) の乗法の単調性を当てて得る2 N K ( ρ ) ≤ 3 N K ( ρ ) 2N_K(\rho)\le3N_K(\rho) 2 N K ( ρ ) ≤ 3 N K ( ρ ) による。第三の等式は、N K ( S ρ ) = 1 + K × N K ( ρ ) N_K(S\rho)=1+K\times N_K(\rho) N K ( S ρ ) = 1 + K × N K ( ρ ) に補題 1.1 (1) の分配律と交換律を当てて得る2 N K ( S ρ ) = S S ( K × ( 2 N K ( ρ ) ) ) 2N_K(S\rho)=SS\bigl(K\times(2N_K(\rho))\bigr) 2 N K ( S ρ ) = S S ( K × ( 2 N K ( ρ )) ) と、補題 6.3 が表示した定義列そのものが与えるx − ˙ S 0 = pred ( x − ˙ 0 ) = pred ( x ) x\mathbin{\dot-}S0=\operatorname{pred}(x\mathbin{\dot-}0)=\operatorname{pred}(x) x − ˙ S 0 = pred ( x − ˙ 0 ) = pred ( x ) およびpred ( S y ) = y \operatorname{pred}(Sy)=y pred ( S y ) = y による。第三の等式が用いるのは補題 1.1 (1) ではなく、同補題が固定した定義列である。ρ \rho ρ に関するP A PA P A の帰納法により、次の主張Π ( ρ ) \Pi(\rho) Π ( ρ ) を示す。
Π ( ρ ) : ∀ q ( r ( q ) ≤ ρ → ∀ σ ∃ n ≤ β ( ρ ) Iter ( Cons ( Req ( q ) , σ ) , n ) = Cons ( Val ( Eval ( q ) ) , σ ) ) \Pi(\rho):\quad
\forall q\,\Bigl(r(q)\le\rho\to\forall\sigma\,\exists n\le\beta(\rho)\ \
\operatorname{Iter}\bigl(\operatorname{Cons}(\operatorname{Req}(q),\sigma),n\bigr)
=\operatorname{Cons}\bigl(\operatorname{Val}(\operatorname{Eval}(q)),\sigma\bigr)\Bigr) Π ( ρ ) : ∀ q ( r ( q ) ≤ ρ → ∀ σ ∃ n ≤ β ( ρ ) Iter ( Cons ( Req ( q ) , σ ) , n ) = Cons ( Val ( Eval ( q )) , σ ) ) まず、m ( q ) = 0 m(q)=0 m ( q ) = 0 を満たすq q q については階数によらず結論が成り立つことを示す。上の第一の等式により、n : = 1 n:=1 n := 1 において状態はCons ( Val ( C ( q , 0 ) ) , σ ) \operatorname{Cons}(\operatorname{Val}(C(q,0)),\sigma) Cons ( Val ( C ( q , 0 )) , σ ) である。σ : = 0 \sigma:=0 σ := 0 と取ると、1 ≤ N K ( r ( q ) ) 1\le N_K(r(q)) 1 ≤ N K ( r ( q )) と補題 1.1 (5) の乗法の単調性により1 ≤ 3 N K ( r ( q ) ) 1\le3N_K(r(q)) 1 ≤ 3 N K ( r ( q )) であり、停止状態が保たれるので、R ( q , 3 N K ( r ( q ) ) ) = Cons ( Val ( C ( q , 0 ) ) , 0 ) R\bigl(q,3N_K(r(q))\bigr)=\operatorname{Cons}(\operatorname{Val}(C(q,0)),0) R ( q , 3 N K ( r ( q )) ) = Cons ( Val ( C ( q , 0 )) , 0 ) 、すなわちEval ( q ) = C ( q , 0 ) \operatorname{Eval}(q)=C(q,0) Eval ( q ) = C ( q , 0 ) である。従って任意のσ \sigma σ についてΠ \Pi Π の結論の等式が成り立つ。S β ( ρ ) = 2 N K ( ρ ) S\beta(\rho)=2N_K(\rho) S β ( ρ ) = 2 N K ( ρ ) と1 ≤ N K ( ρ ) 1\le N_K(\rho) 1 ≤ N K ( ρ ) から1 ≤ β ( ρ ) 1\le\beta(\rho) 1 ≤ β ( ρ ) である。とくにρ = 0 \rho=0 ρ = 0 では、仮定r ( d ( q , j ) ) < r ( q ) r(d(q,j))<r(q) r ( d ( q , j )) < r ( q ) によりm ( q ) = 0 m(q)=0 m ( q ) = 0 でなければならないので、Π ( 0 ) \Pi(0) Π ( 0 ) が従う。
Π ( ρ ) \Pi(\rho) Π ( ρ ) を仮定してΠ ( S ρ ) \Pi(S\rho) Π ( S ρ ) を示す。r ( q ) ≤ S ρ r(q)\le S\rho r ( q ) ≤ S ρ とする。m ( q ) = 0 m(q)=0 m ( q ) = 0 の場合は上で扱った。0 < m ( q ) 0<m(q) 0 < m ( q ) とする。本項が仮定した∀ q m ( q ) ≤ K \forall q\,m(q)\le K ∀ q m ( q ) ≤ K を用いると0 < m ( q ) ≤ K 0<m(q)\le K 0 < m ( q ) ≤ K であるから0 < K 0<K 0 < K であり、上に示した三つから
β ( ρ ) < S β ( ρ ) = 2 N K ( ρ ) ≤ K × ( 2 N K ( ρ ) ) < β ( S ρ ) \beta(\rho)<S\beta(\rho)=2N_K(\rho)\le K\times\bigl(2N_K(\rho)\bigr)<\beta(S\rho) β ( ρ ) < S β ( ρ ) = 2 N K ( ρ ) ≤ K × ( 2 N K ( ρ ) ) < β ( S ρ ) が成り立つ。従ってr ( q ) ≤ ρ r(q)\le\rho r ( q ) ≤ ρ の場合は、Π ( ρ ) \Pi(\rho) Π ( ρ ) の結論がそのままΠ ( S ρ ) \Pi(S\rho) Π ( S ρ ) の結論を与える。以下ではr ( q ) = S ρ r(q)=S\rho r ( q ) = S ρ とする。Hist \operatorname{Hist} Hist を用い、j j j に関する内側のP A PA P A の帰納法により、1 ≤ j ≤ m ( q ) 1\le j\le m(q) 1 ≤ j ≤ m ( q ) を満たす各j j j について、
Iter ( Cons ( Req ( q ) , σ ) , n j ) = Cons ( Val ( Eval ( d ( q , j ′ ) ) ) , Cons ( Frame ( q , j , Hist ( q , j ′ ) ) , σ ) ) , n j ≤ j × ( S β ( ρ ) ) \operatorname{Iter}\bigl(\operatorname{Cons}(\operatorname{Req}(q),\sigma),n_j\bigr)
=\operatorname{Cons}\Bigl(\operatorname{Val}\bigl(\operatorname{Eval}(d(q,j'))\bigr),
\operatorname{Cons}\bigl(\operatorname{Frame}(q,j,\operatorname{Hist}(q,j')),\sigma\bigr)\Bigr),
\qquad
n_j\le j\times(S\beta(\rho)) Iter ( Cons ( Req ( q ) , σ ) , n j ) = Cons ( Val ( Eval ( d ( q , j ′ )) ) , Cons ( Frame ( q , j , Hist ( q , j ′ )) , σ ) ) , n j ≤ j × ( S β ( ρ )) を満たすn j n_j n j が存在することを示す。ここでj ′ j' j ′ はS j ′ = j Sj'=j S j ′ = j を満たす数である。j = 1 j=1 j = 1 では、第二の等式で一段進めた後、r ( d ( q , 0 ) ) ≤ ρ r(d(q,0))\le\rho r ( d ( q , 0 )) ≤ ρ にΠ ( ρ ) \Pi(\rho) Π ( ρ ) を適用する。j j j からS j Sj S j へ進む段(S j ≤ m ( q ) Sj\le m(q) S j ≤ m ( q ) )では、第三の等式で一段進め、Cons ( Eval ( d ( q , j ′ ) ) , Hist ( q , j ′ ) ) = Hist ( q , j ) \operatorname{Cons}(\operatorname{Eval}(d(q,j')),\operatorname{Hist}(q,j'))=\operatorname{Hist}(q,j) Cons ( Eval ( d ( q , j ′ )) , Hist ( q , j ′ )) = Hist ( q , j ) を用いてから、r ( d ( q , j ) ) ≤ ρ r(d(q,j))\le\rho r ( d ( q , j )) ≤ ρ にΠ ( ρ ) \Pi(\rho) Π ( ρ ) を適用する。
j = m ( q ) j=m(q) j = m ( q ) の状態へ第四の等式を一段適用すると、Cons ( Val ( C ( q , Hist ( q , m ( q ) ) ) ) , σ ) \operatorname{Cons}\bigl(\operatorname{Val}(C(q,\operatorname{Hist}(q,m(q)))),\sigma\bigr) Cons ( Val ( C ( q , Hist ( q , m ( q )))) , σ ) に達する。この状態に達するまでの遷移回数n n n はm ( q ) × ( S β ( ρ ) ) + 1 m(q)\times(S\beta(\rho))+1 m ( q ) × ( S β ( ρ )) + 1 以下であり、ふたたび本項が仮定した∀ q m ( q ) ≤ K \forall q\,m(q)\le K ∀ q m ( q ) ≤ K と、上に示したS β ( ρ ) = 2 N K ( ρ ) S\beta(\rho)=2N_K(\rho) S β ( ρ ) = 2 N K ( ρ ) およびβ ( S ρ ) = S ( K × ( 2 N K ( ρ ) ) ) \beta(S\rho)=S\bigl(K\times(2N_K(\rho))\bigr) β ( S ρ ) = S ( K × ( 2 N K ( ρ )) ) から
m ( q ) × ( S β ( ρ ) ) + 1 ≤ K × ( 2 N K ( ρ ) ) + 1 = β ( S ρ ) m(q)\times(S\beta(\rho))+1\le K\times\bigl(2N_K(\rho)\bigr)+1=\beta(S\rho) m ( q ) × ( S β ( ρ )) + 1 ≤ K × ( 2 N K ( ρ ) ) + 1 = β ( S ρ ) である。いまr ( q ) = S ρ r(q)=S\rho r ( q ) = S ρ であり、β ( S ρ ) ≤ 3 N K ( S ρ ) \beta(S\rho)\le3N_K(S\rho) β ( S ρ ) ≤ 3 N K ( S ρ ) であるから、n ≤ 3 N K ( r ( q ) ) n\le3N_K(r(q)) n ≤ 3 N K ( r ( q )) である。σ : = 0 \sigma:=0 σ := 0 と取り、停止状態が保たれることを用いるとR ( q , 3 N K ( r ( q ) ) ) = Cons ( Val ( C ( q , Hist ( q , m ( q ) ) ) ) , 0 ) R\bigl(q,3N_K(r(q))\bigr)=\operatorname{Cons}\bigl(\operatorname{Val}(C(q,\operatorname{Hist}(q,m(q)))),0\bigr) R ( q , 3 N K ( r ( q )) ) = Cons ( Val ( C ( q , Hist ( q , m ( q )))) , 0 ) 、すなわちEval ( q ) = C ( q , Hist ( q , m ( q ) ) ) \operatorname{Eval}(q)=C(q,\operatorname{Hist}(q,m(q))) Eval ( q ) = C ( q , Hist ( q , m ( q ))) である。従ってΠ ( S ρ ) \Pi(S\rho) Π ( S ρ ) と求める方程式の双方を得る。
帰納法により∀ ρ Π ( ρ ) \forall\rho\,\Pi(\rho) ∀ ρ Π ( ρ ) を得た後、0 < m ( q ) 0<m(q) 0 < m ( q ) を満たす任意のq q q について求める方程式を得る。実際、仮定r ( d ( q , 0 ) ) < r ( q ) r(d(q,0))<r(q) r ( d ( q , 0 )) < r ( q ) により0 < r ( q ) 0<r(q) 0 < r ( q ) であるからr ( q ) = S ρ r(q)=S\rho r ( q ) = S ρ を満たすρ \rho ρ が存在し、このρ \rho ρ についてΠ ( ρ ) \Pi(\rho) Π ( ρ ) から上と同じ議論を行えばよい。m ( q ) = 0 m(q)=0 m ( q ) = 0 の場合は最初の段で示した。▨
補題 6.7. §E16.17 定義 4.1 のLen \operatorname{Len} Len 、Entry \operatorname{Entry} Entry 、Concat \operatorname{Concat} Concat を原始再帰全関数として書く。P A PA P A は、これらの値が補題 5.2 のLen ( s ) \operatorname{Len}(s) Len ( s ) 、Entry ( s , i ) \operatorname{Entry}(s,i) Entry ( s , i ) 、Concat ( s , t ) \operatorname{Concat}(s,t) Concat ( s , t ) に等しいことを証明する。
証明. §E16.17 定理 4.2 は、Len \operatorname{Len} Len をD ( s ) : = Tail ( s ) D(s):=\operatorname{Tail}(s) D ( s ) := Tail ( s ) による有界コース再帰として構成している。補題 4.1 (5) と補題 4.1 (6) によりP A PA P A は0 < s → Tail ( s ) < s 0<s\to\operatorname{Tail}(s)<s 0 < s → Tail ( s ) < s を証明するので、補題 6.5 (1) の仮定が満たされ、P A PA P A は
Len ( 0 ) = 0 , 0 < s → Len ( s ) = S Len ( Tail ( s ) ) \operatorname{Len}(0)=0,
\qquad
0<s\to\operatorname{Len}(s)=S\operatorname{Len}(\operatorname{Tail}(s)) Len ( 0 ) = 0 , 0 < s → Len ( s ) = S Len ( Tail ( s )) を証明する。補題 5.2 (1) と補題 5.2 (3) により、API 側の長さも同じ二つの等式を満たす。補題 1.2 を「二つの値が異なる最小のs s s 」へ適用すると、s = 0 s=0 s = 0 では両者が0 0 0 であり、0 < s 0<s 0 < s ではTail ( s ) < s \operatorname{Tail}(s)<s Tail ( s ) < s における一致からs s s における一致が従うので、そのようなs s s は存在しない。よって両者は一致する。
Entry \operatorname{Entry} Entry は補題 6.4 (4) で扱ったE E E そのものである。
Concat \operatorname{Concat} Concat は、t t t をパラメータとする第1引数についての有界コース再帰
C ( t , 0 ) = t , 0 < s → C ( t , s ) = Cons ( Head ( s ) , C ( t , Tail ( s ) ) ) C(t,0)=t,
\qquad
0<s\to C(t,s)=\operatorname{Cons}\bigl(\operatorname{Head}(s),C(t,\operatorname{Tail}(s))\bigr) C ( t , 0 ) = t , 0 < s → C ( t , s ) = Cons ( Head ( s ) , C ( t , Tail ( s )) ) である。同じく補題 6.5 (1) によりP A PA P A はこの二式を証明する。補題 5.2 (5) により、API 側の連結も同じ二式を満たす。再び最小数原理を用いて一致を得る。▨
7 7. 構文符号を PA の内部で扱う
捕獲回避代入は、束縛変数の改名を記録する環境を先頭から走査する。この走査Look \operatorname{Look} Look の定義列は§E16.18 定義 3.2 が固定しており、その定義方程式がP A PA P A の定理であることは、補題 6.5 (1) が与える。代入についての以下の主張は、この定義方程式から次の補題として取り出した法則だけを用いる。
補題 7.1. §E16.18 定義 3.2 のLook \operatorname{Look} Look を記法 の記法で書く。有限列E E E のすべての成分がpair ( k , k ) \operatorname{pair}(k,k) pair ( k , k ) の形であることを表すL A L_A L A 論理式を
Δ ( E ) : ⟺ ∀ l < Len ( E ) ∃ k ≤ E ( Entry ( E , l ) = pair ( k , k ) ) \Delta(E):\!\!\Longleftrightarrow
\forall l<\operatorname{Len}(E)\,\exists k\le E\,
\bigl(\operatorname{Entry}(E,l)=\operatorname{pair}(k,k)\bigr) Δ ( E ) : ⟺ ∀ l < Len ( E ) ∃ k ≤ E ( Entry ( E , l ) = pair ( k , k ) ) と定める。有界存在量化の上界をE E E に取ることができる理由は次のとおりである。l < Len ( E ) l<\operatorname{Len}(E) l < Len ( E ) とし、E E E の第l l l 反復尾をu u u とする。補題 5.2 (2) によりEntry ( E , l ) \operatorname{Entry}(E,l) Entry ( E , l ) はu u u の先頭であり、補題 5.2 (1) と補題 5.1 (5) によりu ≠ 0 u\ne0 u = 0 である。補題 5.1 (3) によりu ≤ E u\le E u ≤ E であり、補題 5.2 (3) によりu = Cons ( Head ( u ) , Tail ( u ) ) u=\operatorname{Cons}(\operatorname{Head}(u),\operatorname{Tail}(u)) u = Cons ( Head ( u ) , Tail ( u )) であるから、補題 4.1 (5) によりHead ( u ) < u ≤ E \operatorname{Head}(u)<u\le E Head ( u ) < u ≤ E である。すなわちE E E の各成分はE E E 以下である。さらに補題 4.1 (2) によりk ≤ pair ( k , k ) k\le\operatorname{pair}(k,k) k ≤ pair ( k , k ) であるから、成分がpair ( k , k ) \operatorname{pair}(k,k) pair ( k , k ) の形であるときそのk k k はE E E 以下である。P A PA P A は次を証明する。
定義方程式。 Look ( 0 , i ) = 0 \operatorname{Look}(0,i)=0 Look ( 0 , i ) = 0 である。また0 < E 0<E 0 < E のとき、left ( Head ( E ) ) = i \operatorname{left}(\operatorname{Head}(E))=i left ( Head ( E )) = i ならばLook ( E , i ) = S right ( Head ( E ) ) \operatorname{Look}(E,i)=S\operatorname{right}(\operatorname{Head}(E)) Look ( E , i ) = S right ( Head ( E )) であり、left ( Head ( E ) ) ≠ i \operatorname{left}(\operatorname{Head}(E))\ne i left ( Head ( E )) = i ならばLook ( E , i ) = Look ( Tail ( E ) , i ) \operatorname{Look}(E,i)=\operatorname{Look}(\operatorname{Tail}(E),i) Look ( E , i ) = Look ( Tail ( E ) , i ) である。
先頭追加。 E ′ : = Cons ( pair ( i ′ , j ) , E ) E':=\operatorname{Cons}(\operatorname{pair}(i',j),E) E ′ := Cons ( pair ( i ′ , j ) , E ) と置く。i ′ = i i'=i i ′ = i ならばLook ( E ′ , i ) = S j \operatorname{Look}(E',i)=Sj Look ( E ′ , i ) = S j であり、とくにLook ( E ′ , i ) ≠ 0 \operatorname{Look}(E',i)\ne0 Look ( E ′ , i ) = 0 である。i ′ ≠ i i'\ne i i ′ = i ならばLook ( E ′ , i ) = Look ( E , i ) \operatorname{Look}(E',i)=\operatorname{Look}(E,i) Look ( E ′ , i ) = Look ( E , i ) である。
Δ \Delta Δ の保存。Δ ( 0 ) \Delta(0) Δ ( 0 ) が成り立ち、Δ ( E ) \Delta(E) Δ ( E ) ならばΔ ( Cons ( pair ( k , k ) , E ) ) \Delta\bigl(\operatorname{Cons}(\operatorname{pair}(k,k),E)\bigr) Δ ( Cons ( pair ( k , k ) , E ) ) とΔ ( Tail ( E ) ) \Delta(\operatorname{Tail}(E)) Δ ( Tail ( E )) が成り立つ。
Δ \Delta Δ の下での対応先。Δ ( E ) \Delta(E) Δ ( E ) かつLook ( E , i ) ≠ 0 \operatorname{Look}(E,i)\ne0 Look ( E , i ) = 0 ならばLook ( E , i ) = S i \operatorname{Look}(E,i)=Si Look ( E , i ) = S i である。すなわち、Δ ( E ) \Delta(E) Δ ( E ) の下で対応先が存在するときの対応先はi i i 自身である。
証明. (1) を示す。補題 4.1 (5) と補題 4.1 (6) によりP A PA P A は0 < s → Tail ( s ) < s 0<s\to\operatorname{Tail}(s)<s 0 < s → Tail ( s ) < s を証明するので、補題 6.5 (1) の仮定が減少量D ( E ) = Tail ( E ) D(E)=\operatorname{Tail}(E) D ( E ) = Tail ( E ) について満たされる。再帰引数を第1引数に置いたことは射影との合成による引数の入れ替えであるから、補題 6.5 (1) をそのまま適用することができ、P A PA P A は§E16.18 定義 3.2 の二つの定義方程式を証明する。親節に現れるHead \operatorname{Head} Head 、left \operatorname{left} left 、right \operatorname{right} right 、等号判定、および有限の場合分けの値については、補題 6.1 と補題 6.4 により、P A PA P A はそれらの定義方程式を証明する。
(2) を示す。補題 4.1 (5) と補題 4.1 (6) により0 < E ′ 0<E' 0 < E ′ 、Head ( E ′ ) = pair ( i ′ , j ) \operatorname{Head}(E')=\operatorname{pair}(i',j) Head ( E ′ ) = pair ( i ′ , j ) 、Tail ( E ′ ) = E \operatorname{Tail}(E')=E Tail ( E ′ ) = E である。補題 6.4 (2) により、P A PA P A はleft ( pair ( a , b ) ) = a \operatorname{left}(\operatorname{pair}(a,b))=a left ( pair ( a , b )) = a とright ( pair ( a , b ) ) = b \operatorname{right}(\operatorname{pair}(a,b))=b right ( pair ( a , b )) = b を証明する。従って(1) の場合分けはi ′ = i i'=i i ′ = i であるかどうかで決まり、i ′ = i i'=i i ′ = i のとき値はS j Sj S j 、i ′ ≠ i i'\ne i i ′ = i のとき値はLook ( E , i ) \operatorname{Look}(E,i) Look ( E , i ) である。(Q1) によりS j ≠ 0 Sj\ne0 S j = 0 である。
(3) を示す。補題 5.2 (1) によりLen ( 0 ) = 0 \operatorname{Len}(0)=0 Len ( 0 ) = 0 であるから、Δ ( 0 ) \Delta(0) Δ ( 0 ) の有界全称量化は空虚に成り立つ。E + : = Cons ( pair ( k , k ) , E ) E^{+}:=\operatorname{Cons}(\operatorname{pair}(k,k),E) E + := Cons ( pair ( k , k ) , E ) と置く。補題 5.2 (3) によりLen ( E + ) = S Len ( E ) \operatorname{Len}(E^{+})=S\operatorname{Len}(E) Len ( E + ) = S Len ( E ) 、Entry ( E + , 0 ) = pair ( k , k ) \operatorname{Entry}(E^{+},0)=\operatorname{pair}(k,k) Entry ( E + , 0 ) = pair ( k , k ) 、Entry ( E + , S l ) = Entry ( E , l ) \operatorname{Entry}(E^{+},Sl)=\operatorname{Entry}(E,l) Entry ( E + , S l ) = Entry ( E , l ) である。第0 0 0 成分については、上で述べたとおりk ≤ pair ( k , k ) ≤ E + k\le\operatorname{pair}(k,k)\le E^{+} k ≤ pair ( k , k ) ≤ E + である。第S l Sl S l 成分については、Δ ( E ) \Delta(E) Δ ( E ) が与えるk ′ ≤ E k'\le E k ′ ≤ E を取り、補題 4.1 (5) によりE < E + E<E^{+} E < E + であるからk ′ ≤ E + k'\le E^{+} k ′ ≤ E + である。よってΔ ( E + ) \Delta(E^{+}) Δ ( E + ) が成り立つ。Δ ( Tail ( E ) ) \Delta(\operatorname{Tail}(E)) Δ ( Tail ( E )) については、E = 0 E=0 E = 0 のときTail ( 0 ) = 0 \operatorname{Tail}(0)=0 Tail ( 0 ) = 0 であり、0 < E 0<E 0 < E のとき補題 5.2 (3) によりTail ( E ) \operatorname{Tail}(E) Tail ( E ) の第l l l 成分がE E E の第S l Sl S l 成分であるから、Δ ( E ) \Delta(E) Δ ( E ) によりpair ( k , k ) \operatorname{pair}(k,k) pair ( k , k ) の形であり、上界については上で述べたとおりk ≤ Entry ( Tail ( E ) , l ) ≤ Tail ( E ) k\le\operatorname{Entry}(\operatorname{Tail}(E),l)\le\operatorname{Tail}(E) k ≤ Entry ( Tail ( E ) , l ) ≤ Tail ( E ) である。
(4) を示す。補題 1.2 を、Δ ( E ) \Delta(E) Δ ( E ) とLook ( E , i ) ≠ 0 \operatorname{Look}(E,i)\ne0 Look ( E , i ) = 0 とLook ( E , i ) ≠ S i \operatorname{Look}(E,i)\ne Si Look ( E , i ) = S i の三つをすべて満たすE E E の最小値へ適用し、矛盾を導く。E = 0 E=0 E = 0 は(1) によりLook ( 0 , i ) = 0 \operatorname{Look}(0,i)=0 Look ( 0 , i ) = 0 を与えるので、三つを満たさない。0 < E 0<E 0 < E とする。補題 5.2 (1) により0 < Len ( E ) 0<\operatorname{Len}(E) 0 < Len ( E ) であり、補題 5.2 (3) によりEntry ( E , 0 ) = Head ( E ) \operatorname{Entry}(E,0)=\operatorname{Head}(E) Entry ( E , 0 ) = Head ( E ) であるから、Δ ( E ) \Delta(E) Δ ( E ) をl : = 0 l:=0 l := 0 について用いるとHead ( E ) = pair ( k , k ) \operatorname{Head}(E)=\operatorname{pair}(k,k) Head ( E ) = pair ( k , k ) を満たすk k k が存在する。(2) で示したleft \operatorname{left} left とright \operatorname{right} right の値により、k = i k=i k = i ならば(1) がLook ( E , i ) = S k = S i \operatorname{Look}(E,i)=Sk=Si Look ( E , i ) = S k = S i を与えるので、E E E は三つを満たさない。k ≠ i k\ne i k = i ならば(1) によりLook ( E , i ) = Look ( Tail ( E ) , i ) \operatorname{Look}(E,i)=\operatorname{Look}(\operatorname{Tail}(E),i) Look ( E , i ) = Look ( Tail ( E ) , i ) である。(3) によりΔ ( Tail ( E ) ) \Delta(\operatorname{Tail}(E)) Δ ( Tail ( E )) が成り立つので、Tail ( E ) \operatorname{Tail}(E) Tail ( E ) も三つをすべて満たす。補題 4.1 (5) と補題 4.1 (6) によりTail ( E ) < E \operatorname{Tail}(E)<E Tail ( E ) < E であるから、これはE E E の最小性に反する。▨
補題 7.2. P A PA P A は次を証明する。
§E16.18 定義 1.1 の各構成子について、その値の直下成分は値より小さい。すなわち、§E16.18 補題 1.2 (1) のP A PA P A 内の版が成り立つ。§E16.18 補題 1.2 (2) にあたる主張、すなわち入れ子の任意の深さに現れる自由な変数添字の上界は、本項からは従わない。この上界は補題 7.3 が別に与える。
§E16.18 定義 2.1 のTerm \operatorname{Term} Term 、Formula \operatorname{Formula} Formula 、Free \operatorname{Free} Free について、定義に列挙した各場合の同値が成り立つ。
§E16.18 定義 4.2 が用いるFreeFor \operatorname{FreeFor} FreeFor について、原子式、否定、含意の場合の同値と、量化子の場合の同値
FreeFor ( t , i , AllRaw ( j , ψ ) ) ↔ { 真 j = i , FreeFor ( t , i , ψ ) ∧ ( ¬ Free ( ψ , i ) ∨ ¬ Free ( t , j ) ) j ≠ i \operatorname{FreeFor}(t,i,\operatorname{AllRaw}(j,\psi))
\leftrightarrow
\begin{cases}
\text{真}&j=i,\\
\operatorname{FreeFor}(t,i,\psi)\land
\bigl(\neg\operatorname{Free}(\psi,i)\lor\neg\operatorname{Free}(t,j)\bigr)&j\ne i
\end{cases} FreeFor ( t , i , AllRaw ( j , ψ )) ↔ { 真 FreeFor ( t , i , ψ ) ∧ ( ¬ Free ( ψ , i ) ∨ ¬ Free ( t , j ) ) j = i , j = i
が成り立つ。量化子の場合の第2連言は選言 であり、¬ Free ( t , j ) \neg\operatorname{Free}(t,j) ¬ Free ( t , j ) だけを要求する形ではない。
§E16.18 定義 3.3 のWalkTerm \operatorname{WalkTerm} WalkTerm とWalkFormula \operatorname{WalkFormula} WalkFormula について、定義に列挙した各場合の等式が成り立つ。従ってSubTermCode \operatorname{SubTermCode} SubTermCode とSub \operatorname{Sub} Sub の場合分けも成り立つ。
§E16.18 定義 4.2 (2) が表す代入例の条件について、i , t , a , b ≤ y i,t,a,b\le y i , t , a , b ≤ y の有界探索と、FreeFor ( t , i , a ) \operatorname{FreeFor}(t,i,a) FreeFor ( t , i , a ) およびb = SubTermCode ( a , i , t ) b=\operatorname{SubTermCode}(a,i,t) b = SubTermCode ( a , i , t ) という各構成要素の値による条件との同値が成り立つ。
証明. (1) を示す。各構成子は§E16.17 定義 2.1 の右入れ子の Cons 符号である。補題 6.4 (1) により、原始再帰関数として書いたCons \operatorname{Cons} Cons の値はCons Q \operatorname{Cons}_Q Cons Q が定める値に等しく、補題 4.1 (5) によりCons ( a , t ) \operatorname{Cons}(a,t) Cons ( a , t ) はa a a とt t t の双方より大きい。外側のタグを含む Cons について同じ評価を繰り返せば、直下の項符号・論理式符号・変数添字がいずれも全体より小さいことを得る。ここで繰り返す回数は構成子ごとに定まる標準自然数であり、入れ子の深さについての帰納法は用いていない。
(2) と(3) を示す。§E16.18 定理 2.2 はTerm \operatorname{Term} Term 、Formula \operatorname{Formula} Formula 、Free \operatorname{Free} Free を、階数を第1引数、最大子数をK = 2 K=2 K = 2 とする有限分岐コース再帰の値として構成し、FreeFor \operatorname{FreeFor} FreeFor も同じ形の還元で構成している。(1) によりP A PA P A は階数の減少r ( d ( q , j ) ) < r ( q ) r(d(q,j))<r(q) r ( d ( q , j )) < r ( q ) を証明する。要求の生成、子の割り当て、および親の結合関数はLen \operatorname{Len} Len 、Entry \operatorname{Entry} Entry 、等号、有限の場合分けの合成であるから、補題 6.1 と補題 6.7 によりP A PA P A はそれらの定義方程式を証明する。子の個数を返すm m m も同じ合成であり、その値は構成子タグによる有限の場合分けで0 0 0 、S 0 S0 S 0 、S S 0 SS0 S S 0 のいずれかに固定されている。どのタグにも一致しない要求へ与える既定値も0 0 0 である。従って場合分けを尽くすと、P A PA P A は帰納法を用いずに∀ q m ( q ) ≤ S S 0 \forall q\ m(q)\le SS0 ∀ q m ( q ) ≤ S S 0 を証明する。これで補題 6.5 (2) が課す二つの仮定がともに満たされるので、補題 6.5 (2) をK = 2 K=2 K = 2 について適用することができ、各要求について
Eval ( q ) = C ( q , Hist ( q , m ( q ) ) ) \operatorname{Eval}(q)=C\bigl(q,\operatorname{Hist}(q,m(q))\bigr) Eval ( q ) = C ( q , Hist ( q , m ( q )) ) を得る。この等式に、各構成子に対するm , d , C m,d,C m , d , C の定義を代入すると、表示した各場合の同値が得られる。とくにFreeFor \operatorname{FreeFor} FreeFor の量化子節では、親の結合関数がFreeFor ( t , i , ψ ) \operatorname{FreeFor}(t,i,\psi) FreeFor ( t , i , ψ ) の値と、¬ Free ( ψ , i ) \neg\operatorname{Free}(\psi,i) ¬ Free ( ψ , i ) または¬ Free ( t , j ) \neg\operatorname{Free}(t,j) ¬ Free ( t , j ) という選言との連言を取るので、表示した形になる。
(4) も同様である。§E16.18 定理 3.4 はWalkTerm \operatorname{WalkTerm} WalkTerm とWalkFormula \operatorname{WalkFormula} WalkFormula を、階数を第1引数、K = 2 K=2 K = 2 とする有限分岐コース再帰へ移している。量化子の場合に子へ渡す環境がE E E からE ′ = Cons ( pair ( i , j ) , E ) E'=\operatorname{Cons}(\operatorname{pair}(i,j),E) E ′ = Cons ( pair ( i , j ) , E ) へ変わるが、階数は元の真部分符号z < y z<y z < y であるから減少条件は保たれる。新鮮変数j = 1 + y + t + E + v + i j=1+y+t+E+v+i j = 1 + y + t + E + v + i の計算、環境の走査Look \operatorname{Look} Look 、Free \operatorname{Free} Free の判定、およびi ≠ v i\ne v i = v の等号判定はいずれも原始再帰的であり、Look \operatorname{Look} Look の定義方程式は補題 7.1 (1) がP A PA P A の定理として与える。改名を発動させる三条件はこれらの合成であるから、量化子の場合の等式はLook ( E , v ) = 0 \operatorname{Look}(E,v)=0 Look ( E , v ) = 0 、i ≠ v i\ne v i = v 、Free ( t , i ) \operatorname{Free}(t,i) Free ( t , i ) 、Free ( z , v ) \operatorname{Free}(z,v) Free ( z , v ) の四つの判定による場合分けとしてP A PA P A の内部で読むことができる。子の個数についても、m m m が構成子タグによる有限の場合分けで0 0 0 、S 0 S0 S 0 、S S 0 SS0 S S 0 のいずれかを返すので、P A PA P A は同じく∀ q m ( q ) ≤ S S 0 \forall q\ m(q)\le SS0 ∀ q m ( q ) ≤ S S 0 を証明する。従って同じ適用によって各場合の等式を得る。SubTermCode \operatorname{SubTermCode} SubTermCode とSub \operatorname{Sub} Sub は、これらとTerm \operatorname{Term} Term 、Formula \operatorname{Formula} Formula 、Num \operatorname{Num} Num の合成と有限の場合分けである。
(5) を示す。§E16.18 定義 4.2 (2) が表す代入例の条件は、構成子の等式、Term \operatorname{Term} Term 、FreeFor \operatorname{FreeFor} FreeFor 、SubTermCode \operatorname{SubTermCode} SubTermCode 、およびi , t , a , b ≤ y i,t,a,b\le y i , t , a , b ≤ y の有界探索から作られる。有界探索については補題 6.2 、各構成要素については(2) から(4) までを用いると、P A PA P A はこの判定と、表示した条件との同値を証明する。本記事が扱うのは代入可能性の判定にあたるこの部分である。論理公理例の判定LogAx \operatorname{LogAx} LogAx 全体について、その値と定義に列挙した場合分けとの同値をP A PA P A の内部で証明することは、本単元では扱わない。下流で必要になるのは、LogAx \operatorname{LogAx} LogAx の値がP A PA P A の内部で存在して一意であることと、個別に与えた公理例についてLogAx \operatorname{LogAx} LogAx の成立をP A PA P A が証明することの二つだけである。前者は補題 6.1 (1) が与える。後者は二段を要する。本項が与える代入可能性の判定で§E16.18 定義 4.2 (2) の四条件を確かめ、そのうえで§E16.18 定義 4.2 (1) から§E16.18 定義 4.2 (6) までの有限選言へ移る。後段の一手は補題 6.1 (2) が与える固定した定義列の方程式による。LogAx \operatorname{LogAx} LogAx の原始再帰的定義列は§E16.18 定義 4.4 が一つに固定しており、その最終段は§E16.18 定義 4.2 (1) から§E16.18 定義 4.2 (6) までの特性関数の有限選言であるから、補題 6.1 (2) をこの最終段へ適用することができる。▨
補題 7.3. P A PA P A は
∀ e ∀ j ( Free ( e , j ) → j < e ) \forall e\,\forall j\,\bigl(\operatorname{Free}(e,j)\to j<e\bigr) ∀ e ∀ j ( Free ( e , j ) → j < e ) を証明する。
証明. 補題 7.2 (1) が与えるのは直下の一段の減少だけであり、入れ子の任意の深さに現れる添字については何も述べていない。そこで別の帰納法を行う。補題 1.2 を論理式∃ j ( Free ( e , j ) ∧ e ≤ j ) \exists j\,\bigl(\operatorname{Free}(e,j)\land e\le j\bigr) ∃ j ( Free ( e , j ) ∧ e ≤ j ) へ適用し、これを満たす最小のe e e を取って矛盾を導く。Free ( e , j ) \operatorname{Free}(e,j) Free ( e , j ) かつe ≤ j e\le j e ≤ j を満たすj j j を固定する。
補題 7.2 (2) により、P A PA P A はFree \operatorname{Free} Free について、e e e のタグに応じた各場合の同値を証明する。e = Var ( k ) e=\operatorname{Var}(k) e = Var ( k ) の場合、Free ( e , j ) \operatorname{Free}(e,j) Free ( e , j ) はj = k j=k j = k と同値であり、補題 7.2 (1) によりk < e k<e k < e であるからj < e j<e j < e となってe ≤ j e\le j e ≤ j に反する。e = Zero e=\operatorname{Zero} e = Zero の場合と、e e e がどの構成子の値でもない場合、Free ( e , j ) \operatorname{Free}(e,j) Free ( e , j ) は偽である。e e e がSucc \operatorname{Succ} Succ 、Add \operatorname{Add} Add 、Mul \operatorname{Mul} Mul 、Eq \operatorname{Eq} Eq 、NegRaw \operatorname{NegRaw} NegRaw 、ImpRaw \operatorname{ImpRaw} ImpRaw の値である場合、Free ( e , j ) \operatorname{Free}(e,j) Free ( e , j ) は直下の対象についてのFree \operatorname{Free} Free の選言と同値であるから、Free ( u , j ) \operatorname{Free}(u,j) Free ( u , j ) を満たす直下の対象u u u が存在する。補題 7.2 (1) によりu < e u<e u < e であるから、e e e の最小性によりj < u j<u j < u であり、j < u < e j<u<e j < u < e がe ≤ j e\le j e ≤ j に反する。e = AllRaw ( k , z ) e=\operatorname{AllRaw}(k,z) e = AllRaw ( k , z ) の場合、Free ( e , j ) \operatorname{Free}(e,j) Free ( e , j ) はj ≠ k j\ne k j = k かつFree ( z , j ) \operatorname{Free}(z,j) Free ( z , j ) と同値であり、z < e z<e z < e であるから同じくj < z < e j<z<e j < z < e となって矛盾する。
いずれの場合も矛盾するので、Free ( e , j ) \operatorname{Free}(e,j) Free ( e , j ) かつe ≤ j e\le j e ≤ j を満たすe , j e,j e , j は存在しない。▨
補題 7.4. 符号e e e が閉項符号 であるとは、Term ( e ) \operatorname{Term}(e) Term ( e ) が成り立ち、かつi ≤ e i\le e i ≤ e を満たすすべてのi i i について¬ Free ( e , i ) \neg\operatorname{Free}(e,i) ¬ Free ( e , i ) が成り立つことをいう。補題 7.3 により、e e e に自由に現れる変数の添字はe e e より小さいので、この有界全称量化はすべての候補を調べている。すなわちP A PA P A は、e e e が閉項符号であることとTerm ( e ) ∧ ∀ i ¬ Free ( e , i ) \operatorname{Term}(e)\land\forall i\,\neg\operatorname{Free}(e,i) Term ( e ) ∧ ∀ i ¬ Free ( e , i ) とが同値であることを証明する。以下ではこの同値を断らずに用いる。P A PA P A は次を証明する。
∀ x Num ( S x ) = Succ ( Num ( x ) ) \forall x\ \operatorname{Num}(Sx)=\operatorname{Succ}(\operatorname{Num}(x)) ∀ x Num ( S x ) = Succ ( Num ( x )) 。
任意のx x x についてNum ( x ) \operatorname{Num}(x) Num ( x ) は閉項符号である。
閉項符号は任意の論理式符号の任意の変数へ自由に代入可能である。すなわち
∀ e ∀ a ∀ i ( e が閉項符号 ∧ Formula ( a ) → FreeFor ( e , i , a ) ) \forall e\,\forall a\,\forall i\,
\bigl(e\ \text{が閉項符号}\ \land\ \operatorname{Formula}(a)
\to\operatorname{FreeFor}(e,i,a)\bigr) ∀ e ∀ a ∀ i ( e が閉項符号 ∧ Formula ( a ) → FreeFor ( e , i , a ) )
である。ここでFreeFor \operatorname{FreeFor} FreeFor の引数の順序は項、変数添字、論理式である。
e , e ′ e,e' e , e ′ が閉項符号ならばSucc ( e ) \operatorname{Succ}(e) Succ ( e ) 、Add ( e , e ′ ) \operatorname{Add}(e,e') Add ( e , e ′ ) 、Mul ( e , e ′ ) \operatorname{Mul}(e,e') Mul ( e , e ′ ) も閉項符号である。
Term ( t ) \operatorname{Term}(t) Term ( t ) 、Formula ( a ) \operatorname{Formula}(a) Formula ( a ) 、¬ Free ( a , i ) \neg\operatorname{Free}(a,i) ¬ Free ( a , i ) ならばSubTermCode ( a , i , t ) = a \operatorname{SubTermCode}(a,i,t)=a SubTermCode ( a , i , t ) = a である。
Term ( t ) \operatorname{Term}(t) Term ( t ) 、Formula ( a ) \operatorname{Formula}(a) Formula ( a ) 、Free ( a , i ) \operatorname{Free}(a,i) Free ( a , i ) ならばt ≤ SubTermCode ( a , i , t ) t\le\operatorname{SubTermCode}(a,i,t) t ≤ SubTermCode ( a , i , t ) である。
Term ( t ) \operatorname{Term}(t) Term ( t ) かつFormula ( a ) \operatorname{Formula}(a) Formula ( a ) ならばFormula ( SubTermCode ( a , i , t ) ) \operatorname{Formula}\bigl(\operatorname{SubTermCode}(a,i,t)\bigr) Formula ( SubTermCode ( a , i , t ) ) である。さらにFree ( SubTermCode ( a , i , t ) , k ) \operatorname{Free}\bigl(\operatorname{SubTermCode}(a,i,t),k\bigr) Free ( SubTermCode ( a , i , t ) , k ) ならば、k ≠ i k\ne i k = i かつFree ( a , k ) \operatorname{Free}(a,k) Free ( a , k ) であるか、またはFree ( a , i ) \operatorname{Free}(a,i) Free ( a , i ) かつFree ( t , k ) \operatorname{Free}(t,k) Free ( t , k ) である。
証明. (1) は§E16.18 定義 3.1 が与える通常の原始再帰であるから、補題 6.1 (2) による。
(2) はx x x に関するP A PA P A の帰納法による。x = 0 x=0 x = 0 ではNum ( 0 ) = Zero \operatorname{Num}(0)=\operatorname{Zero} Num ( 0 ) = Zero であり、補題 7.2 (2) によりTerm ( Zero ) \operatorname{Term}(\operatorname{Zero}) Term ( Zero ) が成り立ち、Free ( Zero , i ) \operatorname{Free}(\operatorname{Zero},i) Free ( Zero , i ) はどのi i i についても偽である。x x x からS x Sx S x へ進む段では、(1) によりNum ( S x ) = Succ ( Num ( x ) ) \operatorname{Num}(Sx)=\operatorname{Succ}(\operatorname{Num}(x)) Num ( S x ) = Succ ( Num ( x )) であり、補題 7.2 (2) のTerm ( Succ ( u ) ) ↔ Term ( u ) \operatorname{Term}(\operatorname{Succ}(u))\leftrightarrow\operatorname{Term}(u) Term ( Succ ( u )) ↔ Term ( u ) とFree ( Succ ( u ) , i ) ↔ Free ( u , i ) \operatorname{Free}(\operatorname{Succ}(u),i)\leftrightarrow\operatorname{Free}(u,i) Free ( Succ ( u ) , i ) ↔ Free ( u , i ) を用いる。
(3) を示す。論理式符号a a a に関するP A PA P A の強い帰納法、すなわち補題 1.2 を反例の最小値へ適用する。補題 7.2 (3) により、FreeFor ( e , i , a ) \operatorname{FreeFor}(e,i,a) FreeFor ( e , i , a ) はa a a の構成に関する再帰で定まる。原子式では条件が空である。¬ \neg ¬ と→ \to → では真部分符号へ再帰し、いずれもa a a より小さいので最小性に反する反例が無い。AllRaw ( j , b ) \operatorname{AllRaw}(j,b) AllRaw ( j , b ) では、j = i j=i j = i ならば条件が空であり、j ≠ i j\ne i j = i ならば
FreeFor ( e , i , b ) ∧ ( ¬ Free ( b , i ) ∨ ¬ Free ( e , j ) ) \operatorname{FreeFor}(e,i,b)\land
\bigl(\neg\operatorname{Free}(b,i)\lor\neg\operatorname{Free}(e,j)\bigr) FreeFor ( e , i , b ) ∧ ( ¬ Free ( b , i ) ∨ ¬ Free ( e , j ) ) を要求する。e e e が閉項符号であれば、補題 7.3 によりj j j の大きさによらず¬ Free ( e , j ) \neg\operatorname{Free}(e,j) ¬ Free ( e , j ) が成り立つので、連言の第2成分である選言は右側で満たされる。連言の第1成分はb < a b<a b < a に対する最小性から従う。ここで用いたのは選言であり、¬ Free ( b , i ) \neg\operatorname{Free}(b,i) ¬ Free ( b , i ) と¬ Free ( e , j ) \neg\operatorname{Free}(e,j) ¬ Free ( e , j ) の双方を要求してはいない。
(4) を示す。補題 7.2 (2) が与えるTerm \operatorname{Term} Term の節により、Term ( e ) \operatorname{Term}(e) Term ( e ) とTerm ( e ′ ) \operatorname{Term}(e') Term ( e ′ ) からTerm ( Succ ( e ) ) \operatorname{Term}(\operatorname{Succ}(e)) Term ( Succ ( e )) 、Term ( Add ( e , e ′ ) ) \operatorname{Term}(\operatorname{Add}(e,e')) Term ( Add ( e , e ′ )) 、Term ( Mul ( e , e ′ ) ) \operatorname{Term}(\operatorname{Mul}(e,e')) Term ( Mul ( e , e ′ )) が従う。Free \operatorname{Free} Free の節は直下の対象についての選言であるから、Free ( Succ ( e ) , i ) \operatorname{Free}(\operatorname{Succ}(e),i) Free ( Succ ( e ) , i ) はFree ( e , i ) \operatorname{Free}(e,i) Free ( e , i ) と同値であり、二項構成子でも同様である。e e e とe ′ e' e ′ が閉項符号であれば、上で述べた同値によりi i i の大きさによらず¬ Free ( e , i ) \neg\operatorname{Free}(e,i) ¬ Free ( e , i ) かつ¬ Free ( e ′ , i ) \neg\operatorname{Free}(e',i) ¬ Free ( e ′ , i ) であるから、構成した符号についてもi i i の大きさによらず¬ Free \neg\operatorname{Free} ¬ Free が成り立ち、再び同じ同値により閉項符号である。Succ ( e ) \operatorname{Succ}(e) Succ ( e ) では有界全称量化の範囲がi ≤ e i\le e i ≤ e からi ≤ Succ ( e ) i\le\operatorname{Succ}(e) i ≤ Succ ( e ) へ広がるが、補題 7.3 を経由して量化の範囲を外したので、この差は問題にならない。
(5) から(7) までを示す。いずれも補題 7.2 (4) が与えるWalkTerm \operatorname{WalkTerm} WalkTerm とWalkFormula \operatorname{WalkFormula} WalkFormula の各場合の等式だけを用い、符号に関する強い帰納法、すなわち補題 1.2 を反例の最小値へ適用する形の議論を行う。補助環境E E E は帰納法の主張の中で全称量化する。Walk ( y , v , t , E ) \operatorname{Walk}(y,v,t,E) Walk ( y , v , t , E ) は、y y y が項符号のときWalkTerm ( y , v , t , E ) \operatorname{WalkTerm}(y,v,t,E) WalkTerm ( y , v , t , E ) 、論理式符号のときWalkFormula ( y , v , t , E ) \operatorname{WalkFormula}(y,v,t,E) WalkFormula ( y , v , t , E ) を表すものとする。以下では代入対象の変数添字をv v v 、代入する項の符号をt t t と書き、最後にv : = i v:=i v := i と取って(5) から(7) までを得る。§E16.18 定義 3.3 の改名の三条件は、Look ( E , v ) = 0 \operatorname{Look}(E,v)=0 Look ( E , v ) = 0 、i ′ ≠ v i'\ne v i ′ = v 、および「v i ′ v_{i'} v i ′ がt t t に自由に現れ、かつv v v_v v v が本体に自由に現れる」である。
(5) を示す。次の主張Σ ( y ) \Sigma(y) Σ ( y ) を、y y y に関する強い帰納法で示す。
Σ ( y ) : ∀ E ( ( Term ( y ) ∨ Formula ( y ) ) ∧ Δ ( E ) ∧ ( Look ( E , v ) ≠ 0 ∨ ¬ Free ( y , v ) ) → Walk ( y , v , t , E ) = y ) \Sigma(y):\quad
\forall E\,\Bigl(
\bigl(\operatorname{Term}(y)\lor\operatorname{Formula}(y)\bigr)\land
\Delta(E)\land
\bigl(\operatorname{Look}(E,v)\ne0\lor\neg\operatorname{Free}(y,v)\bigr)
\to\operatorname{Walk}(y,v,t,E)=y\Bigr) Σ ( y ) : ∀ E ( ( Term ( y ) ∨ Formula ( y ) ) ∧ Δ ( E ) ∧ ( Look ( E , v ) = 0 ∨ ¬ Free ( y , v ) ) → Walk ( y , v , t , E ) = y ) ここでΔ ( E ) \Delta(E) Δ ( E ) は補題 7.1 が定めた論理式であり、E E E のすべての成分がpair ( k , k ) \operatorname{pair}(k,k) pair ( k , k ) の形であることを表す。整形式であるという連言を置いたのは、どの構成子の値でもないy y y に対してWalk \operatorname{Walk} Walk が0 0 0 を返すからである。補題 7.2 (2) により、整形式な符号の直下の対象はふたたび整形式であるから、この連言は帰納法の各段で引き継がれる。
y = Var ( i ′ ) y=\operatorname{Var}(i') y = Var ( i ′ ) の場合を見る。Look ( E , i ′ ) ≠ 0 \operatorname{Look}(E,i')\ne0 Look ( E , i ′ ) = 0 ならば、補題 7.1 (4) によりLook ( E , i ′ ) = S i ′ \operatorname{Look}(E,i')=Si' Look ( E , i ′ ) = S i ′ 、すなわち対応先はi ′ i' i ′ 自身であるから、返る値はVar ( i ′ ) \operatorname{Var}(i') Var ( i ′ ) である。Look ( E , i ′ ) = 0 \operatorname{Look}(E,i')=0 Look ( E , i ′ ) = 0 の場合、i ′ = v i'=v i ′ = v とするとFree ( y , v ) \operatorname{Free}(y,v) Free ( y , v ) かつLook ( E , v ) = 0 \operatorname{Look}(E,v)=0 Look ( E , v ) = 0 となって前件に反するのでi ′ ≠ v i'\ne v i ′ = v であり、返る値はやはりVar ( i ′ ) \operatorname{Var}(i') Var ( i ′ ) である。y = Zero y=\operatorname{Zero} y = Zero では値がZero \operatorname{Zero} Zero である。Succ \operatorname{Succ} Succ 、Add \operatorname{Add} Add 、Mul \operatorname{Mul} Mul 、Eq \operatorname{Eq} Eq 、NegRaw \operatorname{NegRaw} NegRaw 、ImpRaw \operatorname{ImpRaw} ImpRaw の場合、Free ( y , v ) \operatorname{Free}(y,v) Free ( y , v ) は直下の対象についての選言と同値であるから、前件は各直下の対象へそのまま引き継がれる。直下の対象は補題 7.2 (1) によりy y y より小さいので、最小性により値が変わらず、親は同じ構成子で戻すので値はy y y である。
y = AllRaw ( i ′ , z ) y=\operatorname{AllRaw}(i',z) y = AllRaw ( i ′ , z ) の場合を見る。前件によりLook ( E , v ) ≠ 0 \operatorname{Look}(E,v)\ne0 Look ( E , v ) = 0 であるか、または¬ Free ( y , v ) \neg\operatorname{Free}(y,v) ¬ Free ( y , v ) 、すなわちi ′ = v i'=v i ′ = v または¬ Free ( z , v ) \neg\operatorname{Free}(z,v) ¬ Free ( z , v ) である。第一の場合は改名の第1条件が、i ′ = v i'=v i ′ = v の場合は第2条件が、¬ Free ( z , v ) \neg\operatorname{Free}(z,v) ¬ Free ( z , v ) の場合は第3条件が破れるので、いずれにせよ改名は発動せずj = i ′ j=i' j = i ′ である。従って子へ渡る環境はE ′ = Cons ( pair ( i ′ , i ′ ) , E ) E'=\operatorname{Cons}(\operatorname{pair}(i',i'),E) E ′ = Cons ( pair ( i ′ , i ′ ) , E ) であり、補題 7.1 (3) によりΔ ( E ′ ) \Delta(E') Δ ( E ′ ) が成り立つ。また補題 7.1 (2) により、i ′ = v i'=v i ′ = v ならばLook ( E ′ , v ) ≠ 0 \operatorname{Look}(E',v)\ne0 Look ( E ′ , v ) = 0 であり、i ′ ≠ v i'\ne v i ′ = v ならばLook ( E ′ , v ) = Look ( E , v ) \operatorname{Look}(E',v)=\operatorname{Look}(E,v) Look ( E ′ , v ) = Look ( E , v ) であるから、いずれの場合も前件がz z z とE ′ E' E ′ について成り立つ。z < y z<y z < y であるから最小性によりWalk ( z , v , t , E ′ ) = z \operatorname{Walk}(z,v,t,E')=z Walk ( z , v , t , E ′ ) = z であり、親はAllRaw ( i ′ , z ) = y \operatorname{AllRaw}(i',z)=y AllRaw ( i ′ , z ) = y を返す。以上のどの場合にも反例が無いのでΣ ( y ) \Sigma(y) Σ ( y ) が成り立つ。
補題 7.1 (3) によりΔ ( 0 ) \Delta(0) Δ ( 0 ) が成り立ち、補題 7.1 (1) によりLook ( 0 , v ) = 0 \operatorname{Look}(0,v)=0 Look ( 0 , v ) = 0 である。Formula ( a ) \operatorname{Formula}(a) Formula ( a ) とTerm ( t ) \operatorname{Term}(t) Term ( t ) によりSubTermCode ( a , i , t ) = WalkFormula ( a , i , t , 0 ) \operatorname{SubTermCode}(a,i,t)=\operatorname{WalkFormula}(a,i,t,0) SubTermCode ( a , i , t ) = WalkFormula ( a , i , t , 0 ) であるから、¬ Free ( a , i ) \neg\operatorname{Free}(a,i) ¬ Free ( a , i ) のときΣ ( a ) \Sigma(a) Σ ( a ) からSubTermCode ( a , i , t ) = a \operatorname{SubTermCode}(a,i,t)=a SubTermCode ( a , i , t ) = a を得る。
改名の第2条件(i ′ ≠ v i'\ne v i ′ = v )と第1条件(Look ( E , v ) = 0 \operatorname{Look}(E,v)=0 Look ( E , v ) = 0 )は、この主張のために必要である。これらを課さない改名条件では、v v v_v v v が束縛されていて代入が起こらない位置でも改名が発動し、結果がa a a と一致しない。
第2条件の必要性は、最外の量化子だけで現れる。i = 0 i=0 i = 0 、t = Var ( 0 ) t=\operatorname{Var}(0) t = Var ( 0 ) 、a = AllRaw ( 0 , Eq ( Var ( 0 ) , Var ( 0 ) ) ) a=\operatorname{AllRaw}\bigl(0,\operatorname{Eq}(\operatorname{Var}(0),\operatorname{Var}(0))\bigr) a = AllRaw ( 0 , Eq ( Var ( 0 ) , Var ( 0 )) ) では¬ Free ( a , 0 ) \neg\operatorname{Free}(a,0) ¬ Free ( a , 0 ) であるが、第2条件が無ければ最外の量化子でi ′ = 0 = v i'=0=v i ′ = 0 = v のまま改名が発動する。
第1条件の必要性は、入れ子になった量化子でしか現れない。i = 0 i=0 i = 0 、t = Var ( 1 ) t=\operatorname{Var}(1) t = Var ( 1 ) 、a = AllRaw ( 0 , AllRaw ( 1 , Eq ( Var ( 0 ) , Var ( 1 ) ) ) ) a=\operatorname{AllRaw}\bigl(0,\operatorname{AllRaw}(1,\operatorname{Eq}(\operatorname{Var}(0),\operatorname{Var}(1)))\bigr) a = AllRaw ( 0 , AllRaw ( 1 , Eq ( Var ( 0 ) , Var ( 1 ))) ) を取る。v 0 v_0 v 0 は最外の量化子に束縛されているので¬ Free ( a , 0 ) \neg\operatorname{Free}(a,0) ¬ Free ( a , 0 ) であり、(5) はSubTermCode ( a , 0 , t ) = a \operatorname{SubTermCode}(a,0,t)=a SubTermCode ( a , 0 , t ) = a を要求する。最外の量化子ではi ′ = 0 = v i'=0=v i ′ = 0 = v により第2条件が破れるので改名は発動せず、子へ渡る環境はE ′ = Cons ( pair ( 0 , 0 ) , 0 ) E'=\operatorname{Cons}(\operatorname{pair}(0,0),0) E ′ = Cons ( pair ( 0 , 0 ) , 0 ) である。内側の量化子ではi ′ = 1 ≠ v i'=1\ne v i ′ = 1 = v であり、v 1 v_1 v 1 はt t t に自由に現れ、v 0 v_0 v 0 はEq ( Var ( 0 ) , Var ( 1 ) ) \operatorname{Eq}(\operatorname{Var}(0),\operatorname{Var}(1)) Eq ( Var ( 0 ) , Var ( 1 )) に自由に現れるので、第2条件と第3条件はどちらも破れない。第1条件だけがLook ( E ′ , 0 ) ≠ 0 \operatorname{Look}(E',0)\ne0 Look ( E ′ , 0 ) = 0 によって破れており、これを課さなければ内側の量化子で改名が発動して、結果はAllRaw ( 0 , AllRaw ( j , ⋯ ) ) \operatorname{AllRaw}(0,\operatorname{AllRaw}(j,\cdots)) AllRaw ( 0 , AllRaw ( j , ⋯ )) (j ≠ 1 j\ne1 j = 1 )となりa a a と一致しない。
(6) を示す。次の主張Ξ 0 ( y ) \Xi_0(y) Ξ 0 ( y ) を、y y y に関する強い帰納法で示す。
Ξ 0 ( y ) : ∀ E ( ( Term ( y ) ∨ Formula ( y ) ) ∧ Look ( E , v ) = 0 ∧ Free ( y , v ) → t ≤ Walk ( y , v , t , E ) ) \Xi_0(y):\quad
\forall E\,\Bigl(
\bigl(\operatorname{Term}(y)\lor\operatorname{Formula}(y)\bigr)\land
\operatorname{Look}(E,v)=0\land\operatorname{Free}(y,v)
\to t\le\operatorname{Walk}(y,v,t,E)\Bigr) Ξ 0 ( y ) : ∀ E ( ( Term ( y ) ∨ Formula ( y ) ) ∧ Look ( E , v ) = 0 ∧ Free ( y , v ) → t ≤ Walk ( y , v , t , E ) ) Σ ( y ) \Sigma(y) Σ ( y ) と同じく整形式であるという連言を置いたのは、どの構成子の値でもないy y y に対してWalk \operatorname{Walk} Walk が0 0 0 を返すからである。補題 7.2 (2) により、整形式な符号の直下の対象はふたたび整形式であるから、この連言は帰納法の各段で引き継がれる。
y = Var ( i ′ ) y=\operatorname{Var}(i') y = Var ( i ′ ) の場合、Free ( y , v ) \operatorname{Free}(y,v) Free ( y , v ) はi ′ = v i'=v i ′ = v を与え、Look ( E , v ) = 0 \operatorname{Look}(E,v)=0 Look ( E , v ) = 0 であるから返る値はt t t である。y = Zero y=\operatorname{Zero} y = Zero では前件が偽である。一項構成子と二項構成子の場合、Free ( y , v ) \operatorname{Free}(y,v) Free ( y , v ) は直下の対象についての選言と同値であるから、Free ( u , v ) \operatorname{Free}(u,v) Free ( u , v ) を満たす直下の対象u u u が存在する。補題 7.2 (1) によりu < y u<y u < y であるから、最小性によりt ≤ Walk ( u , v , t , E ) t\le\operatorname{Walk}(u,v,t,E) t ≤ Walk ( u , v , t , E ) である。親は返った値を直下成分としてもつ符号を返すので、再び補題 7.2 (1) によりWalk ( u , v , t , E ) < Walk ( y , v , t , E ) \operatorname{Walk}(u,v,t,E)<\operatorname{Walk}(y,v,t,E) Walk ( u , v , t , E ) < Walk ( y , v , t , E ) であり、t ≤ Walk ( y , v , t , E ) t\le\operatorname{Walk}(y,v,t,E) t ≤ Walk ( y , v , t , E ) を得る。y = AllRaw ( i ′ , z ) y=\operatorname{AllRaw}(i',z) y = AllRaw ( i ′ , z ) の場合、Free ( y , v ) \operatorname{Free}(y,v) Free ( y , v ) はi ′ ≠ v i'\ne v i ′ = v かつFree ( z , v ) \operatorname{Free}(z,v) Free ( z , v ) を与える。改名が発動するかどうかによらず子へ渡る環境はE ′ = Cons ( pair ( i ′ , j ) , E ) E'=\operatorname{Cons}(\operatorname{pair}(i',j),E) E ′ = Cons ( pair ( i ′ , j ) , E ) であり、i ′ ≠ v i'\ne v i ′ = v であるから、補題 7.1 (2) によりLook ( E ′ , v ) = Look ( E , v ) = 0 \operatorname{Look}(E',v)=\operatorname{Look}(E,v)=0 Look ( E ′ , v ) = Look ( E , v ) = 0 である。z < y z<y z < y に最小性を用いてt ≤ Walk ( z , v , t , E ′ ) t\le\operatorname{Walk}(z,v,t,E') t ≤ Walk ( z , v , t , E ′ ) を得る。親が返す符号はAllRaw ( j , Walk ( z , v , t , E ′ ) ) \operatorname{AllRaw}\bigl(j,\operatorname{Walk}(z,v,t,E')\bigr) AllRaw ( j , Walk ( z , v , t , E ′ ) ) であり、補題 7.2 (1) によりこれはWalk ( z , v , t , E ′ ) \operatorname{Walk}(z,v,t,E') Walk ( z , v , t , E ′ ) より大きい。
E : = 0 E:=0 E := 0 と取ると、補題 7.1 (1) によりLook ( 0 , v ) = 0 \operatorname{Look}(0,v)=0 Look ( 0 , v ) = 0 である。Formula ( a ) \operatorname{Formula}(a) Formula ( a ) とTerm ( t ) \operatorname{Term}(t) Term ( t ) によりSubTermCode ( a , i , t ) = WalkFormula ( a , i , t , 0 ) \operatorname{SubTermCode}(a,i,t)=\operatorname{WalkFormula}(a,i,t,0) SubTermCode ( a , i , t ) = WalkFormula ( a , i , t , 0 ) であることを用いると、Free ( a , i ) \operatorname{Free}(a,i) Free ( a , i ) のときt ≤ SubTermCode ( a , i , t ) t\le\operatorname{SubTermCode}(a,i,t) t ≤ SubTermCode ( a , i , t ) を得る。この議論では「部分符号は全体以下である」という推移的な主張を用いていない。補題 7.2 (1) が与えるのは直下の一段だけであり、その推移閉包を別に立てる代わりに、いま行ったy y y に関する帰納法を用いている。
(7) を示す。環境E E E が現に有効にしている改名先を表す論理式を
Ren ( E , k ) : ⟺ ∃ k ′ ( Look ( E , k ′ ) = S k ) \operatorname{Ren}(E,k)
:\!\!\Longleftrightarrow
\exists k'\,\bigl(\operatorname{Look}(E,k')=Sk\bigr) Ren ( E , k ) : ⟺ ∃ k ′ ( Look ( E , k ′ ) = S k ) と置く。Look \operatorname{Look} Look の値が0 0 0 でないことは対応先が存在することを表し、そのときの対応先はLook ( E , k ′ ) = S k \operatorname{Look}(E,k')=Sk Look ( E , k ′ ) = S k を満たすk k k であるから、Ren ( E , k ) \operatorname{Ren}(E,k) Ren ( E , k ) は「E E E のもとで何らかの変数がv k v_k v k へ改名される」ことを表す。次の二つの主張の連言Ξ 1 ( y ) \Xi_1(y) Ξ 1 ( y ) を、y y y に関する強い帰納法で示す。
Φ ( y , E ) : ( Term ( y ) → Term ( Walk ( y , v , t , E ) ) ) ∧ ( Formula ( y ) → Formula ( Walk ( y , v , t , E ) ) ) \Phi(y,E):\quad
\bigl(\operatorname{Term}(y)\to\operatorname{Term}(\operatorname{Walk}(y,v,t,E))\bigr)
\land
\bigl(\operatorname{Formula}(y)\to\operatorname{Formula}(\operatorname{Walk}(y,v,t,E))\bigr) Φ ( y , E ) : ( Term ( y ) → Term ( Walk ( y , v , t , E )) ) ∧ ( Formula ( y ) → Formula ( Walk ( y , v , t , E )) ) Λ ( y , E ) : ∀ k ( Free ( Walk ( y , v , t , E ) , k ) → Ren ( E , k ) ∨ ( Free ( y , k ) ∧ k ≠ v ∧ Look ( E , k ) = 0 ) ∨ ( Free ( t , k ) ∧ Free ( y , v ) ∧ Look ( E , v ) = 0 ) ) \Lambda(y,E):\quad
\forall k\,\Bigl(
\operatorname{Free}\bigl(\operatorname{Walk}(y,v,t,E),k\bigr)
\to
\operatorname{Ren}(E,k)
\lor\bigl(\operatorname{Free}(y,k)\land k\ne v\land\operatorname{Look}(E,k)=0\bigr)
\lor\bigl(\operatorname{Free}(t,k)\land\operatorname{Free}(y,v)\land\operatorname{Look}(E,v)=0\bigr)\Bigr) Λ ( y , E ) : ∀ k ( Free ( Walk ( y , v , t , E ) , k ) → Ren ( E , k ) ∨ ( Free ( y , k ) ∧ k = v ∧ Look ( E , k ) = 0 ) ∨ ( Free ( t , k ) ∧ Free ( y , v ) ∧ Look ( E , v ) = 0 ) ) Ξ 1 ( y ) : ∀ E ( Term ( t ) ∧ ( Term ( y ) ∨ Formula ( y ) ) → Φ ( y , E ) ∧ Λ ( y , E ) ) \Xi_1(y):\quad
\forall E\,\Bigl(
\operatorname{Term}(t)\land
\bigl(\operatorname{Term}(y)\lor\operatorname{Formula}(y)\bigr)
\to\Phi(y,E)\land\Lambda(y,E)\Bigr) Ξ 1 ( y ) : ∀ E ( Term ( t ) ∧ ( Term ( y ) ∨ Formula ( y ) ) → Φ ( y , E ) ∧ Λ ( y , E ) ) Σ ( y ) \Sigma(y) Σ ( y ) およびΞ 0 ( y ) \Xi_0(y) Ξ 0 ( y ) と同じく整形式であるという連言を置いたのは、どの構成子の値でもないy y y に対してWalk \operatorname{Walk} Walk が0 0 0 を返すからである。Term \operatorname{Term} Term とFormula \operatorname{Formula} Formula の各節はタグによって排他的であるから、以下の各場合ではΦ ( y , E ) \Phi(y,E) Φ ( y , E ) の二つの含意のうち一方だけが実質をもち、他方は前件が偽で空虚に成り立つ。
y = Var ( i ′ ) y=\operatorname{Var}(i') y = Var ( i ′ ) の場合を見る。Look ( E , i ′ ) ≠ 0 \operatorname{Look}(E,i')\ne0 Look ( E , i ′ ) = 0 ならば、補題 7.1 (1) が与える定義方程式により、Look ( E , i ′ ) = S j \operatorname{Look}(E,i')=Sj Look ( E , i ′ ) = S j を満たすj j j について値はVar ( j ) \operatorname{Var}(j) Var ( j ) である。補題 7.2 (2) によりTerm ( Var ( j ) ) \operatorname{Term}(\operatorname{Var}(j)) Term ( Var ( j )) が成り立ち、Free ( Var ( j ) , k ) \operatorname{Free}(\operatorname{Var}(j),k) Free ( Var ( j ) , k ) はk = j k=j k = j と同値である。Look ( E , i ′ ) = S j \operatorname{Look}(E,i')=Sj Look ( E , i ′ ) = S j であるからRen ( E , j ) \operatorname{Ren}(E,j) Ren ( E , j ) が成り立ち、第1の選言肢を得る。Look ( E , i ′ ) = 0 \operatorname{Look}(E,i')=0 Look ( E , i ′ ) = 0 かつi ′ = v i'=v i ′ = v ならば値はt t t であり、前件のTerm ( t ) \operatorname{Term}(t) Term ( t ) がΦ \Phi Φ を与える。Free ( t , k ) \operatorname{Free}(t,k) Free ( t , k ) に対しては、Free ( Var ( v ) , v ) \operatorname{Free}(\operatorname{Var}(v),v) Free ( Var ( v ) , v ) とLook ( E , v ) = 0 \operatorname{Look}(E,v)=0 Look ( E , v ) = 0 により第3の選言肢を得る。Look ( E , i ′ ) = 0 \operatorname{Look}(E,i')=0 Look ( E , i ′ ) = 0 かつi ′ ≠ v i'\ne v i ′ = v ならば値はVar ( i ′ ) \operatorname{Var}(i') Var ( i ′ ) であり、Free \operatorname{Free} Free のVar \operatorname{Var} Var の節が与えるk = i ′ k=i' k = i ′ に対して第2の選言肢を得る。y = Zero y=\operatorname{Zero} y = Zero の場合、値はZero \operatorname{Zero} Zero であり、Term ( Zero ) \operatorname{Term}(\operatorname{Zero}) Term ( Zero ) が成り立ち、Free ( Zero , k ) \operatorname{Free}(\operatorname{Zero},k) Free ( Zero , k ) はどのk k k についても偽である。
y y y がSucc \operatorname{Succ} Succ 、Add \operatorname{Add} Add 、Mul \operatorname{Mul} Mul 、Eq \operatorname{Eq} Eq 、NegRaw \operatorname{NegRaw} NegRaw 、ImpRaw \operatorname{ImpRaw} ImpRaw の値である場合、補題 7.2 (4) により、値は同じ構成子を直下の対象の値へ適用したものである。直下の対象は補題 7.2 (1) によりy y y より小さく、補題 7.2 (2) により整形式であるから、最小性によりΦ \Phi Φ とΛ \Lambda Λ が同じE E E について成り立つ。Term \operatorname{Term} Term とFormula \operatorname{Formula} Formula の各節は直下の対象についての連言であるからΦ ( y , E ) \Phi(y,E) Φ ( y , E ) を得る。Free \operatorname{Free} Free の各節は直下の対象についての選言であるから、Free ( Walk ( y , v , t , E ) , k ) \operatorname{Free}(\operatorname{Walk}(y,v,t,E),k) Free ( Walk ( y , v , t , E ) , k ) を満たすk k k に対しては、Free ( Walk ( u , v , t , E ) , k ) \operatorname{Free}(\operatorname{Walk}(u,v,t,E),k) Free ( Walk ( u , v , t , E ) , k ) を満たす直下の対象u u u が存在する。Λ ( u , E ) \Lambda(u,E) Λ ( u , E ) の三つの選言肢は、Free ( u , k ) → Free ( y , k ) \operatorname{Free}(u,k)\to\operatorname{Free}(y,k) Free ( u , k ) → Free ( y , k ) とFree ( u , v ) → Free ( y , v ) \operatorname{Free}(u,v)\to\operatorname{Free}(y,v) Free ( u , v ) → Free ( y , v ) によってそのままΛ ( y , E ) \Lambda(y,E) Λ ( y , E ) の三つの選言肢へ移る。
y = AllRaw ( i ′ , z ) y=\operatorname{AllRaw}(i',z) y = AllRaw ( i ′ , z ) の場合を見る。§E16.18 定義 3.3 の改名の三条件、すなわちLook ( E , v ) = 0 \operatorname{Look}(E,v)=0 Look ( E , v ) = 0 であること、i ′ ≠ v i'\ne v i ′ = v であること、およびv i ′ v_{i'} v i ′ がt t t に自由に現れかつv v v_v v v がz z z に自由に現れることは、補題 7.2 (4) によりP A PA P A の内部での場合分けとして読むことができる。三条件がすべて成り立つときはj = 1 + y + t + E + v + i ′ j=1+y+t+E+v+i' j = 1 + y + t + E + v + i ′ 、それ以外のときはj = i ′ j=i' j = i ′ であり、いずれの場合も子へ渡る環境はE ′ = Cons ( pair ( i ′ , j ) , E ) E'=\operatorname{Cons}(\operatorname{pair}(i',j),E) E ′ = Cons ( pair ( i ′ , j ) , E ) 、値はAllRaw ( j , Walk ( z , v , t , E ′ ) ) \operatorname{AllRaw}\bigl(j,\operatorname{Walk}(z,v,t,E')\bigr) AllRaw ( j , Walk ( z , v , t , E ′ ) ) である。以下の議論は、どちらの場合であるかによらない。z < y z<y z < y であり、Formula ( y ) \operatorname{Formula}(y) Formula ( y ) からFormula ( z ) \operatorname{Formula}(z) Formula ( z ) が従うので、最小性によりΦ ( z , E ′ ) \Phi(z,E') Φ ( z , E ′ ) とΛ ( z , E ′ ) \Lambda(z,E') Λ ( z , E ′ ) が成り立つ。Formula \operatorname{Formula} Formula のAllRaw \operatorname{AllRaw} AllRaw の節は本体についての条件だけであるからΦ ( y , E ) \Phi(y,E) Φ ( y , E ) を得る。
Λ ( y , E ) \Lambda(y,E) Λ ( y , E ) を示す。Free \operatorname{Free} Free のAllRaw \operatorname{AllRaw} AllRaw の節により、Free ( AllRaw ( j , Walk ( z , v , t , E ′ ) ) , k ) \operatorname{Free}\bigl(\operatorname{AllRaw}(j,\operatorname{Walk}(z,v,t,E')),k\bigr) Free ( AllRaw ( j , Walk ( z , v , t , E ′ )) , k ) はk ≠ j k\ne j k = j かつFree ( Walk ( z , v , t , E ′ ) , k ) \operatorname{Free}(\operatorname{Walk}(z,v,t,E'),k) Free ( Walk ( z , v , t , E ′ ) , k ) と同値である。Λ ( z , E ′ ) \Lambda(z,E') Λ ( z , E ′ ) が与える三つの選言肢を順に見る。
Ren ( E ′ , k ) \operatorname{Ren}(E',k) Ren ( E ′ , k ) の場合。Look ( E ′ , k ′ ) = S k \operatorname{Look}(E',k')=Sk Look ( E ′ , k ′ ) = S k を満たすk ′ k' k ′ を取る。補題 7.1 (2) により、k ′ = i ′ k'=i' k ′ = i ′ ならばLook ( E ′ , k ′ ) = S j \operatorname{Look}(E',k')=Sj Look ( E ′ , k ′ ) = S j であるからk = j k=j k = j となり、k ≠ j k\ne j k = j に反する。k ′ ≠ i ′ k'\ne i' k ′ = i ′ ならばLook ( E , k ′ ) = Look ( E ′ , k ′ ) = S k \operatorname{Look}(E,k')=\operatorname{Look}(E',k')=Sk Look ( E , k ′ ) = Look ( E ′ , k ′ ) = S k であるからRen ( E , k ) \operatorname{Ren}(E,k) Ren ( E , k ) が成り立つ。
Free ( z , k ) ∧ k ≠ v ∧ Look ( E ′ , k ) = 0 \operatorname{Free}(z,k)\land k\ne v\land\operatorname{Look}(E',k)=0 Free ( z , k ) ∧ k = v ∧ Look ( E ′ , k ) = 0 の場合。補題 7.1 (2) により、k = i ′ k=i' k = i ′ ならばLook ( E ′ , k ) = S j \operatorname{Look}(E',k)=Sj Look ( E ′ , k ) = S j となり (Q1) に反するのでk ≠ i ′ k\ne i' k = i ′ であり、Look ( E , k ) = Look ( E ′ , k ) = 0 \operatorname{Look}(E,k)=\operatorname{Look}(E',k)=0 Look ( E , k ) = Look ( E ′ , k ) = 0 である。Free ( z , k ) \operatorname{Free}(z,k) Free ( z , k ) とk ≠ i ′ k\ne i' k = i ′ からFree ( y , k ) \operatorname{Free}(y,k) Free ( y , k ) が従うので、第2の選言肢を得る。
Free ( t , k ) ∧ Free ( z , v ) ∧ Look ( E ′ , v ) = 0 \operatorname{Free}(t,k)\land\operatorname{Free}(z,v)\land\operatorname{Look}(E',v)=0 Free ( t , k ) ∧ Free ( z , v ) ∧ Look ( E ′ , v ) = 0 の場合。同じ理由でv ≠ i ′ v\ne i' v = i ′ かつLook ( E , v ) = 0 \operatorname{Look}(E,v)=0 Look ( E , v ) = 0 であり、Free ( z , v ) \operatorname{Free}(z,v) Free ( z , v ) とv ≠ i ′ v\ne i' v = i ′ からFree ( y , v ) \operatorname{Free}(y,v) Free ( y , v ) が従うので、第3の選言肢を得る。
以上のどの場合にも反例が無いのでΞ 1 ( y ) \Xi_1(y) Ξ 1 ( y ) が成り立つ。
E : = 0 E:=0 E := 0 と取る。補題 7.1 (1) によりLook ( 0 , k ′ ) = 0 \operatorname{Look}(0,k')=0 Look ( 0 , k ′ ) = 0 であり、(Q1) により0 ≠ S k 0\ne Sk 0 = S k であるから、どのk k k についてもRen ( 0 , k ) \operatorname{Ren}(0,k) Ren ( 0 , k ) は成り立たず、どのk k k についてもLook ( 0 , k ) = 0 \operatorname{Look}(0,k)=0 Look ( 0 , k ) = 0 である。Formula ( a ) \operatorname{Formula}(a) Formula ( a ) とTerm ( t ) \operatorname{Term}(t) Term ( t ) によりSubTermCode ( a , i , t ) = WalkFormula ( a , i , t , 0 ) \operatorname{SubTermCode}(a,i,t)=\operatorname{WalkFormula}(a,i,t,0) SubTermCode ( a , i , t ) = WalkFormula ( a , i , t , 0 ) であるから、v : = i v:=i v := i 、y : = a y:=a y := a と取ると、Φ ( a , 0 ) \Phi(a,0) Φ ( a , 0 ) がFormula ( SubTermCode ( a , i , t ) ) \operatorname{Formula}\bigl(\operatorname{SubTermCode}(a,i,t)\bigr) Formula ( SubTermCode ( a , i , t ) ) を与え、Λ ( a , 0 ) \Lambda(a,0) Λ ( a , 0 ) が
Free ( SubTermCode ( a , i , t ) , k ) → ( k ≠ i ∧ Free ( a , k ) ) ∨ ( Free ( a , i ) ∧ Free ( t , k ) ) \operatorname{Free}\bigl(\operatorname{SubTermCode}(a,i,t),k\bigr)
\to
\bigl(k\ne i\land\operatorname{Free}(a,k)\bigr)
\lor\bigl(\operatorname{Free}(a,i)\land\operatorname{Free}(t,k)\bigr) Free ( SubTermCode ( a , i , t ) , k ) → ( k = i ∧ Free ( a , k ) ) ∨ ( Free ( a , i ) ∧ Free ( t , k ) ) を与える。第3の選言肢に現れるFree ( a , i ) \operatorname{Free}(a,i) Free ( a , i ) はFree ( y , v ) \operatorname{Free}(y,v) Free ( y , v ) のv : = i v:=i v := i の場合である。▨
定義 7.5 (固定論理式への数詞代入符号). χ \chi χ を、自由変数がv i 1 , … , v i k v_{i_1},\ldots,v_{i_k} v i 1 , … , v i k に含まれる固定したL A L_A L A 論理式とする。§E16.18 定義 3.3 の数詞代入 API を反復した
sub χ ( x 1 , … , x k ) = Sub ( ⋯ Sub ( ⌜ χ ⌝ , i 1 , x 1 ) ⋯ , i k , x k ) \operatorname{sub}_{\chi}(x_1,\ldots,x_k)
=\operatorname{Sub}\bigl(
\cdots\operatorname{Sub}(\ulcorner\chi\urcorner,i_1,x_1)\cdots,
i_k,x_k\bigr) sub χ ( x 1 , … , x k ) = Sub ( ⋯ Sub ( ┌ χ ┐ , i 1 , x 1 ) ⋯ , i k , x k ) を 数詞代入符号関数 (numeral-substitution code function ) という。この関数は原始再帰全関数である。この値を記法 の記法で書き、
⌜ χ ( x ˙ 1 , … , x ˙ k ) ⌝ \ulcorner\chi(\dot x_1,\ldots,\dot x_k)\urcorner ┌ χ ( x ˙ 1 , … , x ˙ k ) ┐ と表す。これは自由変数x 1 , … , x k x_1,\ldots,x_k x 1 , … , x k をもつL A L_A L A 論理式の中で、一つの値を表す略記として用いる。k = 0 k=0 k = 0 のときは固定した文の符号であり、⌜ χ ⌝ \ulcorner\chi\urcorner ┌ χ ┐ と書く。
記号x ˙ j \dot x_j x ˙ j に付した点は、外側の変数x j x_j x j の値を数詞へ変えてから符号へ代入することを表す。⌜ χ ( x 1 , … , x k ) ⌝ \ulcorner\chi(x_1,\ldots,x_k)\urcorner ┌ χ ( x 1 , … , x k ) ┐ という書き方は用いない。前者はx j x_j x j を自由変数としてもつ算術式の中の略記であり、後者は変数記号を含む固定した符号であって、両者は異なる。
例 7.6 (自由変数を残した長さの主張). §E16.19 定理 4.5 は、固定した標準自然数a , b a,b a , b ごとに
Q ⊢ ∀ z ( Len Q ( Cons ( a , Cons ( b , 0 ) ) ‾ , z ) ↔ z = 2 ‾ ) Q\vdash\forall z\,\bigl(\operatorname{Len}_Q(\overline{\operatorname{Cons}(a,\operatorname{Cons}(b,0))},z)\leftrightarrow z=\overline2\bigr) Q ⊢ ∀ z ( Len Q ( Cons ( a , Cons ( b , 0 )) , z ) ↔ z = 2 ) を与える。これはa , b a,b a , b ごとに長さの異なる別々の有限導出である。これに対し補題 5.2 (3) は、a , b a,b a , b を自由変数として残した一つの文
P A ⊢ ∀ a ∀ b Len ( Cons ( a , Cons ( b , 0 ) ) ) = S S 0 PA\vdash\forall a\,\forall b\ \operatorname{Len}\bigl(\operatorname{Cons}(a,\operatorname{Cons}(b,0))\bigr)=SS0 P A ⊢ ∀ a ∀ b Len ( Cons ( a , Cons ( b , 0 )) ) = S S 0 を与える。ここでa a a とb b b は対象言語の自由変数であり、全称量化子は対象言語の中にある。二つの主張の違いはこの点にある。§E16.19 注意 8.2 が述べるとおり、標準入力ごとの無限個のメタ理論上の結論から、一つの対象言語の文が従うわけではない。
8 演習
問題 8.1. 次の問いに答えよ。
補題 2.1 で用いた論理式σ a , b \sigma_{a,b} σ a , b が、a a a とb b b について対称な形をしていないにもかかわらずd ∣ b d\mid b d ∣ b が従う理由を、証明のどの構成が担っているかを指摘して述べよ。
補題 3.2 の帰納法の主張が、法の積P P P を存在量化された証人として持ち回る形になっている理由を述べよ。
B S l B_{Sl} B S l がi < l i<l i < l について正しい剰余をもつことは、どの二つの事実の合成から従うか。
At Q 0 \operatorname{At}^{0}_Q At Q 0 が与える対象とEntry Q 0 \operatorname{Entry}^{0}_Q Entry Q 0 が与える対象の違いを述べよ。
補題 5.2 (4) の存在の証明で、第1表と同じ前向きの構成を第2表へ流用することができない理由を述べよ。
上流の記事が原始再帰性を証明していれば、その関数の構造再帰方程式をP A PA P A の定理として直ちに用いることができるか。用いることができないならば、何を別に証明する必要があるかを述べよ。
解答 (確認問題の解答).
d ∣ b d\mid b d ∣ b の証明では、s : = A + B s:=A+B s := A + B を用いてU + A = b × s U+A=b\times s U + A = b × s とV + B = a × s V+B=a\times s V + B = a × s を満たす自然数U , V U,V U , V を取り直し、r + b × V = a × U r+b\times V=a\times U r + b × V = a × U というσ a , b \sigma_{a,b} σ a , b の要求する形へ書き換えている。この取り直しが、b b b の倍数とa a a の倍数の役割を入れ替える働きをしており、σ a , b \sigma_{a,b} σ a , b の非対称性を補っている。
可変長k k k の族の積m 0 × ⋯ × m k − 1 m_0\times\cdots\times m_{k-1} m 0 × ⋯ × m k − 1 はL A L_A L A の項ではなく、既知の関数でもない。従って主張の中で名指すことができず、帰納法の各段で存在を主張する証人として持ち回るほかない。
M ( i , C ) ∣ P l M(i,C)\mid P_l M ( i , C ) ∣ P l とB S l ≡ B l ( m o d P l ) B_{Sl}\equiv B_l\ (\mathrm{mod}\ P_l) B S l ≡ B l ( mod P l ) から補題 1.5 (3) によってB S l ≡ B l ( m o d M ( i , C ) ) B_{Sl}\equiv B_l\ (\mathrm{mod}\ M(i,C)) B S l ≡ B l ( mod M ( i , C )) を得ること、および帰納法の仮定が与えるB l ≡ y i ( m o d M ( i , C ) ) B_l\equiv y_i\ (\mathrm{mod}\ M(i,C)) B l ≡ y i ( mod M ( i , C )) に推移律を用いることの二つである。
At Q 0 ( s , i , t ) \operatorname{At}^{0}_Q(s,i,t) At Q 0 ( s , i , t ) のt t t は、s s s からDec Q \operatorname{Dec}_Q Dec Q をi i i 回たどった反復尾である。第i i i 成分はその反復尾の先頭であり、Entry Q 0 ( s , i , a ) \operatorname{Entry}^{0}_Q(s,i,a) Entry Q 0 ( s , i , a ) が与える。
第2表はe n = t e_n=t e n = t から始めてe j = Cons ( a j , e S j ) e_j=\operatorname{Cons}(a_j,e_{Sj}) e j = Cons ( a j , e S j ) と後ろ向きに定まるので、添字の小さいほうから順に値が決まらない。そこで、末尾から数えた段数l l l に関する帰納法を別に立て、各段で表を作り直している。
用いることができない。上流の原始再帰性の証明は、還元後の通常の原始再帰の方程式だけを対象言語の再帰として用いており、還元した関数が元の構造再帰方程式を満たすことはメタ理論の帰納法で示している。補題 6.5 のように、還元が定義方程式を満たすことをP A PA P A の内部で証明する補題を別に立てる必要がある。
▨
9 境界と次の段階
本記事が証明したのは、P A PA P A の内部で有限列符号と原始再帰関数を一様に扱うことができるということである。用いた道具は、除法定理、最小数原理、Bézout の等式、二つの法に対する中国剰余定理、および有限族の表符号化であり、いずれも帰納法公理スキーマを必要とする。§E16.15 定義 2.1 の七公理には帰納法公理が含まれないので、本記事の主張はQ Q Q を含むだけの理論へは及ばない。
有限列の符号は§E16.17 注意 4.4 の方針に従い、右入れ子の Cons 符号と§E16.19 定義 4.1 の五式だけを用いた。有限列の符号を素因数分解符号や Gödel のβ \beta β 関数へ取り替えると、構文符号と計算列の符号が一致しなくなる。ただし、§3 で可変長の族を一括して扱うために用いた補助の表符号は、上流が固定したM ( i , C ) = S ( ( S i ) × C ) M(i,C)=S((Si)\times C) M ( i , C ) = S (( S i ) × C ) を法とする剰余Cell Q \operatorname{Cell}_Q Cell Q であり、これはβ \beta β 関数と同じ形の式である。本記事がβ \beta β 関数を用いないというのは、有限列の符号としては用いないという意味であって、可変長の復号履歴を保持する補助の道具としては、上流が固定したこの式をそのまま用いている。
本記事は、特定の理論T T T の公理列挙、証明列、証明述語、および証明可能性述語を扱っていない。これらを対象とする一様な内部主張、すなわち証明列の合成がP A PA P A の内部で保存されることと、証明可能性が対象理論の内部でもう一段証明可能になることは、本記事が用意した道具のうえで後続の記事が扱う。また、非標準モデルにおいてP A PA P A の内部の「有限列」が外側の有限列に対応するとは限らないことも、本記事は主張していない。§E16.15 定理 3.2 により標準モデルでは対応するが、非標準モデルでは長さが非標準の対象が現れる。