§A3.14定義の展開という技法

最終更新

定義を展開することによって、証明で何を示し、どの仮定を使うのかを、どのように明らかにすることができるのでしょうか。本記事では、示すべき結論と利用できる仮定を対象として、それぞれを定義に従って書き下します。両者の間に残る推論を、その場の計算で閉じる部分と、別の定理または公理を必要とする部分とに分けるところまで進みます。

1 結論と仮定の定義への展開

定義の展開では、次の順序を用います。

公式 1.1. 証明する結論を定義で書き換える。利用できる仮定も定義で書き換える。各定義に現れる量化子、対象の範囲、条件をすべて書く。最後に、残った証明の責務を、その場の計算で閉じる部分と既存の定理や公理を必要とする部分とに分ける。

結論を展開すると、何を示せば証明が終わるのかが分かります。仮定を展開すると、証明に使うことができる式や条件が分かります。両方を同じ記号で書くことにより、結論と仮定の間に残る推論を特定することができます。

2 単射の合成と定義の展開

定義 2.1 (単射). 集合X,YX,Yと写像f:X→Yf:X\to Yに対して、ffが単射 (injective map) であるとは、任意のa,b∈Xa,b\in Xについて

f(a)=f(b)⟹a=bf(a)=f(b)\Longrightarrow a=b

が成り立つことをいう。

定理 2.2. 集合X,Y,ZX,Y,Zと写像f:X→Yf:X\to Y、g:Y→Zg:Y\to Zをとる。ffとggが単射ならば、合成写像g∘f:X→Zg\circ f:X\to Zも単射である。

単射の定義を定理の仮定と結論へそれぞれ適用すると、次の条件になります。

役割 定義を展開した条件
ffが単射であるという仮定 すべてのs,t∈Xs,t\in Xに対して、f(s)=f(t)f(s)=f(t)ならばs=ts=tです。
ggが単射であるという仮定 すべてのu,v∈Yu,v\in Yに対して、g(u)=g(v)g(u)=g(v)ならばu=vu=vです。
g∘fg\circ fが単射であるという結論 すべてのa,b∈Xa,b\in Xに対して、g(f(a))=g(f(b))g(f(a))=g(f(b))ならばa=ba=bです。

a,b∈Xa,b\in Xを任意に取ると、f(a),f(b)∈Yf(a),f(b)\in Yです。このため、ggの単射性を先に適用し、続いてffの単射性を適用します。

証明.a,b∈Xa,b\in Xを任意に取り、(g∘f)(a)=(g∘f)(b)(g\circ f)(a)=(g\circ f)(b)と仮定する。この等式は

g(f(a))=g(f(b))g(f(a))=g(f(b))

を意味する。ggは単射であるからf(a)=f(b)f(a)=f(b)であり、ffも単射であるからa=ba=bである。したがって、任意のa,b∈Xa,b\in Xについて(g∘f)(a)=(g∘f)(b)(g\circ f)(a)=(g\circ f)(b)ならばa=ba=bとなるため、g∘fg\circ fは単射である。▨

結論と二つの仮定を定義へ置き換えると、上の証明は単射性を二回適用することで閉じます。

3 集合の等式の展開と場合分け

集合の等式についても、仮定と結論を要素の所属条件に書き換えます。

例 3.1. 全体集合UUの部分集合A,B,CA,B,Cが

A∩B=A∩C,A∪B=A∪CA\cap B=A\cap C,\qquad A\cup B=A\cup C

を満たすとする。このときB=CB=Cである。

二つの仮定を要素の条件で書くと、

∀x∈U [(x∈A∧x∈B)⇔(x∈A∧x∈C)],\forall x\in U\,\bigl[(x\in A\land x\in B)\Leftrightarrow(x\in A\land x\in C)\bigr],∀x∈U [(x∈A∨x∈B)⇔(x∈A∨x∈C)]\forall x\in U\,\bigl[(x\in A\lor x\in B)\Leftrightarrow(x\in A\lor x\in C)\bigr]

となる。示すべき結論は∀x∈U (x∈B⇔x∈C)\forall x\in U\,(x\in B\Leftrightarrow x\in C)である。

x∈Ux\in Uを任意に取る。x∈Ax\in Aの場合、共通部分の等式からx∈B⇔x∈Cx\in B\Leftrightarrow x\in Cが従う。x∉Ax\notin Aの場合、和集合の等式から同じ同値が従う。二つの場合はUUのすべての要素を尽くすので、B=CB=Cである。

一方の仮定だけでは結論は成り立たない。U={1,2}U=\{1,2\}、A={1}A=\{1\}、B=∅B=\varnothing、C={2}C=\{2\}とすると、A∩B=A∩C=∅A\cap B=A\cap C=\varnothingであるがB≠CB\ne Cである。同じU,A,BU,A,BとC={1}C=\{1\}ならば、A∪B=A∪C={1}A\cup B=A\cup C=\{1\}であるがB≠CB\ne Cである。

4 上限公理を要する収束の例

定義を展開すると、計算だけでは閉じず、別の定理または公理を必要とする推論を特定することもできます。次の定理の証明は、そのような推論を含む例です。

定理 4.1. 上に有界な広義単調増加数列は収束する。

実数列(an)n≥1(a_n)_{n\ge1}について仮定を展開すると、すべてのn≥1n\ge1に対する不等式an≤an+1a_n\le a_{n+1}と、ある実数MMが存在して、すべてのn≥1n\ge1に対してan≤Ma_n\le Mが成り立つことが現れます。一方、結論を展開すると、極限の候補となる実数α\alphaが存在し、任意のε>0\varepsilon>0に対して番号NNを選ぶことができ、n≥Nn\ge Nを満たすすべてのnnに対して∣an−α∣<ε|a_n-\alpha|<\varepsilonが成り立つという量化が現れます。仮定の不等式だけから、実数α\alphaの存在を得ることはできません。

数列の値の集合{an∣n≥1}\{a_n\mid n\ge1\}は空でなく、上に有界です。極限候補を得る段階では、§D1.4 定義 1.2から得られる上限の存在を用います。ただし、上限が存在することだけでは収束の証明は終わりません。上限の性質から、任意のε>0\varepsilon>0に対応する番号NNを得る推論も必要です。その推論を含む完全な証明は§D1.7 定理 1.1に委ねます。

閑話休題:証明を機械に行わせる試みと、その限界 定義に従う書き換えを繰り返せば、証明を機械的な記号操作として記述することができるのではないか、という問いが生じます。2020世紀初頭、ヒルベルトは、数学を公理から形式的に導き、その体系の無矛盾性を有限的な方法で保証する計画を掲げました。この計画をヒルベルト・プログラムといいます。

19311931年、ゲーデルは不完全性定理によって、この計画に限界があることを示しました。自然数の算術を表すことができ、無矛盾で、公理と証明を機械的に検査することができる十分に強い形式体系には、その体系内で証明も反証もできない文が存在します。さらにチューリングは、任意に与えられたプログラムと入力について、そのプログラムが停止するかどうかを常に判定する手続きが存在しないことを示しました。プログラムが停止するかどうかを判定する問題を、停止性問題といいます。停止性問題を定式化する過程で、計算を表す理論上の機械としてチューリング機械が導入されました。

今日、Lean や Coq などの証明支援系は、形式化された定義、公理、推論規則に基づいて証明を検査します。証明支援系は不完全性定理や停止性問題の制約を取り除くものではありませんが、公理から結論までの各推論を機械的に確認することができます。定義を展開して必要な推論を特定するという本記事の手順は、証明を形式化する作業の最初の段階にあたります。形式体系そのものを数学の対象として扱う理論は§F39 モデル理論で扱います。

5 例題

レベル2 — 定義の展開

次の言明を定義に従って論理式に展開し、さらにその否定(否定記号を内側へ押し込んだ形)を書け。

解法の型証明に詰まったら定義を展開する。展開すれば「示すべきこと」「使えること」が式になり、残りは計算。否定は∀\forall↔∃\existsを反転し、A⇒\RightarrowB は A∧\land¬B\neg Bに

次の言明を定義に従って論理式に展開し、その否定も書け。

例 5.1.

数列 (an) は L に収束する\text{数列 } (a_n) \ \text{は } L \ \text{に収束する}

答

定義の展開∀ε>0 ∃N ∀n≥N (∣an−L∣<ε)その否定∃ε>0 ∀N ∃n≥N (∣an−L∣≥ε)\begin{array}{ll} \text{定義の展開} & \forall \varepsilon > 0 \ \exists N \ \forall n \ge N \ \bigl(|a_n - L| < \varepsilon\bigr) \\ \text{その否定} & \exists \varepsilon > 0 \ \forall N \ \exists n \ge N \ \bigl(|a_n - L| \ge \varepsilon\bigr) \end{array}

注意 収束の定義。ε\varepsilonは先に任意に与えられ、N はε\varepsilonに応じて選べる(∀ε∃N\forall\varepsilon \exists Nの順序が本質)。否定は「ある幅ε\varepsilonだけは、どんなに先へ行っても外れる項がある」。この否定文がそのまま「収束しないことの証明の仕様書」になる。

例 5.2.

f は偶関数であるf \ \text{は偶関数である}

答

定義の展開∀x (f(−x)=f(x))その否定∃x (f(−x)≠f(x))\begin{array}{ll} \text{定義の展開} & \forall x \ \bigl(f(-x) = f(x)\bigr) \\ \text{その否定} & \exists x \ \bigl(f(-x) \ne f(x)\bigr) \end{array}

注意 定義の展開が最も短い例。全称なので示すには x を任意に取って計算し、崩すには反例を1つ挙げる。「任意は勝手に取る、存在は1つ作る」の型どおり。

例 5.3.

ベクトルの組 v1,…,vn は一次独立である\text{ベクトルの組 } v_1, \ldots, v_n \ \text{は一次独立である}

答

定義の展開∀c1,…,cn (c1v1+⋯+cnvn=0⇒c1=⋯=cn=0)その否定∃c1,…,cn (c1v1+⋯+cnvn=0 ∧ ある ci が 0 でない)\begin{array}{ll} \text{定義の展開} & \forall c_1, \ldots, c_n \ \bigl(c_1 v_1 + \cdots + c_n v_n = 0 \Rightarrow c_1 = \cdots = c_n = 0\bigr) \\ \text{その否定} & \exists c_1, \ldots, c_n \ \bigl(c_1 v_1 + \cdots + c_n v_n = 0 \ \land \ \text{ある } c_i \ \text{が } 0 \ \text{でない}\bigr) \end{array}

注意 一次独立の定義を展開すると「0 になる一次結合は自明なものだけ」という含意になり、示すべきことは連立方程式を解く計算に変わる。否定は「係数の少なくとも1つが 0 でない自明でない関係式が存在する」=一次従属の定義。

例 5.4.

f:X→Y は全射であるf : X \to Y \ \text{は全射である}

答

定義の展開∀y∈Y ∃x∈X (f(x)=y)その否定∃y∈Y ∀x∈X (f(x)≠y)\begin{array}{ll} \text{定義の展開} & \forall y \in Y \ \exists x \in X \ \bigl(f(x) = y\bigr) \\ \text{その否定} & \exists y \in Y \ \forall x \in X \ \bigl(f(x) \ne y\bigr) \end{array}

注意 全射は「どの行き先 y にも、そこへ飛ぶ x がある」。示すには y を任意に取って x を構成する(∀\forallは任意元、∃\existsは構成)。否定は「どの x からも当たらない y が1つある」で、これが反例の仕様になる。

例 5.5.

f は単射であるf \ \text{は単射である}

答

定義の展開∀a ∀b (f(a)=f(b)⇒a=b)その否定∃a ∃b (f(a)=f(b) ∧ a≠b)\begin{array}{ll} \text{定義の展開} & \forall a \ \forall b \ \bigl(f(a) = f(b) \Rightarrow a = b\bigr) \\ \text{その否定} & \exists a \ \exists b \ \bigl(f(a) = f(b) \ \land \ a \ne b\bigr) \end{array}

注意 単射の定義を展開すると、示すべきことが「f(a)==f(b) を仮定して a==b を導く」という具体的な作業に変わる。否定は含意の否定なので A∧¬B\land \neg Bの形になり、「値が同じなのに異なる2点」=反例の仕様になる。

例 5.6.

M は S の上限(最小の上界)であるM \ \text{は } S \ \text{の上限(最小の上界)である}

答

定義の展開∀x∈S (x≤M) ∧ ∀ε>0 ∃x∈S (x>M−ε)その否定∃x∈S (x>M) ∨ ∃ε>0 ∀x∈S (x≤M−ε)\begin{array}{ll} \text{定義の展開} & \forall x \in S \ (x \le M) \ \land \ \forall \varepsilon > 0 \ \exists x \in S \ (x > M - \varepsilon) \\ \text{その否定} & \exists x \in S \ (x > M) \ \lor \ \exists \varepsilon > 0 \ \forall x \in S \ (x \le M - \varepsilon) \end{array}

注意 上限は「上界であること」と「それより小さい数は上界でないこと(いくらでも近づける元がある)」の2条件。否定はド・モルガン則で選言になる。第2条件をε\varepsilonで書くと計算に持ち込める、というのが定義展開の効能。

例 5.7.

f は単調増加である(広義)f \ \text{は単調増加である(広義)}

答

定義の展開∀x ∀y (x<y⇒f(x)≤f(y))その否定∃x ∃y (x<y ∧ f(x)>f(y))\begin{array}{ll} \text{定義の展開} & \forall x \ \forall y \ \bigl(x < y \Rightarrow f(x) \le f(y)\bigr) \\ \text{その否定} & \exists x \ \exists y \ \bigl(x < y \ \land \ f(x) > f(y)\bigr) \end{array}

注意 定義を展開すれば、示すべきことは「x < y を仮定して f(x)≤\lef(y) を導く」。否定は含意の否定 A∧¬B\land \neg Bで、「順序が逆転する2点」=反例の仕様。

例 5.8.

f は(実数全体で)有界であるf \ \text{は(実数全体で)有界である}

答

定義の展開∃M>0 ∀x (∣f(x)∣≤M)その否定∀M>0 ∃x (∣f(x)∣>M)\begin{array}{ll} \text{定義の展開} & \exists M > 0 \ \forall x \ \bigl(|f(x)| \le M\bigr) \\ \text{その否定} & \forall M > 0 \ \exists x \ \bigl(|f(x)| > M\bigr) \end{array}

注意 有界とは「1本の共通の壁 M が取れて、すべての x で |f(x)| がそれを超えない」こと。否定は∃\existsと∀\forallを反転し、≤\leを > にする(等号の付け替えに注意)。否定文は「どんな M を持ってきても、それを超える点がある」=非有界の定義そのもの。証明に詰まったら定義を展開する、が最強の第一手。

例 5.9.

H は群 G の部分群であるH \ \text{は群 } G \ \text{の部分群である}

答

定義の展開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 のもとで)\begin{array}{ll} \text{定義の展開} & H \subseteq G \ \land \ e \in H \ \land \ \forall a, b \in H \ (ab \in H) \ \land \ \forall a \in H \ (a^{-1} \in H) \\ \text{その否定} & e \notin H \ \lor \ \exists a, b \in H \ (ab \notin H) \ \lor \ \exists a \in H \ (a^{-1} \notin H) \quad (H \subseteq G \ \text{のもとで}) \end{array}

注意 部分群の定義は「単位元を含む」「積で閉じる」「逆元で閉じる」の3条件の連言。否定はド・モルガン則で選言になり、どれか1つが破れれば部分群でない。部分群を示すときは3条件を順に確認する(定義を展開すれば作業が列挙される)。

例 5.10.

n は偶数であるn \ \text{は偶数である}

答

定義の展開∃k∈Z (n=2k)その否定∀k∈Z (n≠2k)(同値な言い換え: ∃k∈Z (n=2k+1))\begin{array}{ll} \text{定義の展開} & \exists k \in \mathbb{Z} \ (n = 2k) \\ \text{その否定} & \forall k \in \mathbb{Z} \ (n \ne 2k) \quad \text{(同値な言い換え: } \exists k \in \mathbb{Z} \ (n = 2k + 1) \text{)} \end{array}

注意 「偶数」を n==2k という式に展開した瞬間、証明は代入と展開の計算になる。否定は機械的には∀k\forall k(n≠\ne2k) だが、整数では「奇数」=∃k\exists k(n==2k+1) と同値(整数を 2 で割った余りは 0 か 1 しかないため)。

6 演習

レベル2 — 定義の展開

次の言明を定義に従って論理式に展開し、さらにその否定(否定記号を内側へ押し込んだ形)を書け。

解法の型証明に詰まったら定義を展開する。展開すれば「示すべきこと」「使えること」が式になり、残りは計算。否定は∀\forall↔∃\existsを反転し、A⇒\RightarrowB は A∧\land¬B\neg Bに

次の言明を定義に従って論理式に展開し、その否定も書け。

問題 6.1.

集合 S は上に有界である\text{集合 } S \ \text{は上に有界である}
解答.

答

定義の展開∃M ∀x∈S (x≤M)その否定∀M ∃x∈S (x>M)\begin{array}{ll} \text{定義の展開} & \exists M \ \forall x \in S \ (x \le M) \\ \text{その否定} & \forall M \ \exists x \in S \ (x > M) \end{array}

注意 上に有界とは「全部を上から押さえる1つの数 M がある」こと。否定は「どんな M を持ってきても、それを超える元が S にある」。∃\existsと∀\forallの順序が入れ替わる(M は全 x に共通の1つ)ことに注意。▨

問題 6.2.

ベクトルの組 v1,…,vn は一次独立である\text{ベクトルの組 } v_1, \ldots, v_n \ \text{は一次独立である}
解答.

答

定義の展開∀c1,…,cn (c1v1+⋯+cnvn=0⇒c1=⋯=cn=0)その否定∃c1,…,cn (c1v1+⋯+cnvn=0 ∧ ある ci が 0 でない)\begin{array}{ll} \text{定義の展開} & \forall c_1, \ldots, c_n \ \bigl(c_1 v_1 + \cdots + c_n v_n = 0 \Rightarrow c_1 = \cdots = c_n = 0\bigr) \\ \text{その否定} & \exists c_1, \ldots, c_n \ \bigl(c_1 v_1 + \cdots + c_n v_n = 0 \ \land \ \text{ある } c_i \ \text{が } 0 \ \text{でない}\bigr) \end{array}

注意 一次独立の定義を展開すると「0 になる一次結合は自明なものだけ」という含意になり、示すべきことは連立方程式を解く計算に変わる。否定は「係数の少なくとも1つが 0 でない自明でない関係式が存在する」=一次従属の定義。▨

問題 6.3.

f:X→Y は全射であるf : X \to Y \ \text{は全射である}
解答.

答

定義の展開∀y∈Y ∃x∈X (f(x)=y)その否定∃y∈Y ∀x∈X (f(x)≠y)\begin{array}{ll} \text{定義の展開} & \forall y \in Y \ \exists x \in X \ \bigl(f(x) = y\bigr) \\ \text{その否定} & \exists y \in Y \ \forall x \in X \ \bigl(f(x) \ne y\bigr) \end{array}

注意 全射は「どの行き先 y にも、そこへ飛ぶ x がある」。示すには y を任意に取って x を構成する(∀\forallは任意元、∃\existsは構成)。否定は「どの x からも当たらない y が1つある」で、これが反例の仕様になる。▨

問題 6.4.

H は群 G の部分群であるH \ \text{は群 } G \ \text{の部分群である}
解答.

答

定義の展開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 のもとで)\begin{array}{ll} \text{定義の展開} & H \subseteq G \ \land \ e \in H \ \land \ \forall a, b \in H \ (ab \in H) \ \land \ \forall a \in H \ (a^{-1} \in H) \\ \text{その否定} & e \notin H \ \lor \ \exists a, b \in H \ (ab \notin H) \ \lor \ \exists a \in H \ (a^{-1} \notin H) \quad (H \subseteq G \ \text{のもとで}) \end{array}

注意 部分群の定義は「単位元を含む」「積で閉じる」「逆元で閉じる」の3条件の連言。否定はド・モルガン則で選言になり、どれか1つが破れれば部分群でない。部分群を示すときは3条件を順に確認する(定義を展開すれば作業が列挙される)。▨

問題 6.5.

数列 (an) は L に収束する\text{数列 } (a_n) \ \text{は } L \ \text{に収束する}
解答.

答

定義の展開∀ε>0 ∃N ∀n≥N (∣an−L∣<ε)その否定∃ε>0 ∀N ∃n≥N (∣an−L∣≥ε)\begin{array}{ll} \text{定義の展開} & \forall \varepsilon > 0 \ \exists N \ \forall n \ge N \ \bigl(|a_n - L| < \varepsilon\bigr) \\ \text{その否定} & \exists \varepsilon > 0 \ \forall N \ \exists n \ge N \ \bigl(|a_n - L| \ge \varepsilon\bigr) \end{array}

注意 収束の定義。ε\varepsilonは先に任意に与えられ、N はε\varepsilonに応じて選べる(∀ε∃N\forall\varepsilon \exists Nの順序が本質)。否定は「ある幅ε\varepsilonだけは、どんなに先へ行っても外れる項がある」。この否定文がそのまま「収束しないことの証明の仕様書」になる。▨

問題 6.6.

U は(実数直線の)開集合であるU \ \text{は(実数直線の)開集合である}
解答.

答

定義の展開∀x∈U ∃ε>0 ∀y (∣y−x∣<ε⇒y∈U)その否定∃x∈U ∀ε>0 ∃y (∣y−x∣<ε ∧ y∉U)\begin{array}{ll} \text{定義の展開} & \forall x \in U \ \exists \varepsilon > 0 \ \forall y \ \bigl(|y - x| < \varepsilon \Rightarrow y \in U\bigr) \\ \text{その否定} & \exists x \in U \ \forall \varepsilon > 0 \ \exists y \ \bigl(|y - x| < \varepsilon \ \land \ y \notin U\bigr) \end{array}

注意 開集合とは「どの点にも、その周り丸ごとが U に入るような余裕ε\varepsilonがある」こと。否定は「どんなに小さいε\varepsilonを取っても U の外の点が近くにある点が、U の中に1つある」=境界に張り付いた点があること。ε\varepsilonは x ごとに選んでよい(∀x∃ε\forall x \exists\varepsilonの順序)ことに注意。▨

問題 6.7.

A⊆BA \subseteq B
解答.

答

定義の展開∀x (x∈A⇒x∈B)その否定∃x (x∈A ∧ x∉B)\begin{array}{ll} \text{定義の展開} & \forall x \ \bigl(x \in A \Rightarrow x \in B\bigr) \\ \text{その否定} & \exists x \ \bigl(x \in A \ \land \ x \notin B\bigr) \end{array}

注意 包含の定義を展開すると「x∈\inA を任意に取り、x∈\inB を示す」という一本道になる。否定は「A に属すが B に属さない元が1つある」で、包含を崩すにはこの元を1つ挙げれば十分。▨

問題 6.8.

f は単調増加である(広義)f \ \text{は単調増加である(広義)}
解答.

答

定義の展開∀x ∀y (x<y⇒f(x)≤f(y))その否定∃x ∃y (x<y ∧ f(x)>f(y))\begin{array}{ll} \text{定義の展開} & \forall x \ \forall y \ \bigl(x < y \Rightarrow f(x) \le f(y)\bigr) \\ \text{その否定} & \exists x \ \exists y \ \bigl(x < y \ \land \ f(x) > f(y)\bigr) \end{array}

注意 定義を展開すれば、示すべきことは「x < y を仮定して f(x)≤\lef(y) を導く」。否定は含意の否定 A∧¬B\land \neg Bで、「順序が逆転する2点」=反例の仕様。▨

問題 6.9.

n は偶数であるn \ \text{は偶数である}
解答.

答

定義の展開∃k∈Z (n=2k)その否定∀k∈Z (n≠2k)(同値な言い換え: ∃k∈Z (n=2k+1))\begin{array}{ll} \text{定義の展開} & \exists k \in \mathbb{Z} \ (n = 2k) \\ \text{その否定} & \forall k \in \mathbb{Z} \ (n \ne 2k) \quad \text{(同値な言い換え: } \exists k \in \mathbb{Z} \ (n = 2k + 1) \text{)} \end{array}

注意 「偶数」を n==2k という式に展開した瞬間、証明は代入と展開の計算になる。否定は機械的には∀k\forall k(n≠\ne2k) だが、整数では「奇数」=∃k\exists k(n==2k+1) と同値(整数を 2 で割った余りは 0 か 1 しかないため)。▨

問題 6.10.

f は(実数全体で)有界であるf \ \text{は(実数全体で)有界である}
解答.

答

定義の展開∃M>0 ∀x (∣f(x)∣≤M)その否定∀M>0 ∃x (∣f(x)∣>M)\begin{array}{ll} \text{定義の展開} & \exists M > 0 \ \forall x \ \bigl(|f(x)| \le M\bigr) \\ \text{その否定} & \forall M > 0 \ \exists x \ \bigl(|f(x)| > M\bigr) \end{array}

注意 有界とは「1本の共通の壁 M が取れて、すべての x で |f(x)| がそれを超えない」こと。否定は∃\existsと∀\forallを反転し、≤\leを > にする(等号の付け替えに注意)。否定文は「どんな M を持ってきても、それを超える点がある」=非有界の定義そのもの。証明に詰まったら定義を展開する、が最強の第一手。▨

問題 6.11.

p は素数である(p は 2 以上の整数)p \ \text{は素数である} \quad (p \ \text{は } 2 \ \text{以上の整数})
解答.

答

定義の展開∀d∈N (d∣p⇒(d=1∨d=p))その否定∃d∈N (d∣p ∧ d≠1 ∧ d≠p)\begin{array}{ll} \text{定義の展開} & \forall d \in \mathbb{N} \ \bigl(d \mid p \Rightarrow (d = 1 \lor d = p)\bigr) \\ \text{その否定} & \exists d \in \mathbb{N} \ \bigl(d \mid p \ \land \ d \ne 1 \ \land \ d \ne p\bigr) \end{array}

注意 素数の定義を展開すると「約数は 1 と自分自身だけ」という全称命題。否定は含意の否定から A∧¬B\land \neg Bの形になり、ド・モルガン則で「1 でも p でもない約数が存在する」=合成数の定義になる。▨

問題 6.12.

M は S の上限(最小の上界)であるM \ \text{は } S \ \text{の上限(最小の上界)である}
解答.

答

定義の展開∀x∈S (x≤M) ∧ ∀ε>0 ∃x∈S (x>M−ε)その否定∃x∈S (x>M) ∨ ∃ε>0 ∀x∈S (x≤M−ε)\begin{array}{ll} \text{定義の展開} & \forall x \in S \ (x \le M) \ \land \ \forall \varepsilon > 0 \ \exists x \in S \ (x > M - \varepsilon) \\ \text{その否定} & \exists x \in S \ (x > M) \ \lor \ \exists \varepsilon > 0 \ \forall x \in S \ (x \le M - \varepsilon) \end{array}

注意 上限は「上界であること」と「それより小さい数は上界でないこと(いくらでも近づける元がある)」の2条件。否定はド・モルガン則で選言になる。第2条件をε\varepsilonで書くと計算に持ち込める、というのが定義展開の効能。▨

問題 6.13.

f は単射であるf \ \text{は単射である}
解答.

答

定義の展開∀a ∀b (f(a)=f(b)⇒a=b)その否定∃a ∃b (f(a)=f(b) ∧ a≠b)\begin{array}{ll} \text{定義の展開} & \forall a \ \forall b \ \bigl(f(a) = f(b) \Rightarrow a = b\bigr) \\ \text{その否定} & \exists a \ \exists b \ \bigl(f(a) = f(b) \ \land \ a \ne b\bigr) \end{array}

注意 単射の定義を展開すると、示すべきことが「f(a)==f(b) を仮定して a==b を導く」という具体的な作業に変わる。否定は含意の否定なので A∧¬B\land \neg Bの形になり、「値が同じなのに異なる2点」=反例の仕様になる。▨

問題 6.14.

f は偶関数であるf \ \text{は偶関数である}
解答.

答

定義の展開∀x (f(−x)=f(x))その否定∃x (f(−x)≠f(x))\begin{array}{ll} \text{定義の展開} & \forall x \ \bigl(f(-x) = f(x)\bigr) \\ \text{その否定} & \exists x \ \bigl(f(-x) \ne f(x)\bigr) \end{array}

注意 定義の展開が最も短い例。全称なので示すには x を任意に取って計算し、崩すには反例を1つ挙げる。「任意は勝手に取る、存在は1つ作る」の型どおり。▨

前提記事