第9章 数学5 証明と定理

要約

論理学を記号を使って数学的に書くことで真理値や同値、推論といった概念を客観的に判断可能にすることができる。それが常に真であると仮定した公理から論理学で許される正しい推論によって導かれる前提と結論の関係を定理と呼ぶ。数学には様々な定理があるが、それらは全て公理から論理を使って導出されたものである。

目次

9.1 記号論理

9.1.1 真理値

真偽の法則

これまでは数学でどのような概念を扱うかを紹介してきた。 数学では論理的構造を考えたり対応関係を定義したり手続きを定義したり物事を抽象化して考えたりする。 このような数学的な対象が存在するということをこれまでひたすらに説明してきた。 しかしこれだけではまだ数学で何を扱うか、しか説明していない。 これからは数学的な概念をどう扱うかを説明していく。 まずは記号論理学について説明していく。 そのために、まず論理的に考えるとはどういうことかを説明する。

人は言葉によって様々な意図をやりとりする。 こうして欲しいとかああして欲しいとか、誰かが何をしたとか何をするとか、そういった意味を持った言葉をやりとりする。 そのように言葉には意味というものが備わっている。 意味というものは言葉の奥にあるもので、それを表すには幾通りもの言葉の選び方がある。 そういった、別の言い回しによって同じことを表す言葉があるが、それらは意味の上では同じものなので、雰囲気さえ気にしなければ同じものとして扱うことができる。

例えば、「左を向く」と言うのと「右の反対を向く」と言うのは同じことだし、「父の嫁の息子の父親」と言うのと、単に「父親」と言うのは同じことである。 また、「私はいつも嘘をつくとは言い切れないわけではないわけではない」と言うのと、「私はときどき嘘をつく」と言うのは同じことである。 これらは同じことを回りくどく言っているだけである。 そして、論理的に物事を考えるというとき、このように回りくどい言い方を簡単な言い方に直したり、逆に簡単な言い方をわざわざ回りくどく言ってその言葉の成り立ちをもっと詳しく考えたりすることがある。

例えば手札のやりとりがあるトランプのゲームに「手札にエースと10以上13以下のカードが同時にあってはならない」というルールがあったとする。 10以上13以下ということは、10、ジャック、クイーン、キングの4枚である。 なので、このルールは具体的に言うと「手札にエースと10かジャックかクイーンかキングのカードが同時にあってはならない」というルールだということになる。 2つは同じことを言っているのだが、この様に言った方がより具体的で何をしてはいけないかが簡単に分かる。 また、手札のやりとりに注目すると、「手札にエースがある時は10やジャックやクイーンやキングを手札に加えることはできないし、10かジャックかクイーンかキングがある時はエースを手札に加えることはできない」というルールになる。 これでもやはり同じことを言っているのだが、より戦略的に実際にするべき動作について言っている。 これは始めに与えられたルールから論理的に考えて、そのルールに沿う戦略を導き出したことになる。 このように、論理的に考えるという行為の一部は、同じことを言っているがより分かりやすい表現を探すという行為である。

しかし、論理的に考えるという行為にはもっと他の行為も含まれている。 それは、その言葉が表している意味が正しいのか間違っているのかを判断するという行為である。 日本語には様々な文章がある。 その文章は、文章の内容が正しい場合もあれば間違っている場合もある。 例えば「昨日の明日は今日である」という文章は正しいし、「明日のおとといは今日である」という文章は間違っている。 昨日から見た明日が今日なのであり、明日のおとといは昨日だからである。 このように言葉には正しいことを言っている言葉と、間違ったことを言っている言葉がある。

今上げた例は明日とか今日とかいう言葉の意味、つまり定義と合っているか反しているかによって言葉の正しさを調べた。 それとは別に言葉の持つ構造そのものが原因で正しくないということもあり得る。 例えば「この矛はどんな盾でも貫く最強の矛だ」という言葉は本当にその矛が最強の矛であれば、確かに正しいことになる。 そして「この盾はどんな矛でも貫けない最強の盾だ」という言葉も本当にその盾が最強の盾であれば、確かに正しいことになる。 しかし「この矛はどんな盾でも貫く最強の矛で、この盾はどんな矛でも貫けない最強の盾だ」という様に、最強の矛と最強の盾が同時に存在すると言ったらそれは必ず間違っている。 なぜならその矛でその盾を突いたら、結果は貫けるか貫けないかのどちらかで、矛と盾のどちらかが負けるから矛盾である。 これが矛盾という言葉の語源である。

矛盾した言葉はどんな場合を考えても間違っている。 先ほどの場合は、矛が実際に最強の矛であろうがなかろうが、盾が実際に最強の盾であろうがなかろうが、全体として言っていることは最強の矛と盾が同時に存在するということなのだから、いずれの場合も間違いになる。 このような矛盾には、「量が多すぎて食べきれない料理を平らげることができる」とか「量が膨大すぎて学びきることのできない知識を学ぶことができる」という言葉がある。 食べきれないのに食べきれる、学びきれないのに学びきれる、というのは明らかに矛盾で正しいわけがない。 このように言葉にはそれ自体の構造的な問題によって絶対に間違っている言葉というものがある。 そのような言葉を見つけるのも論理的に考えるという行為の一部である。

さて、このように言葉にはその意味が正しい場合と間違っている場合がある。 このように意味の正誤を判断できる言葉のことを命題と呼ぶ。 命題には正誤を判断できるのだが、正誤という代わりに真偽と言うこともできる。 そこで命題の内容が正しいとき、その命題は真であると言い、間違っているとき偽であると言う。 この、真か偽かというのを命題の持っている値であると考え、真理値と呼ばれている。 その命題が真ならその真理値は真だし、その命題が偽ならその真理値は偽だということである。

命題には様々なものがある。 今まで見てきた言葉はすべて命題の例である。 意味が正しい言葉の真理値は真だし、矛盾した言葉の真理値は全て偽である 命題が意味する内容が現実の状況と合っている場合は真だし、合っていない場合は偽である。 本当だと思って言った言葉でも後から嘘であることが分かったりする。 このように命題の真理値は具体的に個別の場合を考えないと判断できないものである。

例えば中身の見えない箱があったとして、「箱の中にボールが入っている」という命題を考えたとする。 この命題の真偽は実際に箱を開けて中を覗いて見ない限りは判断できない。 中を覗いて見て、実際にボールが入っていればこの命題は真だし、入っていなければ偽である。 もしも箱がいくつもあったら、中にボールが入っている場合もあるだろうし、入っていない場合もあるだろう。 ボールが入っている箱にはこの命題は真になるし、入っていない箱には偽になる。 このように、普通は命題の真偽は個別の場合を考えないと判断できない。

しかし、「箱の中にボールが入っているか入っていないかのどちらかである」という命題を考えるとこれは必ず真になる。 なぜなら、箱の中にボールが入っていても、入っていなくても、そのどちらかだと言っておけば必ず当たるからである。 先ほどの矛盾した命題の例では、矛が盾に勝とうが負けようが命題全体としては偽になった。 このように、命題の真偽がまだ分からない状況でも、命題の持つ構造的な関係を論理的に考えることで、その命題が真であるとか偽であるとかを判断することもできる。 これも論理的に考えるという行為の例である。

9.1.2 論理式

論理を記号で表す

これから命題の真理値についてもっと深く考えていく。 その際にいちいち命題を言葉のままにしておくと長ったらしくなって全体の構造を見るのが難しくなるってくる。 そこでそれを防ぐために命題を記号で表すようにする。 それは、例えば3.5461などという数をaという代数を使って表したり、ある変数xに対してその2倍の数を対応させる関数をf(x)=2xなどと書くのと一緒である。 文章が長くなるのを防ぐために記号を使うのである。

命題の場合も同じように、言葉のまとまりを代数のような記号で書いて表す。 例えば「夜が明けたら朝になる」という命題をAで表す、などという様にである。 このように表したら、文章の中でAという記号が出てきたら、それは「夜が明けたら朝になる」という命題を表しているのである。 また、もし「夜が明けた」という命題をBで表し、「朝になる」という命題をCで表すと、「夜が明けたら朝になる」という命題は「BらC」と表されることになる。 「BらC」という文章のBとCの部分を「夜が明けた」、「朝になる」という文章と置き換えてみると、確かに「夜が明けたら朝になる」という命題を再現する。 このように命題を記号を使って書き表すことができる。 記号を使って論理を展開していくので、このような論理学は記号倫理学と呼ばれている。

このような記号を用意して命題を変換していく、何らかの計算のような操作を定義できないかを考えてみる。 例えばある命題を用意すれば、その否定を考えることができる。 ある命題の否定とはその命題に〜でないとか〜わけではないとかいう言葉をつけることである。 例えばある命題として「神様は存在する」という命題を考えたとする。 そうするとその命題の否定は「神様は存在するわけではない」という命題になる。 他にも、「人間ならば男である」という命題を考えたとすると、その否定は「人間ならば男であるわけではない」という命題になる。

ある命題の否定の真理値は元の命題の逆になる。 つまり、元の命題が真ならその否定は偽だし、元の命題が偽ならその否定は真になる。 ある命題が正しいならその否定は、そうでないと言う命題なのだから偽になる。 これをある命題というのをAで表すと、その否定は¬Aと表す。

次は2つの命題の関係を表す。 ある命題と別のある命題があったら、それらの命題から新しい命題を作ることができる。 例えばある命題をAで表し、別のある命題をBで表すと「AかつB」とか「Aと同時にB」という命題を作ることができる。 これはAが「昨日は雨だった」という命題で、Bが「昨日は日曜日だった」という命題だったとしたら「昨日は雨だったと同時に昨日は日曜日だった」という命題になる。 重複している部分をまとめて見やすくすると「昨日は雨の日曜日だった」という新しい命題になる。 このような「Aと同時にB」という命題をA∧Bと書いて表す。 ∧の読み方は「かつ」と読む。 A∧BはAかつBと読む。

このようにして作った新しい命題の真理値は、元の2つの命題のAとBの真理値によって決まる。 A∧Bは「Aと同時にB」であるのだから、Aが真でさらにBも真でなければA∧Bという命題全体は真にはならない。 A∧Bという命題はAとBば同時に正しいという命題なのだから、AかBか片方しか正しくなければ全体としては正しくならないからである。 ありえる場合として、AとBの真理値の組み合わせとしてはAが真でBも真、Aが真でBは偽、Aが偽でBは真、Aが偽でBも偽、という4つの場合がある。 この4つの場合のうち、A∧Bという命題が真になるのはAとBが同時に真である場合だけである。 それを表に書き出して見やすくすると次のようになる。

場合ABA∧B
場合1
場合2
場合3
場合4
表1 A∧Bの真理値表

ちなみに、このようにすべての場合について真理値を書き出した表は真理値表と呼ばれている。 命題の真理値を並べた表だから真理値表と言うのである。

次は同じように2つの命題から新しい命題を作るが、「AまたはB」とか「AかB」という命題を作ってみる。 例えばAが「昼にカレーを食べた」という命題で、Bが「昼にラーメンを食べた」という命題であれば、「AまたはB」は「昼にカレーを食べた、または昼にラーメンを食べた」という命題になる。 重複している部分をまとめて見やすくすると「昼にカレーかラーメンを食べた」という新しい命題になる。 このような「AまたはB」という命題をA∨Bと書いて表す。 ∨の読み方はまたはで、A∨BはAまたはBと読む。

「AまたはB」という命題の真理値はAとBが同時に偽である以外には真になる。 「AまたはB」ということは、AかBのどちらか一方が真ならばそれでいいということで、どちらも偽でなければ全体としては真になるからである。 場合としてはAが真でBも真、Aが真でBは偽、Aが偽でBは真、Aが偽でBも偽、という4つの場合がある。 この4つの場合のうち、A∨Bという命題が偽になるのはAとB共に偽である場合だけである。 これも真理値表にすると次のようになる。

場合ABA∨B
場合1
場合2
場合3
場合4
表2 A∨Bの真理値表

2つの命題から新しい命題を作るには他にも「AでもなければBでもない」とか「Aでないか、またはBでない」などといった作り方がある。 だが、それらは、否定、かつ、または、の組み合わせによって表すことができる。 例えば「AでもなければBでもない」という命題は「Aでないと同時にBでない」ということなのだから、(¬A)∧(¬B)となる。 「Aでないか、またはBでない」は(¬A)∨(¬B)となる。 他にも様々な命題の作り方があるが、それらは全て否定、かつ、または、の組み合わせで表現できることが知られている。

このように否定、かつ、または、の組み合わせによってある命題の集まりから様々な新しい命題を作ることができる。 例えば(¬A)∧Bとか、(A∧B)∨Cとか、(¬A)∨(¬(B∧(A∨C)∧(¬C)))などといった命題である。 (¬A)というのはAの否定ということで、例えばただ¬A∧Bと書いただけでは(¬A)∧Bなのか¬(A∧B)なのか区別がつかないので、その区別をつけるために書いてあるのである。 このように¬、∧、∨を使って命題を記号で書いたものは論理式と呼ばれている。

しかし、カッコが多くなると読みにくくなるので、否定に関してはすぐ直前の命題にだけかかっている、つまり¬A∨Bと書いてあったら常に(¬A)∨Bを意味していると約束することでカッコの数を減らすことができる。 普通はこのように約束して論理式を見やすくする。 この約束を使って、例えば(¬A)∨(¬(C∨(¬B)))という論理式を見やすくすると、¬A∨¬(C∨¬B)となってだいぶ見やすくなる。 一応注意しておくと、¬(C∨¬B)を¬C∨¬Bと書いてしまったらこれは(¬C)∨(¬B)ということになって別の命題になってしまうので、このカッコを外すことはできない。

このような論理式として、例えば¬A∧Bという論理式の真理値を考えてみる。 ∧は「かつ」を表し、Aには否定がかかっているので、これは「Aでなく、同時にBである」という命題である。 この命題が真になるのは、Aでないという命題が真であり、同時にBが真であるときだけなので、Aが偽でBが真である場合だけである。 真理値表を書くと次のようになる。

場合AB¬A¬A∧B
場合1
場合2
場合3
場合4
表3 ¬A∧Bの真理値表

途中の思考の過程を見やすくするために¬Aの真理値も表の中にいれた。 ¬AとBが同時に真である場合だけ¬A∧Bは真になるので、真理表はこのようになる。

次は¬A∨Bという論理式の真理値を考えてみる。 ∨は「または」を表し、やはりAには否定がかかっているので、これは「Aではない、またはBである」という命題である。 これが真であるためにはAではないという命題かBという命題のどちらか片方でも真であればいいので、¬AとBの両方が偽である場合、つまりAが真でBが偽である場合以外は全ての場合に真になる。 それを真理値表で書くと次のようになる。

場合AB¬A¬A∨B
場合1
場合2
場合3
場合4
表4 ¬A∨Bの真理値表

このように1つ1つ¬や∧や∨について真理値の変化を考えていけばどんな複雑な論理式もその真理値を調べることができる。

同値

このように複雑な論理式をいくつも考えていくと、真理値表が同じになる論理式というものが見つかる。 そのような論理式を同値な命題とか2つの論理式は同値であるなどと言う。 真理値が同じだから同値と言うのである。 真理値が同じならその2つの論理式は同じものである。 ある論理式AとBが同値であるならA=BとかA≡Bと書いて表す。

様々な論理式が同値であるが、例えばある命題の否定の否定は元の命題と同値になる。 ある命題を否定すると真理値が逆転するが、それをさらに否定すれば元に戻るわけである。 「そうではないわけではない」と言えば、「そうだ」と言っているのと同じことである。 その真理値表を書くと次のようになる。

場合A¬A¬¬A
場合1
場合2
表5 ¬¬Aの真理値表

否定の否定は2重否定と呼ばれている。 式で書くと

¬¬A=A

となる。

他にも∧と∨の間で分配法則が成り立つ。 つまり、A、B、Cである命題を表して、

A∧(B∨C)=(A∧B)∨(A∧C)
A∨(B∧C)=(A∨B)∧(A∨C)

ということである。 これを真理値表を書いて確かめると、A∧(B∨C)の真理値表は、

場合ABCB∨CA∧(B∨C)
場合1
場合2
場合3
場合4
場合5
場合6
場合7
場合8
表6 A∧(B∨C)の真理値表

であり、また、(A∧B)∨(A∧C)の真理値表は、

場合ABCA∧BA∧C(A∧B)∨(A∧C)
場合1
場合2
場合3
場合4
場合5
場合6
場合7
場合8
表7 (A∧B)∨(A∧C)の真理値表

となる。 途中の議論を省いて結果だけを書くと、

場合ABCA∧(B∨C)(A∧B)∨(A∧C)
場合1
場合2
場合3
場合4
場合5
場合6
場合7
場合8
表8 A∧(B∨C)=(A∧B)∨(A∧C)の真理値表

となって、確かに真理値表が一致する。 つまりA∧(B∨C)という命題と(A∧B)∨(A∧C)という命題は同値である。

次はA∨(B∧C)=(A∨B)∧(A∨C)という論理式について調べる。 まずA∨(B∧C)の真理値表を書くと、

場合ABCB∧CA∨(B∧C)
場合1
場合2
場合3
場合4
場合5
場合6
場合7
場合8
表9 A∨(B∧C)の真理値表

であり、また、(A∨B)∧(A∨C)の真理値表は、

場合ABCA∨BA∨C(A∨B)∧(A∨C)
場合1
場合2
場合3
場合4
場合5
場合6
場合7
場合8
表10 (A∧B)∨(A∧C)の真理値表

となる。 途中の議論を省いて結果だけを書くと、

場合ABCA∨(B∧C)(A∨B)∧(A∨C)
場合1
場合2
場合3
場合4
場合5
場合6
場合7
場合8
表11 A∨(B∧C)=(A∨B)∧(A∨C)の真理値表

となって、確かに真理値表が一致する。 つまりA∨(B∧C)という命題と(A∨B)∧(A∨C)という命題は同値である。

また、命題には常に真である命題や常に偽である命題などがある。 常に真である命題をT、常に偽である命題をFで表す。 Tは恒真命題、Fは恒偽命題と呼ばれている。 このように表すと、例えば、ある命題をAで表すと、

A∨¬A=T

となる。 A∨¬Aという命題は「Aであるか、またはAでない」ということで、Aとして「明日は晴れである」という命題を考えれば「明日は晴れであるか、または明日は晴れでない」という命題になる。 この命題は常に正しいことは明らかである。 天気には雨だったり曇りだったりいろいろあるが、それを晴れとそれ以外に分類してしまえば晴れるか晴れないかの2択であり、必ずそのどちらかになるのだからこれは恒真命題である。 一応、それを真理値表を使って確認すると次のようになる。

場合A¬AA∨¬A
場合1
場合2
表12 A∨¬Aの真理値表

すべての場合で真理値が真であるので、確かにこれは恒真命題である。

同じようにA∧¬Aという論理式は恒偽命題になる。 これは、「Aと同時にAでない」という命題で、Aとして「この猫は生きている」という命題を考えれば「この猫は生きていると同時に、この猫は生きていない」となって、もし生きていないというのを死んでいると言い換えると、生きているのに死んでいる不思議な猫の存在について言っている命題になる。 常識で考えてそんなことはありえないので、この命題は常に偽となる。 それを真理値表を使って確かめると、次のようになる。

場合A¬AA∧¬A
場合1
場合2
表13 A∧¬Aの真理値表

よって確かにA∧¬Aという論理式は恒偽命題になる。 これを式で書くと、

A∧¬A=F

ということである。

これらの他にも様々な同値な論理式がある。 いちいち真理値表を書いて確かめることはしないが、その正しさは真理値表によって確かめることができる。 例えば、ある命題をAとして、

A∧F=F

となる。 これは「Aであり同時に恒偽命題である」という命題で、これはAが真か偽かに関わらず偽である。 また、

A∨T=T

となる。 これは「Aまたは恒真命題である」という命題で、これはAが真か偽かに関わらず真になる。 また、

A∧T=A

となる。 これは「Aであり同時に恒真命題である」という命題で、同時に真であるべき命題は常に真であることが分かっているから、その論理式の真偽はすべてAの真偽にかかっていることになる。 つまり全体の真偽がAの真偽と同値になるのである。 また、

A∨F=A

となる。 これは「Aまたは恒偽命題である」という命題で、Aの他に考えるべき命題が常に偽なのであることが分かっているなら、そちらを考える必要はなくその論理式の真偽はすべてAの真偽にかかっている。 つまり全体の真偽がAの真偽と同値になる。 また、

A∧A=A
A∨A=A

となる。 これは「Aと同時にA」、「AまたはA」ということで、これは同じ命題を2回繰り返しているだけであるのでA一つと同値なのは当たり前である。 また、AとBである命題を表して、

A∧B=B∧A
A∨B=B∨A

となる。 「Aであり同時にB」でも「Bであり同時にA」でも、命題の出てくる順番が違うだけで全体として言っていることは同じである。 また、「AまたはB」でも「BまたはA」でも、やはり全体としては同じことを言っている。 つまりこれらの論理式は同値になる。 また、A、B、Cをある命題として、

A∧(B∧C)=(A∧B)∧C
A∨(B∨C)=(A∨B)∨C

となる。 これは結合法則で、∧や∨が2つ並んだ論理式はどこから真偽を考えて行っても結論が同じになることを意味している。 つまり∧や∨だけからなる論理式はカッコをつける必要がない。 このような同値の関係を使うことで複雑な論理式を、真理値を変えずにより見た目が簡単な論理式に変えていくことができる。 つまり論理式を計算していくことができる。

これまで見てきた同値な論理式の関係に¬(A∧B)=¬A∨¬Bという関係と¬(A∨B)=¬A∧¬Bという関係を加えれば論理式を簡単にするために必要な一連の関係式が出揃う。 この関係は難しいので真理値表を使って確かめないとその正しさが分からないとは思うが、ぜひとも読者諸君が自分の手で真理値表を書いて確かめて欲しい。

さて、これらの同値な論理式の関係を使えば、真理値を変えずに論理式の見た目を変えることができる。 例えば、[A∧(B∧C)]∧Dといったカッコの入り乱れた一見複雑な論理式も、∧や∨は考える順番に結果が影響されないので、A∧B∧C∧Dと簡単に書くことができる。 同じように¬(A∧¬B)∨Aという論理式は、

¬(A∧¬B)∨A=¬A∨¬¬B∨A

=¬A∨B∨A
=¬A∨A∨B
=T∨B
=B

となって、¬(A∧¬B)∨Aという一見複雑な論理式がBという1つの命題と全く同じ論理値を持っていることが分かる。 つまり、Bが真なら¬(A∧¬B)∨Aという複雑な論理式も真だし、Bが偽なら¬(A∧¬B)∨Aも偽なのである。 このように複雑な論理式も同値な関係を使うことによってより簡単な論理式へと見た目を変えることができる。 これは論理式を計算していることになる。

同値な論理式

このように複雑な論理式をより簡単な論理式へと計算することができる。 今まで出てきた関係をまとめておくと次のようになる。

A∨T=T
A∧T=A
A∧F=F
A∨F=A
A∧¬A=F
A∨¬A=T
¬¬A=A
A∧A=A
A∨A=A
A∧B=B∧A
A∨B=B∨A
A∧(B∧C)=(A∧B)∧C
A∨(B∨C)=(A∨B)∨C
A∨(B∧C)=(A∨B)∧(A∨C)
A∧(B∨C)=(A∧B)∨(A∧C)
¬(A∧B)=¬A∨¬B
¬(A∨B)=¬A∧¬B

9.1.3 推論

論理的に考えるということ

論理的に物事を考える利点は、論理によって物事を推論していくことができることである。 推論というのは、ある前提からある結論を導く操作のことである。 つまり、もしこのような条件が満たされたら、どのような結果になるだろうか、と考えることである。 正しい推論ができれば、いちいち実際に確かめるまでもなく新しい事実に気づくことができ、見識が広がる。 これから記号論理を使って正しい推論について考えていく。

まずは日常的に見る推論の例を上げていく。 日常的な意味で推論というのは例えば、「雨が降っている」という状況で「今外に出たら濡れる」と予測したり、「とっておいたプリンが無くなっている」という状況で「弟が勝手に食べたに違いない」と予想したりすることを言う。 より数学的な意味で言うなら、例えば「xはx+3=5を満たす数である」という状況なら論理的に考えることで「xは2である」という結論を得ることができる。 他にも、「ある関数f(x)が別の関数g(x)の導関数である」とういう状況なら論理的に考えて「その関数を積分したらg(x)になる」という結論を得ることができるし、「あるベクトル空間の次元は3である」という状況なら「その空間の基底の数は3である」という結論を得ることができる。

このように論理的な推論とはある前提となる条件があり、それが満たされている場合に何か他の命題が真になる、という関係を利用して行うものである。 このような結論は長い推論の過程を経て得られる場合もある。 例えば、「とっておいたプリンが無くなっている」、「この家でプリンを食べるのは自分以外には弟だけである」、と議論して行き、最終的に「プリンを食べたのは弟である」という結論を得ることができる。 他には、強い風が吹く、そうするとホコリが舞って目に入る、そうすると目が悪くなる人が増える、そうすると趣味で三味線を習う人が増える、そうすると三味線を作るのに猫の皮が必要だから猫が減る、そうするとネズミを取る猫が減るからネズミが増える、そうするとネズミが桶をかじるから新しい桶を買う必要がある、そうすると桶屋が儲かる、という長い推論を行うこともできる。 全体をまとめると、風が吹けば桶屋が儲かるということになる。 今の場合、風が吹くというのが議論の前提であり、桶屋が儲かるというのが結論である。

このように論理的な推論によって様々な結論を導き出すことができる。 その際にどんな推論が論理学上、正しいのか、どんな推論が正しくないのかに注意しなくてはならない。 これから記号論理を使ってどんな推論が正しい結論を与えるのかを調べていく。 そのために重要なのが、¬A∨Bという論理式である。 これはAでないか、またはBであるという論理式である。 ちなみにその真理表は次のようになる。

場合AB¬A∨B
場合1
場合2
場合3
場合4
表14 ¬A∨Bの真理値表

Aでないか、またはBであるというのは、例えばAが「風が吹く」という命題でBが「桶屋が儲かる」という命題だったとすると、これは「風が吹かないか、または桶屋が儲かる」という命題になる。 仮にこの命題が真であることが分かったとすると、風が吹かなかったか、もしくは桶屋が儲かったのである。 言い換えれば、風が吹いた場合は必ず桶屋が儲かるのである。 もっと短く言えば、これは「風が吹けば桶屋が儲かる」という命題を表している。 「風が吹く」という命題を議論の前提、「桶屋が儲かる」という命題を結果だと思えば、この命題は前提と結果の関係を表していることになる。

このように¬A∨Bという論理式はAを前提、Bを結果としてもつ関係として解釈することもできる。 Aという前提が実際に実現していれば、つまり前提が真なら、Bという結果も実際に実現する、つまり真になり、前提が実際に実現していなければ、つまり偽なら、結果も実際に実現しない、つまり偽になるということである。 ただし、ここで言っている前提や結果というのは、時間の流れと関係する原因と結果とはまた違った意味を持っている。 前提というのは議論を始めるための前提であって、それは必ずしも結果で述べられている現象を引き起こす原因とは限らず、一般的にどんな命題でもいい。 この状況を「AならばB」とか「AはBを暗に意味する」と言ってA→Bと書いて表す。 論理式で書けば、

¬A∨B=A→B

となる。 このような前提と結果の関係は含意と呼ばれている。

この論理式は何かを論理的に議論していく場合、論理的に推論していく場合に非常に重要な役割を果たす。 仮に、「AならばB」とか「AはBを暗に意味する」という命題が真であることが分かったとする。 暗に意味するとは、一見しただけでは分からないが実はAはBを意味するということで、Aが真ならBも真であるという意味である。 それが真であることが分かったら、Aが真であることを見ただけで即座にBも真であることを言うことができる。 これはAが真であるという事実から論理的に考えてBという別の事実を見つけたことになる。 だから¬A∨B、もしくはA→Bという論理式が重要なのである。

もしA→Bという論理式が恒真命題なら、つまりどんな場合を考えても、Aが真でありBも真であるか、Aが偽でありBが真であるか、Aが偽でありBも偽である場合しかないなら、それをA⇒Bと書いて表す。 これはA→Bという論理式の特殊な場合を考えていることになる。 なぜならA→Bという論理式はAが真でBが偽であったら偽になるからである。 A⇒Bはそのような場合は存在しない、つまりAが真であったら絶対にBは偽にならない、という特殊な状況にAとBという命題があるということを表しているのである。 このような命題間の特殊な状況のことも含意と呼ばれている。 A→BもA⇒Bも同じ名前で呼ばれていて紛らわしいが、普通は記号で書くのであまり問題にはならない。 A→Bはまだ真なのか偽なのか分からないが、それが恒真命題だと分かったらA⇒Bと書き直すのだと思っておけば大丈夫である。

繰り返すがA→B、あるいは¬A∨Bが恒真命題になるにはAとBが特殊な関係になくてはならない。 なぜならAとBの真理値が完全に自由に変わり得ると、Aが真でBが偽の場合にA→Bは偽になるのだから、恒真命題にはならないからである。 A→Bが恒真命題になるには、Aが真でBが偽になることは絶対に無いという状況でなくてはならない。 例えばA=B、つまりAとBが同じ命題であれば、つまりA→Aの場合を考えれば、

A→A=¬A∨A

となって、恒真命題になる。 つまり、A→Aは恒真命題ということで、A⇒Aはどんな命題に対しても成り立つ。 これは当たり前で例えばAが「桜の木の下を掘ったら財宝が出てきた」という命題だったとしたら、A→Aは「桜の木の下を掘ったら財宝が出てきたということは、桜の木の下を掘ったら財宝が出てきたのを暗に意味する」という命題になって、暗に意味するもなにも明らかに意味している。 この命題が恒真命題なのは明らかである。 つまりA⇒Aは成り立つ。

他にもA=Fの場合もA→Bは恒真命題になるのが分かる。 A⇒Bは「Aが真であったら絶対にBは偽にならない」という状況を表すので、そもそもAが真になることがなければ必ず成り立つのである。 それは¬F∨Bという論理式は恒真命題になることからも分かる。 これは推論に使う前提となる条件が満たされないなら、どんなおかしな結論を持ってきても推論自体は間違いにはならないということで、論理的な議論をする場合には重々注意する必要がある。 そうやって得られた結論は確かに論理的な推論によって得られた結論ではあるが、それが何か役に立つ結論になっているとは期待できないからである。

また、A=B∧Cであるとき、A→Bは

A→B=¬(B∧C)∨B

=¬B∨¬C∨B
=¬C∨¬B∨B
=¬C∨T
=T

となって恒真命題になる。 つまりA⇒B、あるいはB∧C⇒Bは成り立つ。 このように特殊な命題についてA⇒Bという関係が成り立つことがあるのは確かな事実である。

他にも様々な論理式に対してA⇒Bが成り立つが、これからはもっと具体的な例を見ていく。 何もAやBが特別な論理式でなくとも、命題の持つ性質としてAが偽ならばBは絶対に真にならないという場合なら、A⇒Bは成り立つ。 例えばある自然数をn、ある数をxで表して、「x=2nとする」という命題をAとし、「xは偶数である」という命題をBとすれば、A→Bは「x=2nとするならばxは偶数である」という命題になる。 この命題は真であるので、A⇒Bということになる。 つまり、「x=2nとする」⇒「xは偶数である」ということである。

これは確かに正しい。 まず、「x=2nとする」という命題はどんな場合も偽にはならない。 ある自然数を用意して、その2倍をxだと定義しているだけである。 そして、どんな自然数だったとしてもそれを2倍したら偶数になる。 つまり推論の前提になる「x=2nとする」は恒真命題であり、推論の結論となる「xは偶数である」という命題は前提が成り立つ限り真である。 つまり、¬A∨BはAが真なので¬Aは偽になるが、Bが真なのだから真になる。 A⇒Bとなるにはこれが恒真命題でなくてはならないが、それは全ての場合で¬A∨Bが真になるということで、今の場合は全ての場合と言っても今考えた場合以外の場合はないので、これで恒真命題であることを確かめることができた。 よってA⇒Bは成り立つ。

このように特別なAとBが特別な論理式でなくても、命題の性質そのものによって含意が成り立つ場合がある。 他の例としては、ある数をxで表して、「xは偶数である」という命題をAで表し、「xに2を足したら偶数になる」という命題をBで表せば、A→Bは「xは偶数であるならばxに2を足したら偶数になる」という命題になる。 この命題は先ほどと同じように恒真命題であることを確かめることができる。 「xは偶数である」という命題は定義だし、偶数に2を足しても偶数のままなのだから、「xに2を足したら偶数になる」という命題も真になる。 つまり¬A∨Bが恒真命題になって、A⇒Bとなる。 これは、「xは偶数である」⇒「xに2を足したら偶数になる」ということである。 先ほどとは違った含意の例が得られた。

推論規則

さて、ここに2つの関係が存在する。 ある自然数をn、ある変数をxとして、「x=2nとする」⇒「xは偶数である」と、「xは偶数である」⇒「xに2を足したら偶数になる」という2つの関係である。 これらは間をすっとばして考えれば「x=2nとする」⇒「xに2を足したら偶数になる」という新しい命題の間の関係になる。 これもやはり正しい関係になる。 なぜなら、nが自然数ならx=2nは偶数であり、偶数に2を足しても偶数のままなので確かに成り立っている。 このようにいくつかの含意があればそれをつなげ合わせることで新しい含意を作ることができる。 このような作業を推論と呼ぶ。

推論によって新しい命題を作ることができる。 今使ったのはA⇒BとB⇒CからA⇒Cという新しい関係を導く推論である。 この推論が正しいことを確かめよう。 まずは、(A→B∧B→C)⇒(A→C)を確かめる。 これは、¬(A→B∧B→C)∨(A→C)が恒真命題であれば成り立つのでそれを確かめる。

¬(A→B∧B→C)∨(A→C)=¬(A→B)∨¬(B→C)∨(A→C)

=¬(¬A∨B)∨¬(¬B∨C)∨(¬A∨C)
=(A∧¬B)∨(B∧¬C)∨¬A∨C
=¬A∨(A∧¬B)∨C∨(B∧¬C)
=[(¬A∨A)∧(¬A∨¬B)]∨[(C∨B)∧(C∨¬C)]
=[T∧(¬A∨¬B)]∨[(C∨B)∧T]
=(¬A∨¬B)∨(C∨B)
=¬A∨¬B∨C∨B
=¬A∨¬B∨B∨C
=¬A∨T∨C
=T

となって、確かに¬(A→B∧B→C)∨(A→C)は恒真命題になる。 つまり(A→B∧B→C)⇒(A→C)となる。 それを踏まえて、A→B∧B→Cが恒真命題である場合を考えると、(A→B∧B→C)⇒(A→C)は、A→B∧B→Cが真であれば、絶対にA→Cは偽にならないという状況を意味しているので、A→Bも恒真命題になる。 つまり、(A⇒B∧B⇒C)⇒(A⇒C)ということである。 これは、「AならばBであり、かつBならばCであるとき、AならばCである」ということを言っていて、最初の含意の結論が次の含意の前提になっている場合に途中を省略して2つの含意をくっつけることができることを意味する。 この関係を使えば2つの含意から新しい含意を作ることができる。 このような、ある前提から結論を得るのに使うことができる関係のことは推論規則と呼ばれている。

推論規則には他にも様々なものがあって、最も簡単なものとして(A⇒B∧A)⇒Bというものがある。 A⇒Bという含意とその前提になっているAが真であればBも真になるということである。 当然のようだがこの推論規則も(A→B∧A)⇒Bが恒真命題であることを確かめることで導くことができる。 まずは(A→B∧A)⇒Bが恒真命題であることを確かめると、

¬(A→B∧A)∨B=¬(A→B)∨¬A∨B

=¬(A→B)∨¬A∨B
=¬(¬A∨B)∨¬A∨B
=(A∧¬B)∨¬A∨B
=[(A∨¬A)∧(¬B∨¬A)]∨B
=[T∧(¬B∨¬A)]∨B
=¬B∨¬A∨B
=¬B∨B∨¬A
=T∨¬A
=T

となって、確かに恒真命題である。 (A→B∧A)⇒Bが恒真命題であれば、A→Bが恒真命題の場合、つまりA⇒Bの場合もこの関係は成り立つのだから、(A⇒B∧A)⇒Bは成り立つ。

同じような推論規則には(A⇒B∧¬B)⇒¬Aというものがある。 これはA⇒Bという含意とその結論になっているBが偽であればAも偽になるということである。 A⇒Bの意味が「Aが真なら絶対にBが偽にならない」というものなのだから、もし仮にBが偽だったとしたらAも真ではないはずである。 この推論規則も(A→B∧¬B)⇒¬Aが恒真命題であることを確かめることで導くことができる。 そのために、

¬(A→B∧¬B)∨¬A=¬(A→B)∨B∨¬A

=¬(¬A∨B)∨B∨¬A
=(A∧¬B)∨B∨¬A
=[(A∨B)∧(¬B∨B)]∨¬A
=[(A∨B)∧T]∨¬A
=(A∨B)∨¬A
=A∨¬A∨B
=T∨B
=T

を確認して(A→B∧¬B)⇒¬Aが成り立つことを確かめた。 これはもちろんA→Bが恒真命題の場合にも成り立つので、(A⇒B∧¬B)⇒¬Aは成り立つ。 このような推論規則を使えば様々な新しい命題を推論によって導くことができる。

ちなみに、含意の中には「A⇒Bであり同時にB⇒A」という命題が恒真命題になる、さらに特殊な場合がある。 これは(¬A∨B)∧(¬B∨A)が恒真命題になるということである。 A⇒Bは「Aが偽なら絶対にBは真にならない」という状況を表しており、B⇒Aは「Bが偽なら絶対にAは真にならない」という状況を表している。 ならこの2つが同時に真なら、「AとBの真理値は同じになる」ということを意味している。 なぜならAとBの真理値が違うことがあると、AかBのうち片方が偽でもう片方が真である状況があるということだが、それではA⇒Bか、B⇒Aのどちらかが成り立たないことになる。 つまり「A⇒Bであり同時にB⇒A」ならAとBの真理値は同じであり、AとBは同値である。 この状況をA⇔BとかA≡Bなどと書いて表す。 つまり、

A⇒B∧B⇒A=A⇔B

ということである。 真理値が同じなのだから、これは論理式の同値と同じ意味であるが、推論に使っている場合はそれを特別な記号で書くのが普通である。 真理値が同じということは、見た目が少し違っているだけでAもBも本質的には同じことを言っている命題だということになる。 このような場合、AとBは同値だとか、AはBの必要十分条件だとか言う。 AとBが同値なら「Aのとき、そしてそのときに限りBである」という状況であることを意味する。 Aだけが成り立ってBが成り立たないとか、Bだけが成り立ってAが成り立たないという状況は一切なく、AとBの真理値は一心同体なのである。

このようにA⇒B∧B⇒Aという状況は特別なものであり、普通は成り立たない。 つまり、A⇒Bだからと言ってB⇒Aだとは限らないのである。 A⇒Bは¬A∨Bが恒真命題であること、B⇒Aは¬B∨Aが恒真命題であることを言っているので、真理値表を書けば2つの論理式は同値ではないことがすぐに分かる。

場合AB¬A¬B¬A∨B¬B∨A
場合1
場合2
場合3
場合4
表15 ¬A∨Bと¬B∨Aの真理値表

このように、普通はA⇒Bだからと言ってB⇒Aというわけではないのだが、人はこの手の誤った推論を行いやすいので注意が必要である。

証明

このようにある前提から推論規則を利用して論理的な議論を進めていくことで、あらかじめ知られていないある結論を得ることができる。 このようにして得られた前提と結論の組のことを定理と呼ぶ。 また、前提と結論の間の論理的な議論のことを証明と呼ぶ。 数学とは論理的な推論によって様々な定理を証明していく学問である。

定理を証明するためには推論規則に従って推論をしなくてはならないが、推論をしていくためには前提となる命題がなくてはならない。 例えば(A⇒B∧A)⇒Bという推論規則を使って推論するには、まずA⇒Bという恒真命題がなくてはならない。 1つでもこのような恒真命題があれば、そこから推論規則を使って様々な議論を展開していくことができるが、最低でも1つはそれが他の命題からの推論によって導かれたわけではない、最初の恒真命題が必要になる。 それはその命題を正しいと仮定することによって、恒真命題作ることによって用意する。 そのような仮定の集まりは公理と呼ばれている。 公理は論理的な議論の出発点であり、それが恒真命題であることは仮定にしか過ぎないが、普通はほとんど疑うこともできないような関係を公理とする。 数学の定理は全て公理からの論理的な推論によって得られるようになっている。

このように数学の定理とは議論の前提をAとして、その結論をBで表してA⇒Bと表されるものである。 この関係を証明するために様々な公理や推論規則を使うが、場合によってはA⇒Bを直接証明するよりもそれと同値な論理式を証明する方が簡単なことがある。 A→Bは¬A∨Bということであるが、左右を入れかえてB∨¬Aも同値であり、Bに二重否定をつけて¬¬B∨¬Aも同値になる。 ¬¬B∨¬Aというのをよく見ると、これは¬B→¬Aを意味しているのが分かる。 つまり、

A→B=¬A∨B

=B∨¬A
=¬¬B∨¬A
=¬(¬B)∨(¬A)
=¬B→¬A

ということである。 よってA→Bと¬B→¬Aの真理値は常に一致する。 A→Bが恒真命題なら¬B→¬Aも恒真命題になる、つまりA⇒Bなら¬B⇒¬Aである。

¬B⇒¬Aという含意は元の含意の対偶と呼ばれている。 これはA⇒Bなら「BでないということはAでないと暗に意味する」という命題が恒真命題になるということである。 例えば「xは偶数である」⇒「xに2を足しても偶数である」という場合を考えると、「xに2を足しても偶数にならない」⇒「xは偶数ではない」となる。 これは確かに成り立っている。

また、A→B全体の二重否定もやはり元の含意と同値になる。 つまり、

A→B=¬¬A→B

=¬¬(¬A∨B)
=¬(¬¬A∧¬B)
=¬(A∧¬B)

ということである。 よって、もしもA∧¬Bが恒偽命題であれば¬(A∧¬B)は恒真命題であり、それと同値なA→Bも恒真命題であることが分かる。 つまりA⇒Bが成り立つ。 このような議論の方法は背理法と呼ばれている。

これからこれらの推論規則などを使って実際に様々な定理を導いていく。 定理とは前提をAとし、結論をBとしたときのA⇒Bという関係のことである。 これは「Aが真ならばBは絶対に偽にならない」という命題が恒真命題であることを意味している。 つまりAが真ならばBも真なのであって、Aが真ならいちいちBという命題の真偽を考える必要はなく、絶対に真だと言えるということである。 しかし、もしもAが偽なら、Bは真であっても偽であってもA⇒Bは成り立つ。 つまり、正しい定理を使って論理的な議論をしても、議論の前提が満たされていないなら間違った結論が得られることがあるということである。 これは論理的な推論をするときに常に気をつけなくてはいけないことで、どんなに強調しても強調し過ぎるということはない。

9.2 定理

9.2.1 連立方程式

1変数方程式

このように推論によって定理を証明していくことができる。 これからは具体的に論理を使って様々な定理を証明していく。 まずは論理的推論によって連立方程式を解く方法を解説する。

連立方程式とは、例えば、

x+y=5
x-y=1

のような、複数の代数を持つ方程式がいつくか組み合わさったものである。 このような連立方程式を解くには、今の場合はx-y=1から、x=1+yという関係を得て、それをx+y=5に代入すれば(1+y)+y=5となって、これは計算するとy=2になり、x=1+yなのだからx=3になる、といった様に解くことができる。 しかし、このような連立方程式の解法はどうして正しい結果を与えるのだろうか。 これから連立方程式の解法は、論理学的にはどのようなことを行っているのかを考えていく。

まずは連立方程式を論理式で書くとどうなるかを考える。 x+y=5やx-y=1といった式が何を意味しているかというと、「x+y=5を満たすxとyがある」とか「x-y=1を満たすxとyがある」という命題である。 そして連立方程式は「x+y=5とx-y=1を同時に満たすxとyがある」という命題になる。

命題なのだからその真偽を考えることができる。 今の場合はx=3、y=2とすれば確かに2つの方程式を満たすのだから、命題で言っているようなxとyがあるわけで、この命題は真だということになる。 今の場合は命題の真理値は真だったが、偽の命題もあり得る。 例えば「x+y=3とx+y=1を同時に満たすxとyがある」という命題は偽になる。 どんなxとyの組み合わせでも足して3になり同時に1にもなるような数は存在しない。 だからこの命題の真理値は偽になる。

他にも様々な代数にからんだ命題を考えることができる。 例えば、「x+4=7を満たすxがある」という命題は真だし、「x+4=2を満たす正の数であるxがある」という命題は偽である。 「x+y=3を満たすxとyがある」という命題は、例えばx=2、y=1の場合やx=3、y=0の場合に確かに満たされるのだから真だし、「x2+2=0を満たす実数のxがある」という命題はxは虚数でなければ方程式が成り立たないので偽である。 このように、方程式を命題として考えると、その真偽は様々で常に方程式を満たす解が得られるとは限らないと分かる。

それではこのような方程式の解法を記号論理で考えていく。 まず1変数の代数方程式の解き方を考える。 1変数の代数方程式とは、x+2=5とか1-x=5とかx2=9などの方程式のことである。 このような方程式は解くことができるが、その、方程式を解くという作業は一体何をやっているのかを考えてみる。

ある変数をxで表したとして、「そのxがx+2=5を満たす」という命題を例に考える。 これは、x+2=5という方程式を命題にしたものである。 そしてこの方程式の解はx=3になる。 この方程式の答えを表す式も方程式だと思って命題で書くと、ある数をxで表したとして「そのxがx=3を満たす」という命題になる。 これは、ある変数をxで表したとして、そのxは3であるという関係を満たすという命題だが、つまりxは3だと言っているだけで明らかに恒真命題である。

同じようにある変数をxで表したとして、「そのxがx+2=5を満たす」という命題はxは3であると言っている命題である。 なぜなら、確かにxが3のとき、3+2=5となって方程式が成り立つ。 つまり、「そのxはx+2=5を満たす」という命題と「そのxがx=3を満たす」という命題はどちらもxは3だと言っている命題で、本質的には同じものである。 今の場合は2つの命題の真理値は一致し、どちらも恒真命題である。

どちらも恒真命題なのだから2つの命題は同値なのではないかと期待してみる。 つまり、ある変数をxで表したとして、「そのxがx+2=5を満たす」⇔「そのxがx=3を満たす」ではないかということである。 同値なら、「そのxがx+2=5を満たす」をA、「そのxがx=3を満たす」をBで表して、(¬A∨B)∧(¬B∨A)が恒真命題であることになる。

それを確かめてみる。 まずは¬A∨Bだが、これは「そのxがx+2=5を満たさないか、そのxがx=3を満たす」ということである。 この命題の真偽はxがどんな数であるかによって決まる。 xは変数なので念のためにすべての実数について考えると、まずxが3の場合にはx=3が満たされるのが分かる。 よってxが3の場合にはこの命題は真になる。 次にxが3ではない場合を考えるが、その場合はx+2=5は満たされないので、やはりこの命題は真になる。 xが3の場合に真、それ以外の数の場合にも真なのだから、この命題は全ての場合で真であり恒真命題である。

また、¬B∨Aだが、これは「そのxがx=3を満たさないか、そのxがx+2=5を満たす」ということで、やはりxが3でない場合はx=3は満たされないし、xが3の場合はx+2=5が満たされるので、全ての場合で真でありこの命題も恒真命題になる。 よって、今の場合(¬A∨B)∧(¬B∨A)は恒真命題である。 つまり、ある変数をxで表したとして、「そのxがx+2=5を満たす」⇔「そのxがx=3を満たす」ということになる。

これはBが「そのxがx=3を満たす」という命題だから同値になったのであって、例えばBが「そのxがx=4を満たす」という命題であったら(¬A∨B)∧(¬B∨A)は恒真命題にはならない。 まず¬A∨Bだが、これは「そのxがx+2=5を満たさないか、そのxがx=4を満たす」ということで、xが3の場合にはx+2=5を満たすしx=4は満たさないので偽になる。 ちなみにxが3以外の数の場合にはx+2=5を満たさないので真になる。 また、¬B∨Aだが、これは「そのxがx=4を満たさないか、そのxがx+2=5を満たす」ということで、xが4の場合はx=4を満たすし、x+2=5を満たさないので偽になる。 それ以外のxの場合にはx=4を満たさないので真になる。 いずれにせよ真理値が偽になる場合があるので、(¬A∨B)∧(¬B∨A)は恒真命題にはならない。 つまり、「そのxがx+2=5を満たす」と「そのxがx=4を満たす」は同値ではない。

このように元々の方程式と、その解を表す方程式とは同値な関係にある。 方程式を解くとは、同値な関係を維持したまま、元の方程式をより簡単な式に変形していく操作のことなのである。 方程式を解くには両辺に同じ数を足したり掛けたり、代入したりするが、それらは元の方程式と同値な方程式を作る操作なのである。 逆に、同値な方程式を作る操作ではない操作を行ってはならない。 そうすると間違った解を導いてしまう。

それでは、このような同値な方程式を作る操作にはどのようなものがあるのかを見ていく。 まずは方程式の両辺に同じ数を足しても等しいままという操作を考える。 つまり、x+b=cという式の右側と左側にある数aを足して、x+a+b=a+cとしてもいいということである。 例えばある数をxで表して、x+5=8だとしたら、2を足してx+7=10としても、やはり方程式は成り立つというということである。 果たしてこれは正しいのだろうか。 つまり、ある変数をx、ある定数をa、b、cで表して、「そのxがx+b=cを満たす」⇔「そのxがx+a+b=a+cを満たす」は成り立つのか。

確かめるべきなのは「そのxがx+b=cを満たす」をA、「そのxがx+a+b=a+cを満たす」をBと表して、(¬A∨B)∧(¬B∨A)が恒真命題であることである。 これを証明するために仮にx+b=cだとしてもx+a+b=a+cではないと仮定して背理法を使うことを考える。 まずは(¬A∨B)だが、これは「そのxがx+b=cを満たさないか、そのxがx+a+b=a+cを満たす」という命題である。 これを証明しやすいように、

¬A∨B=¬¬(¬A∨B)

=¬(¬¬A∧¬B)
=¬(A∧¬B)

と同値な別の命題に変えてみる。 これは¬A∨Bと¬(A∧¬B)の真理値は一致するということで、もし¬A∨Bが真であることを確かめたいなら、¬(A∧¬B)が真であること、つまりA∧¬Bが偽であることを確かめればいい。 A∧¬Bは、「そのxがx+b=cを満たすのと同時に、そのxはx+a+b=a+cを満たさない」という命題である。 これが偽であれば元の命題が真であることが分かる。 この命題はAが真でBが偽であれば真になり、それ以外の場合には偽になる。 つまり、この命題が真であるためにはAが真でなくてはならないので、その場合だけを考える。 そうすると、「そのxはx+b=cを満たす」という命題は真だということになる。 この状況下で「そのxはx+a+b=a+cを満たす」という命題が偽であればA∧¬Bは真であるが、そうでなければ偽になる。

さて、「そのxはx+b=cを満たす」という命題が真である場合に「そのxはx+a+b=a+cを満たす」という命題は偽になるだろうか。 まずx+b=cが満たされているという意味を考えてみる。 xはある変数でbとcは定数である。 これはxという変数とbという定数を足すとcという定数になる、という関係を意味している。 それを踏まえてx+a+bという式を眺めてみると、この中のx+bという部分はcであることが分かる。 なぜならxとbを足すとcにあるからである。 つまり、

x+a+b=(x+b)+a

=c+a

ということになる。 まとめると、x+a+b=a+cということである。 これは何を意味しているかというと、「そのxはx+b=cを満たす」という命題が真である場合に「そのxはx+a+b=a+cを満たす」という命題は真になるということである。 よって「そのxがx+b=cを満たすのと同時に、そのxはx+a+b=a+cを満たさない」という命題は恒偽命題になる。 つまりA∧¬Bは恒偽命題になる。 よって¬(A∧¬B)は恒真命題になり、¬A∨Bも恒真命題になり、始めに得たいと思った結果が得られた。

次は¬B∨Aが恒真命題になることを確かめる。 つまり「そのxはx+a+b=a+cを満たす」⇒「そのxはx+b=cを満たす」という含意が正しいことを確かめる。 この命題が真であることを証明するために、先ほど証明した関係を使う。 つまり、「そのxがx+b=cを満たす」⇒「そのxがx+a+b=a+cを満たす」という事実である。

まず、x+a+b=a+cという方程式の見た目を少し変えておく。 x+a+bのa+bの部分はaという定数とbという定数を足したもので、結局何か別の定数になるのだから、これをdと書き換えてしまっても同じことである。 つまり、x+a+b=a+cという式をx+d=a+cと書き換えるのである。 ただし、dはd=a+bとなるような何らかの定数である。 同じようにa+cをeと書き換える。 つまり、x+a+b=a+cという式をx+d=eと書き換えるのである。 ただし、d=a+bだしe=a+cである。

このように方程式を書き換えた後で、先ほど証明した「そのxがx+b=cを満たす」⇒「そのxがx+a+b=a+cを満たす」という関係に今の場合を当てはめれば、ある定数をfで表して、「そのxがx+d=eを満たす」⇒「そのxがx+f+d=f+eを満たす」となる。 このfはどんな定数でも別にいいので、f=-aという場合を考えてみる。 そうすると、「そのxがx+d=eを満たす」⇒「そのxがx-a+d=-a+eを満たす」となるが、d=a+bでありe=a+cであることを思い出すとこれは、「そのxがx+a+d=a+cを満たす」⇒「そのxがx-a+a+d=-a+a+cを満たす」ということで-a+aは0になるので、結局、「そのxがx+a+d=a+cを満たす」⇒「そのxがx+d=cを満たす」となって得たいと思っていた結果が得られた。

今証明されたのは、ある変数をx、ある定数をa、b、cで表して、「そのxがx+b=cを満たす」⇔「そのxがx+a+b=a+cを満たす」という同値関係である。 これは、ある方程式があったら、その両辺に同じ数を足してもその方程式の真理値は変わらない、つまり答えが変わらない、ということを意味している。 この同値関係を使えば、1次の1変数方程式ならどんな方程式でも解くことができる。 方程式を解くのに同値関係を使う場合は、いちいち「そのxが〜という方程式を満たす」とは書かないで、単に方程式だけを書くのが普通である。 つまり、

x+b=c⇔x+a+b=a+c

という様に書く。 これは、x+b=cという方程式とx+a+b=a+cという方程式が同値な関係にあることを意味している。

では実際に、このような同値関係を利用してx+5=15という方程式を解いてみようと思う。 まずは先ほど証明した、同値関係を利用して、両辺から5を引いて、

x+5=15⇔x-5+5=x

=-5+15
=10

となるので、x+5=15⇔x=10となって、2つの方程式の解は同じなのだが、x=10という方程式は解そのものを一見して分かるほど明らかに表しているので、xは10である、という方程式の解が得られる。

他にも方程式を解くには両辺に0でない同じ数を掛けるという操作をすることがある。 それは、x+b=cのような方程式の両辺にaを掛けて、ax+ab=acという方程式を作る操作である。 これは同値な方程式を作る操作だろうか。 つまり、x+b=c⇔ax+ab=acだろうか。 次はそれを確かめる。

証明するべきなのは「そのxはx+b=cを満たす」という命題をAで、「そのxはax+ab=acを満たす」という命題をBで表したとして、(¬A∨B)∧(¬B∨A)が恒真命題であることである。 まずは¬A∨Bについて考えていく。 これは「そのxはx+b=cを満たさないか、そのxはax+ab=acを満たす」という命題である。 この命題もやはり¬(A∧¬B)と同値になるので、A∧¬Bが恒偽命題になるのを確かめればいい。 つまり、「そのxはx+b=cを満たすのと同時に、そのxはax+ab=acを満たさない」という命題が恒偽命題であることを確かめるのである。 これは、まずはaが自然数である場合に限って話を進めると、x+bをa回足せば、

(x+b)+(x+b)+(x+b)+...+(x+b)=c+c+c+...+c

となって、x+bをa回足したものをa(x+b)、cをa回足したものをacと書き表せば、

a(x+b)=ax+ab

=c+c+c+...+c
=ac

となる。 つまり、もしもx+b=cという方程式が満たされていれば、それをa回足すことによってax+ab=acという方程式も満たされるのである。 一般的にaが実数だった場合にも同じような議論が成り立つから、「そのxはx+b=cを満たすのと同時に、そのxはax+ab=acを満たさない」という命題は恒偽命題になる。 つまり、A∧¬Bが恒偽命題になる。 よって¬(A∧¬B)が恒真命題になり、それと同値な¬A∨Bも恒真命題になる。 つまり「そのxはx+b=cを満たす」⇒「そのxはax+ab=acを満たす」が証明された。

次は¬B∨Aが恒真命題であることを確かめる。 これは「そのxはax+ab=acを満たさないか、そのxはx+b=cを満たす」という命題である。 これもやはり同値な命題である¬(B∧¬A)を考えて、B∧¬Aが恒偽命題であることを確かめることによって証明する。 これは「そのxはax+ab=acを満たすのと同時に、そのxはx+b=cを満たさない」という命題になる。 しかし、ax+ab=acが満たされているなら、「そのxはx+b=cを満たす」⇒「そのxはax+ab=acを満たす」のように、両辺に0以外の同じ数を掛けて新しい方程式を作っても常に成り立つので、1/aを掛ければ、

(1/a)(ax+ab)=x+b

=(1/a)ac
=c

となって、x+b=cという方程式が得られた。 つまり、ax+ab=acが満たされているならx+b=cも満たされるのである。 よって「そのxはax+ab=acを満たすのと同時に、そのxはx+b=cを満たさない」という命題、つまりB∧¬Aは恒偽命題になり、¬(B∧¬A)は恒真命題になって¬B∨Aも恒真命題になる。 よって「そのxはax+ab=acを満たす」⇒「そのxはx+b=cを満たす」が証明され、「そのxはx+b=cを満たす」⇔「そのxはax+ab=acを満たす」が証明された。

今まで導いた「そのxがx+b=cを満たす」⇔「そのxがx+a+b=a+cを満たす」と、「そのxはx+b=cを満たす」⇔「そのxはax+ab=acを満たす」という同値関係を使えば1次の1変数方程式は全てを解くことができる。 これらの同値関係を証明するのには、数の性質や方程式の意味を使っただけだった。 逆に言えばこれらの数や方程式の性質が正しくなければ、これらの同値関係は証明できない。 だが、これらの数や方程式の性質の正しさを証明するのはかなり難しくなってくるので、ここではこれらの性質は公理だと思っておいて欲しい。 つまり、これらの性質を真だと仮定したら、x+b=c⇔x+a+b=a+cや、x+b=c⇔ax+ab=acという同値関係が導かれるのである。

それではこれらの同値関係を使って実際に方程式を解いてみる。 例えば4x+2=18という方程式は、

4x+2=18⇔4x+2-2=18-2

⇔4x=16
⇔4x/4=16/4
⇔x=4

と、同値関係を使って式をより簡単に変えていくことで解くことができる。 証明はしていないが、途中でx+a-a+b=c⇔a+b=cといった関係を使ったが、これは明らかに真なので気になる読者は自分で証明して欲しい。

連立方程式

これで1次の1変数方程式を解くことができるようになった。 次は1次の2変数の連立方程式を解く方法を考える。 1次の2変数の連立方程式とは、例えば、

x+y=5
x-y=1

のような2つの変数を持つ方程式を組み合わせたものである。 これを1変数のときのように命題で書くなら、2つの変数をxとyで表して、「そのxとyがx+y=5とx-y=1という2つの方程式を満たす」という命題になる。 この命題を同値関係を利用して真理値を変えないように見た目を変えていき、一見して方程式の解が分かるほど簡単な式にまで変えることができれば、方程式が解けたことになる。 そのために必要な同値関係をこれから証明していく。

まずは先ほど1変数の方程式に対して導いた同値関係が2変数の場合にも成り立つことを確かめる。 確かめるべきはx+y+b=c⇔x+y+a+b=a+cと、x+y+b=c⇔ax+ay+ab=acである。 まずはx+y+b=c⇔x+y+a+b=a+cだが、これは1変数の場合と同じようにして証明できる。 つまり、x+y+b=cが成り立っていればx+y+a+bを(x+y+b)+aだと考えればx+y+a+b=a+cが真になるのが分かるし、逆にx+y+a+b=a+cが成り立っていれば両辺に-aを足してx+y+b=cが成り立つので2つの方程式は同値になる。 同じようにx+y+b=cが成り立っていればそれをa回足すことでax+ay+ab=acが真になるのが分かるし、逆にax+ay+ab=acが成り立っていれば両辺に1/aを掛けることでx+y+b=cが成り立つので2つの方程式は同値になる。

しかし連立方程式を解くにはこのような同値関係だけでは足りなくて、片方の式をもう片方の式に足すという作業が必要になる。 つまり、2つの変数をxとyで表して、「そのxとyがa1x+b1y+c1=d1とa2x+b2y+c2=d2という2つの方程式を満たす」⇔「そのxとyがa1x+b1y+c1=d1と(a1+a2)x+(b1+b2)y+c1+c2=d1+d2という2つの方程式を満たす」という同値関係が成り立つ必要がある。 文章を省略してもう少し見やすく書くと、

a1x+b1y+c1=d1∧a2x+b2y+c2=d2

⇔a1x+b1y+c1=d1∧(a1+a2)x+(b1+b2)y+c1+c2=d1+d2

ということである。 これを証明するにはa1x+b1y+c1=d1∧a2x+b2y+c2=d2をA、a1x+b1y+c1=d1∧(a1+a2)x+(b1+b2)y+c1+c2=d1+d2をBで表して、(¬A∨B)∧(¬B∨A)が恒真命題であることを確かめればいい。 そのためにはやはりA∧¬Bが恒偽命題であることを確かめる。

A∧¬Bという命題は「a1x+b1y+c1=d1∧a2x+b2y+c2=d2だが、a1x+b1y+c1=d1∧(a1+a2)x+(b1+b2)y+c1+c2=d1+d2でない」という命題だが、a1x+b1y+c1=d1∧a2x+b2y+c2=d2が満たされている場合には、

a1x+b1y+c1+(a2x+b2y+c2)=(a1+a2)x+(b1+b2)y+c1+c2

=d1+d2

となって、これはA∧¬Bが恒偽命題であることを表しており、¬A∨Bが恒真命題であることを表している。 このように、ある方程式に別の方程式を足す命題は恒真命題になるので、¬B∨Aも同じようにして

(a1+a2)x+(b1+b2)y+c1+c2-(a2x+b2y+c2=d2)=a1x+b1y+c1

となることから恒真命題であることが証明できる。 つまり、

a1x+b1y+c1=d1∧a2x+b2y+c2=d2

⇔a1x+b1y+c1=d1∧(a1+a2)x+(b1+b2)y+c1+c2=d1+d2

は成り立つ。 これらの関係を使えば1次の2変数の連立方程式なら解くことができる。

例えば3x+y=16∧x-4y=1という連立方程式を解くには、

3x+y=16∧x-4y=1⇔3x+y=16∧x/4-y=1/4

⇔3x+y+(x/4-y)=16+1/4∧x/4-y=1/4
⇔3x+x/4=16+1/4∧x/4-y=1/4
⇔4(3x+x/4)=4(16+1/4)∧x/4-y=1/4
⇔12x+x=64+1∧x/4-y=1/4
⇔13x=65∧x/4-y=1/4
⇔x=5∧x/4-y=1/4
⇔x=5∧4(x/4-y)=4(1/4)
⇔x=5∧x-4y=1
⇔-1(x)=-1(5)∧x-4y=1
⇔-x=-5∧x-4y=1
⇔-x=-5∧x-4y+(-x)=1+-(5)
⇔-x=-5∧-4y=-4
⇔-1(-x)=-1(-5)∧(-1/4)(-4y)=(-1/4)(-4)
⇔x=5∧y=1

という様に同値関係を使っていけばいい。 これでも完全に連立方程式の解を導いているのだが、少し長くて見にくいので、ある方程式の両辺に同じ数を掛けても同値な方程式が得られるという定理と、ある方程式を別のある方程式に足しても同値な方程式が得られるという定理を組み合わせて、ある方程式の両辺に同じ数を掛けて別の方程式に足しても同値な方程式が得られる、というより実用的な定理にして使って途中の計算を整理すると、

3x+y=16∧x-4y=1⇔3x+y+(1/4)(x-4y)=16+(1/4)(1)∧x-4y=1

⇔13x=65∧x-4y=1
⇔x=5∧x-4y=1
⇔x=5∧x-4y+(-1)(x)=1+(-1)(5)
⇔x=5∧-4y=-4
⇔x=5∧y=1

と書くことができて、だいぶ見やすくなる。 まとめると、3x+y=16∧x-4y=1⇔x=5∧y=1ということだが、これは確かに正しくて、xに5、yに1を代入すれば3・5+1=16∧5-4・1=1となって確かに方程式は成り立っている。 つまり3x+y=16∧x-4y=1と、x=5∧y=1の2つの方程式の組は確かに同じ解を持っている。 このように同値関係を使うことによって連立方程式を解くことができる。

ここで注意しなくてはならないのが、成り立つのは、

a1x+b1y+c1=d1∧a2x+b2y+c2=d2

⇔a1x+b1y+c1=d1∧(a1+a2)x+(b1+b2)y+c1+c2=d1+d2

という関係であって、

a1x+b1y+c1=d1∧a2x+b2y+c2=d2

⇔(a1+a2)x+(b1+b2)y+c1+c2=d1+d2

という関係は成り立たないのである。 それは、a1x+b1y+c1=d1∧a2x+b2y+c2=d2⇒(a1+a2)x+(b1+b2)y+c1+c2=d1+d2は成り立つが、(a1+a2)x+(b1+b2)y+c1+c2=d1+d2⇒a1x+b1y+c1=d1∧a2x+b2y+c2=d2が成り立たないからである。 成り立つ方は先ほどと同じように恒真命題であると確かめることができるので、成り立たない場合について詳しく考える。

2つの変数をxとyで表して「そのxとyが(a1+a2)x+(b1+b2)y+c1+c2=d1+d2を満たす」という命題をB、「そのxとyがa1x+b1y+c1=d1∧a2x+b2y+c2=d2を満たす」という命題をAで表すと、問題になっているのは¬B∨Aが恒真命題かどうかということである。 恒真命題でなければ含意が成り立つとは言えないのだから、この命題が偽である場合があればいいので、Bが真なのにAが偽になる場合を見つければいいのだが、これはいくらでも例があって、例えばある数をαで表して、

a1x+b1y+c1=d1+α∧a2x+b2y+c2=d2

であれば、

a1x+b1y+c1+(a2x+b2y+c2)=d1+α+d2

=d1+d2

となるので、Bは満たされているのにAが満たされていない、つまりBが真なのにAが偽で、¬Bが偽でAも偽なのだから¬B∨Aは偽になる。 よって¬B∨Aは恒真命題ではなく、B⇒Aは成り立たない。 つまり、(a1+a2)x+(b1+b2)y+c1+c2=d1+d2⇒a1x+b1y+c1=d1∧a2x+b2y+c2=d2は成り立たない。

このように、連立方程式を解くなら必ず方程式の組の個数を維持していかなくてはいけないのが分かる。 そうしないと方程式が同値ではなくなってしまう。 同値でなくなるということは、解が変わってしまうということである。 連立方程式の場合は、例えば2つの変数をxとyで表して、「そのxとyがx+y=3∧x+2y=5を満たす」という命題から、「そのxとyがx+y=3∧x+2y=5を満たす」⇒「そのxとyが2x+3y=8を満たす」という様に新しい命題を作ることができるし、これは正しい含意になる。 元の連立方程式の解はx=1、y=2だが、2x+3y=8という方程式はx=1、y=2の場合にも確かに成り立つ。 つまり、これは正しい含意である。

だが、2x+3y=8を満たすxとyの組み合わせは他にもいくらでもある。 例えばX=2、y=1の組み合わせやx=4、y=0という組み合わせである。 「そのxとyがx+y=3∧x+2y=5を満たす」⇒「そのxとyが2x+3y=8を満たす」というのは、x+y=3∧x+2y=5という連立方程式の解になるxとyならば、絶対に2x+3y=8という方程式も満たしているということを言っているに過ぎない。 2x+3y=8という方程式を満たすのはx+y=3∧x+2y=5の解だけであるとは言っていないのである。 様々な組み合わせのxとyが2x+3y=8という方程式を満たすが、その中の1つの組み合わせにx+y=3∧x+2y=5という連立方程式の解があるというのは、確かに正しい。 しかし、これでは元の連立方程式を解くのには役に立たない。 元の連立方程式と同値にするには、2x+3y=8と同時に足し合わせた方程式の片方、x+y=3かx+2y=5のどちらかも同時に満たすと条件を追加しなくてはならないのである。

このように、方程式を解くというのは元の方程式と同値な方程式を作る操作を繰り返し行い、解が一見して分かるほど単純な方程式に変形することを言うのである。 方程式を解く場合は余計な解を混ぜ込んでしまったり、本来の解を見逃してしまったりしないように、その方程式が本当に元の方程式と同値なのかを注意深く確認していかなくてはならない。 ここでは取り上げなかったが、2次方程式やそれ以上の次数の代数方程式、微分方程式や積分方程式も同じように同値な方程式を作る操作を繰り返すことで解くことができる。

9.2.2 微積分学の基本定理

平均値の定理から議論の道筋が分かりやすいように証明する。

9.2.3 ベクトル空間

ベクトル空間の基底の数が一定であることを証明した議論の論理を厳密に検証する。

9.2.4 関数の連続性

これまで学んできた内容を総合的に組み合わせて関数の連続性について議論してみる。 連続の定義。 連続関数の和は連続であること。 連続関数がベクトル空間を成すこと。 微分可能な関数は連続関数であること。など。

もどる
inserted by FC2 system