数学ガール/計算可能性解析学
「微妙だ」とミルカさんが言った。
僕たちの前のカードには、こう書いてある。
を計算可能な閉区間、を計算可能関数とする。このとき、との間にある任意の計算可能実数に対して、ある計算可能実数が存在して、が成り立つ。
「微妙?」テトラちゃんがカードを見つめながら言った。僕も、どこが微妙なのかわからない。カードには、定理が明瞭に書いてあるだけだ。
「証明してみれば見えてくる。とりあえず、証明してみよう。中間値の定理のよく知られた証明をひねるだけでできる」と言ってミルカさんは僕のほうを見た。証明しろということらしい。
「一般性を失うことなく、, , , と仮定できる」
僕はカードの下のほうに書き足した。
を計算可能関数で、とをみたすものとする。このとき、ある計算可能実数が存在して、が成り立つ。
(ここに、「一般性を失うことなく……仮定できる」の説明を入れるといいかも)
僕は続けた。
「ある(ただし、とは正整数)が をみたすときは、としてをとるとよい。そこで、そのようなとが存在しない場合を考える。数列とをこう定義する」
.
のとき、.
のとき、.
「区間縮小法より、とは共通の極限値をもつ。各についてだから、が成り立つ。同じくだから、が成り立つ。したがって、が成り立つ。ここまでで、非計算版の証明終わり」
この後はミルカさんが引き継いだ。
「あとは、この証明で出てくるの計算可能性を確かめれば良い。あるとでが成り立ち、とおいたときについては、有理数は計算可能実数である事実からOK。そのようなとが存在せず、区間縮小法でを構成したときについては、要するに、とを順番に出力するアルゴリズムを書き下せば良い訳だ。きちんと書き下すと長くなるが」
(ここで、実際に書き下すと良いかも)
「中間値を与えるは計算できるんですね」とテトラちゃんが言った。
ミルカさんの返事は意外だった。
「それは違う。計算可能なと計算可能なに対して計算可能なが存在することを示しただけだ。とからを計算できることは示していない」
「え、でも、証明ではとからを構成していますよね」
「まだ、気づかないかな」
「……」
「あるでであるか、そのようなは存在しないかは、実効的に判定できない」
「あ、ああああああああっ!」
テトラちゃんが大きな声を上げる。だから、ここは図書室だというのに。でも、叫びたくなる気持ちはよくわかる。
ミルカさんは詠唱するように言う。
「この証明は、計算可能な対象の存在を示しているが、それを計算する手続きは与えていない。実は、この証明がまずいのではなく、そのような手続きは本当に存在しないことがわかっている。この定理は本当に微妙なんだ」
「計算可能なものがあることは証明できるのに、それを計算する手続きはない。お、おかしい!」
テトラちゃんはまだ混乱している。
(このあと、どうしよう?)