今日も8時間睡眠
888文字のブログです

マイナス1かけるマイナス1が、なぜ1なんだ問題

🗾

中学校の数学で出てくる難問、(-1)×(-1)=1。この説明をいろんなパターンでしてみたいと思います。

このブログは普段888文字ですが、今回は8888文字バージョンです。長いです。後半は本気出して数学的に厳密にやってるんで、相当長くなりました。

身近な話題で考えてみる

髪の毛が毎日1本抜ける人がいたとします。じゃあ、3日後は今から何本減るか。3本減りますよね。5日後は? 5本減りますよね。じゃあ逆に、昨日はどうだったでしょう。昨日は今と比べて髪の毛はどうだったか。1本抜ける前だから、昨日は今よりも1本多いですよね。

時間がたつ(+)につれ減っていく(-)ものは、過去(-)にさかのぼれば増える(+)ということ。だから、(-1)×(-1)=1になるんですね。はいはい、今は○○さんの髪の話はしてませんよー。

【コメント】 イメージがわけばどんな具体例でもいいと思います。数学が興味ない人にも理解してもらいやすいと思います。

法則性で考えてみる

次のように順番に考えていきましょう。

3×(-1)=-3 2×(-1)=-2 1×(-1)=-1 0×(-1)=0

かけられる数が1つ減るたびに、答えは1つ増えていますね。なので、この法則で考えると、

(-1)×(-1)=1

になりますね。

【コメント】 わかるけど、しっくりこない人も多そう。

もうちょっと数学っぽく考える

分配法則「a×(b+c)=a×b+a×c」を使います。ここで、aとbを-1、cを1とすると

(-1)×(-1+1)=(-1)×(-1)+(-1)×1

となります。ここで、左辺は(-1)×0だから0です。また、右辺の2項目は-1です。なので、

0=(-1)×(-1)-1

両辺に1を足せば、(-1)×(-1)が1であることがわかります。

【コメント】
数学ができる人には、こういう説明がしっくりきそう。

厳密に考える

さて、ここからが本題です。

こういう根本的な話をするときには、いろんなものを厳密に定義していく必要があります。少なくとも、1と-1と掛け算というものが何かというのがはっきりとしていないと、厳密に説明することはできません。

なので、まずは0以上の整数を抽象化して定義し、そこでの足し算を定義します。そして負の数と掛け算を定義し、「マイナス1かけるマイナス1が、なぜ1になるのか」を考えていきたいと思います。

「0以上の整数のようなもの」の定義

さて、まずは、0以上の整数を定義するところからやりましょう。かなり抽象的に定義したいと思います。なので、タイトルは「0以上の整数」ではなく、「0以上の整数のようなもの」とあえてぼかしてみます。これから、次の性質を持つ集合Nというのを考えましょう。

【集合Nの定義】 1.Nには「基準の要素」が存在する 2.Nの各要素には「次の要素」がただ1つ存在する 3.基準の要素以外のNの各要素には「前の要素」がただ1つ存在する 4.1と2でカバーされる要素だけが、Nの要素である

まず1つ目は、集合に0が含まれている、ということです。2つ目は、「0の次は1、その次は2」というように、要素が順番に並んでいて、枝分かれしていない、ということです。3つ目は、「列が途中で合流している」というような状況を外すためのものです。ポイントは、存在するのは「ただ1つだけ」ということです。また、基準の要素の前には要素があってもなくても構いません。今は、スタートより前のことは気にしません。

4つ目は、列は1つしかない、ということです。「基準の要素からはじまっている列とは別のところに列ができている」という状況を排除するためのものです。つまり、どの要素も、前へ前へたどっていくと、いつかは基準の要素に到達するということです。

上の定義は、ある場所を先頭に、そこから列が一つできている状態、より具体的には、「0,1,2,…」と続いているという状況を抽象的に書いたものです。

足し算の定義

さて、上の集合Nに対して、足し算”+”を次のように定義します。

【足し算の定義】 aをNの要素とするとき 1.a+(基準の要素)は、aとする 2.xをNの要素とするとき、a+(xの次の要素)は、「(a+x)の次の要素」とする

定義2は、例えば「a+4はa+3の次の数だよ」ということです。ここでは、足し算を「足そうとしている要素が基準の要素からずれている分だけ、足される要素を次へ次へとずらしていく」と定義しています。これは普通の足し算とも矛盾しないし、この集合Nには順番というものが定義されているので、この足し算の定義は特に変な決め方ではありません。また、Nのどの要素も、前へ前へとたどっていけば、いつかは基準の要素に到達するため、上の定義を繰り返し使うことで、どの要素に対しても足し算が定義できることになります。

さて、こういう当たり前のことを書いていると、何が前提で何が結論なのかわからなくなってくる人もいるかもしれません。特に、上の足し算の定義2などは、「当たり前じゃないか、何を難しく書いているんだ」と思うかもしれません。しかし、それは、いつもやっている足し算を前提としてしまっている状態でこの定義を見ているからだと思います(僕の説明の下手さはとりあえず横に置いといてください汗)。

この「足し算の定義」を行う前の段階では、「要素が並んでいるだけの集合」があるだけなんですね。なので、例えば「a+(xの次の要素)」について、「aはわかる、xもわかる、xの次の要素もわかる、でも、”+”ってなんなんだよ?」となるわけなんです。しかし、その後に書いてある「(a+x)の次の要素」に関しては、「a+x」がわかれば、「その次の要素」というのは集合の定義からわかるので、どの要素かを特定することができます。「a+x」がわからない場合は、上の足し算の定義2を複数回使えば、集合の定義からいつかは足し算の定義1にたどりつくので、芋づる式に「a+x」がどの要素を指しているかわかるわけです。つまり、この2つには次のような違いがあります。

「a+(xの次の要素)」:今はまだわからないので、これから定義するもの 「(a+x)の次の要素」:今までの知識をつかって、頑張ればわかるもの

前者の存在は当たり前のものではなく、今まさに新しく作り上げているものなんです。

「新しく作り上げている」といっても、見たこともないような新しいものを作っているわけではありません。今まで使ってきたものと矛盾しないように作っています。なので、何が新しくて何が元からあるものなのかがわかりにくいのは事実です。しかし、そこをちゃんと把握して考えていかないと、何を証明しているんだかわからなくなってしまいます。ですので、以下の話でも、この区別を意識しながら考えることが大事です。

「1+1=2」の証明

上で、足し算を定義しました。ここで、例えば、0以上の整数が、「0,1,2,…」という順番で並んでいるという普通の状況を考えた場合、「1+1=2」が証明できるのでやってみましょう。ちなみに厳密にかくと、「基準の次+基準の次=(基準の次)の次」となります。

1は0の次の要素なので、定義通りの足し算を考えると、

1+1 =1+(0の次の要素) =(1+0)の次の要素 (足し算の定義2より) =1の次の要素 (足し算の定義1より) =2

となって、「足し算の定義から」1+1=2が証明できました。数字が0,1,2,…と並んでいること、そして、「+1」が「その次の要素を指定するもの」であることから、「1+1が2である」といえるわけです。

くどいようですが、1+1が2であることは「定義ではありません」。集合の性質(要素が順番に並んでいること)と足し算の定義を組み合わせて、「証明できるもの」なんです。実際、上の証明では定義だけを用いています。

反数の定義

さて、足し算の定義2は、次のような形でしたね。

a+(xの次の要素)は、「(a+x)の次の要素」とする

ここで、「xの次の要素」をyと書くと、xはyの前の要素になるので、次のように書くことができます。

a+yは、「(a+(yの前の要素))の次の要素」

それぞれの前の要素同士も同じだから、

(a+y)の前の要素は、「a+(yの前の要素)」

となります(「前の要素」がただ1つ存在する、という条件が暗に使われています)。ここで、もし仮にyが基準の要素だったとした場合、直前の文章に出てきた「yの前の要素」は存在するとは限りません。Nの定義では「基準の前」を要求していなかったからです。そこで、ここでは発想を変えて、上の式を使いまわせるように、「基準の要素の前にも列を作り、Nの世界を拡張する」ということを考えましょう。

つまり、次のように「反数」というものを定義して、Nの世界を新しく広くするのです。

【反数の定義】 xをNの要素とするとき、xの反数を次のように定義する 1.xが「基準の要素」のとき、「xの反数」はxとする 2.「(xの次の要素)の反数」を、「(xの反数)の前の要素」とする

1つ目は、「(基準の要素)の反数」は「基準の要素」であること、つまり、-0=0ということです。2つ目を長々書くと、

「(ある要素の次の要素)の反数」は「(その要素の反数)の前の要素」

ということであり、もう少し具体的に、「0,1,2,…」の場合で書くと、

0以上の整数xに対して、-(x+1)を、-x-1と定義する

ということです。「0の前が-1、その前が-2、その前が-3」というような定義を抽象的に順番に行っています。これで、基準の要素の前にも、後ろに続く列と似たような構造で要素が順番に並ぶようになったわけです。もちろん、新しい世界でも、次の要素や前の要素がただ一つに決まるということはあきらかです。

一般的に、反数というのは、数字にマイナスをつけたものですが、ここでは単に「元々存在していた要素になにか目印をつけたもの」くらいの意味です。基準の要素より前の要素に名前を付けただけで、大事なのは「基準の要素以前の要素を新しく作り出した」という点です。

基準の要素から始まるこの列に、鏡のように反対にも列を伸ばして行った結果、足し算も拡張させることができるようになります。上では、次のように足し算の定義を言いかえていました。

(a+y)の前の要素は、「a+(yの前の要素)」

これを逆に使用します。

a+(yの前の要素)は、「(a+y)の前の要素」

これにより、基準の要素から順に前へ前へと足し算が定義できます。これは、もともと拡張する前に使っていた式を変形したものなので、拡張した世界と元の世界とで矛盾が発生することはありません。

以後、この拡張した新しい集合をZと呼ぶことにし、Nの拡張と呼ぶことにしましょう。

証明はしませんが、Zに次のような性質があることはすぐにわかります。

【集合Zの性質】 1.Zには「基準の要素」が存在する 2.Zの各要素には「次の要素」がただ1つ存在する 3.Zの各要素には「前の要素」がただ1つ存在する 4.1と2と3でカバーされる要素だけが、Zの要素である

また、N上で定義した足し算は、次のように定義することで、Z上に拡張することができます。

【Z上での足し算の定義】 ZをNの拡張とし、aをZの要素とするとき 1.a+(基準の要素)は、aとする 2.xをNの要素とするとき、a+(xの次の要素)は、「(a+x)の次の要素」とする 3.xをNのある要素の反数とするとき、a+(xの前の要素)は、「(a+x)の前の要素」とする

3の式は2の式を入れ替えれば出てくるものなので、2と3で整合性がとれなくなることはありません(ほんとはちゃんと考える必要があります)。

「1-1=0」の証明

反数の足し算の例として、「1+(-1)」を考えてみましょう。細かいですが、この記事では引き算の定義はしていません。あくまで「反数の足し算」、つまり、「マイナスの数を足す」ことしか定義していませんので、こういう書き方になっています。タイトルは「1-1」にしましたが、この記事の記述に厳密に沿って書けば「1+(-1)」となります。

さて、定義通りに「1+(-1)」を書きなおしてみます。ただ、「の要素」というのがめんどくさいので、省略します。

「基準の次」+「(基準の次)の反数」

-1は「基準の前」とも書けますが、ここは細かく「(基準の次)の反数」として考えていきます。ここで、反数の定義2(「(ある要素の次)の反数」は、「(その要素の反数)の前」)から、2項目は次のようになります。

「基準の次」+「(基準の反数)の前」

Z上での足し算の定義3から、これは次のようになります。

「基準の次+基準の反数」の前

反数の定義1から、基準の反数は基準なので

「基準の次+基準」の前

足し算の定義1「a+(基準)=a」から、これは次のようになります。

「基準の次」の前

これは、基準そのものです。

つまり、以上によって、「1+(-1)=0」が示されたということです。

掛け算の定義

さて、続いて、掛け算を定義しましょう。集合Nを拡張して作った新しい集合Zに対して、掛け算を次のように定義します。

【掛け算の定義】 aをZの要素とするとき、Zの要素の掛け算を次のように定義する 1.a×(基準の要素の次の要素)=a 2.a×(ある要素の次の要素)=a×(その要素)+a

これも、順番に次々と定義されていく、という形になっています。なぜ「基準の要素との積」を定義に入れていないかというと、0をかけるとなんでも0になってしまい、定義に使うには情報が少なすぎるからです。1つ目の式は、何に1をかけても変わらないということです。2つ目は、例えば「5x3というのは、5x2に5を足したもの」ということです。つまり、掛け算は足し算を束ねたもの、ということですね。この定義は、普段使っている掛け算とも整合的です。

「1×0=0」の証明

上の掛け算の定義から、「1×0=0」を導くことができます。まず、掛け算の定義2から、次の式が成り立ちます。なお、ここでも面倒なので「の要素」は省略します。

a×(基準の次)=a×(基準)+a

左辺は掛け算の定義1から、aです。

a=a×(基準)+a

aはなんでもいいので、(基準の次)を代入すると、

(基準の次)=(基準の次)×(基準)+(基準の次)

さて、ここでは、「(基準の次)×(基準)」が何かわからないので、「何かの要素」と置きましょう。右辺は次のようになります。

(何か)+(基準の次) =(何か+基準)の次 (足し算の定義2) =何かの次 (足し算の定義1)

つまり、上の式は、左辺が「基準の次」、右辺が「何かの次」であり、それぞれ前の要素を考えれば、「何か」というのは「基準の要素」だったということがわかります。ということで、

(基準の次)×(基準)=(基準)

つまり、「1×0=0」ということがわかります。aに「基準の次」を代入する代わりに「基準の前」を代入すれば、「(基準の前)×(基準)=(基準)」つまり「-1×0=0」も同様に示すことができます。

「(-1)×(-1)=1」の証明の前に

さて、掛け算の定義2をもう一度見てみましょう。

a×(ある要素の次の要素)=a×(その要素)+a

これは、次のようにも言いかえることができます。

a×(ある要素)=a×(その前の要素)+a

こうして、基準の要素より前の要素に対しても、掛け算を定義していくことができます。ただ、ちょっと面倒なのは、両辺に-aを足すということができないんですね。というのは、「反数」を定義した時、もとのNに対して「反数」を定義したけれども、「反数の反数」は定義していないんですよね。なので、aが何かの反数のときには、「-a」というのは使えないんですよね。「反数を足す」は定義したけど、反数をひく、反数の反数を足すということは定義していません。

じゃあ、反数の反数を定義すればいいのかというと、それも違うんですよね。今示したいことは「(-1)×(-1)=1」なので、反数の反数を定義しちゃうと、結論を定義することになってしまいます。なので、今の段階では上の式を変形することはできません。しかし、それでも、「(-1)×(-1)=1」は示せます。いよいよこの証明に移っていきたいと思います。

「(-1)×(-1)=1」の証明

先ほど、掛け算の定義で使用していた式を変形しましたが、その式をもう一度書きます。

a×(ある要素)=a×(その前の要素)+a

ここで、ある要素を(基準の要素)とすれば、次のようになります。「の要素」は省略します。

a×(基準)=a×(基準の前)+a

基準の前とは、「(基準の次)の反数」のことですが、ここでは「基準の前」と書くことにします。aを(基準の前)とすると

(基準の前)×(基準)=(基準の前)×(基準の前)+(基準の前)

(基準の前)×(基準)は、「1×0=0」の証明の最後に書いた通り、(基準の要素)になります。「(基準の前)×(基準の前)」が何か分からないので「何かの要素」と書くと、右辺は

(何か)+(基準の前) =(何か+基準)の前 (Z上の足し算の定義3) =何かの前 (足し算の定義1)

となり、「基準の要素」と「何かの前の要素」が同じになることがわかります。それぞれ次の要素も等しいので、何かとは、基準の次と等しい、つまり、(基準の前)×(基準の前)=(基準の次)、「(-1)×(-1)=1」ということが示せたわけです。

【コメント】 すっきり感が全くないと思いますが、厳密な証明はこの通りです。「おわり?」という反応しかなさそう。

いくつかの数学的なコメント

分配法則を使った説明との違い

「(-1)×(-1)=1」の証明で、一番きいていたところを数字で書くと

(-1)×0=(-1)×(-1)+(-1)

の部分でした。これは、掛け算の定義そのまま使っているんですよね。この式をちょっと変形すれば、次のようにも書けます。

(-1)×(-1+1)=(-1)×(-1)+(-1)×1

これは「もうちょっと数学っぽく考える」のところでやった、分配法則を使ったものと同じ形の式です。しかし、本質的にはまったく意味が違います。実は分配法則を使った証明はちょっとあやしいのです。「分配法則をなぜ使っていいのか?」というのがあやふやなんです。

「分配法則がすべての整数に対して成り立つ」を仮定すれば、証明としてはOKなんですが、それでいいんでしょうか。厳密に足し算や掛け算などを今まで定義してきましたが、この厳密な定義の元では、分配法則が成り立つことさえ「証明することができます」。それを仮定するのは変ですよね。

本来あるべき順番はこうなのです:整数を定義し、足し算掛け算を定義する、そしてその結果として分配法則の成立が証明される。「分配法則を使って、掛け算の計算結果がこう導かれます」という説明は、結論を使って証明しているようで、本来は間違っているんですよね。

整数ではない世界

Nの定義をした時に、基準の要素には前の要素があることを要求していませんでした。そもそも0以上の整数の話をしていたので、「存在しない」といってもよかったのですが、ここをぼかしていたのにはわけがあります。今までの議論は、整数の世界に限っていないんですよね。

例えば、0の次は1、1の次は2、2の次は0という、3つの数字しかない世界を考えてみましょう。ここにも、上で議論してきた方法で、足し算を定義することができます。反数は、-1が2、-2が1と考えられます。そして掛け算を定義すれば、上の証明は、「この世界でも」(-1)×(-1)=1が証明できているんですね。なぜなら、今までの議論で仮定していたのは、「要素が順番に並んでいること」だけだからです。順番に並んでいれば、同じ議論ができます。

この世界は、「mod3の世界」や「3で割った余りを考える世界」と呼ばれています。

一般的に、自然数や0以上の整数の定義をするときには、「スタートの前には何も存在しない」ことを要求しますが、今回の「(-1)×(-1)=1」の証明には不要なので、特に問わないことにしました。一方、そうすることで、もし基準の前の要素がもともと存在する世界を考える場合には、反数の扱いをどうするのかという問題が出てきてしまいます。しかし、反数を議論をすっとばしていきなり掛け算を考えれば問題ありません。反数の議論で大事なのは、「基準の前に列がなければ人工的に作っていける」ということで、元からあればそれを使えばいいだけです。

足し算が掛け算の世界

上で見た世界の他に、例えば、1,2,4,8,…という、「2の整数乗」からなる集合にも、同じ構造を考えることができます。

ちょっと話がややこしくなりますが、上で議論していた「足し算」がこの世界では「掛け算」、上で議論していた「掛け算」がこの世界ではべき乗になります。つまり、「その数に3をかける」というのがこの世界では「その数を3乗する」という意味になるということです。

この世界では、基準の要素が1であり、次の要素が2、前の要素が1/2ということです。「(基準の前)×(基準の前)=(基準の後)」をこの世界の言葉になおすと、「(1/2)のマイナス1乗=2」ということです。普通の計算でもこれは成り立ちますし、今までの議論からもこれは証明できているんですよね。

まとめ

疲れすぎて、髪抜けそうです。

(8888文字)

バックリンク