Akademio - 実験

夏休み、多くの学生が田舎に帰省してしまったのを見送ると、学生寮はまるで廃墟みたいに静かになってしまった. この建物に私一人というと大げさだけど、一階のエントランスから四階にある自分の部屋に戻るまでに誰ともすれ違わなかったから(ところで一年生はエレベーターを使ってはいけない規則になっており、こんなときにも律儀に階段で四階まで昇る私だ)、もしかしたら本当に一人だったらどうしようと不安になった. でもそれ以上に、私の胸はわくわくと踊っていた. これから一ヶ月近く、部屋は独り占めだし寮内の図書室も使い放題だ. なにか、なんでもいいから、大きな有意義なことをしたいけれど、何が有意義か分かれば苦労はない. 夏休みの宿題を抱えて私は図書室に向かった.

大嫌いな歴史と地理のテキストをさっそく放っぽり出して、数学のテキストに取り掛かった. 初日から楽しくないことをすることもない. 勉強は好きとは言えない. 数学だけなら好きだ. 中学生に上がってからますます好きになった. 小学校の頃の算数といえば苦行でしかないような算数ドリルを宿題に出すから、嫌いにさせようと先生が必死になってるんだと思った. 算数は中学になると数学になるんだってどこかで教えてもらって、数学のテキストを背伸びして読んでみたとき、私の生きる方向が決まった気がした. 中学校でやる数学はゆっくり進むのでもどかしい. それに、あくまで具体的な構成だけに留めているのも勿体ないと思う. 学校のテキストとは別に、高かったけど、中古で、それでも何千円もする代数学のテキストを手に入れて、これを並行して読み進めている. 数学はどれも楽しいけど、それでも代数はすごいと思う. 高校で学ぶ色んなものの裏に代数的構造が隠れていて、実は繋がっているということを知ると、初めて数学を理解できた気持ちになる.

[..]

自然数は簡単にいえば、 \(0\) を起点にした(これは \(1\) でもなんでもいいんだけど、やっぱり起点というと \(0\) という感じがする)、\(0, 1, 2, \ldots\) といった具合に右方向にだけ無限に伸びるチェインだ. どんな自然数にも その次 がある. このチェインには合流や分岐がないただただ長い一本になっている、といった具合を定めることで自然数とするのがペアノの公理だ. 私は図書館の壁に貼られたカレンダーモニタを見た. 曜日も自然数によく似ていると思った. 月、火、水といった具合に、どの曜日にもその次の曜日が用意されている. ただしこのチェインは端と端をつなぎ合わせた輪っかになっているところが自然数と違う. 仮に日曜日を起点とするなら、その次は火曜日でその次は水曜日で、と辿って土曜日の次がまた、日曜日に戻ってくる.

誰も曜日を定義したことなんてないのに、自然の摂理かってくらいに全員の常識になっているのが不思議で怖くなった. 日曜日の次は必ず月曜日で、どんなことがあっても、火曜日だったり水曜日だったりはしない. そして逆に、日曜日の前の日は必ず土曜日であることも保証されている. それ以外の曜日の次の日が日曜日であるようなこともない. 定義済み曜日である以上この輪廻から抜け出すことはない. じゃあ、それじゃあ、私は思った. ありもしない曜日、例えば 無曜日 になったとしたら、その次はどうなるだろうか. 無曜日 の次の日が何曜日か、知ってる人類はいない. ある夜みんなが寝て、起きてカレンダーを見たら 無曜日 になっていたら、人々は何をするだろうか. そして、その次の日のカレンダーは何曜日を指し示すのだろうか. 想像して、私は嬉しくなった.

<!--

私は政府の提供するカレンダーAPIについてマニュアルを調べることにした. 日曜日が \(0\) で月曜日が \(1\)、土曜日が \(6\) といった数に割り当てられておりAPIはこれを返すようだ. あまり日常的な場面では普及していないが、月曜日を第一曜日、土曜日を第六曜日と呼ぶのが正式になっているのでこれと対応しているようだ. ただし日曜日だけ特別で \(\bmod 7\) を取っていると考える必要がある. さてこのAPIは祝日法APIと一緒くたにされているから、裏のデータベースももしや同じになっているのではないだろうかと考えた. それだと都合がよくて、サーバ施設は政府のものだけど、なんと保守は民間に任されている. 侵入も容易だった. 学校の工作の授業を真面目に聞いていないのを後悔しつつもテキストを開くと実用的なことが書かれてあるのを見て感心した. 目標を達成するのに実に丸三日掛かった. 自分自身の名誉の為にも言っておくと、侵入して値の書換えまではその日の内にできていた. ただし自己修復機能があまりにも優秀で、おそらく中身は冗長構成で一部が壊れても多数決原理で値を修正するようになっているらしい、適当な値に書換えても書換えても勝手に元に戻るのだった. 上書きを成功させるには幾つあるか分からないデータベースのうちの過半数をほぼ同時に書き換える必要があった. これは結局上手くいかなかった. どれだけのデータベースがあるのかよく分からず、見つけても見つけても自己修復されるだけだった. ところでよっぽど自信があるのか、不正アクセスが検出されなかったのは不幸中の幸いだった.

結局どうやったのか、あまりにもあっけなくて言っても信じてもらえないかもしれない. 勿体ぶってもしょうがない. バッチサーバに侵入したのだ. こいつが、唯一のバッチプログラムが毎日ちょうどゼロ時に曜日を書換えているらしい. この書換えをそのまま乗っ取ってしまえば目的が達成できるというわけだ. バッチプログラムそのものの解析は私には分からなかったが、データベースのリストとアクセスの方法が手に入ったので、これを使うことにした. 私は全てのデータベースに \(7\) の値を送信することにした. 最後に元々のバッチプログラムをキルし、テキスト通りに痕跡を消していってログアウトした.

私は図書室の壁に掛かったカレンダーパネルを見た. まだ火曜日を指し示しているままだ. きっとキャッシュが残っているのだろう. あと数分すればきっと、 \(7\) 曜日を指し示すに違いない. 私はずっと我慢していたトイレに行くことにした.

-->