1 結論と仮定の定義への展開
定義の展開では、次の順序を用います。
結論を展開すると、何を示せば証明が終わるのかが分かります。仮定を展開すると、証明に使うことができる式や条件が分かります。両方を同じ記号で書くことにより、結論と仮定の間に残る推論を特定することができます。
2 単射の合成と定義の展開
定義 2.1 (単射). 集合X,Yと写像f:X→Yに対して、fが単射 (injective map) であるとは、任意のa,b∈Xについて
f(a)=f(b)⟹a=bが成り立つことをいう。
定理 2.2. 集合X,Y,Zと写像f:X→Y、g:Y→Zをとる。fとgが単射ならば、合成写像g∘f:X→Zも単射である。
単射の定義を定理の仮定と結論へそれぞれ適用すると、次の条件になります。
| 役割 |
定義を展開した条件 |
| fが単射であるという仮定 |
すべてのs,t∈Xに対して、f(s)=f(t)ならばs=tです。 |
| gが単射であるという仮定 |
すべてのu,v∈Yに対して、g(u)=g(v)ならばu=vです。 |
| g∘fが単射であるという結論 |
すべてのa,b∈Xに対して、g(f(a))=g(f(b))ならばa=bです。 |
a,b∈Xを任意に取ると、f(a),f(b)∈Yです。このため、gの単射性を先に適用し、続いてfの単射性を適用します。
証明.a,b∈Xを任意に取り、(g∘f)(a)=(g∘f)(b)と仮定する。この等式は
g(f(a))=g(f(b))を意味する。gは単射であるからf(a)=f(b)であり、fも単射であるからa=bである。したがって、任意のa,b∈Xについて(g∘f)(a)=(g∘f)(b)ならばa=bとなるため、g∘fは単射である。▨
結論と二つの仮定を定義へ置き換えると、上の証明は単射性を二回適用することで閉じます。
3 集合の等式の展開と場合分け
集合の等式についても、仮定と結論を要素の所属条件に書き換えます。
例 3.1. 全体集合Uの部分集合A,B,Cが
A∩B=A∩C,A∪B=A∪Cを満たすとする。このときB=Cである。
二つの仮定を要素の条件で書くと、
∀x∈U[(x∈A∧x∈B)⇔(x∈A∧x∈C)],∀x∈U[(x∈A∨x∈B)⇔(x∈A∨x∈C)]となる。示すべき結論は∀x∈U(x∈B⇔x∈C)である。
x∈Uを任意に取る。x∈Aの場合、共通部分の等式からx∈B⇔x∈Cが従う。x∈/Aの場合、和集合の等式から同じ同値が従う。二つの場合はUのすべての要素を尽くすので、B=Cである。
一方の仮定だけでは結論は成り立たない。U={1,2}、A={1}、B=∅、C={2}とすると、A∩B=A∩C=∅であるがB=Cである。同じU,A,BとC={1}ならば、A∪B=A∪C={1}であるがB=Cである。
4 上限公理を要する収束の例
定義を展開すると、計算だけでは閉じず、別の定理または公理を必要とする推論を特定することもできます。次の定理の証明は、そのような推論を含む例です。
定理 4.1. 上に有界な広義単調増加数列は収束する。
実数列(an)n≥1について仮定を展開すると、すべてのn≥1に対する不等式an≤an+1と、ある実数Mが存在して、すべてのn≥1に対してan≤Mが成り立つことが現れます。一方、結論を展開すると、極限の候補となる実数αが存在し、任意のε>0に対して番号Nを選ぶことができ、n≥Nを満たすすべてのnに対して∣an−α∣<εが成り立つという量化が現れます。仮定の不等式だけから、実数αの存在を得ることはできません。
数列の値の集合{an∣n≥1}は空でなく、上に有界です。極限候補を得る段階では、§D1.4 定義 1.2から得られる上限の存在を用います。ただし、上限が存在することだけでは収束の証明は終わりません。上限の性質から、任意のε>0に対応する番号Nを得る推論も必要です。その推論を含む完全な証明は§D1.7 定理 1.1に委ねます。
閑話休題:証明を機械に行わせる試みと、その限界 定義に従う書き換えを繰り返せば、証明を機械的な記号操作として記述することができるのではないか、という問いが生じます。20世紀初頭、ヒルベルトは、数学を公理から形式的に導き、その体系の無矛盾性を有限的な方法で保証する計画を掲げました。この計画をヒルベルト・プログラムといいます。
1931年、ゲーデルは不完全性定理によって、この計画に限界があることを示しました。自然数の算術を表すことができ、無矛盾で、公理と証明を機械的に検査することができる十分に強い形式体系には、その体系内で証明も反証もできない文が存在します。さらにチューリングは、任意に与えられたプログラムと入力について、そのプログラムが停止するかどうかを常に判定する手続きが存在しないことを示しました。プログラムが停止するかどうかを判定する問題を、停止性問題といいます。停止性問題を定式化する過程で、計算を表す理論上の機械としてチューリング機械が導入されました。
今日、Lean や Coq などの証明支援系は、形式化された定義、公理、推論規則に基づいて証明を検査します。証明支援系は不完全性定理や停止性問題の制約を取り除くものではありませんが、公理から結論までの各推論を機械的に確認することができます。定義を展開して必要な推論を特定するという本記事の手順は、証明を形式化する作業の最初の段階にあたります。形式体系そのものを数学の対象として扱う理論は§F39 モデル理論で扱います。
5 例題
次の言明を定義に従って論理式に展開し、さらにその否定(否定記号を内側へ押し込んだ形)を書け。
解法の型証明に詰まったら定義を展開する。展開すれば「示すべきこと」「使えること」が式になり、残りは計算。否定は∀↔∃を反転し、A⇒B は A∧¬Bに
次の言明を定義に従って論理式に展開し、その否定も書け。
例 5.1.
数列 (an) は L に収束する答
定義の展開その否定∀ε>0 ∃N ∀n≥N (∣an−L∣<ε)∃ε>0 ∀N ∃n≥N (∣an−L∣≥ε)注意 収束の定義。εは先に任意に与えられ、N はεに応じて選べる(∀ε∃Nの順序が本質)。否定は「ある幅εだけは、どんなに先へ行っても外れる項がある」。この否定文がそのまま「収束しないことの証明の仕様書」になる。
例 5.2.
f は偶関数である答
定義の展開その否定∀x (f(−x)=f(x))∃x (f(−x)=f(x))注意 定義の展開が最も短い例。全称なので示すには x を任意に取って計算し、崩すには反例を1つ挙げる。「任意は勝手に取る、存在は1つ作る」の型どおり。
例 5.3.
ベクトルの組 v1,…,vn は一次独立である答
定義の展開その否定∀c1,…,cn (c1v1+⋯+cnvn=0⇒c1=⋯=cn=0)∃c1,…,cn (c1v1+⋯+cnvn=0 ∧ ある ci が 0 でない)注意 一次独立の定義を展開すると「0 になる一次結合は自明なものだけ」という含意になり、示すべきことは連立方程式を解く計算に変わる。否定は「係数の少なくとも1つが 0 でない自明でない関係式が存在する」=一次従属の定義。
例 5.4.
f:X→Y は全射である答
定義の展開その否定∀y∈Y ∃x∈X (f(x)=y)∃y∈Y ∀x∈X (f(x)=y)注意 全射は「どの行き先 y にも、そこへ飛ぶ x がある」。示すには y を任意に取って x を構成する(∀は任意元、∃は構成)。否定は「どの x からも当たらない y が1つある」で、これが反例の仕様になる。
例 5.5.
f は単射である答
定義の展開その否定∀a ∀b (f(a)=f(b)⇒a=b)∃a ∃b (f(a)=f(b) ∧ a=b)注意 単射の定義を展開すると、示すべきことが「f(a)=f(b) を仮定して a=b を導く」という具体的な作業に変わる。否定は含意の否定なので A∧¬Bの形になり、「値が同じなのに異なる2点」=反例の仕様になる。
例 5.6.
M は S の上限(最小の上界)である答
定義の展開その否定∀x∈S (x≤M) ∧ ∀ε>0 ∃x∈S (x>M−ε)∃x∈S (x>M) ∨ ∃ε>0 ∀x∈S (x≤M−ε)注意 上限は「上界であること」と「それより小さい数は上界でないこと(いくらでも近づける元がある)」の2条件。否定はド・モルガン則で選言になる。第2条件をεで書くと計算に持ち込める、というのが定義展開の効能。
例 5.7.
f は単調増加である(広義)答
定義の展開その否定∀x ∀y (x<y⇒f(x)≤f(y))∃x ∃y (x<y ∧ f(x)>f(y))注意 定義を展開すれば、示すべきことは「x < y を仮定して f(x)≤f(y) を導く」。否定は含意の否定 A∧¬Bで、「順序が逆転する2点」=反例の仕様。
例 5.8.
f は(実数全体で)有界である答
定義の展開その否定∃M>0 ∀x (∣f(x)∣≤M)∀M>0 ∃x (∣f(x)∣>M)注意 有界とは「1本の共通の壁 M が取れて、すべての x で |f(x)| がそれを超えない」こと。否定は∃と∀を反転し、≤を > にする(等号の付け替えに注意)。否定文は「どんな M を持ってきても、それを超える点がある」=非有界の定義そのもの。証明に詰まったら定義を展開する、が最強の第一手。
例 5.9.
H は群 G の部分群である答
定義の展開その否定H⊆G ∧ e∈H ∧ ∀a,b∈H (ab∈H) ∧ ∀a∈H (a−1∈H)e∈/H ∨ ∃a,b∈H (ab∈/H) ∨ ∃a∈H (a−1∈/H)(H⊆G のもとで)注意 部分群の定義は「単位元を含む」「積で閉じる」「逆元で閉じる」の3条件の連言。否定はド・モルガン則で選言になり、どれか1つが破れれば部分群でない。部分群を示すときは3条件を順に確認する(定義を展開すれば作業が列挙される)。
例 5.10.
n は偶数である答
定義の展開その否定∃k∈Z (n=2k)∀k∈Z (n=2k)(同値な言い換え: ∃k∈Z (n=2k+1))注意 「偶数」を n=2k という式に展開した瞬間、証明は代入と展開の計算になる。否定は機械的には∀k(n=2k) だが、整数では「奇数」=∃k(n=2k+1) と同値(整数を 2 で割った余りは 0 か 1 しかないため)。
6 演習
次の言明を定義に従って論理式に展開し、さらにその否定(否定記号を内側へ押し込んだ形)を書け。
解法の型証明に詰まったら定義を展開する。展開すれば「示すべきこと」「使えること」が式になり、残りは計算。否定は∀↔∃を反転し、A⇒B は A∧¬Bに
次の言明を定義に従って論理式に展開し、その否定も書け。
問題 6.1.
集合 S は上に有界である解答.
答
定義の展開その否定∃M ∀x∈S (x≤M)∀M ∃x∈S (x>M)注意 上に有界とは「全部を上から押さえる1つの数 M がある」こと。否定は「どんな M を持ってきても、それを超える元が S にある」。∃と∀の順序が入れ替わる(M は全 x に共通の1つ)ことに注意。▨
問題 6.2.
ベクトルの組 v1,…,vn は一次独立である解答.
答
定義の展開その否定∀c1,…,cn (c1v1+⋯+cnvn=0⇒c1=⋯=cn=0)∃c1,…,cn (c1v1+⋯+cnvn=0 ∧ ある ci が 0 でない)注意 一次独立の定義を展開すると「0 になる一次結合は自明なものだけ」という含意になり、示すべきことは連立方程式を解く計算に変わる。否定は「係数の少なくとも1つが 0 でない自明でない関係式が存在する」=一次従属の定義。▨
問題 6.3.
f:X→Y は全射である解答.
答
定義の展開その否定∀y∈Y ∃x∈X (f(x)=y)∃y∈Y ∀x∈X (f(x)=y)注意 全射は「どの行き先 y にも、そこへ飛ぶ x がある」。示すには y を任意に取って x を構成する(∀は任意元、∃は構成)。否定は「どの x からも当たらない y が1つある」で、これが反例の仕様になる。▨
問題 6.4.
H は群 G の部分群である解答.
答
定義の展開その否定H⊆G ∧ e∈H ∧ ∀a,b∈H (ab∈H) ∧ ∀a∈H (a−1∈H)e∈/H ∨ ∃a,b∈H (ab∈/H) ∨ ∃a∈H (a−1∈/H)(H⊆G のもとで)注意 部分群の定義は「単位元を含む」「積で閉じる」「逆元で閉じる」の3条件の連言。否定はド・モルガン則で選言になり、どれか1つが破れれば部分群でない。部分群を示すときは3条件を順に確認する(定義を展開すれば作業が列挙される)。▨
問題 6.5.
数列 (an) は L に収束する解答.
答
定義の展開その否定∀ε>0 ∃N ∀n≥N (∣an−L∣<ε)∃ε>0 ∀N ∃n≥N (∣an−L∣≥ε)注意 収束の定義。εは先に任意に与えられ、N はεに応じて選べる(∀ε∃Nの順序が本質)。否定は「ある幅εだけは、どんなに先へ行っても外れる項がある」。この否定文がそのまま「収束しないことの証明の仕様書」になる。▨
問題 6.6.
U は(実数直線の)開集合である解答.
答
定義の展開その否定∀x∈U ∃ε>0 ∀y (∣y−x∣<ε⇒y∈U)∃x∈U ∀ε>0 ∃y (∣y−x∣<ε ∧ y∈/U)注意 開集合とは「どの点にも、その周り丸ごとが U に入るような余裕εがある」こと。否定は「どんなに小さいεを取っても U の外の点が近くにある点が、U の中に1つある」=境界に張り付いた点があること。εは x ごとに選んでよい(∀x∃εの順序)ことに注意。▨
問題 6.7.
A⊆B解答.
答
定義の展開その否定∀x (x∈A⇒x∈B)∃x (x∈A ∧ x∈/B)注意 包含の定義を展開すると「x∈A を任意に取り、x∈B を示す」という一本道になる。否定は「A に属すが B に属さない元が1つある」で、包含を崩すにはこの元を1つ挙げれば十分。▨
問題 6.8.
f は単調増加である(広義)解答.
答
定義の展開その否定∀x ∀y (x<y⇒f(x)≤f(y))∃x ∃y (x<y ∧ f(x)>f(y))注意 定義を展開すれば、示すべきことは「x < y を仮定して f(x)≤f(y) を導く」。否定は含意の否定 A∧¬Bで、「順序が逆転する2点」=反例の仕様。▨
問題 6.9.
n は偶数である解答.
答
定義の展開その否定∃k∈Z (n=2k)∀k∈Z (n=2k)(同値な言い換え: ∃k∈Z (n=2k+1))注意 「偶数」を n=2k という式に展開した瞬間、証明は代入と展開の計算になる。否定は機械的には∀k(n=2k) だが、整数では「奇数」=∃k(n=2k+1) と同値(整数を 2 で割った余りは 0 か 1 しかないため)。▨
問題 6.10.
f は(実数全体で)有界である解答.
答
定義の展開その否定∃M>0 ∀x (∣f(x)∣≤M)∀M>0 ∃x (∣f(x)∣>M)注意 有界とは「1本の共通の壁 M が取れて、すべての x で |f(x)| がそれを超えない」こと。否定は∃と∀を反転し、≤を > にする(等号の付け替えに注意)。否定文は「どんな M を持ってきても、それを超える点がある」=非有界の定義そのもの。証明に詰まったら定義を展開する、が最強の第一手。▨
問題 6.11.
p は素数である(p は 2 以上の整数)解答.
答
定義の展開その否定∀d∈N (d∣p⇒(d=1∨d=p))∃d∈N (d∣p ∧ d=1 ∧ d=p)注意 素数の定義を展開すると「約数は 1 と自分自身だけ」という全称命題。否定は含意の否定から A∧¬Bの形になり、ド・モルガン則で「1 でも p でもない約数が存在する」=合成数の定義になる。▨
問題 6.12.
M は S の上限(最小の上界)である解答.
答
定義の展開その否定∀x∈S (x≤M) ∧ ∀ε>0 ∃x∈S (x>M−ε)∃x∈S (x>M) ∨ ∃ε>0 ∀x∈S (x≤M−ε)注意 上限は「上界であること」と「それより小さい数は上界でないこと(いくらでも近づける元がある)」の2条件。否定はド・モルガン則で選言になる。第2条件をεで書くと計算に持ち込める、というのが定義展開の効能。▨
問題 6.13.
f は単射である解答.
答
定義の展開その否定∀a ∀b (f(a)=f(b)⇒a=b)∃a ∃b (f(a)=f(b) ∧ a=b)注意 単射の定義を展開すると、示すべきことが「f(a)=f(b) を仮定して a=b を導く」という具体的な作業に変わる。否定は含意の否定なので A∧¬Bの形になり、「値が同じなのに異なる2点」=反例の仕様になる。▨
問題 6.14.
f は偶関数である解答.
答
定義の展開その否定∀x (f(−x)=f(x))∃x (f(−x)=f(x))注意 定義の展開が最も短い例。全称なので示すには x を任意に取って計算し、崩すには反例を1つ挙げる。「任意は勝手に取る、存在は1つ作る」の型どおり。▨