命題は「前提」「結果」「証明」の形で記述される。
これはプログラミングにおける関数の「引数(型)」「返り値(型)」「内容」に似ているとおもう。
証明をプログラムチックに(Pythonっぽく)書くと読みやすいよってこと。(私にとって)
一行には基本一文だけ。一文はできるだけ短く。程よく改行を入れる。仮定があれば[]で括って字下げする。
(私は今から示したいことを[]字下げで書くこともある。)
↓こんな感じ
素数は無限に存在する。
引数型:なし($\N$において考えているという大前提がある気もするが、それを考えていたらきりがない)
返り値型:「素数は無限に存在する」
[「素数は有限個しか存在しない」と仮定する]
$\i$すべての素数を $p_1, p_2, \dots, p_n$ とする。
$\i$$N = (p_1 \times p_2 \times \dots \times p_n) + 1$ と置く。
$\i$$N$は$1$ではないから、素数か合成数のどちらかである。
$\i$[$N$が素数の場合]
$\ii$$N$ は明らかにどの $p_i$ よりも大きい。
$\ii$これは「存在する素数は $p_1$ から $p_n$ で全てである」という前提に矛盾する。
$\i$[$N$が合成数である場合]
$\ii$$N$ が合成数であるなら、何らかの素数 $q$ で割り切れるはずである。
$\ii$仮定より、$q$ は $p_1, p_2, \dots, p_n$ のいずれかである。
$\ii$したがって、積 $(p_1 \times p_2 \times \dots \times p_n)$ は $q$ で割り切れる。
$\ii$すると、$N$ との差である $N - (p_1 \times p_2 \times \dots \times p_n) = 1$ も
$\ii$$q$ で割り切れなければならない。
$\ii$しかし、$1$ を割り切れる素数 $q$ は存在しないため、矛盾する。
$\i$すべての分岐ケースにおいて矛盾が発生した。
したがって、「素数は有限個しか存在しない」は偽である。