1 二つの形の帰納法
自然数についての帰納法には、直前の場合だけを仮定する形と、それより小さいすべての場合を仮定する形があります。§A3 集合と論理では1から始まる自然数についてこの二つを扱い、前者から後者が従うことを示しました(§A3.10 定理 1.1と§A3.10 定理 3.1)。本記事では0を含むN≥0を対象とするので、基底を0とする形が最小数原理から従うことを先に確かめ、続いて二つの形が原理として同じ強さをもつことを示します。
命題 1.1.Pを自然数についての述語とする。P(0)が真であり、かつすべてのn∈N≥0についてP(n)⇒P(n+1)が真であるならば、すべてのn∈N≥0についてP(n)が真である。
証明.S={n∈N≥0:P(n) が偽}とおき、S=∅と仮定する。最小数原理によりSは最小元n0をもつ。P(0)は真であるからn0=0であり、n0=m+1を満たすm∈N≥0が存在する。m<n0でありn0はSの最小元であるからm∈/S、すなわちP(m)は真である。仮定した含意P(m)⇒P(m+1)からP(n0)が真になるが、これはn0∈Sに矛盾する。したがってS=∅であり、すべてのn∈N≥0についてP(n)が真である。▨
小さいすべての場合を仮定する形は、この形と原理として同じ強さをもちます。
証明.(1)⇒(2)を示す。述語Pが累積帰納法の仮定を満たすとする。述語Qを「nより小さいすべてのmについてP(m)が真である」と定める。0より小さい自然数は存在しないので、Q(0)は空虚に真である。次にQ(n)を仮定する。Q(n)は「nより小さいすべてのmでP(m)」であり、Pについての仮定からただちにP(n)が従う。したがってn+1より小さいすべてのm、すなわちm<nであるmとm=nの両方についてP(m)が真であり、Q(n+1)が成り立つ。(1)により、すべてのnについてQ(n)が真である。任意のnに対してQ(n+1)を用いればP(n)が得られる。
(2)⇒(1)を示す。述語PがP(0)を満たし、かつすべてのnでP(n)⇒P(n+1)を満たすとする。nを任意にとり、nより小さいすべてのmについてP(m)が真であると仮定する。n=0のときは、仮定によらずP(0)が真である。n≥1のときはn=k+1となる非負整数kがあり、k<nなのでP(k)が真であり、含意P(k)⇒P(k+1)からP(n)=P(k+1)が真である。したがってPは累積帰納法の仮定を満たし、(2)からすべてのnについてP(n)が真である。▨
命題 1.1と合わせると、累積帰納法もN≥0について成り立ちます。二つの原理は、証明することができる主張の範囲では違いがありません。違いは、帰納段階で使うことができる仮定の量と、基底段階を別に書くかどうかにあります。
2 整礎な関係と整礎帰納法
累積帰納法は、反例全体が空でないと仮定し、その最小元nをとることによって最小数原理から直接導くこともできます。nより小さい自然数は反例でないため、それらについての帰納法の仮定からP(n)が従い、nが反例であることに矛盾します。この論法の核である「空でない部分集合が下方に極小な元をもつ」という性質を関係の条件として取り出すと、自然数以外の対象についても同じ論法を用いることができます。
定義 2.1 (整礎な関係). 集合A上の二項関係≺が整礎 (well-founded) であるとは、Aの空でないどの部分集合Sにも、次の意味の極小元 (minimal element) が存在することをいう。すなわち、あるx∈Sが存在して、y≺xを満たすy∈Sが一つも存在しない。
極小元は最小元ではありません。極小元は「自分より下にSの要素が無い」ことだけを要求し、Sのすべての要素と比較可能であることを要求しません。
例 2.2.
- N≥0上の関係m≺n⟺m<nは整礎である。空でない部分集合は最小数原理により最小元をもち、最小元は極小元である。
- 有限集合A上の関係≺は、x1≻x2≻⋯≻xk≻x1という形の巡回が存在しなければ整礎である。
- Z上の関係m≺n⟺m<nは整礎でない。部分集合S=Zは極小元をもたない。
- 正の有理数の全体Q>0上の関係x≺y⟺x<yは整礎でない。S=Q>0自身が極小元をもたない。
整礎な関係のもとでは、次の形で帰納法を用いることができます。
定理 2.3 (整礎帰納法).≺を集合A上の整礎な関係とし、PをAの要素についての述語とする。すべてのx∈Aについて
(y≺x を満たすすべての y∈A で P(y) が真)⇒P(x) が真が成り立つならば、Aのすべての要素xについてP(x)が真である。
証明.S={x∈A:P(x) が偽}とおき、S=∅と仮定する。≺が整礎であることから、Sには極小元x0が存在する。極小元の定義により、y≺x0を満たすyはSに属さない。すなわち、y≺x0を満たすすべてのy∈AについてP(y)が真である。仮定した含意をx=x0に適用するとP(x0)が真になるが、これはx0∈Sに矛盾する。したがってS=∅であり、すべてのx∈AについてP(x)が真である。▨
累積帰納法は、A=N≥0、≺を大小関係とした場合の整礎帰納法にほかなりません。整礎帰納法にも、累積帰納法と同じく基底段階は現れません。極小元xに対しては仮定が空虚に真になるので、P(x)を無条件に示すことが要求されます。
整礎性は、しばしば「無限に下がり続ける列が存在しない」という言い方でも説明されます。二つの述べ方の関係は、次のとおりです。
命題 2.4.≺が集合A上の整礎な関係ならば、すべてのn∈N≥0についてxn+1≺xnを満たすAの要素の列x0,x1,x2,…は存在しない。
証明. そのような列x0,x1,…が存在すると仮定し、S={xn:n∈N≥0}とおく。Sはx0を含むので空ではない。Sの任意の要素は、あるnについてxnと書くことができ、xn+1∈Sかつxn+1≺xnが成り立つ。したがってSのどの要素も極小元ではなく、Sは極小元をもたない。これは≺が整礎であることに矛盾する。▨
3 規則から生成される集合と構造的帰納法
文字列や木は、自然数の上に一列に並んでいません。これらを帰納法の対象にするには、対象そのものを有限個の規則から作り出す形で定義します。以下では、あらかじめ用意した集合Uの中で生成を行います。Uを用意するのは、生成される集合をUの部分集合として構成し、集合として存在することを確かめるためです。
定義 3.1 (生成される集合).Uを集合、BをUの部分集合とし、Fを写像の有限族とする。Fの各要素fは、ある正の整数kについてUkからUへの写像であるとし、このkをfの引数の個数 (arity) という。Bの要素を基底 (base element)、Fの要素を構成子 (constructor) という。Uの部分集合の列を
G0=B,Gn+1=Gn∪{f(x1,…,xk):f∈F, x1,…,xk∈Gn}によって定め、G=⋃n≥0Gnとおく。このGを、BとFが生成する集合 (generated set) という。Uの部分集合HがFについて閉じている (closed under the constructors) とは、f∈Fとx1,…,xk∈Hに対してつねにf(x1,…,xk)∈Hが成り立つことをいう。
生成する集合は、基底を含み構成子について閉じている集合のうち最小のものです。この最小性が、以下のすべての議論の根拠になります。
命題 3.2.GをBとFが生成する集合とする。このとき次が成り立つ。
- B⊆Gであり、GはFについて閉じている。
- Uの部分集合HがB⊆Hを満たしFについて閉じているならば、G⊆Hである。
証明. 定義からG0⊆G1⊆G2⊆⋯である。実際、Gn+1はGnとの合併として定められている。
(1)を示す。B=G0⊆Gである。f∈Fを引数の個数kの構成子とし、x1,…,xk∈Gとする。各iについてxi∈Gniとなるniを選び、n=max{n1,…,nk}とおく。引数は有限個なので最大値が存在し、列が増加することからすべてのiについてxi∈Gnである。したがってf(x1,…,xk)∈Gn+1⊆Gである。
(2)を示す。HをBを含みFについて閉じているUの部分集合とし、Gn⊆Hをnについて示す。n=0のときはG0=B⊆Hである。Gn⊆Hを仮定する。Gn+1の要素はGnの要素であるか、f∈Fとx1,…,xk∈Gnについてf(x1,…,xk)の形をしている。前者は仮定からHに属する。後者については、仮定からxi∈Hであり、HがFについて閉じているのでf(x1,…,xk)∈Hである。よってGn+1⊆Hが成り立ち、命題 1.1によりすべてのnについてGn⊆Hである。合併をとってG⊆Hを得る。▨
最小性から、生成する集合についての帰納法がただちに従います。
定理 3.3 (構造的帰納法).GをBとFが生成する集合とし、PをUの要素についての述語とする。次の二つが成り立つならば、Gのすべての要素xについてP(x)が真である。
- Bのすべての要素bについてP(b)が真である。
- 各構成子f∈F(引数の個数k)と、P(x1),…,P(xk)がすべて真であるようなx1,…,xk∈Gについて、P(f(x1,…,xk))が真である。
証明.S={x∈G:P(x) が真}とおく。条件 (a)からB⊆Sである。f∈Fとx1,…,xk∈Sをとると、S⊆Gよりxi∈Gであり、P(xi)はすべて真である。条件 (b)からP(f(x1,…,xk))が真であり、命題 3.2 (1)からf(x1,…,xk)∈Gなので、f(x1,…,xk)∈Sである。したがってSはBを含みFについて閉じているので、命題 3.2 (2)によりG⊆Sである。すなわちGのすべての要素xについてP(x)が真である。▨
構造的帰納法は、整礎帰納法の言い換えとしても読むことができます。そのために、各要素が何段目で現れたかを測る量を定めます。
定義 3.4 (構成の階数).GをBとFが生成する集合とする。x∈Gに対し、x∈Gnを満たす最小のnをxの階数 (rank) といい、rk(x)と書く。
x∈Gならばx∈Gnとなるnが存在し、そのようなnの全体は自然数の空でない集合なので、最小数原理により最小元が存在します。したがって階数はすべてのx∈Gに対して定まります。
命題 3.5.G上の関係x≺y⟺rk(x)<rk(y)は整礎である。
証明.SをGの空でない部分集合とする。集合{rk(x):x∈S}は自然数の空でない集合なので、最小数原理により最小元n0をもつ。rk(x0)=n0を満たすx0∈Sを一つとると、y∈Sに対してrk(y)≥n0=rk(x0)なので、y≺x0を満たすy∈Sは存在しない。よってx0はSの極小元である。▨
次の二つが、本記事で扱う生成された集合です。
例 3.7. 有限集合Σ(アルファベット)をとり、UをΣの要素からなる有限列の全体とする。B={ε}(εは長さ0の列、すなわち空文字列)とし、各a∈Σに対して構成子fa(w)=aw(列wの先頭にaを置いて得られる列)を与える。これらが生成する集合をΣ∗と書き、その要素をΣ上の文字列という。Gnは長さn以下の列の全体であり、Σ∗はU自身、すなわち有限列の全体に一致する。文字列wの階数はwの長さである。
例 3.8. 順序対ではない対象ℓを一つ選び、
U0={ℓ},Un+1=Un∪(Un×Un),U=n≥0⋃Unとおく。B={ℓ}とする。L,R∈Uならば、あるnについてL,R∈Unであるから、(L,R)∈Un+1⊆Uである。したがって、構成子をf:U×U→U、f(L,R)=(L,R)と定めることができる。この基底と構成子による生成段階Gnは、すべてのnでUnに等しい。したがって、これらが生成する集合をTと書くと、T=⋃n≥0Gn=Uである。その要素を二分木という。ℓを葉、(L,R)の形の二分木の最も外側の対を内部節点とよび、Lを左の部分木、Rを右の部分木という。二分木tの階数は、tの葉から最も外側の対までの対の入れ子の深さである。
4 再帰によって写像を定める
生成された集合の上では、値を「基底での値」と「構成子をどう反映するか」によって指定することができます。たとえば二分木tの葉の個数をλ(t)と書き、λ(ℓ)=1、λ((L,R))=λ(L)+λ(R)と定めたくなります。しかしこの書き方が写像を定めるためには、各要素の作り方が一通りに決まっていなければなりません。作り方が二通りあると、同じ要素に対して二つの値が指定されてしまいます。
定義 4.1 (自由に生成される).GがBとFから自由に生成される (freely generated) とは、次の三つが成り立つことをいう。
- 各構成子f∈FのGkへの制限は単射である。すなわち、x1,…,xkとy1,…,ykがGの要素でf(x1,…,xk)=f(y1,…,yk)ならば、すべてのiについてxi=yiである。
- 相異なる構成子f,g∈Fについて、Gの要素を引数とするfの値とgの値は一致しない。
- Bの要素は、Gの要素を引数とするどの構成子の値とも一致しない。
この三つは、「Gの各要素は、Bの要素であるか、ただ一つの構成子とただ一組の引数から作られるかのいずれか一方である」と言い換えることができる。
例 4.2.例 3.7のΣ∗は自由に生成されている。fa(w)=fa(w′)ならば先頭を除いてw=w′であり、a=bならばfa(w)とfb(w′)は先頭の文字が異なり、εは長さ0なのでどのfaの値とも一致しないからである。例 3.8のTも自由に生成されている。順序対が等しいことと成分がそれぞれ等しいことは同値であり、構成子は一つだけで、ℓは順序対でないからである。
自由に生成されていない例を挙げる。Uを記号aと+からなる有限列の全体、B={a}、構成子をg(s,t)=s+t(列s、記号+、列tをこの順に並べた列)とする。生成される集合Gは括弧を書かない加法の式の全体である。このとき列a+a+aは、s=a+a、t=aとしても、s=a、t=a+aとしても得られるので、定義 4.1 条件 (a)が破れている。
自由に生成されていないと、再帰的な等式によって写像は定められません。
定理 4.4.GがBとFから自由に生成されているとする。集合V、写像g:B→V、および各構成子f∈F(引数の個数k)に対する写像hf:Vk→Vが与えられたとき、
φ(b)=g(b)(b∈B),φ(f(x1,…,xk))=hf(φ(x1),…,φ(xk))(x1,…,xk∈G)をともに満たす写像φ:G→Vが、ただ一つ存在する。
証明.φとψがともに上の二つの等式を満たすとし、述語P(x)を「φ(x)=ψ(x)」と定めて定理 3.3を適用する。b∈Bについてはφ(b)=g(b)=ψ(b)である。f∈Fとx1,…,xk∈Gについてφ(xi)=ψ(xi)がすべて成り立つとすると、
φ(f(x1,…,xk))=hf(φ(x1),…,φ(xk))=hf(ψ(x1),…,ψ(xk))=ψ(f(x1,…,xk))である。構造的帰納法により、Gのすべての要素でφとψは一致する。したがって、上の二つの等式をともに満たす写像は高々一つである。
以下、G≤n={x∈G:rk(x)≤n}とおき、二つの等式をともに満たす写像を構成する。
証明.G0=Bであるから、rk(x)=0であることとx∈Bであることは同値である。rk(x)=n≥1とすると、x∈Gnかつx∈/Gn−1であり、Gnの定義からあるf∈Fとx1,…,xk∈Gn−1についてx=f(x1,…,xk)と書くことができる。Gの要素を引数とする表示が二つあれば、定義 4.1 条件 (b)から構成子が一致し、定義 4.1 条件 (a)から引数の組が一致するので、この表示はただ一組である。xi∈Gn−1よりrk(xi)≤n−1<n=rk(x)である。とくにxがG≤nに属せば、その表示の引数xiもまたG≤nに属する。▨
主張 4.4.2. すべてのn∈N≥0について、写像φn:G≤n→Vであって、Bの要素bについてφn(b)=g(b)を満たし、かつx=f(x1,…,xk)∈G≤n(f∈F、xi∈G)のときφn(x)=hf(φn(x1),…,φn(xk))を満たすものが、ただ一つ存在する。
証明.主張 4.4.1により引数xiはG≤nに属するので、二つ目の条件は意味をもつ。n=0のとき、G≤0=Bである。φ0=gと定めると一つ目の条件が成り立ち、定義 4.1 条件 (c)からBの要素は構成子の値として書くことができないので、二つ目の条件は空虚に成り立つ。逆に二つの条件を満たす写像はB上でgに一致するので、φ0は一つに定まる。
nについて主張を仮定し、φnをその一意な写像とする。写像φn+1:G≤n+1→Vを、rk(x)≤nのときφn+1(x)=φn(x)、rk(x)=n+1のとき、主張 4.4.1により与えられる一意な表示x=f(x1,…,xk)を用いてφn+1(x)=hf(φn(x1),…,φn(xk))と定める。同じ主張によりrk(xi)≤nなので右辺は定まっている。一つ目の条件はφnが満たしているので従う。二つ目の条件は、rk(x)≤nの場合はφnが満たしていることと主張 4.4.1から従い、rk(x)=n+1の場合は表示の一意性から定め方そのものである。ψ:G≤n+1→Vが二つの条件を満たすとすると、主張 4.4.1によりψのG≤nへの制限もnについて二つの条件を満たすので、nについての一意性からG≤n上でψ=φnである。rk(x)=n+1のxについては、二つ目の条件と表示の一意性からψ(x)=hf(ψ(x1),…,ψ(xk))=hf(φn(x1),…,φn(xk))=φn+1(x)である。よってn+1についても主張が成り立ち、命題 1.1からすべてのn∈N≥0について主張が成り立つ。▨
x∈Gに対してφ(x)=φrk(x)(x)と定める。m≤nのとき、φnのG≤mへの制限は主張 4.4.1により主張 4.4.2の二つの条件をmについて満たすので、mについての一意性からφmに一致する。したがってφは各φnの拡張であり、主張 4.4.2の二つの条件がそのままφの二つの等式になる。高々一つであることは先に示したので、φはただ一つ存在する。▨
この定理により、次の二つの写像が定まります。
定義 4.5 (文字列の連結と、二分木の葉と内部節点の個数). 文字列v∈Σ∗を固定し、写像w↦w⋅vを
ε⋅v=v,(aw)⋅v=a(w⋅v)(a∈Σ, w∈Σ∗)によって定め、w⋅vをwとvの連結 (concatenation) という。
二分木tの葉の個数 (number of leaves)λ(t)と内部節点の個数 (number of internal nodes)ι(t)を
λ(ℓ)=1,λ((L,R))=λ(L)+λ(R),ι(ℓ)=0,ι((L,R))=ι(L)+ι(R)+1によって定める。
Σ∗とTはいずれも自由に生成されているので(例 4.2)、定理 4.4により、これらの等式によってそれぞれ写像がただ一つ定められます。
定義が生成規則に沿って書かれているとき、その定義についての証明も同じ規則に沿って進みます。
命題 4.6.u,v,w∈Σ∗について(u⋅v)⋅w=u⋅(v⋅w)が成り立つ。
証明.vとwを固定し、述語P(u)を「(u⋅v)⋅w=u⋅(v⋅w)」と定めて定理 3.3をuについて適用する。
基底の場合、u=εとすると(ε⋅v)⋅w=v⋅w=ε⋅(v⋅w)である。両端の等号は、いずれも連結の定義の第一の等式による。
構成子の場合、a∈Σとu∈Σ∗についてP(u)を仮定する。連結の定義の第二の等式を三回用いると
((au)⋅v)⋅w=(a(u⋅v))⋅w=a((u⋅v)⋅w)=a(u⋅(v⋅w))=(au)⋅(v⋅w)となる。三つめの等号で帰納法の仮定P(u)を用いた。よってP(au)が成り立つ。構造的帰納法により、すべてのu∈Σ∗についてP(u)が真である。▨
命題 4.7. すべての二分木tについてλ(t)=ι(t)+1が成り立つ。
証明. 述語P(t)を「λ(t)=ι(t)+1」と定めて定理 3.3を適用する。
基底の場合、λ(ℓ)=1かつι(ℓ)+1=0+1=1なのでP(ℓ)が成り立つ。
構成子の場合、二分木L,RについてP(L)とP(R)を仮定する。定義と帰納法の仮定から
λ((L,R))=λ(L)+λ(R)=(ι(L)+1)+(ι(R)+1)=(ι(L)+ι(R)+1)+1=ι((L,R))+1である。よってP((L,R))が成り立つ。構造的帰納法により、すべての二分木tについてλ(t)=ι(t)+1である。▨
例 4.8.t1=ℓではλ=1、ι=0で1=0+1が成り立つ。t2=(ℓ,ℓ)ではλ=1+1=2、ι=0+0+1=1で2=1+1が成り立つ。t3=((ℓ,ℓ),ℓ)ではλ=2+1=3、ι=1+0+1=2で3=2+1が成り立つ。t4=((ℓ,ℓ),(ℓ,ℓ))ではλ=2+2=4、ι=1+1+1=3で4=3+1が成り立つ。いずれも命題 4.7と一致する。