GENESIS章「ゼロか月目で、すでに死んでいた」電子文明
ラン7は20時11分に始動した。15,000のエージェント、着席した714人の officeholder、そして合衆国憲法の条文に一つずつ合わせて作り直された大統領選挙制度。73分間ティックを刻んだ。最初の一秒から選挙を実施する能力を欠いていたが、それを監視していたすべての計器が、この文明は健全だと告げていた。
ラン7は20時11分に始動した。15,000のエージェント、着席した714人の officeholder、そして合衆国憲法の条文に一つずつ合わせて作り直された大統領選挙制度。73分間ティックを刻んだ。最初の一秒から選挙を実施する能力を欠いていたが、それを監視していたすべての計器が、この文明は健全だと告げていた。
その日の午前はうまくいっていた。それも話の一部である。
この文明は大統領を全国一区の単一投票で選んでいた——選挙区は一つ、全エージェントがその中にいて、単純に票を数える。アメリカ合衆国はそのようにして誰も選んだことがない。一度もない。合衆国憲法第2編第1節第2項は、各州にその州の下院議員と上院議員2名の合計に等しい数の選挙人を与える。人々は自分の州の中で投票する。選挙人が大統領を選ぶ。
そこで大統領選挙制度は作り直された。45の参議院選挙区が「州」になった。上院議員を選出し、かつ下院選挙区を内包する——第2編第1節第2項にとっての州とはまさにそれである——構造は、この文明にそれしかなかったからだ。有権者が実在する264の衆議院選挙区が連邦下院選挙区にあたる。選挙人は条文の定めるとおりに配分された。選挙区数に2を足す。結果、与えられる選挙人は390、実際に任命できるのは353。37の選挙区には誰も住んでいないからである。
この差には専用の条文がある。合衆国法典第3編第15条(e)(2)——州が与えられた数より少ない選挙人しか任命しなかった場合、過半数を算定するための総数はその分だけ減じられる。アメリカの二世紀の実務において、これはほぼ死文だ。ここでは最初の選挙で発動する。
134年前の判例
選挙人は勝者総取りではなく選挙区ごとに任命される。そしてこれは要件ではなく選択である。1892年に判示されたマクファーソン対ブラッカーで、連邦最高裁はまさにその方式を支持し、それまでの一世紀に州が実際に用いてきた方式を列挙した。勝者総取りは慣習にすぎない。メイン州とネブラスカ州は今も別のやり方をしている。
新しい設計について二つの主張がなされ、二つとも誤りだった。二つ目は設計文書が一通り書き上がるまで生き延び、コードによって否定された——それゆえ記しておく価値がある。
一つ目は、選挙人団は全国投票より40倍安いという主張。違う。選挙人団は集計の規則であって標本抽出の規則ではない。現在アメリカの各州が用いている方式では、有権者は全員が投票し、その上に数百の選挙人投票が加わる。忠実にやれば高くつく。
二つ目は、選挙区方式はタダだという主張。同じ月にすでに走っている衆議院選挙区の投票から、各選挙区の選挙人を読み取れるから、と。これも誤り。衆議院選挙と大統領選挙は別の記録を持つ別の選挙であり、自分の代表について尋ねられたエージェントは、大統領については何ひとつ述べていない。
本当の答えはもっと退屈で、もっと当たり前だった。有権者は、すべての選挙が載った一枚の投票用紙を受け取る。三度呼び出されたりはしない。
給与だけが存在し、一度も埋まらなかった官職
大統領選挙制度を作り直す過程で、誰も探していなかったものが出てきた。
コードベース全体を副大統領で検索すると、返ってくるのは一行だけだった。月額285という給与の数字。官職はない。議席もない。そこに選出される経路もない。その職は値段をつけられ、一度も作られていなかった。
これは見た目より重大だ。合衆国憲法修正第12条は、その大半が副大統領についての条文だからである。仕組みの核心は、選挙人が大統領に一票、副大統領に別個の独立した一票を投じる点にある。この分離には明確な理由がある。原設計では各選挙人が区別のない大統領票を二つ投じ、次点が第二の官職に就いた。1800年、ジェファーソンとバーが同数となり、選択は下院に委ねられ、選挙人が明らかに意図していなかった事柄の決着に36回の投票が費やされた。修正第12条はその再発を止めるために書かれた。
つまり、次点を副大統領にするという明白な近道は、簡略化ではない。修正第12条が防ぐために存在する、まさにその欠陥の再現である。今はそのためのテストに名前がついている。
同じ理由で欠けていたものが他に二つある。選挙人票の開票を規律する法律は、上院議長すなわち副大統領を議長席に置く。そして2022年のその法律の改正が成し遂げた最も重要なことは、その役割が儀礼的であると明文化した点だった——何かを決定し、受理し、拒否し、裁定する権限は一切ない。副大統領が存在しなければ、この制約は誰も制約しない。さらに、下院が大統領を選ぶ定足数に達しない場合の代替は、副大統領当選者が大統領の職務を行うことである。副大統領なし、代替なし。
この文明自身のコードの別の場所では、二つのファイルが、修正第25条第2節に基づき両院の承認を得た副大統領について、丁寧に推論していた。存在しないものについて推論していたのである。
そこで官職が作られた。二つの予備選挙手続——下院が1選挙区1票で大統領を選び、上院が上位2名から副大統領を選ぶ——とともに、それを必要としうるランが始まる前に。誰かが明確に勝ったときにしか動かない機構は、このプロジェクトがすでに11回記録してきた失敗である。完成し、テストされ、必要になるその日まで何からも呼ばれない。
20時11分
ラン7は綺麗に立ち上がった。15,000のエージェント。くじで埋められた714の議席——まだ誰も選挙で選ばれていないので、建国期の任期は問わない。67の任命職。9つのローテーションスロット、すべて発火。モデルは読み込まれ、保持された。プリフライトは、確認できるすべてが満たされたときに出す一文を印字した。
preflight: calendar advances every 8 model tick(s), model loaded,
clock running, 9 rotation slot(s)
GPUは1000分の902を示していた。行が書き込まれた。カレンダーが進んだ。14分過ぎに1か月目、31分過ぎに2か月目。1か月あたり17分30秒、算術が予測したとおりの速度である。
エージェントたちが立候補するかどうかを決め始めた。10人が「はい」と答えた。20人が「いいえ」と答えた。どちらも本物の答えであり、どちらも記録された。命令が発され、従われた。ある人物が官房長官職を提示され、受諾し、政府の形成に影響を与えられるからという理由を述べた——周囲の機構が動いているときにエージェントが言うたぐいのことである。
動いていた。そのどれも意味を持たなかった。
10件、待機中
立候補を望むエージェントは、そのまま投票用紙に載るわけではない。その立候補は住民から選ばれた委員会によって審査される——必要に応じて設置される小さな合議体が、そのコミットメントが本物かどうかを判断する。設計の中でも考え抜かれた部分の一つであり、そこには読み飛ばしやすい要件が書き込まれている。
委員会には、性格特性を一切持たないメンバーが一人必要である。
理由は、それが見つからないときにコードが発するエラーの中にある。一人もいなければ、あらゆる審査は基準を欠く。このプロジェクトの方法論全体が、異なる気質を持つエージェントが何をするかを観察することにある。気質を持つ者しかいない委員会は、比較すべき中立点のない判断を生む。だからすべての委員会は対照群を一人置き、それを供給できない人口は委員会を設置できない。
ラン6にはそのようなエージェントが1,524人いた。
ラン7には一人もいなかった。
文明を構築するコマンドには、エージェントのうち何人を対照群にするかを指定する引数がある。既定値は「なし」。渡されなかった。
その結果、審査に上がったすべての立候補が同じ壁に当たった。委員会を設置できない。エラーは発生し、二層上の広い例外ハンドラに捕捉され、カウントに変換された。1ターンに一度、ログはこう告げた。
tick: candidacy -- 3 reviewed -- no queued candidacy could be given
a review panel (10 waiting)
3件審査。10件待機。どの月にも、どの官職についても、誰一人として承認されなかった。候補者がいなければ投票用紙はない。投票用紙がなければ投票はない。そしてこの文明は大統領を選ぶかという問いそのものを掲げたランは、一年走っても答えられなかっただろう。
何もエラーを出さなかった
ここが居心地の悪い部分であり、この記録が存在する理由である。
何も失敗しなかった。ループはティックを刻んだ。ローテーションは9スロットすべてを回った。プロセッサは実際の仕事をした。データベースには行が着実に書き込まれた。月は予定どおり進んだ。「ランが忙しいのに何も生んでいない」ことを検知するのが唯一の仕事である監視プロセスが動いていたが、何も検知しなかった。ランは忙しく、そして何かを生んでいたからだ——提案、辞退、命令、任命。ただ、肝心のものだけが一度も生まれなかった。
第二層のチェック——ランが静かに壊れる13通りの様態をそれぞれ探す13個の検出器——が繰り返し実行された。その報告は、文字どおりこうだった。
nothing open.
73分間、ラン7に向けられたすべての計器が、これは健全だと一致していた。最初のティックより前から死んでいた。
5か月目
捕まえたのは計器ではなかった。その1時間前に急ごしらえで書かれた手作りのチェックで、マイルストーンを見張るもの。その中に、マイルストーンとも言えない条件が一つ混じっていた。
month 5 with no candidate admitted -- run 6 had one by now
エラーではない。比較である。前のランは約40分で候補者を投票用紙に載せていたのに、こちらは仮想5か月を辞退の生産に費やしていた。これはどの単一の検出器にも見えない欠陥だ。単一の何かが壊れているわけではないからである。以前に起きたこととの相対においてのみ、それは誤りだった。
そこからの追跡は4分だった。委員会に関するログ行。委員会設置が対照群を一人要求していること。対照群の数——ゼロ。既定値が「なし」で、渡されなかったブートストラップ引数。
ランが生んだもの、そして残されたもの
ラン7は放棄された。そのデータベースは73分の齢で、10件の提案、20件の辞退、10件の保留された承認、4件の命令、そしてゼロ票を生んでいた。1時間あれば再現できないものは何もない。
84件の findings が凍結され、保存された。ここでの規則である。ランのデータベースは使い捨て、findings が成果物。ループが先に停止され、findings がその後に書かれた。この順序である。ランが5か月目で終わったと記録しながらその後も行が届き続けるような記録は、自らが記述しているデータベースと食い違う記録であり、後からどちらが正しかったかを言える者はいない。
それから、より有用な作業。この事象そのものを検出するものが今は存在する——合法な審査委員会を設置できない人口。それは、ランが問われた特定の問いに照らして判定されるのではなく、あらゆる問いへの回答を止める少数の欠陥の一つとして登録されている。自動判定器は語彙の一致で動くが、unseatable panel: no-trait controls という名の findings には、大統領選挙についての問いに含まれる語が一つもないからだ。その判定器に委ねれば、自らの本文に選挙は実施できないと書かれた findings が、選挙についての問いに対して軽微な問題と格付けされる。
判定器が間違っていたのではない。主題とは無関係でありながらすべてを止める欠陥を、それは秤にかけられないというだけである。誰も設置できない委員会は、立候補を、投資を、任命を止める——この文明において、それが本物だと誰か他人が認める必要のある、あらゆる決定を。
台帳
新しい大統領選挙制度について、一日のうちに三つのコスト主張がなされた。二つは誤りであり、それを担うコードの中に誤りとして記録されている。三つ目——統合投票用紙がランを62時間から約30時間に縮めるという主張——は実装され、その最初のテストが、名指しする価値のある誤りを捕まえた。
投票用紙は候補者に1から番号を振る。世界中の誰もが手にしたことのある投票用紙と同じように。返答を読むコードは、その数字を0から数えるインデックスとして扱っていた。1. A と 2. B を示され、目の前の最初の名前に投票したエージェントは、二番目への投票として記録されていただろう。
妥当な数字。本物の票。誤った候補者。エラーなし、警告なし、システムのどこにもそれに異議を唱えるものはない。
20行下の関数はその規則を明示している——投票用紙は0ではなく1から番号が振られる。0から始まる投票用紙など誰も見たことがないからだ——そして新しい関数は、その一文を同じ画面に置いたまま書かれた。
代償
GPUの73分と、一つのコマンドラインの一つの引数。
それに対して得たもの。常に模していたはずの憲法に今や合致する大統領選挙制度。それに到達しうる最初のランより前に作られた二つの予備選挙手続。今週まで給与明細としてしか存在しなかった副大統領職。そして、この特定の1時間が、この誤りが費やす最後の1時間になることを意味する検出器。
文明は完璧に見え、選挙を実施できなかった。計器は見た目に同意していた。異を唱えたのは、思いつきで書かれた前ランとの2行の比較——どの検出器も尋ね方を知らなかった問いだった。
次回:ラン8が対照群とともに開かれ、最初の投票用紙が三つの選挙を同時に載せる。