初めに

ラムダ計算の β-簡約から得られる形式理論 λβ に対し、 η-簡約に関する公理 λx.Mx=M(xFV(M)) を加えたものを λβη とする。 このとき、 いわゆる外延性 (ZΛλβηMZ=NZ)λβηM=N が成り立つことが知られている。 一方で、 この Z を閉じたラムダ項のみに制限した命題 (ZΛλβηMZ=NZ)λβηM=N は一般には成り立たない。 この反例を構成する。

以下、 α-同値なラムダ項は同一視する。 また、 hh はそれぞれ 1 回および複数回の冠頭簡約を表す。 なお、 ここでは冠頭簡約とは、 (λx.M1)M2M3MnhM2[x:=M1]M3Mn(n2) という形の β-簡約を指す。 これは一般に言われる冠頭簡約とは少し異なるが、 ここでは Plotkin の論文での用法に合わせた。

以下のコンビネータの記号を用いる。 なお、 ここではコンビネータと閉じたラムダ項は同じ意味で用いる。 I λx.x K λxy.x S λxyz.xz(yz) Y (λfx.x(ffx))(λfx.x(ffx)) Σ λufx.f(ufx) また、 自然数 n に対して、 その Church 数を nλfx.f(f((fnx))) と表す。 ラムダ項 M の Gödel 数 は #M とし、 M の Gödel 数の Church 数を M#M で表す。

ラムダ項全体は Λ で表し、 閉じたラムダ項全体は Λ で表す。

Gödel 数の逆関数

Gödel 数をとる操作の逆を行うコンビネータ E を構成する。 構成には再帰関数のラムダ項による表現可能性の議論が必要になるが、 ここでは詳しく述べない。

定義 1.

ラムダ項から成る集合 󰒘 に対し、 ラムダ項から成る集合 Comb(󰒘) を以下によって再帰的に定義する。 M󰒘 MComb(󰒘) P,QComb(󰒘) PQComb(󰒘) このとき、 Comb(󰒘) の元を 󰒘結合 (combination) という。 󰒘={M1,,Mn} のときは、 Comb(󰒘) を単に Comb{M1,,Mn} と書く。

補題 2.

あるコンビネータ X であって、 MΛMComb{X}MβM を満たすものが存在する。

証明.

XXλx.xKSK によって定義する。 このとき、 XXX β K X(XX) β S が成り立つ。 さて、 任意の閉じたラムダ項 M に対し、 KS の結合 N が存在して NβM が成り立つ。 したがって、 N に含まれる KS をそれぞれ XXXX(XX) で置き換えたものを M とおけば、 MComb{X} であって MβM が成り立つ。

定義 3.

X の結合 M に対し、 自然数 $M を以下によって再帰的に定義する。 $X = 0 $(PQ) = pair($P,$Q) ここで、 pair は pair: 󱀍×󱀍 󱀍 (m,n) (m+n)(m+n+1) 2+n+1 によって定義される全単射な再帰関数である。

補題 4.

閉じたラムダ項 F であって、 MComb{X}F$M=βM を満たすものが存在する。

証明.

まず、 上の定義における関数 pair に対し、 任意の自然数 m,n について fst(pair(m,n))=msnd(pair(m,n))=n を満たす関数 fst,snd は再帰的である。 したがって、 それを表現する閉じたラムダ項 fst,snd が存在する。 さらに、 zeroλu.u(λv.λxy.y)(λxy.x) と定義する。 これは与えられた Church 数が 0 かどうかを判定するラムダ項である。 これと上で定義した fst,snd を用いて、 FY(λf.λu.zerouX(f(fstu)(f(sndu)))) とおく。 この F が補題の条件を満たしていることを示す。 証明は M に関する帰納法による。

MX のときは、 F$X F0 =β zero0X(F(fst0)(F(snd0))) =β X であるから、 補題は成り立つ。

MPQ のときは、 Upair($P,$Q) とおくと Uβ0 だから、 帰納法の仮定を用いて、 F$(PQ) FU =β zeroUX(F(fstU)(F(sndU))) =β F(fstU)(F(sndU)) =β Ffst(pair($P,$Q))(Fsnd(pair($P,$Q))) F$P(F$Q) =β PQ を得る。 したがって、 この場合も補題は成り立つ。

補題 5.

閉じたラムダ項 G であって、 MΛGM=β$M を満たすものが存在する。 なお、 M補題 2 で定義されたものである。

証明.

補題 2 の証明から、 閉じたラムダ項 M に対し、 MM から再帰的に決定できる。 したがって、 g:#M$M によって定義される部分関数は再帰的である。 これを表現するラムダ項を G とおけば、 GM=βg(#M)$M が成り立つ。

定理 6.

コンビネータ E であって、 MΛEM=βM を満たすものが存在する。

証明.

補題 4F補題 5G を用いて、 Eλu.uF(Gu) とおけば良い。 実際、 閉じたラムダ項 M に対して、 EM=βF(GM)=βF$M=βM=βM が成り立つ。

標準簡約列

定義 7.

β-簡約から成る標準簡約列 (standard reduction sequence) を、 以下によって再帰的に定義する。

  1. x は単独で長さ 1 の標準簡約列である。
  2. 簡約列 M1MmN1Nn がそれぞれ長さ m,n の標準簡約列ならば、 M1N1MmN1MmNn も長さ m+n の標準簡約列である。
  3. 簡約列 M1Mm が長さ m の標準簡約列ならば、 λx.M1λx.Mm も長さ m の標準簡約列である。
  4. 簡約列 M1MmN1Nn がそれぞれ長さ m,n の標準簡約列であるとする。 MmM1,,Mm の中で最初のラムダ抽象項であり、 あるラムダ項 N に対して MmNhN1 ならば、 M1NMmNN1Nn は長さ m+n の標準簡約列である。

また、 M から N への標準簡約列が存在することを MsN で表す。

補題 8.

簡約列 M1Mm が標準簡約列であり、 Mm はこの簡約列に含まれるラムダ項の中で最初のラムダ抽象項であるとする。 このとき、 この簡約列を構成する全ての簡約は冠頭簡約である。 すなわち、 M1hhMm が成り立つ。

証明.

m に関する帰納法による。 m=1 ならば明らかなので、 m2 とする。 MmM1,,Mm の中の唯一のラムダ抽象項なので、 標準簡約列 σ:M1Mm が上の定義の 4 番目以外から作られることはない。 すると σ は、 σ:P1QPpQQ1Qq という形であり、 τ: P1Pp ρ: Q1Qq は標準簡約列である。 また、 PpQhQ1 が成り立つ。 ここで p<m および q<m であるから、 帰納法の仮定より τρ を構成する全ての簡約は冠頭簡約である。 したがって、 P1QhhPpQhQ1hhQq であり、 σ を構成する全ての簡約も冠頭簡約である。

定理 9 [標準化定理 (standardisation theorem)].

ラムダ項 M,N に対し、 MβN ならば MsN である。

証明.

証明は Barendregt の 11 章などを参照。

反例の構成

以上の準備のもとで、 初めにに述べた反例を構成する。 この構成は Plotkin によるものである。 以下、 H󰎘 λh.λguvw.hgu(hg(Σu)(g(Σu))wv)(Eu) H YH󰎘 G󰎘 λg.λu.Hg(Σu)(g(Σu))(E(Σu))(gu) G YG󰎘 F HG M F0(G0) N λx.MI とおく。 この M,N が存在を示したい反例になっているのだが、 それを証明するのにいくつか補題を用意する。

補題 10.

任意のラムダ項 U,V,W に対し、 FUVWhFU(F(ΣU)(G(ΣU))WV)(EU) が成り立つ。

証明.

計算すれば、 FUVW YH󰎘GUVW h H󰎘(YH󰎘)GUVW H󰎘HGUVW (λh.λguvw.hgu(hg(Σu)(g(Σu))wv)(Eu))HGUVW h HGU((HG)(ΣU)(G(ΣU))WV)(EU) FU(F(ΣU)(G(ΣU))WV)(EU) となり、 示された。

補題 11.

任意のラムダ項 U に対し、 GU=βF(ΣU)(G(ΣU))(E(ΣU))(GU) が成り立つ。

証明.

計算すれば、 GU YG󰎘U =β G󰎘(YG󰎘)U G󰎘GU =β HG(ΣU)(G(ΣU))(E(ΣU))(GU) F(ΣU)(G(ΣU))(E(ΣU))(GU) となり、 示された。

補題 12.

任意の自然数 m,n に対し、 Fn(Gn)(En)=βFn(Gn)(Em+n) が成り立つ。

証明.

m に関する帰納法による。 m=0 のときは明らかなので、 m1 とする。 帰納法の仮定は、 任意の自然数 n に対して、 Fn(Gn)(En)=βFn(Gn)(Em+n1) が成り立つことである。 これと補題 10補題 11 を用いれば、 Fn(Gn)(En) =β Fn(F(Σn)(G(Σn))(E(Σn))(Gn))(En) =β Fn(Fn+1(Gn+1)(En+1)(Gn))(En) =β Fn(Fn+1(Gn+1)(Em+n)(Gn))(En) =β Fn(Gn)(Em+n) と計算でき、 補題が示された。

補題 13.

任意の閉じたラムダ項 Z,Z󰎘 に対して、 MZ=βMZ󰎘 が成り立つ。

証明.

n=#Z,n󰎘=#Z󰎘 とおけば、 En=βZ,En󰎘=βZ󰎘 である。 したがって、 補題 12 を用いれば、 MZ =β F0(G0)(En) =β F0(G0)(E0) =β F0(G0)(En󰎘) =β MZ󰎘 となる。

補題 14.

ラムダ項 U,V,W,Z をとる。 長さ l の標準簡約列 FUVWZ があり、 yFV(V) かつ yFV(Z) を満たしているとする。 このとき、 長さ l 以下の標準簡約列 VV󰎘 であって、 yFV(V󰎘) を満たすものが存在する。

証明.

そうでないと仮定する。 このとき、 長さ l の標準簡約列 σ:FUVWZ が存在して、 yFV(V) かつ yFV(Z) を満たし、 さらに任意のラムダ項 V󰎘 に対し、 長さ l 以下の標準簡約列 VV󰎘yFV(V󰎘) を必ず満たす。 l はこのようなものの中で最小になるようにとる。

σ は標準簡約列の定義における 2 番目の形か 4 番目の形かのどちらかである。 これに応じて場合分けをする。

場合 1:σ が 4 番目の形であるとき。 このとき σ は、 σ:FUVW(λw.P)WQZ という形であり、 τ : FUVλw.P ρ : QZ はともに長さ l 未満の標準簡約列である。 また、 (λw.P)WhQ が成り立つ。

λw.Pτ に含まれるラムダ項の中で最初のラムダ抽象項なので、 補題 8 によって τ を構成する全ての簡約は冠頭簡約である。 したがって、 (λw.P)WhQ と合わせて FUVWhQ が成り立つ。 さらに、 (λw.P)Wτ に含まれるラムダ項の中で最初のラムダ抽象項だから、 補題 10 の証明で行った計算を見ることで、 QFU(F(ΣU)(G(ΣU))WV)(EU) が分かる。 これより、 ρ の最初のラムダ項 QFU󰔃V󰔃W の形であり、 ρ の長さを l󰎘 とすると l󰎘<l である。 したがって、 l の最小性から、 長さ l󰎘 以下の標準簡約列 π:F(ΣU)(G(ΣU))WVZ󰎘 が存在し、 yFV(Z󰎘) が成り立つ。 π は標準簡約列の定義における 2 番目か 4 番目の形であるが、 F(ΣU)(G(ΣU))W から始まる冠頭簡約列にはラムダ抽象項が含まれ得ないので、 τ は 2 番目の形でなければならない。 すなわち π は、 π:F(ΣU)(G(ΣU))WVAVAV󰎘 の形であり、 θ : F(ΣU)(G(ΣU))WA κ : VV󰎘 はともに長さが l󰎘 以下の標準簡約列である。 しかし、 yFV(Z󰎘)=FV(AV󰎘) より yFV(V󰎘) が成り立つから、 κ の存在は仮定に反し矛盾である。

場合 2:σ が 2 番目の形であるとき。 このとき σ は、 σ:FUVWZ󰎘WZ󰎘W󰎘 の形であり、 τ:FUVZ󰎘 は長さ l 以下の標準簡約列である。 また、 yFV(Z)=FV(Z󰎘W󰎘) より yFV(Z󰎘) を得る。

この τ は標準簡約列の定義の 2 番目か 4 番目の形であるが、 仮に 2 番目の形であるとすると、 τ:FUVAVAV󰎘 の形となり、 VV󰎘 という標準簡約列が存在することになるが、 yFV(Z󰎘)=FV(AV󰎘) より yFV(V󰎘) なので矛盾である。

これにより、 τ は 4 番目の形である。 すなわち τ は、 τ:FUV(λv.P)VQZ󰎘 という形であり、 π:QZ󰎘 は長さ l 未満の標準簡約列である。 また、 補題 8 により FUVhQ が成り立つ。 これより、 補題 10 の証明の計算を見れば、 Qλw.FU(F(ΣU)(G(ΣU))wV)(EU) が分かる。 したがって、 π は標準簡約列の 3 番目の形でなければならないから、 ρ:FU(F(ΣU)(G(ΣU))wV)(EU)Z󰎙 という標準簡約列がある。 ρ の長さは l 未満で yFV(Z󰎙) であるから、 場合 1 の ρ に対して行った議論と同様の議論をすれば、 矛盾が導かれる。

補題 15.

ラムダ項 U,V,W,Z をとる。 標準簡約列 FUVWZ があり、 yFV(W) かつ yFV(Z) を満たしているとする。 このとき、 あるラムダ項 W󰎘 であって、 WβW󰎘 かつ W󰎘FV(W󰎘) を満たすものが存在する。

証明.

そうでないと仮定する。 このとき、 長さ l の標準簡約列 σ:FUVWZ が存在して、 yFV(W) かつ yFV(Z) を満たし、 さらに任意のラムダ項 W󰎘 に対し、 WβW󰎘 ならば yFV(W󰎘) が成り立つ。 l はこのようなものの中で最小になるようにとる。

σ が標準簡約列の定義における 2 番目の形か 4 番目の形のどちらであるかに応じて場合分けをする。

場合 1:σ が 2 番目の形であるとき。 このとき σ は、 σ:FUVWPWPW󰎘 の形であり、 WW󰎘 という標準簡約列が存在する。 これより WβW󰎘 であり、 yFV(Z)=FV(PW󰎘) より yFV(W󰎘) であるから、 矛盾である。

場合 2:σ が 4 番目の形であるとき。 このとき σ は、 σ:FUVW(λw.P)WQZ の形であり、 τ:QZ は長さ l 未満の標準簡約列である。 τ の長さを l󰎘 とする。 また、 補題 8 により FUVWhQ が成り立つから、 QFU(F(ΣU)(G(ΣG))WV)(EU) が分かる。 yFV(F(ΣU)(G(ΣG))WV) かつ yFV(Z) だから、 補題 14 より、 長さ l󰎘 以下の標準簡約列 ρ:F(ΣU)(G(ΣG))WVZ󰎘 が存在して、 yFV(Z󰎘) である。 ここで F(ΣU)(G(ΣG))W から始まる冠頭簡約列にはラムダ抽象項が含まれ得ないので、 ρ は標準簡約列の定義の 2 番目の形でなければならない。 すなわち ρ は、 ρ:F(ΣU)(G(ΣG))WVZ󰎙VZ󰎙V󰎘 の形であり、 π:F(ΣU)(G(ΣG))WZ󰎙 は長さ l󰎘 以下の標準簡約列である。 また、 yFV(Z󰎘)=FV(Z󰎙V󰎙) より yFV(Z󰎙) である。 したがって、 l󰎘<l だから、 l の最小性より、 ある W󰎘 が存在して WβW かつ yFV(W󰎘) となるが、 これは仮定に反し矛盾である。

補題 16.

変項 x,y に対し、 xyMxβηMy が成り立つ。

証明.

xy かつ Mx=βηMy と仮定する。 Church–Rosser の定理より、 あるラムダ項 Z󰎘 が存在して、 MxβηZ󰎘 および MyβηZ󰎘 が成り立つ。 また、 η-簡約は延期できるので、 あるラムダ項 Z が存在して、 MyβZZ󰎘 が成り立つ。 標準化定理より、 MysZ である。

M は閉じているので yFV(Mx) であり、 FV(Mx)FV(Z󰎘)=FV(Z) が成り立つから、 yFV(Z) でもある。 また、 明らかに yFV(y) である。 さらに、 MyF0(G0)y であるから、 これは補題 15 が使える形である。 したがって、 補題 15 により、 あるラムダ項 W󰎘 が存在して、 yβW󰎘 かつ yFV(W󰎘) が成り立つ。 y は変項なので、 W󰎘y でなければならず、 これより yFV(y) となり矛盾である。

定理 17.

上で定義した M,N は、 (ZΛMZ=βηNZ)M=βηN を満たさない。

証明.

任意に閉じたラムダ項 Z をとると、 I も閉じたラムダ項だから、 補題 13 によって MZ=βMI である。 一方、 N の定義により、 NZ=βMI である。 したがって、 MZ=βηNZ を得る。

M=βηN と仮定する。 任意の変項 x,y に対し、 Mx=βηNx および Mx=βηNy である。 さらに N の定義から、 Nx=βηMI および Ny=βηMI も成り立つ。 以上により Mx=βηMy を得るが、 これは補題 16 に反する。 したがって、 MβηN である。

補足

前節で示したように、 閉じたラムダ項に対してのみの外延性 (ZΛMZ=βηNZ)M=βηN は一般には成り立たないが、 MN が特定の条件を満たしている範囲であれば成り立つ。 その条件の 1 つとして、 以下のものが知られている。

定義 18.

ラムダ項 M について、 NΛM󰎘ΛMβηM󰎘ANDNSub(M󰎘) が成り立つとき、 Mβη-普遍生成子 (universal generator) という。 なお、 Sub(M󰎘)M󰎘 の部分項全体の集合を表す。

定理 19.

ラムダ項 M,N のうち、 どちらか一方が βη-普遍生成子でなければ、 (ZΛMZ=βηNZ)M=βηN が成り立つ。

証明.

証明は Barendregt の 17 章などを参照。

参考文献

  1. H. P. Barendregt (1984) 『The Lambda Calculus』 North Holland
  2. G. D. Plotkin (1974) 「The λ-calculus is ω-incomplete」 『Journal of Symbolic Logic』 39:313–317