prime's diary

そすうの日々を垂れ流しちゃうやつだよ

例え話の罠: 例え話と準同型

導入

何らかの議論をするときに、アナロジー、例え話をして説得力を持たせるテクニックは広く使われている。 故事成語のもととなった寓話などがその代表である。

例え話による議論では、もとの複雑で想像が難しいシチュエーションAを、理解しやすいシチュエーションBに"投影"し、シチュエーションBの中での議論を行い、そこで出た結論を元のシチュエーションAに引き戻して当てはめる、ということが行われる。

例え話は一見非常に説得力のある議論ができるが、そこには落とし穴がある。 騙されない、あるいは騙してしまわないよう、気を付けなければならない。

本記事では、例え話の問題点について見ていく。

準同型

突然話題が変わるが、数学には準同型という概念がある。 ざっくり説明すると、数学的構造(群とか環とか線形空間とか)XとYがあって、Xの要素xをYの要素f(x)に写す関数(写像ということも多い)f : X \rightarrow Yが準同型であるとは、fが数学的構造を保ったままXの要素をYの要素に写すことをいう。

群であれば、群Xの二項演算★と群Yの二項演算*についてf(x_1★x_2) = f(x_1) * f(x_2)が成り立つことが条件になる*1

準同型の具体例

具体的な例をいくつか挙げてみよう。すでに準同型に慣れ親しんでいる人は、このセクションを読み飛ばしてもよい。 (ちなみにここでの具体的な例の「例」はinstanceで、例え話の「例」のanalogyではない。)

実数係数の多項式全体の集合 \mathbb{R}[x]と、その上での加算、乗算を考えると、環という代数構造をなすことが知られている。 たとえば多項式 p_1, p_2がそれぞれ


p_1 = x^3 + x^2 + x + 1 \\
p_2 = x - 1

だったとき、その和と積は


p_1 + p_2 = x^3 + x^2 + 2x \\
p_1 p_2 = x^4 - 1

のようになる。 ここで、多項式不定元に、具体的な実数を多項式に代入することを考える。 0では面白くない*2ので、ここでは3を代入してみる。


p_1|_{x=3} = 3^3 + 3^2 + 3^1 + 1 = 40 \\
p_2|_{x=3} = 3 - 1 = 2

関数fを"多項式p(x)に対して、不定元に3を代入した結果p(3)を返す"と定義すると、fは\mathbb{R}[x]から\mathbb{R}への関数になっている。 実数全体の集合も(通常の)加算と乗算について環をなし、またこのfは可算と乗算の構造を保存する、つまり準同型であることが知られている。 さきほどのp_1,p_2で確認すると、


f(p_1)+f(p_2) = 40 + 2 = 42 \\
f(p_1 + p_2) = f(x^3 + x^2 + 2x) = 3^3 + 3^2 + 2 \times 3 = 42 \\
f(p_1)f(p_2) = 40 \times 2 = 80 \\
f(p_1 p_2) = f(x^4 - 1) = 3^4 - 1 = 80

となっており、ちゃんと加算と乗算について保存されている。

準同型の利便性と危険性

準同型は数学における非常に強力な道具で、Xの素性はよくわからないがYの素性はよくわかっていて、準同型 f: X \rightarrow Yがあったとすると、fとYについて調べることで、Xの素性の理解につなげることができる。

しかし、準同型を用いた議論をするときに忘れてはいけない重要なことがいくつかある。 その一つが、考えている準同型が何に関する準同型なのか、ということである。 環の準同型であれば、環の演算については保存するが、それ以外のことについては何も言っていないため、なんでも準同型で写した先で議論できるわけではないのである。

具体例で考える

先の多項式を例に挙げると、多項式には合成という演算がある。 多項式多項式関数だと思って関数合成をすると、その合成関数はまた多項式関数となる。


p_1 = x^3 + x^2 + x + 1 \\
p_2 = x - 1

とすれば、その合成は


p_1 \circ p_2 = (x-1)^3 + (x-1)^2 + (x-1) + 1 = x^3 - 2x^2 + 2x

実数も定数関数だと思えば、それについて合成を考えることができる。


40 \circ 2 = 40

ここで先のfが合成について保存するかどうかを見てみよう。


f(p_1) \circ f(p_2) = 40 \circ 2 = 40 \\
f(p_1 \circ p_2) = f(x^3 - 2x^2 + 2x) = 3^3 -2 \times 3^2 + 2 \times 3 = 15

このように、fは合成に対しては準同型ではない。 従って、もし多項式の合成を含む議論をするのであれば、fを用いた実数上での議論に帰着することは(基本的には)できない。

翻って、例え話でも同じようなことが言えて、きれいな例え話があったとしても、その例え話がいま議論したいシチュエーションを正しくマッピングして、その構造を保存しているかをよく吟味しなければならない。




…ここまでで「なるほどたしかにそうだ」、と騙されてはいけない。

ここまでの文章自体が、「例え話」を「準同型」で例えて、その性質を議論するアナロジーになっている。 しかし、例え話と準同型の対応が、その性質を語れるようなものになっていることを言っていない。

そもそもの話、ほとんどすべてのアナロジーは、対応関係の正確な定義もなければ、その対応の正当性を示すこともないため、数学の準同型とのアナロジー以前の問題で、全く議論にならない。 議論として正しくないがぱっと見の説得力はあるため、自分に都合の良い対応と議論を持ってくることによって、あらかじめ用意した結論を出すための道具だと思った方がよいだろう。

今日の標語:

例え話はすべて詐欺です。

*1:群の構造を保つことを言うには、単位元と逆元を取る操作に関しても構造を保つことを言う必要があるが、それらは積の保存から導ける

*2:多項式の定数項が出るだけ