数学的な証明を行う際に間違いを犯すのは簡単です.それでも、それらの証明で繰り返されるエラーパターンを見つけることができます.そして、最も一般的な理由のいくつかは、無害に見える数のゼロに関連しています. ゼロ除算の楽しみ 次の 1 の「証明」を見てみましょう。 = 2 1 =2セマンティクス> 数学> 1=2: <セマンティクス>させて a , b ∈ Z そのような a = b a 2 = a b a 2 − b 2 = a b − b 2 ( a + b ) ( a − b ) = b ( a − b ) a + b = b a + a = a 2 a = a 2 = 1 \begin{aligned}\text{let } a, b \in \mathbb{Z} \text{ such that } a =b \\a^2 &=ab \\a^2 - b^2 &=ab - b^2 \\(a + b)(a - b) &=b(a - b) \\a + b &=b \\a + a &=a \\2a &=a \\2 &=1\end{aligned} 数学> a,b∈Zを、a=ba2a2−b2(a+b)(a−b)a+ba+a2a2 =ab=ab−b2=b(a−b)=b=a=a=1な ここで何が間違っているのでしょうか? a で方程式の両辺をキャンセルします − b a - bセマンティクス> 数学> a-b ですが、前提には a が含まれます = b a =bセマンティクス> 数学> a=b なので、ゼロ除算の問題があります。 一般に、ゼロチェックなしでキャンセルを実行することはひどい考えであり、避けるべきです。 要素がゼロのセット わかりました、これは「すべてのオブジェクトは同じ」という愚かな「証明」です。オブジェクトは可算であると仮定します。 証明: S とする セマンティクス> 数学> S をすべてのオブジェクトのセットとします。プロパティを P とします。 ( ん ) P(n)セマンティクス> 数学> P(n) は、S のすべてのサブセットを意味します セマンティクス> 数学> 最大で n のサイズの S nセマンティクス> 数学> n には同じオブジェクトが含まれます。正式には: <セマンティクス>P ( ん ) ≡ ∀ X ∈ パウ ( さ ) , ∣ X ∣ ≤ ん そのような ∀ お , o ' ∈ X , お = o ' P(n) \equiv \forall X \in \text{Pow}(S),\; |X| \leq n \text{ such that } \forall o, o' \ \in X, o =o' 数学> P(n)≡∀X∈Pow(S),∣X∣≤n そのような ∀o,o' ∈X,o=o' where <セマンティクス>Pow ( さ ) \text{Pow}(S) 数学> Pow(S) は集合 S の冪集合です。 セマンティクス> 数学> S のすべてのサブセットによって定義される S セマンティクス> 数学> S、および ∣ X ∣ |X|セマンティクス> 数学> ∣X∣ は X の基数 (要素数) を意味します Xセマンティクス> 数学> X. 少し立ち止まって、この定義が何を意味するのかを理解してください。次の「証明」で使用します。 ∀ であることを証明したい ん > 1 , P ( ん ) \forall n> 1, P(n)セマンティクス> 数学> ∀n>1,P(n)。 n の数学的帰納法によって証明します。 nセマンティクス> 数学> n. 基本ケース (n = 1 n =1セマンティクス> 数学> n=1): オブジェクトのシングルトン セットには同じオブジェクトのみを含めることができるため、これは簡単です。 帰納的なケース: P を扱います ( ん ) P(n)セマンティクス> 数学> P(n) を帰納的仮説として、P を証明する必要があります。 ( ん + 1 ) P(n + 1)セマンティクス> 数学> P(n+1)。一般性を失うことなく、任意のセット X<を選択します。 /ミ> ∈ パウ ( さ ) X \in \text{Pow}(S) 数学> X∈Pow(S) ∣ X ∣ = ん + 1 |X| =n + 1セマンティクス> 数学> ∣X∣=n+1.2 つのオブジェクトを選択 x , x ' ∈ X x, x' \in X 数学> x,x′∈X、そして x を表示しましょう = x ' x =x'セマンティクス> 数学> x=x′.Let <セマンティクス>Y = X − x Y =X - {x}セマンティクス> 数学> Y=X−x および Y ' = X − x ' Y' =X - {x'} 数学> Y′=X−x′.Since <セマンティクス>∣ や ∣ ≤ ん , ∣ Y ' ∣ ≤ ん |Y| \le n, |Y'| \le n 数学> ∣Y∣≤n,∣Y′∣≤n, Pミ> ( や ) P(Y)セマンティクス> 数学> P(Y) と P ( Y ' ) P(Y')セマンティクス> 数学> 帰納仮説による P(Y′)。 ∈ や ∪ Y ' y \in Y \cup Y' 数学> y∈Y∪Y′.yを取得します = x y =xセマンティクス> 数学> P のため y=x ( や ) P(Y)セマンティクス> 数学> P(Y) と x , はい ∈ や x,y \in Yセマンティクス> 数学> x,y∈Y.同様に、y = x ' y =x'セマンティクス> 数学> y=x'.したがって、 <セマンティクス>x = x ' x =x'セマンティクス> 数学> x=x'、これは帰納的なステップと「定理」を証明します ∀ ん > 1 , P ( ん ) \forall n> 1, P(n)セマンティクス> 数学> ∀n>1,P(n). 繰り返しますが、ここでの間違いはゼロに関連しています。 や ∪ Y ' ∣ |Y \cup Y'| 数学> ∣Y∪Y′∣ は十分にゼロになる可能性があるため、そこから要素を「選択」することはできません。 あなたがよりプログラミングのバックグラウンドを持っている場合、ゼロで除算したり、ゼロ要素のコレクションから要素を取得したりすると、恐ろしい実行時エラーが発生するのは偶然ではありません. そして、ほとんどの型システムはあなたを救いません (独自の制限がある依存型システムを除く)。 私が楽しんで書いているように、この投稿を読んで楽しんでいただければ幸いです。