謎深き査読者と、明晰なコンピュータ

このまえ書いたとおり、わたしにとって数学の読み書きとは、われわれが数学を書くための言語と、わたしが数学を考えるための言語とのあいだの翻訳のいとなみである。わたしは、われわれのことばをわたしのことばへと翻訳することで数学を理解し、わたしのことばをわれわれのことばへと翻訳することで数学を発表する。

 

また別の日に書いたとおり、わたしが数学を書くことに求める厳密さの基準は、わたしがプログラムを書くことに求める厳密さの基準とほとんど一致している。すなわち、数学を書くためのことばをわたしが書けたと思うのは、おなじくらいの理解を差し向ければ、コンピュータだってそのことばを理解するだろうと思ったときだ。

 

これらふたつを機械的に組合わせれば、ひとつの前提が浮かび上がってくる。すなわち、プログラミングといういとなみを、わたしは翻訳だと思っている、ということだ。

 

しかしながら、プログラムを書くとき、わたしはむしろ思ったままに書いているように思う。これまた別の日の感想によれば、わたしはプログラミング言語を、わたしがこの日記を書くための自然言語よりさえも流暢にあやつるようだ。さて、誤謬はどこにあるだろうか?

 

理由のひとつは、わたしが書くプログラムが、わたしが書く数学の論文よりもはるかに短いことだろう。数学論文と違って、わたしの書くプログラムには、複雑な全体構造をとおして不変性を保つために頭を悩ませるたぐいのものはない。そもそも、全体構造がまったく複雑ではないからだ。

 

だがもっとも根源的な理由は、数学論文とちがい、プログラムは気軽に機械に検証させることができるという事実だ、とわたしは思う。

 

数学を書くのは奇妙ないとなみだ。われわれは書かれた数学に明確な厳密性を求めるのに、書かれた数学を検証するプロセスはまったくもって厳密ではない。数学が厳密にただしいと判断されるのは、それがじっさいにただしい時ではなく、査読者という生身の人間がただしいと思ったときだ。その反面、プログラムは、コンピュータというあるていど厳密な、すなわち頭のかたい他者が、厳密にただしく動かしてくれる。

 

査読者は生身の人間だから、わたしはつい査読者に甘えてしまう。だからわたしは、明確に厳密ではない数学を書くことからはじめる。どの程度の理解なら、査読者に理解してもらえるのかは分からないから。

 

しかしコンピュータは、頭のかたい箱にすぎない。わたしはそれを知っているから、コンピュータに甘えようという気さえ起こさない。だから、わたしは最初から厳密なプログラムを書く。そうでないと分かってもらえないと、わたしは書く前から知っている。

 

ミステリアスな査読者の機嫌を伺うのと、冷酷無比なコンピュータにわたしを認めさせるのとでは、どちらが簡単なのかはわからない。だがこれまでの経験に照らし合わせれば、わたしにとっては、コンピュータの冷酷さの方が快適なようである。