人気ブログランキング | 話題のタグを見る

0.999999.... = 1 か?

0.99999..... =1だろうか。

1.0 = 1 は明らかだ。(1 + 0.0) - 1 = 0.0 = 0 なので 1.0 = 1 であることは簡単に証明できる。2つの数が同じかどうかは除算をして差が 0 であることを証明すればよい。

それでは、1 - 0.99999.... の値は 0 なのだろうか。四則演算の法則から、

1 - 0.999999...
= 1 - (0.9 + 0.09999...)
= (1 - 0.9) - 0.09999...)
= 0.1 - 0.099999...
= 0.1 - (0.09 + 0.009999..)
= (0.1 - 0.09) - 0.009999...)
= 0.01 - 0.009999....
......

となって、永遠に計算は完了しない。四則演算の法則を使って 1 と 0.99999 の差を求めようと思っても確定できない。それでは、x = 0.99999.... とおいて次のような計算をしてみたらどうだろうか。

10x - x
= 9.999999.... - 0.99999...
= 9

10x -x = 9x なので

9x = 9

ゆえに

x = 1

しかし、この計算にはトリックがある。9.999999 の小数点以下の部分と 0.999999 の差を簡単に 0 としているからだ。これは、四則演算の法則を使って計算する限り確定できない計算だ。これを0と確定できるのは、9.99999.... の小数部分と 0.99999.... の小数部分の各桁が同じなので同じ数と認めようという別の基準を持ち込んでいるからだ。

人間はこの概念の飛躍を簡単に許容するが、コンピュータではそれができないので桁数のオーバーフローが起こってしまう。つまり、計算エラーだ。

小数の各桁の大きさで小数全体の大小関係を定義すれば、1 は明らかに 0.99999.... よりは大きい。しかし、四則演算に則ってその差を計算するとその値は不確定になってしまう。0.999999.... は 1 より少ないがその差が不確定な数であるとしか言えないのだ。

四則演算の世界に無限小数を取り入れると、不可避に無限小という不確定性が発生してしまう。実数とはこのような不確定な要素を本質的に含む数なのである。

# by tnomura9 | 2022-08-09 02:16 | ラッセルのパラドックス | Comments(0)

全称命題

領域 D について述語 P(x) は D から2値集合 {True, False} への関数である。このとき、全称量化子を伴うつぎの論理式は真理値を持つ命題だ。

∀x P(x)

領域 D に属する対象が有限個のとき、上の論理式は領域 D の要素 ai に述語 P(x) を適用させてできる命題 P(ai) すべての論理積になる。すなわち、領域 D の要素が a0, a1, ... , an のとき、次のようになる。

∀x P(x) = P(a0) ∧ P(a1) ∧ .... ∧ P(an)

したがって、この命題は P(ai) の真理値がすべて真のとき真で、P(ai) のどれか一つでも偽であれば偽となる。

このように、領域 D に属する対象が有限個のときは、領域 D についての1階述語論理の議論はすべて命題論理の議論に還元することができる。

それでは、領域 D に属する対象が無限個のときはどうだろうか。領域 D が無限集合のときは、すべての対象を列挙することはできない。

そもそも、無限に存在する対象のすべてとは矛盾した概念ではないのだろうか。数え尽くすことができないから、領域 D は無限集合なのであり、対象を数え尽くすことができないものにすべてという概念を適用するのはおかしい。

無限の対象のすべてについて考えるというのは矛盾した考え方であるが、無限の対象がある共通の性質を持っており、その共通の性質を持った対象のすべてを考えるということはできる。すべての対象を列挙することはできないが、同じ性質をもった任意の対象について考えるというふうに考えるのだ。

任意の対象について述語 P(x) を適用したとき真であれば、無限集合の領域 D のすべての対象について述語 P(x) の適用は真となると言って良いのではないかという議論は、しかし、巧妙な概念のすり替えでしかない。無限集合 D のどの対象に対して P(x) を適用しても真になったとしても、領域 D のすべての対象を検査したことにはならないからだ。

とはいえ、領域 D のどの対象に対しても述語 P(x) を適用したときの真理値が真なら、すべての対象に対して P(x) の適用が真の値をとるわけではないとも言えない。どの対象をとっても P(x) の値は真であるからだ。しかし、この場合も厳密にはすべての対象を検査することはできない。

すべての対象について真であるということを、任意の対象について真であると言い換えるのはいまひとつ腑に落ちないのだが、この言い換えを妥当だと考えると無限集合 D について ∀x P(x) は次のように命題論理として扱うことができる。

∀x P(x) = P(a0) ∧ P(a1) ∧ .... ∧ P(an) ∧ ....

この式の左辺は無限に続くが、かと言って P(ai) が偽となる項は現れないのだから ∀x P(x) は真であると考えてよい。この考え方を採用すれば領域 D が無限集合である場合も1階述語論理を命題論理に還元できる。すなわち ¬ ∀x P(x) は次のように ∃x ¬ P(x) と置き換えることができる。

¬ ∀x P(x) = ¬P(a0) ∨ ¬P(a1) ∨ .... ∨ ¬P(an) ∨ .... = ∃x ¬P(x)

このような置き換えの利点は、無限に項が続く論理式を隠蔽できることだ。無限集合の領域 D についても1階述語論理をコンパクトに適用できるようになる。

領域 D が有限集合であっても、無限集合であっても、領域 D とその対象に適用したときに必ず真または偽の真理値をとる関数としての述語 P(x) という単純なモデルは、1階述語論理を直感的に理解するための正当なモデルである。

また、このときに大切なのは領域 D が集合として定義できるということである。領域 D が集合として定義できない場合、∀という量化子を使うことができない。また、述語 P(x) が D の対象に適用されたとき必ず真または偽の値をとるという排中律も必須である。領域 D と述語 P(x) がこの条件を満たすとき、領域 D における1階述語論理は命題論理に還元できることになる。

1階述語論理を領域 D と述語 P(x) のモデルで理解するとき、論理とは単に領域 D の対象を分類する操作であり、また、集合の操作でもあることが分かる。論理とは集合なのだ。

# by tnomura9 | 2022-08-07 03:11 | ラッセルのパラドックス | Comments(0)

∀x(P(x) -> Q(x)) と真理集合

全称量化子のついた次の論理式は真理値をもつ命題だ。述語ではないのでこの論理式の真理集合はない。

∀x(P(x) -> Q(x))

しかし、この命題が真となるのは、述語P(x) と Q(x) の間に関連性がある場合だ。言い方を変えると、真理集合 P と Q の間に関連性がある。そのことを求めるために、述語 P(x) -> Q(x) を領域 D の対象 a に適用してできる次の命題について考えてみる。

P(a) -> Q(a)

これは、原子命題 P(a) と Q(a) が論理記号 -> で結合された複合命題なので真理表を作ることができる。

P(a) Q(a) | P(a) -> Q(a)
True True | True
True False | False
False True | True
False False | True

領域 D のすべての対象 a について、P(x) -> Q(x) を適用させても、命題 P(a)、Q(a) の真理値のとり方は上の真理表の4つの行に集約される。したがって、

∀x(P(x) -> Q(x))

の真理値は、P(a) = True, Q(a) = False となる場合が一つでもあれば False でそういう場合が一つも無ければ True である。したがって、∀x(P(x) -> Q(x)) が True となるのは、P(a) = True, Q(a) = False が起きない場合だ。

まず、P(a) = False のときは Q(a) の真理値がどうであれ P(a) -> Q(a) は True なので問題ない。しかし、P(a) が True のときは P(a) -> Q(a) が True になるのは Q(a) がTrue のときだけである。したがって、∀x(P(x) -> Q(x)) が真になるのは P(a) = True ならば Q(a) = True の場合で、また、そのときに限ることが分かる。すなわち、

P(a) = True ならば Q(a) = True

これを集合の表現に置き換えると、

a ∈ P ならば a ∈ Q

すなわち、

P ⊂ Q

である。∀x(P(x) -> Q(x)) が真であることと、真理集合 P, Q の間に P ⊂ Q の関係があることとは同値なのである。

# by tnomura9 | 2022-08-01 01:24 | ラッセルのパラドックス | Comments(0)

P(x) ⋀ Q(x) の真理集合

領域 D について述語 P(x) が与えられているとする。この時、領域 D の対象 a について P(a) は必ず真または偽の値をとる。このとき、P(a) が真となる対象を集めた集合 P は領域 D の部分集合であり、次のように内包的に定義できる。

P = { x ∊ D | P(x) = True }

このように定めた真理集合 P について、P(a) が真であるという命題と a ∊ P という命題は同値である。すなわち、a のいずれの場合についてもこの二つの命題の真理値は一致する。

原子述語 P(x) の真理集合をこのように定義した時、原子述語を論理記号で結合してできる P(x) ⋀ Q(x) などの複合述語の真理集合を考えてみる。

いま複合述語 R(x) を次のように定義する。

R(x) = P(x) ⋀ Q(x)

このとき述語 R(x) の真理集合は次のようになる。表現を簡潔にするために、集合の内包的定義に現れる述語が対象に適用された場合命題が真である場合のみを集合の要素として含むということにする。

R = { x | R(x) } = { x | P(x) ⋀ Q(x) }

術後 R(x) を領域 D の対象 a に適用した R(a) は命題だから、R(x) を a に適用してできる命題についてつぎのような真理表を作ることができる。

P(a) Q(a) | P(a) ⋀ Q(a) .... R(a)と同じ
----------------------------
True True | True
True False | False
False True | False
False False | False

R(x) = P(x) ⋀ Q(x) の真理集合は R(a) = True となる対称 a からなる領域 D の部分集合なので、この真理表から、a が R(x) の真理集合 R の要素となるのは、P(a) が真で、かつ、Q(a) が真のときのみであることがわかる。すなわち、

P(a) = True かつ Q(a) = True のとき、かつそのときに限り P(a) ⋀ Q(a) = True である。

したがって、命題 P(a) と a ∊ P の同値性から、

a ∊ P かつ a ∊ Q のとき、かつその時に限り a ∊ R

結局、

a ∊ P かつ a ∊ Q <=> a ∊ R (= P ⋂ Q)

⋀ 以外の論理演算子についても同様の考察ができるから、P(x) ⋀ Q(x) のような複合述語の真理集合は、述語の論理演算子を真理集合の集合演算に置き換えたものと等しいことがわかる。

1階述語論理は命題論理の拡張だといわれる。それは、命題論理の公理に、量化子を用いた述語論理の公理を追加するのでその意味では拡張である。しかし、命題論理のモデルと1階述語論理のモデルは異なっている。

命題論理のモデルは、真理値の集合とその論理演算子からなるブール代数だ。1階述語論理のモデルは、領域 D と領域 D の冪集合と述語と真理値の集合の4つ組である。したがって、命題論理が単純に1階述語論理に発展できるというわけではない。上の議論では1階述語論理の要素をいったん命題という形で命題論理で扱えるような形にして推論を行ったのだ。

上で述べた真理集合は一般的な定義での集合ではない。1階述語論理のモデルにおける、排中律を満たす述語で定義できる集合だ。集合に与えられたこの制限は、しかし、ラッセルのパラドックスを起こさず、論理と集合の議論が矛盾なく行えるという利点を持っている。

# by tnomura9 | 2022-07-30 17:02 | ラッセルのパラドックス | Comments(0)

ラッセルの述語と論理

論理は様々な命題を論理のフレームワークに載せて推論することができる。

領域 D の要素 a に対して、述語 P(x) は領域 D から二値集合 {True, False} への関数である。また、述語 P(x) を個体 a に適用させた P(a) は命題であり、必ず True または False の値をとる。

このような述語に対しては、P(a) が真となる要素を集めて P(x) の真理集合 P を作ることができる。すなわち、

P = { x | P(x) = True }

である。この P は明らかに領域 D の部分集合である。したがって、領域 D の冪集合 Pow(D) はどのような述語の真理集合も含んでいる。すなわち、領域 D についての述語は無限に考えられるが、その真理集合は必ず Pow(D) の要素であることになる。無限な述語も真理集合として抽象化された場合、その範囲は Pow(D) に収まってしまう。

逆に、任意の真理集合 P から、領域 D の要素が真理集合 P に所属するかどうかで述語 P'(x) を定義することができる。すなわち、

P'(x) = if x ∈ P then True else False

である。このとき、P(x) の値と P'(x) の値はどのような領域 D の要素 x についても一致するから、

P(x) = P'(x)

すなわち、どのような述語 P(x) があったとしても、それは領域 D の P(x) の真理集合を経由することで、P'(x) に抽象化することができることを示している。P'(x) にはもはや P(x) の具体的な定義は含まれていない。捨象されてしまう。したがって、それ以後の P'(x) の論理的な議論については、論理のフレームワークのみで論じることができる。

このことは、述語 P(x) の具体的定義によらず、P(x) の論理的構造を述べることができることを示している。すなわち、地上のあらゆる命題の論理構造は、論理学で議論できることを意味している。

このように強力な論理学だが、ひとつだけ、述語 P(x) は領域 D の要素 a に適用されたとき必ず True か False の値を戻さなければならないという制限がある。ラッセルの述語 x ∈ x は、述語のこの条件を満たさない。すなわちラッセルの集合を R, ラッセルの述語を R(x) とすると、

R = { x | x ∉ x }

で定義された集合 R は R(R) が True であるとも、Fasle であるとも定めることができない。したがって、R(x) は領域 D の要素についてかならず True または False の値をとるという述語の要件を満たさない。したがって、R(x) は論理のフレームワークに乗せることができない述語なのである。R(x) は論理学では扱うことのできない述語なのだ。

R(x) = (x ∉ x)

という述語は排中律を満たさず論理のフレームワークで論じることができないことは、生成規則では正当な述語も論理で扱えないことがあることを示している。つまり、記号の配列規則のみでは論理的でない述語が発生するのを防げないのだ。

ラッセルのパラドックスは論理学の矛盾ではなく、記号の生成規則では論理的に扱えない述語が発生することを示しているだけなのだ。論理的な推論は論理演算で命題を扱うが、述語は真理集合と同型であり、Pow(D) は集合演算について閉じている。すなわち、命題がかならず True または False の値をとるという排中律が成立していれば、論理学になんの矛盾も発生しない。

排中律を満たす述語以外の述語については、論理学は何も語れない。

「語り得ぬものについては、沈黙しなければならない。」 -- ヴィトゲンシュタイン --


追記

素朴集合論では、個体と個体の所属関係の定義ですべての集合が定義できると考えているようにみえる。この定義がなぜラッセルのパラドックスを引き起こしてしまうかは以下の記事で述べている。数学や論理学は素人なので間違っているかもしれないが参考までに。要するに、集合の定義を上のようにすると、集合のモデルが所属関係をエッジとする有向グラフの全体となってしまうことだ。この有向グラフではラッセルの述語を満たすノードは定義できず、ラッセルのパラドックスが起きることがわかる。論理学には罪はないのだ。


命題論理にしても、述語論理にしても、命題は変数として抽象化されている。命題に論理を適用するときは、この抽象化された命題について論理演算が完結していないといけない。ラッセルの述語のように述語の定義が論理的な矛盾を起こす場合、その述語は十分に抽象化されておらず、論理的な推論に乗せることができないことを示している。

すべての人間は死ぬ、ソクラテスは人間である、故にソクラテスは死ぬという論理的な推論が成り立つのは、ソクラテスを含む個体の領域を設定したときに、すべての人間や、死すべきものいう述語が、その領域の部分集合である真理集合を定めるからだ。真理集合によって述語を再定義すると、ソクラテスや死ぬなどの性質は捨象されて、これらの命題が単に領域の要素とその部分集合との関係に抽象化されてしまう。このような抽象化された命題には論理演算は閉じており、このような命題には論理が正当に適用できる。


# by tnomura9 | 2022-07-10 09:26 | ラッセルのパラドックス | Comments(0)