1 二つの形の帰納法
自然数についての帰納法には、直前の場合だけを仮定する形と、それより小さいすべての場合を仮定する形があります。「集合と論理 」は1 1 1 から始まる自然数についてこの二つを扱い、前者から後者が従うことを示しました(§A3.10 定理 1.1 と§A3.10 定理 3.1 )。本記事は0 0 0 を含むN ≥ 0 \N N ≥ 0 を対象とするので、基底を0 0 0 とする形が最小数原理から従うことを先に確かめ、続いて二つの形が原理として同じ強さをもつことを示します。
命題 1.1 (基底が0 0 0 の単純帰納法). P P P を自然数についての述語とする。P ( 0 ) P(0) P ( 0 ) が真であり、かつすべてのn ∈ N ≥ 0 n \in \N n ∈ N ≥ 0 についてP ( n ) ⇒ P ( n + 1 ) P(n) \Rightarrow P(n+1) P ( n ) ⇒ P ( n + 1 ) が真であるならば、すべてのn ∈ N ≥ 0 n \in \N n ∈ N ≥ 0 についてP ( n ) P(n) P ( n ) が真である。
証明. S = { n ∈ N ≥ 0 : P ( n ) が偽 } S = \{\, n \in \N : P(n) \text{ が偽} \,\} S = { n ∈ N ≥ 0 : P ( n ) が偽 } とおき、S ≠ ∅ S \ne \varnothing S = ∅ と仮定する。最小数原理によりS S S は最小元n 0 n_0 n 0 をもつ。P ( 0 ) P(0) P ( 0 ) は真であるからn 0 ≠ 0 n_0 \ne 0 n 0 = 0 であり、n 0 = m + 1 n_0 = m + 1 n 0 = m + 1 を満たすm ∈ N ≥ 0 m \in \N m ∈ N ≥ 0 が存在する。m < n 0 m < n_0 m < n 0 でありn 0 n_0 n 0 はS S S の最小元であるからm ∉ S m \notin S m ∈ / S 、すなわちP ( m ) P(m) P ( m ) は真である。仮定した含意P ( m ) ⇒ P ( m + 1 ) P(m) \Rightarrow P(m+1) P ( m ) ⇒ P ( m + 1 ) からP ( n 0 ) P(n_0) P ( n 0 ) が真になるが、これはn 0 ∈ S n_0 \in S n 0 ∈ S に矛盾する。したがってS = ∅ S = \varnothing S = ∅ であり、すべてのn ∈ N ≥ 0 n \in \N n ∈ N ≥ 0 についてP ( n ) P(n) P ( n ) が真である。▨
小さいすべての場合を仮定する形は、この形と原理として同じ強さをもちます。
証明. (1) ⇒ \Rightarrow ⇒ (2) を示す。述語P P P が累積帰納法の仮定を満たすとする。述語Q Q Q を「n n n より小さいすべてのm m m についてP ( m ) P(m) P ( m ) が真である」と定める。0 0 0 より小さい自然数は存在しないので、Q ( 0 ) Q(0) Q ( 0 ) は空虚に真である。次にQ ( n ) Q(n) Q ( n ) を仮定する。Q ( n ) Q(n) Q ( n ) は「n n n より小さいすべてのm m m でP ( m ) P(m) P ( m ) 」であり、P P P についての仮定からただちにP ( n ) P(n) P ( n ) が従う。したがってn + 1 n+1 n + 1 より小さいすべてのm m m 、すなわちm < n m < n m < n であるm m m とm = n m = n m = n の両方についてP ( m ) P(m) P ( m ) が真であり、Q ( n + 1 ) Q(n+1) Q ( n + 1 ) が成り立つ。(1) により、すべてのn n n についてQ ( n ) Q(n) Q ( n ) が真である。任意のn n n に対してQ ( n + 1 ) Q(n+1) Q ( n + 1 ) を用いればP ( n ) P(n) P ( n ) が得られる。
(2) ⇒ \Rightarrow ⇒ (1) を示す。述語P P P がP ( 0 ) P(0) P ( 0 ) を満たし、かつすべてのn n n でP ( n ) ⇒ P ( n + 1 ) P(n) \Rightarrow P(n+1) P ( n ) ⇒ P ( n + 1 ) を満たすとする。n n n を任意にとり、n n n より小さいすべてのm m m についてP ( m ) P(m) P ( m ) が真であると仮定する。n = 0 n = 0 n = 0 のときは、仮定によらずP ( 0 ) P(0) P ( 0 ) が真である。n ≥ 1 n \ge 1 n ≥ 1 のときはn = k + 1 n = k+1 n = k + 1 となる非負整数k k k があり、k < n k < n k < n なのでP ( k ) P(k) P ( k ) が真であり、含意P ( k ) ⇒ P ( k + 1 ) P(k) \Rightarrow P(k+1) P ( k ) ⇒ P ( k + 1 ) からP ( n ) = P ( k + 1 ) P(n) = P(k+1) P ( n ) = P ( k + 1 ) が真である。したがってP P P は累積帰納法の仮定を満たし、(2) からすべてのn n n についてP ( n ) P(n) P ( n ) が真である。▨
命題 1.1 と合わせると、累積帰納法もN ≥ 0 \N N ≥ 0 について成り立ちます。二つの原理は、証明することができる主張の範囲では違いがありません。違いは、帰納段階で使うことができる仮定の量と、基底段階を別に書くかどうかにあります。
2 整礎な関係と整礎帰納法
累積帰納法は、反例全体が空でないと仮定し、その最小元n n n をとることによって最小数原理から直接導くこともできます。n n n より小さい自然数は反例でないため、それらについての帰納法の仮定からP ( n ) P(n) P ( n ) が従い、n n n が反例であることに矛盾します。この論法の核である「空でない部分集合が下方に極小な元をもつ」という性質を関係の条件として取り出すと、自然数以外の対象についても同じ論法を用いることができます。
定義 2.1 (整礎な関係). 集合A A A 上の二項関係≺ \prec ≺ が整礎 (well-founded ) であるとは、A A A の空でないどの部分集合S S S にも、次の意味の極小元 (minimal element ) が存在することをいう。すなわち、あるx ∈ S x \in S x ∈ S が存在して、y ≺ x y \prec x y ≺ x を満たすy ∈ S y \in S y ∈ S が一つも存在しない。
極小元は最小元ではありません。極小元は「自分より下にS S S の要素が無い」ことだけを要求し、S S S のすべての要素と比較可能であることを要求しません。
例 2.2 (整礎である関係と整礎でない関係).
N ≥ 0 \N N ≥ 0 上の関係m ≺ n ⟺ m < n m \prec n \iff m < n m ≺ n ⟺ m < n は整礎である。空でない部分集合は最小数原理により最小元をもち、最小元は極小元である。
有限集合A A A 上の関係≺ \prec ≺ は、x 1 ≻ x 2 ≻ ⋯ ≻ x k ≻ x 1 x_1 \succ x_2 \succ \cdots \succ x_k \succ x_1 x 1 ≻ x 2 ≻ ⋯ ≻ x k ≻ x 1 という形の巡回が存在しなければ整礎である。
Z \mathbb{Z} Z 上の関係m ≺ n ⟺ m < n m \prec n \iff m < n m ≺ n ⟺ m < n は整礎でない。部分集合S = Z S = \mathbb{Z} S = Z は極小元をもたない。
正の有理数の全体Q > 0 \mathbb{Q}_{>0} Q > 0 上の関係x ≺ y ⟺ x < y x \prec y \iff x < y x ≺ y ⟺ x < y は整礎でない。S = Q > 0 S = \mathbb{Q}_{>0} S = Q > 0 自身が極小元をもたない。
整礎な関係のもとでは、次の形で帰納法を用いることができます。
定理 2.3 (整礎帰納法). ≺ \prec ≺ を集合A A A 上の整礎な関係とし、P P P をA A A の要素についての述語とする。すべてのx ∈ A x \in A x ∈ A について
( y ≺ x を満たすすべての y ∈ A で P ( y ) が真 ) ⇒ P ( x ) が真 \bigl(\text{$y \prec x$ を満たすすべての $y \in A$ で $P(y)$ が真}\bigr) \Rightarrow \text{$P(x)$ が真} ( y ≺ x を満たすすべての y ∈ A で P ( y ) が真 ) ⇒ P ( x ) が真 が成り立つならば、A A A のすべての要素x x x についてP ( x ) P(x) P ( x ) が真である。
証明. S = { x ∈ A : P ( x ) が偽 } S = \{\, x \in A : P(x) \text{ が偽} \,\} S = { x ∈ A : P ( x ) が偽 } とおき、S ≠ ∅ S \ne \varnothing S = ∅ と仮定する。≺ \prec ≺ が整礎であることから、S S S には極小元x 0 x_0 x 0 が存在する。極小元の定義により、y ≺ x 0 y \prec x_0 y ≺ x 0 を満たすy y y はS S S に属さない。すなわち、y ≺ x 0 y \prec x_0 y ≺ x 0 を満たすすべてのy ∈ A y \in A y ∈ A についてP ( y ) P(y) P ( y ) が真である。仮定した含意をx = x 0 x = x_0 x = x 0 に適用するとP ( x 0 ) P(x_0) P ( x 0 ) が真になるが、これはx 0 ∈ S x_0 \in S x 0 ∈ S に矛盾する。したがってS = ∅ S = \varnothing S = ∅ であり、すべてのx ∈ A x \in A x ∈ A についてP ( x ) P(x) P ( x ) が真である。▨
累積帰納法は、A = N ≥ 0 A = \N A = N ≥ 0 、≺ \prec ≺ を大小関係とした場合の整礎帰納法にほかなりません。整礎帰納法にも、累積帰納法と同じく基底段階は現れません。極小元x x x に対しては仮定が空虚に真になるので、P ( x ) P(x) P ( x ) を無条件に示すことが要求されます。
整礎性は、しばしば「無限に下がり続ける列が存在しない」という言い方でも説明されます。二つの述べ方の関係は、次のとおりです。
命題 2.4 (整礎な関係には無限降下列がない). ≺ \prec ≺ が集合A A A 上の整礎な関係ならば、すべてのn ∈ N ≥ 0 n \in \N n ∈ N ≥ 0 についてx n + 1 ≺ x n x_{n+1} \prec x_n x n + 1 ≺ x n を満たすA A A の要素の列x 0 , x 1 , x 2 , … x_0, x_1, x_2, \dots x 0 , x 1 , x 2 , … は存在しない。
証明. そのような列x 0 , x 1 , … x_0, x_1, \dots x 0 , x 1 , … が存在すると仮定し、S = { x n : n ∈ N ≥ 0 } S = \{\, x_n : n \in \N \,\} S = { x n : n ∈ N ≥ 0 } とおく。S S S はx 0 x_0 x 0 を含むので空ではない。S S S の任意の要素は、あるn n n についてx n x_n x n と書くことができ、x n + 1 ∈ S x_{n+1} \in S x n + 1 ∈ S かつx n + 1 ≺ x n x_{n+1} \prec x_n x n + 1 ≺ x n が成り立つ。したがってS S S のどの要素も極小元ではなく、S S S は極小元をもたない。これは≺ \prec ≺ が整礎であることに矛盾する。▨
3 規則から生成される集合と構造的帰納法
文字列や木は、自然数の上に一列に並んでいません。これらを帰納法の対象にするには、対象そのものを有限個の規則から作り出す形で定義します。以下では、あらかじめ用意した集合U U U の中で生成を行います。U U U を用意するのは、生成される集合をU U U の部分集合として構成し、集合として存在することを確かめるためです。
定義 3.1 (生成される集合). U U U を集合、B B B をU U U の部分集合とし、F F F を写像の有限族とする。F F F の各要素f f f は、ある正の整数k k k についてU k U^{k} U k からU U U への写像であるとし、このk k k をf f f の引数の個数 (arity ) という。B B B の要素を基底 (base element ) 、F F F の要素を構成子 (constructor ) という。U U U の部分集合の列を
G 0 = B , G n + 1 = G n ∪ { f ( x 1 , … , x k ) : f ∈ F , x 1 , … , x k ∈ G n } G_0 = B, \qquad G_{n+1} = G_n \cup \{\, f(x_1, \dots, x_k) : f \in F,\ x_1, \dots, x_k \in G_n \,\} G 0 = B , G n + 1 = G n ∪ { f ( x 1 , … , x k ) : f ∈ F , x 1 , … , x k ∈ G n } によって定め、G = ⋃ n ≥ 0 G n G = \bigcup_{n \ge 0} G_n G = ⋃ n ≥ 0 G n とおく。このG G G を、B B B とF F F が生成する集合 (generated set ) という。U U U の部分集合H H H がF F F について閉じている (closed under the constructors ) とは、f ∈ F f \in F f ∈ F とx 1 , … , x k ∈ H x_1, \dots, x_k \in H x 1 , … , x k ∈ H に対してつねにf ( x 1 , … , x k ) ∈ H f(x_1, \dots, x_k) \in H f ( x 1 , … , x k ) ∈ H が成り立つことをいう。
生成する集合は、基底を含み構成子について閉じている集合のうち最小のものです。この最小性が、以下のすべての議論の根拠になります。
命題 3.2 (生成する集合の最小性). G G G をB B B とF F F が生成する集合とする。このとき次が成り立つ。
B ⊆ G B \subseteq G B ⊆ G であり、G G G はF F F について閉じている。
U U U の部分集合H H H がB ⊆ H B \subseteq H B ⊆ H を満たしF F F について閉じているならば、G ⊆ H G \subseteq H G ⊆ H である。
証明. 定義からG 0 ⊆ G 1 ⊆ G 2 ⊆ ⋯ G_0 \subseteq G_1 \subseteq G_2 \subseteq \cdots G 0 ⊆ G 1 ⊆ G 2 ⊆ ⋯ である。実際、G n + 1 G_{n+1} G n + 1 はG n G_n G n との合併として定められている。
(1) を示す。B = G 0 ⊆ G B = G_0 \subseteq G B = G 0 ⊆ G である。f ∈ F f \in F f ∈ F を引数の個数k k k の構成子とし、x 1 , … , x k ∈ G x_1, \dots, x_k \in G x 1 , … , x k ∈ G とする。各i i i についてx i ∈ G n i x_i \in G_{n_i} x i ∈ G n i となるn i n_i n i を選び、n = max { n 1 , … , n k } n = \max\{n_1, \dots, n_k\} n = max { n 1 , … , n k } とおく。引数は有限個なので最大値が存在し、列が増加することからすべてのi i i についてx i ∈ G n x_i \in G_n x i ∈ G n である。したがってf ( x 1 , … , x k ) ∈ G n + 1 ⊆ G f(x_1, \dots, x_k) \in G_{n+1} \subseteq G f ( x 1 , … , x k ) ∈ G n + 1 ⊆ G である。
(2) を示す。H H H をB B B を含みF F F について閉じているU U U の部分集合とし、G n ⊆ H G_n \subseteq H G n ⊆ H をn n n について示す。n = 0 n = 0 n = 0 のときはG 0 = B ⊆ H G_0 = B \subseteq H G 0 = B ⊆ H である。G n ⊆ H G_n \subseteq H G n ⊆ H を仮定する。G n + 1 G_{n+1} G n + 1 の要素はG n G_n G n の要素であるか、f ∈ F f \in F f ∈ F とx 1 , … , x k ∈ G n x_1, \dots, x_k \in G_n x 1 , … , x k ∈ G n についてf ( x 1 , … , x k ) f(x_1, \dots, x_k) f ( x 1 , … , x k ) の形をしている。前者は仮定からH H H に属する。後者については、仮定からx i ∈ H x_i \in H x i ∈ H であり、H H H がF F F について閉じているのでf ( x 1 , … , x k ) ∈ H f(x_1, \dots, x_k) \in H f ( x 1 , … , x k ) ∈ H である。よってG n + 1 ⊆ H G_{n+1} \subseteq H G n + 1 ⊆ H が成り立ち、命題 1.1 によりすべてのn n n についてG n ⊆ H G_n \subseteq H G n ⊆ H である。合併をとってG ⊆ H G \subseteq H G ⊆ H を得る。▨
最小性から、生成する集合についての帰納法がただちに従います。
定理 3.3 (構造的帰納法). G G G をB B B とF F F が生成する集合とし、P P P をU U U の要素についての述語とする。次の二つが成り立つならば、G G G のすべての要素x x x についてP ( x ) P(x) P ( x ) が真である。
B B B のすべての要素b b b についてP ( b ) P(b) P ( b ) が真である。
各構成子f ∈ F f \in F f ∈ F (引数の個数k k k )と、P ( x 1 ) , … , P ( x k ) P(x_1), \dots, P(x_k) P ( x 1 ) , … , P ( x k ) がすべて真であるようなx 1 , … , x k ∈ G x_1, \dots, x_k \in G x 1 , … , x k ∈ G について、P ( f ( x 1 , … , x k ) ) P(f(x_1, \dots, x_k)) P ( f ( x 1 , … , x k )) が真である。
証明. S = { x ∈ G : P ( x ) が真 } S = \{\, x \in G : P(x) \text{ が真} \,\} S = { x ∈ G : P ( x ) が真 } とおく。条件 (a) からB ⊆ S B \subseteq S B ⊆ S である。f ∈ F f \in F f ∈ F とx 1 , … , x k ∈ S x_1, \dots, x_k \in S x 1 , … , x k ∈ S をとると、S ⊆ G S \subseteq G S ⊆ G よりx i ∈ G x_i \in G x i ∈ G であり、P ( x i ) P(x_i) P ( x i ) はすべて真である。条件 (b) からP ( f ( x 1 , … , x k ) ) P(f(x_1, \dots, x_k)) P ( f ( x 1 , … , x k )) が真であり、命題 3.2 (1) からf ( x 1 , … , x k ) ∈ G f(x_1, \dots, x_k) \in G f ( x 1 , … , x k ) ∈ G なので、f ( x 1 , … , x k ) ∈ S f(x_1, \dots, x_k) \in S f ( x 1 , … , x k ) ∈ S である。したがってS S S はB B B を含みF F F について閉じているので、命題 3.2 (2) によりG ⊆ S G \subseteq S G ⊆ S である。すなわちG G G のすべての要素x x x についてP ( x ) P(x) P ( x ) が真である。▨
構造的帰納法は、整礎帰納法の言い換えとしても読むことができます。そのために、各要素が何段目で現れたかを測る量を定めます。
定義 3.4 (構成の階数). G G G をB B B とF F F が生成する集合とする。x ∈ G x \in G x ∈ G に対し、x ∈ G n x \in G_n x ∈ G n を満たす最小のn n n をx x x の階数 (rank ) といい、r k ( x ) \mathrm{rk}(x) rk ( x ) と書く。
x ∈ G x \in G x ∈ G ならばx ∈ G n x \in G_n x ∈ G n となるn n n が存在し、そのようなn n n の全体は自然数の空でない集合なので、最小数原理により最小元が存在します。したがって階数はすべてのx ∈ G x \in G x ∈ G に対して定まります。
命題 3.5 (階数の比較は整礎である). G G G 上の関係x ≺ y ⟺ r k ( x ) < r k ( y ) x \prec y \iff \mathrm{rk}(x) < \mathrm{rk}(y) x ≺ y ⟺ rk ( x ) < rk ( y ) は整礎である。
証明. S S S をG G G の空でない部分集合とする。集合{ r k ( x ) : x ∈ S } \{\, \mathrm{rk}(x) : x \in S \,\} { rk ( x ) : x ∈ S } は自然数の空でない集合なので、最小数原理により最小元n 0 n_0 n 0 をもつ。r k ( x 0 ) = n 0 \mathrm{rk}(x_0) = n_0 rk ( x 0 ) = n 0 を満たすx 0 ∈ S x_0 \in S x 0 ∈ S を一つとると、y ∈ S y \in S y ∈ S に対してr k ( y ) ≥ n 0 = r k ( x 0 ) \mathrm{rk}(y) \ge n_0 = \mathrm{rk}(x_0) rk ( y ) ≥ n 0 = rk ( x 0 ) なので、y ≺ x 0 y \prec x_0 y ≺ x 0 を満たすy ∈ S y \in S y ∈ S は存在しない。よってx 0 x_0 x 0 はS S S の極小元である。▨
次の二つが、本記事で扱う生成された集合です。
例 3.7 (文字列の集合). 有限集合Σ \Sigma Σ (アルファベット )をとり、U U U をΣ \Sigma Σ の要素からなる有限列の全体とする。B = { ε } B = \{\varepsilon\} B = { ε } (ε \varepsilon ε は長さ0 0 0 の列、すなわち空文字列 )とし、各a ∈ Σ a \in \Sigma a ∈ Σ に対して構成子f a ( w ) = a w f_a(w) = aw f a ( w ) = a w (列w w w の先頭にa a a を置いて得られる列)を与える。これらが生成する集合をΣ ∗ \Sigma^{*} Σ ∗ と書き、その要素をΣ \Sigma Σ 上の文字列 という。G n G_n G n は長さn n n 以下の列の全体であり、Σ ∗ \Sigma^{*} Σ ∗ はU U U 自身、すなわち有限列の全体に一致する。文字列w w w の階数はw w w の長さである。
例 3.8 (二分木の集合). 順序対ではない対象ℓ \ell ℓ を一つ選び、
U 0 = { ℓ } , U n + 1 = U n ∪ ( U n × U n ) , U = ⋃ n ≥ 0 U n U_0 = \{\ell\},\qquad U_{n+1} = U_n \cup (U_n \times U_n),\qquad
U = \bigcup_{n \geq 0} U_n U 0 = { ℓ } , U n + 1 = U n ∪ ( U n × U n ) , U = n ≥ 0 ⋃ U n とおく。B = { ℓ } B = \{\ell\} B = { ℓ } とする。L , R ∈ U L, R \in U L , R ∈ U ならば、あるn n n についてL , R ∈ U n L, R \in U_n L , R ∈ U n であるから、( L , R ) ∈ U n + 1 ⊆ U (L, R) \in U_{n+1} \subseteq U ( L , R ) ∈ U n + 1 ⊆ U である。したがって、構成子をf : U × U → U f\colon U \times U \to U f : U × U → U 、f ( L , R ) = ( L , R ) f(L, R) = (L, R) f ( L , R ) = ( L , R ) と定めることができる。この基底と構成子による生成段階G n G_n G n は、すべてのn n n でU n U_n U n に等しい。したがって、これらが生成する集合をT \mathcal{T} T と書くと、T = ⋃ n ≥ 0 G n = U \mathcal{T} = \bigcup_{n \geq 0} G_n = U T = ⋃ n ≥ 0 G n = U である。その要素を二分木 という。ℓ \ell ℓ を葉 、( L , R ) (L, R) ( L , R ) の形の二分木の最も外側の対を内部節点 とよび、L L L を左の部分木、R R R を右の部分木という。二分木t t t の階数は、t t t の葉から最も外側の対までの対の入れ子の深さである。
4 再帰によって写像を定める
生成された集合の上では、値を「基底での値」と「構成子をどう反映するか」によって指定することができます。たとえば二分木t t t の葉の個数をλ ( t ) \lambda(t) λ ( t ) と書き、λ ( ℓ ) = 1 \lambda(\ell) = 1 λ ( ℓ ) = 1 、λ ( ( L , R ) ) = λ ( L ) + λ ( R ) \lambda((L, R)) = \lambda(L) + \lambda(R) λ (( L , R )) = λ ( L ) + λ ( R ) と定めたくなります。しかしこの書き方が写像を定めるためには、各要素の作り方が一通りに決まっていなければなりません。作り方が二通りあると、同じ要素に対して二つの値が指定されてしまいます。
定義 4.1 (自由に生成される). G G G がB B B とF F F から自由に生成される (freely generated ) とは、次の三つが成り立つことをいう。
各構成子f ∈ F f \in F f ∈ F のG k G^{k} G k への制限は単射である。すなわち、x 1 , … , x k x_1, \dots, x_k x 1 , … , x k とy 1 , … , y k y_1, \dots, y_k y 1 , … , y k がG G G の要素でf ( x 1 , … , x k ) = f ( y 1 , … , y k ) f(x_1, \dots, x_k) = f(y_1, \dots, y_k) f ( x 1 , … , x k ) = f ( y 1 , … , y k ) ならば、すべてのi i i についてx i = y i x_i = y_i x i = y i である。
相異なる構成子f , g ∈ F f, g \in F f , g ∈ F について、G G G の要素を引数とするf f f の値とg g g の値は一致しない。
B B B の要素は、G G G の要素を引数とするどの構成子の値とも一致しない。
この三つは、「G G G の各要素は、B B B の要素であるか、ただ一つの構成子とただ一組の引数から作られるかのいずれか一方である」と言い換えることができる。
例 4.2 (自由に生成されている例と、そうでない例). 例 3.7 のΣ ∗ \Sigma^{*} Σ ∗ は自由に生成されている。f a ( w ) = f a ( w ′ ) f_a(w) = f_a(w') f a ( w ) = f a ( w ′ ) ならば先頭を除いてw = w ′ w = w' w = w ′ であり、a ≠ b a \ne b a = b ならばf a ( w ) f_a(w) f a ( w ) とf b ( w ′ ) f_b(w') f b ( w ′ ) は先頭の文字が異なり、ε \varepsilon ε は長さ0 0 0 なのでどのf a f_a f a の値とも一致しないからである。例 3.8 のT \mathcal{T} T も自由に生成されている。順序対が等しいことと成分がそれぞれ等しいことは同値であり、構成子は一つだけで、ℓ \ell ℓ は順序対でないからである。
自由に生成されていない例を挙げる。U U U を記号a a a と+ + + からなる有限列の全体、B = { a } B = \{a\} B = { a } 、構成子をg ( s , t ) = s + t g(s, t) = s\,{+}\,t g ( s , t ) = s + t (列s s s 、記号+ + + 、列t t t をこの順に並べた列)とする。生成される集合G G G は括弧を書かない加法の式の全体である。このとき列a + a + a a + a + a a + a + a は、s = a + a s = a + a s = a + a 、t = a t = a t = a としても、s = a s = a s = a 、t = a + a t = a + a t = a + a としても得られるので、定義 4.1 条件 (a) が破れている。
自由に生成されていないと、再帰的な等式は写像を定めません。
定理 4.4 (再帰による定義). G G G がB B B とF F F から自由に生成されているとする。集合V V V 、写像g : B → V g \colon B \to V g : B → V 、および各構成子f ∈ F f \in F f ∈ F (引数の個数k k k )に対する写像h f : V k → V h_f \colon V^{k} \to V h f : V k → V が与えられたとき、
φ ( b ) = g ( b ) ( b ∈ B ) , φ ( f ( x 1 , … , x k ) ) = h f ( φ ( x 1 ) , … , φ ( x k ) ) ( x 1 , … , x k ∈ G ) \varphi(b) = g(b) \quad (b \in B), \qquad
\varphi(f(x_1, \dots, x_k)) = h_f(\varphi(x_1), \dots, \varphi(x_k)) \quad (x_1, \dots, x_k \in G) φ ( b ) = g ( b ) ( b ∈ B ) , φ ( f ( x 1 , … , x k )) = h f ( φ ( x 1 ) , … , φ ( x k )) ( x 1 , … , x k ∈ G ) をともに満たす写像φ : G → V \varphi \colon G \to V φ : G → V が、ただ一つ存在する。
証明. φ \varphi φ とψ \psi ψ がともに上の二つの等式を満たすとし、述語P ( x ) P(x) P ( x ) を「φ ( x ) = ψ ( x ) \varphi(x) = \psi(x) φ ( x ) = ψ ( x ) 」と定めて定理 3.3 を適用する。b ∈ B b \in B b ∈ B についてはφ ( b ) = g ( b ) = ψ ( b ) \varphi(b) = g(b) = \psi(b) φ ( b ) = g ( b ) = ψ ( b ) である。f ∈ F f \in F f ∈ F とx 1 , … , x k ∈ G x_1, \dots, x_k \in G x 1 , … , x k ∈ G についてφ ( x i ) = ψ ( x i ) \varphi(x_i) = \psi(x_i) φ ( x i ) = ψ ( x i ) がすべて成り立つとすると、
φ ( f ( x 1 , … , x k ) ) = h f ( φ ( x 1 ) , … , φ ( x k ) ) = h f ( ψ ( x 1 ) , … , ψ ( x k ) ) = ψ ( f ( x 1 , … , x k ) ) \varphi(f(x_1, \dots, x_k)) = h_f(\varphi(x_1), \dots, \varphi(x_k)) = h_f(\psi(x_1), \dots, \psi(x_k)) = \psi(f(x_1, \dots, x_k)) φ ( f ( x 1 , … , x k )) = h f ( φ ( x 1 ) , … , φ ( x k )) = h f ( ψ ( x 1 ) , … , ψ ( x k )) = ψ ( f ( x 1 , … , x k )) である。構造的帰納法により、G G G のすべての要素でφ \varphi φ とψ \psi ψ は一致する。したがって、上の二つの等式をともに満たす写像は高々一つである。
以下、G ≤ n = { x ∈ G : r k ( x ) ≤ n } G^{\le n} = \{\, x \in G : \mathrm{rk}(x) \le n \,\} G ≤ n = { x ∈ G : rk ( x ) ≤ n } とおき、二つの等式をともに満たす写像を構成する。
証明. G 0 = B G_0 = B G 0 = B であるから、r k ( x ) = 0 \mathrm{rk}(x) = 0 rk ( x ) = 0 であることとx ∈ B x \in B x ∈ B であることは同値である。r k ( x ) = n ≥ 1 \mathrm{rk}(x) = n \ge 1 rk ( x ) = n ≥ 1 とすると、x ∈ G n x \in G_n x ∈ G n かつx ∉ G n − 1 x \notin G_{n-1} x ∈ / G n − 1 であり、G n G_n G n の定義からあるf ∈ F f \in F f ∈ F とx 1 , … , x k ∈ G n − 1 x_1, \dots, x_k \in G_{n-1} x 1 , … , x k ∈ G n − 1 についてx = f ( x 1 , … , x k ) x = f(x_1, \dots, x_k) x = f ( x 1 , … , x k ) と書くことができる。G G G の要素を引数とする表示が二つあれば、定義 4.1 条件 (b) から構成子が一致し、定義 4.1 条件 (a) から引数の組が一致するので、この表示はただ一組である。x i ∈ G n − 1 x_i \in G_{n-1} x i ∈ G n − 1 よりr k ( x i ) ≤ n − 1 < n = r k ( x ) \mathrm{rk}(x_i) \le n - 1 < n = \mathrm{rk}(x) rk ( x i ) ≤ n − 1 < n = rk ( x ) である。とくにx x x がG ≤ n G^{\le n} G ≤ n に属せば、その表示の引数x i x_i x i もまたG ≤ n G^{\le n} G ≤ n に属する。▨
主張 4.4.2. すべてのn ∈ N ≥ 0 n \in \N n ∈ N ≥ 0 について、写像φ n : G ≤ n → V \varphi_n \colon G^{\le n} \to V φ n : G ≤ n → V であって、B B B の要素b b b についてφ n ( b ) = g ( b ) \varphi_n(b) = g(b) φ n ( b ) = g ( b ) を満たし、かつx = f ( x 1 , … , x k ) ∈ G ≤ n x = f(x_1, \dots, x_k) \in G^{\le n} x = f ( x 1 , … , x k ) ∈ G ≤ n (f ∈ F f \in F f ∈ F 、x i ∈ G x_i \in G x i ∈ G )のときφ n ( x ) = h f ( φ n ( x 1 ) , … , φ n ( x k ) ) \varphi_n(x) = h_f(\varphi_n(x_1), \dots, \varphi_n(x_k)) φ n ( x ) = h f ( φ n ( x 1 ) , … , φ n ( x k )) を満たすものが、ただ一つ存在する。
証明. 主張 4.4.1 により引数x i x_i x i はG ≤ n G^{\le n} G ≤ n に属するので、二つ目の条件は意味をもつ。n = 0 n = 0 n = 0 のとき、G ≤ 0 = B G^{\le 0} = B G ≤ 0 = B である。φ 0 = g \varphi_0 = g φ 0 = g と定めると一つ目の条件が成り立ち、定義 4.1 条件 (c) からB B B の要素は構成子の値として書くことができないので、二つ目の条件は空虚に成り立つ。逆に二つの条件を満たす写像はB B B 上でg g g に一致するので、φ 0 \varphi_0 φ 0 は一つに定まる。
n n n について主張を仮定し、φ n \varphi_n φ n をその一意な写像とする。写像φ n + 1 : G ≤ n + 1 → V \varphi_{n+1} \colon G^{\le n+1} \to V φ n + 1 : G ≤ n + 1 → V を、r k ( x ) ≤ n \mathrm{rk}(x) \le n rk ( x ) ≤ n のときφ n + 1 ( x ) = φ n ( x ) \varphi_{n+1}(x) = \varphi_n(x) φ n + 1 ( x ) = φ n ( x ) 、r k ( x ) = n + 1 \mathrm{rk}(x) = n+1 rk ( x ) = n + 1 のとき、主張 4.4.1 が与える一意な表示x = f ( x 1 , … , x k ) x = f(x_1, \dots, x_k) x = f ( x 1 , … , x k ) を用いてφ n + 1 ( x ) = h f ( φ n ( x 1 ) , … , φ n ( x k ) ) \varphi_{n+1}(x) = h_f(\varphi_n(x_1), \dots, \varphi_n(x_k)) φ n + 1 ( x ) = h f ( φ n ( x 1 ) , … , φ n ( x k )) と定める。同じ主張によりr k ( x i ) ≤ n \mathrm{rk}(x_i) \le n rk ( x i ) ≤ n なので右辺は定まっている。一つ目の条件はφ n \varphi_n φ n が満たしているので従う。二つ目の条件は、r k ( x ) ≤ n \mathrm{rk}(x) \le n rk ( x ) ≤ n の場合はφ n \varphi_n φ n が満たしていることと主張 4.4.1 から従い、r k ( x ) = n + 1 \mathrm{rk}(x) = n+1 rk ( x ) = n + 1 の場合は表示の一意性から定め方そのものである。ψ : G ≤ n + 1 → V \psi \colon G^{\le n+1} \to V ψ : G ≤ n + 1 → V が二つの条件を満たすとすると、主張 4.4.1 によりψ \psi ψ のG ≤ n G^{\le n} G ≤ n への制限もn n n について二つの条件を満たすので、n n n についての一意性からG ≤ n G^{\le n} G ≤ n 上でψ = φ n \psi = \varphi_n ψ = φ n である。r k ( x ) = n + 1 \mathrm{rk}(x) = n+1 rk ( x ) = n + 1 のx x x については、二つ目の条件と表示の一意性からψ ( x ) = h f ( ψ ( x 1 ) , … , ψ ( x k ) ) = h f ( φ n ( x 1 ) , … , φ n ( x k ) ) = φ n + 1 ( x ) \psi(x) = h_f(\psi(x_1), \dots, \psi(x_k)) = h_f(\varphi_n(x_1), \dots, \varphi_n(x_k)) = \varphi_{n+1}(x) ψ ( x ) = h f ( ψ ( x 1 ) , … , ψ ( x k )) = h f ( φ n ( x 1 ) , … , φ n ( x k )) = φ n + 1 ( x ) である。よってn + 1 n+1 n + 1 についても主張が成り立ち、命題 1.1 からすべてのn ∈ N ≥ 0 n \in \N n ∈ N ≥ 0 について主張が成り立つ。▨
x ∈ G x \in G x ∈ G に対してφ ( x ) = φ r k ( x ) ( x ) \varphi(x) = \varphi_{\mathrm{rk}(x)}(x) φ ( x ) = φ rk ( x ) ( x ) と定める。m ≤ n m \le n m ≤ n のとき、φ n \varphi_n φ n のG ≤ m G^{\le m} G ≤ m への制限は主張 4.4.1 により主張 4.4.2 の二つの条件をm m m について満たすので、m m m についての一意性からφ m \varphi_m φ m に一致する。したがってφ \varphi φ は各φ n \varphi_n φ n の拡張であり、主張 4.4.2 の二つの条件がそのままφ \varphi φ の二つの等式になる。高々一つであることは先に示したので、φ \varphi φ はただ一つ存在する。▨
この定理により、次の二つの写像が定まります。
定義 4.5 (文字列の連結と、二分木の葉と内部節点の個数). 文字列v ∈ Σ ∗ v \in \Sigma^{*} v ∈ Σ ∗ を固定し、写像w ↦ w ⋅ v w \mapsto w \cdot v w ↦ w ⋅ v を
ε ⋅ v = v , ( a w ) ⋅ v = a ( w ⋅ v ) ( a ∈ Σ , w ∈ Σ ∗ ) \varepsilon \cdot v = v, \qquad (aw) \cdot v = a\,(w \cdot v) \quad (a \in \Sigma,\ w \in \Sigma^{*}) ε ⋅ v = v , ( a w ) ⋅ v = a ( w ⋅ v ) ( a ∈ Σ , w ∈ Σ ∗ ) によって定め、w ⋅ v w \cdot v w ⋅ v をw w w とv v v の連結 (concatenation ) という。
二分木t t t の葉の個数 (number of leaves )λ ( t ) \lambda(t) λ ( t ) と内部節点の個数 (number of internal nodes )ι ( t ) \iota(t) ι ( t ) を
λ ( ℓ ) = 1 , λ ( ( L , R ) ) = λ ( L ) + λ ( R ) , \lambda(\ell) = 1, \qquad \lambda((L, R)) = \lambda(L) + \lambda(R), λ ( ℓ ) = 1 , λ (( L , R )) = λ ( L ) + λ ( R ) , ι ( ℓ ) = 0 , ι ( ( L , R ) ) = ι ( L ) + ι ( R ) + 1 \iota(\ell) = 0, \qquad \iota((L, R)) = \iota(L) + \iota(R) + 1 ι ( ℓ ) = 0 , ι (( L , R )) = ι ( L ) + ι ( R ) + 1 によって定める。
Σ ∗ \Sigma^{*} Σ ∗ とT \mathcal{T} T はいずれも自由に生成されているので(例 4.2 )、定理 4.4 により、これらの等式はそれぞれ写像をただ一つ定めます。
定義が生成規則に沿って書かれているとき、その定義についての証明も同じ規則に沿って進みます。
命題 4.6 (連結の結合律). u , v , w ∈ Σ ∗ u, v, w \in \Sigma^{*} u , v , w ∈ Σ ∗ について( u ⋅ v ) ⋅ w = u ⋅ ( v ⋅ w ) (u \cdot v) \cdot w = u \cdot (v \cdot w) ( u ⋅ v ) ⋅ w = u ⋅ ( v ⋅ w ) が成り立つ。
証明. v v v とw w w を固定し、述語P ( u ) P(u) P ( u ) を「( u ⋅ v ) ⋅ w = u ⋅ ( v ⋅ w ) (u \cdot v) \cdot w = u \cdot (v \cdot w) ( u ⋅ v ) ⋅ w = u ⋅ ( v ⋅ w ) 」と定めて定理 3.3 をu u u について適用する。
基底の場合、u = ε u = \varepsilon u = ε とすると( ε ⋅ v ) ⋅ w = v ⋅ w = ε ⋅ ( v ⋅ w ) (\varepsilon \cdot v) \cdot w = v \cdot w = \varepsilon \cdot (v \cdot w) ( ε ⋅ v ) ⋅ w = v ⋅ w = ε ⋅ ( v ⋅ w ) である。両端の等号は、いずれも連結の定義の第一の等式による。
構成子の場合、a ∈ Σ a \in \Sigma a ∈ Σ とu ∈ Σ ∗ u \in \Sigma^{*} u ∈ Σ ∗ についてP ( u ) P(u) P ( u ) を仮定する。連結の定義の第二の等式を三回用いると
( ( a u ) ⋅ v ) ⋅ w = ( a ( u ⋅ v ) ) ⋅ w = a ( ( u ⋅ v ) ⋅ w ) = a ( u ⋅ ( v ⋅ w ) ) = ( a u ) ⋅ ( v ⋅ w ) ((au) \cdot v) \cdot w = (a\,(u \cdot v)) \cdot w = a\,((u \cdot v) \cdot w) = a\,(u \cdot (v \cdot w)) = (au) \cdot (v \cdot w) (( a u ) ⋅ v ) ⋅ w = ( a ( u ⋅ v )) ⋅ w = a (( u ⋅ v ) ⋅ w ) = a ( u ⋅ ( v ⋅ w )) = ( a u ) ⋅ ( v ⋅ w ) となる。三つめの等号で帰納法の仮定P ( u ) P(u) P ( u ) を用いた。よってP ( a u ) P(au) P ( a u ) が成り立つ。構造的帰納法により、すべてのu ∈ Σ ∗ u \in \Sigma^{*} u ∈ Σ ∗ についてP ( u ) P(u) P ( u ) が真である。▨
命題 4.7 (二分木の葉と内部節点の個数の関係). すべての二分木t t t についてλ ( t ) = ι ( t ) + 1 \lambda(t) = \iota(t) + 1 λ ( t ) = ι ( t ) + 1 が成り立つ。
証明. 述語P ( t ) P(t) P ( t ) を「λ ( t ) = ι ( t ) + 1 \lambda(t) = \iota(t) + 1 λ ( t ) = ι ( t ) + 1 」と定めて定理 3.3 を適用する。
基底の場合、λ ( ℓ ) = 1 \lambda(\ell) = 1 λ ( ℓ ) = 1 かつι ( ℓ ) + 1 = 0 + 1 = 1 \iota(\ell) + 1 = 0 + 1 = 1 ι ( ℓ ) + 1 = 0 + 1 = 1 なのでP ( ℓ ) P(\ell) P ( ℓ ) が成り立つ。
構成子の場合、二分木L , R L, R L , R についてP ( L ) P(L) P ( L ) とP ( R ) P(R) P ( R ) を仮定する。定義と帰納法の仮定から
λ ( ( L , R ) ) = λ ( L ) + λ ( R ) = ( ι ( L ) + 1 ) + ( ι ( R ) + 1 ) = ( ι ( L ) + ι ( R ) + 1 ) + 1 = ι ( ( L , R ) ) + 1 \lambda((L, R)) = \lambda(L) + \lambda(R) = (\iota(L) + 1) + (\iota(R) + 1) = (\iota(L) + \iota(R) + 1) + 1 = \iota((L, R)) + 1 λ (( L , R )) = λ ( L ) + λ ( R ) = ( ι ( L ) + 1 ) + ( ι ( R ) + 1 ) = ( ι ( L ) + ι ( R ) + 1 ) + 1 = ι (( L , R )) + 1 である。よってP ( ( L , R ) ) P((L, R)) P (( L , R )) が成り立つ。構造的帰納法により、すべての二分木t t t についてλ ( t ) = ι ( t ) + 1 \lambda(t) = \iota(t) + 1 λ ( t ) = ι ( t ) + 1 である。▨
例 4.8 (小さい二分木での検算). t 1 = ℓ t_1 = \ell t 1 = ℓ ではλ = 1 \lambda = 1 λ = 1 、ι = 0 \iota = 0 ι = 0 で1 = 0 + 1 1 = 0 + 1 1 = 0 + 1 が成り立つ。t 2 = ( ℓ , ℓ ) t_2 = (\ell, \ell) t 2 = ( ℓ , ℓ ) ではλ = 1 + 1 = 2 \lambda = 1 + 1 = 2 λ = 1 + 1 = 2 、ι = 0 + 0 + 1 = 1 \iota = 0 + 0 + 1 = 1 ι = 0 + 0 + 1 = 1 で2 = 1 + 1 2 = 1 + 1 2 = 1 + 1 が成り立つ。t 3 = ( ( ℓ , ℓ ) , ℓ ) t_3 = ((\ell, \ell), \ell) t 3 = (( ℓ , ℓ ) , ℓ ) ではλ = 2 + 1 = 3 \lambda = 2 + 1 = 3 λ = 2 + 1 = 3 、ι = 1 + 0 + 1 = 2 \iota = 1 + 0 + 1 = 2 ι = 1 + 0 + 1 = 2 で3 = 2 + 1 3 = 2 + 1 3 = 2 + 1 が成り立つ。t 4 = ( ( ℓ , ℓ ) , ( ℓ , ℓ ) ) t_4 = ((\ell, \ell), (\ell, \ell)) t 4 = (( ℓ , ℓ ) , ( ℓ , ℓ )) ではλ = 2 + 2 = 4 \lambda = 2 + 2 = 4 λ = 2 + 2 = 4 、ι = 1 + 1 + 1 = 3 \iota = 1 + 1 + 1 = 3 ι = 1 + 1 + 1 = 3 で4 = 3 + 1 4 = 3 + 1 4 = 3 + 1 が成り立つ。いずれも命題 4.7 と一致する。
5 つまずいたら
累積帰納法と整礎帰納法では、n = 0 n = 0 n = 0 の場合と極小元の場合を忘れない。 これらの原理には基底段階が別の条件として現れませんが、示すべきことが消えたのではありません。仮定が空虚に真になる場合には、結論を無条件に示す必要があります(注意 1.3 )。
極小元と最小元を取り違えない。 定義 2.1 が要求するのは極小元の存在であり、すべての要素と比較可能な最小元の存在ではありません。整礎な関係は順序である必要すらありません。
整礎性を無限降下列で確かめない。 無限降下列が無いことから整礎性を導く向きには選択公理の一種が必要です(注意 2.5 )。整礎性を示すときは、空でない部分集合が極小元をもつことを直接示します。
再帰的な等式を書く前に、自由に生成されていることを確かめる。 各要素の作り方が一通りに定まっていなければ、等式は写像を定めません(注意 4.3 )。確かめるのは定義 4.1 の三条件です。
構造的帰納法は、証明の場合分けを生成規則の個数に合わせる。 基底の要素ごとに一つ、構成子ごとに一つの場合を書きます。規則を一つでも落とすと、その規則で作られる要素について何も示していません。