YONAPO RESEARCH
研究記録
MedDSL(仮称)

RESEARCH / RECORD

MedDSL(仮称)独立確認・レビューAI-001

内部実施の完了記録(AI-001)と、外部レビューでの再開点

原文 docs/research/17-internal-run-ai-001.md

18 KB

GitHubで見る

版 be280c0

この文書の目次 9項目

作成日:2026-10-19。契約版:p0-draft-2。状態:単独・内部実施の完了記録。独立レビューではない。independent_review / evaluation_frozen は false のままです。レビュー記録(初版・本文は保持)、追補 に続く記録で、初版の指摘 RV-01〜RV-08 を最後まで処理した結果をまとめます。

2026-10-20 運用方針の更新:以下は実施当時の記録です。現在のリポジトリは独立の確認者を置かずに進めます。§6の再開点は、将来、英語で記述する別リポジトリで確認が必要な時点から再開する際の資料として保持します。決定記録 を参照してください。

1. 位置付けと、利用者の了承

利用者は 2026-10-19 に、次のとおり指示しました。

  • この段階の成果物は外部へそのまま提出しない。裁定者・指摘者・レビュアーが同一(AI-001)である点は了承済みとして、最後まで単独で進める。
  • 外部(大学関係者)の協力が得られた場合は、レビューが必要な時点にさかのぼって、そこから再開する。

したがって、この記録は 計画書 の G4(裁定と修正)までと、G5 に相当する「作成者草案の再固定」を内部で行った記録です。計画 §3 の独立性は満たしておらず、独立確認済みの期待結果ではありません。外部レビューが入った時点で効力を失うものと、そのまま引き継げるものを §6 に分けました。

2. 指摘ごとの処理

指摘 重大度 処理 場所 再確認
RV-01 認定・可用性・射影の主要ゲートに負例がない S1 負例12件と予算掃引を追加(別系列) examples/review/、tests/review/ 変異検査で7ゲートすべて検出(§4)
RV-02 参考意味の理由コードの矛盾 S2 未証明の側を指す理由に修正。鎖の不認定理由に answers_mismatch を追加 reference.py、handover.py test_draft2_changes(旧版では失敗することを確認)
RV-03 forecast の incomplete S2 未知能力の行も列挙(P0/P1-b と同じ) forecast.py、12 契約 同上
RV-04 認定票に実装の同一性がない S2 すべての certificate に certifier(src/med_dsl の *.py/*.json の生バイトの束)を付与 identity.py、evaluate()、06/14 契約 束が共通 manifest から再計算でき、events.py の改変で変わることをテスト
RV-05 先行する確認の受理 S2(意味の問い) 裁定 A を実装:厳密に前は入力不正 review_precedes_assertion、等しい時刻は許す validation.py、06 契約(p0-draft-2) 影響範囲の実測、既存4テストの修正、RN13/RN14、全 fuzz の再実行
RV-06 導出の前提の書き落とし S2(文書) 事象定数に一意名仮定を課さないことを明記 証明義務 §5、R5 C1-a 文書の確認
RV-07 境界・小さな負例・到達不能な上限 S2 境界値の負例を追加。到達不能な4096 bit上限は最大入力で到達しないことをテストし、契約に明記。P0 の「回答確定に1 step 要る」を契約に明記 tests/review/test_boundaries.py、06/12 契約 変異検査(§4)
RV-08 PR01 判断のみ 仕様どおりの限定。変更なし - 追加監査を再実行(§5)

RV-05 の実装方法の修正

追補 §3.4 は profile を p0-positive-2 とすることを推奨していましたが、profile p0-positive-1 と schema を維持して契約版だけを p0-draft-2 に上げました(追補 §6)。この研究段階には保存済みの実データがなく、profile を変えると全例の入力を書き換える必要があるためです。draft-1 は e73d4ba に残ります。

draft-2 で変わるもの・変わらないもの

区分 内容
変わる入力検査 確認の recorded_at が対象の主張より厳密に前 → 入力不正(P0 の query/compare、事象、予測の報告台帳、archive の解釈可否に及ぶ)
変わる出力 すべての certificate に certifier。参考意味の不認定の理由コード。鎖の不認定の理由に answers_mismatch。forecast の incomplete
変わらない request/result の schema、profile p0-positive-1、有効な入力に対する回答の状態・binding・根拠、P1 の20条件・80 JSON・417必須パス、P0 の22条件・37 JSON・221必須パスの期待結果
再固定した hash P0 契約(P0_SPEC_SHA256)、P0 の5ファイル(P0_RUNTIME_SHA256)、native 仕様(HANDOVER_SPEC_SHA256)と、それを埋め込む p1-c の例・manifest・PR01 例、共通 manifest

3. 旧版との関係

版 基準 共通 manifest の生バイト hash 168ファイル束
p0-draft-1(レビュー対象の基準) e73d4bab30cbb40b9354724c361610d5c22033c1 1f01ed6593f555b42e370661c225fac1012bdf89b115bc29fd91513474d35efb 561ef3924483c4f36c0ec3edec571979dd2418a880ac84320c70bfe7f36ef864
p0-draft-1 のレビュー資料(記録の初版・追補・負例系列。コードは draft-1 のまま、全検査が通る) 5cbe146b6c81fe4f6d20a3941def2b2227ed2928 1f01ed65…(同上) 561ef392…(同上)
p0-draft-2(本記録の固定) 2b501c1c825eafe6a8b48f419dd4a6fb6baae6de de30791900150135fb4b413bc8a535fa5a13a15da2fd4540df1f6a8168e86831 faf0269dfc66ef1da77461a22f859e4a3f37fdba7c2a589d09dfbb230465fca1

draft-2 のファイル数は 169(certifier のために identity.py が加わった)。旧版の結果は e73d4ba と data/research/p1-d/review-baseline/(Git管理外)に残してあります。

4. 変異検査(draft-2、全 112 件)

対象は、初版の108変異と、予算の退行を想定した4変異(B0〜B3)の計112件です。検出の層は三つで、(1) 従来の機能テスト(実体 hash を固定するだけの評価系18件は除く)、(2) 従来の117例の必須パス、(3) 追加系列(負例・draft-2・境界・予算掃引。manifest と束を突き合わせるだけのテストは除く)です。P0 の5ファイルを変異させる場合は、変異後の木で hash を再固定してから検査し、固定の崩れだけで検出したことにしません(初版では、この区別がなく6件が「固定経由でのみ失敗」でした)。

結果 件数
検出(従来の層のどれか) 79
検出(追加系列だけ) 20
未検出 13
合計 112

初版で機能的に未検出だった33件のうち20件(H07、H11、H12、H25、P02、P03、P04=RV-01 の7ゲート、ほかに H20、E18、E19、E20、Q03、Q04、Q07、D04、D08、V03、R06、R09、F12=RV-07)を、追加系列が検出しました。予算の退行 B0〜B3 は従来のテストと予算掃引の両方が検出し、掃引だけが検出する退行は示せていません。

未検出の13件はすべて、等価(到達しない・他の検査と二重)と判断しました。この判断は私の内部判断で、外部レビューでの確認対象です(§6)。

変異 等価と判断した理由
H01 not outside は冗長。範囲外の問いがあると実行照合が partial になり、matched にならない
H02 中間の履歴往復は、最終の履歴往復と「第二段は改名だけ」の検査から従う
H05、H06 段の接続検査は、各段の票が実体の再計算値と一致する検査(RN03〜RN05 が単独で検出)から従う
H08 中間と最終は同じ履歴・同じ問いの比較で、matched が食い違わない(all/any が同値)
H19 実行照合の打切りを例外にする分岐。直後の確定の step で同じ打切りが再発する
E14 打切り時の unassessed は、未評価の行が必ず存在するため冗長
E16、E17 左右どちらかの衝突を比較不能にする二重の防御。両方を外すと従来のテストと私の乱数検査の双方が検出する
E24 事象の基礎に旧関係の事実を残す分岐。展開後の問いは旧関係を参照しない
R03 証明と反例の矛盾を検出する自己点検。健全なら発火しない
P06 正規化 JSON の往復は常に成立する
F08 4096 bit の上限は到達しない(test_the_4096_bit_intermediate_limit_is_unreachable_under_the_input_limits)

5. 再現記録

環境:Python 3.14.4(標準ライブラリのみ)、Linux 6.18.33.1-microsoft-standard-WSL2 x86_64。Python 3.11 は環境になく未実行。分母は別々です。

対象 コマンド/方法 結果
従来の開発テスト python3 -m unittest discover -s tests -v 231/231
追加系列 python3 -m unittest discover -s tests/review -v 40/40(負例系列7、draft-2 18、境界13、予算掃引2)。約13秒
P1-d の CLI 評価 python3 scripts/research/evaluate-p1-d.py --cli --output data/research/p1-d/draft-2 P1 20/20条件・80/80 JSON・417/417必須パス、P0 22/22・37/37・221/221。117例すべてで API/CLI 一致。束 faf0269d…、manifest de307919…
追加監査 python3 -m unittest discover -s tests/audits -v、python3 scripts/research/audit-preservation.py --output data/research/preservation-audit/draft-2 8/8、拡張 600・単項 256・存在規則 32・PR01 1 すべて通過(基準を draft-2 の manifest に更新)
固定169ファイル 自前コードで生バイト hash・サイズ・束 digest を再計算 不一致 0、束一致
旧版からの変更 固定ファイルの hash を e73d4ba の台帳と比較 変更42、追加1(identity.py)、削除0。p1-c の例28件の変更は再固定した3つの hash の置換だけで、expected は一件も変えていない(旧版へ戻して一致を確認)
任意拡張の保存性 ext_fuzz.py(700プログラム) 認定 88、偽認定 0
独立オラクルとの照合 fuzz_oracle.py(2,500×2 ケース。確認時刻は主張以後に制約) 不一致 0(認定 4,309/不認定 691)
予測 forecast_fuzz.py(1,500リクエスト・3,721回答) 不一致 0
予算掃引 budget_sweep.py(21,855評価)、budget_fuzz.py(32,593評価) 不整合 0
入力の乱数改変・鎖の偽造 robust_fuzz.py(9,360)、leaf_tamper.py、chain_probe*.py 未捕捉例外 0、葉の改変で認定が残るもの 0、偽造12通りはすべて拒否
参考意味の健全性 ref_probe.py(746件の証明) 不健全 0。RV-02 の矛盾は解消
空白検査 git diff --check 指摘なし
コミット済みの状態 2b501c1 をクリーンな worktree に出して再実行(5cbe146 も同様に確認済み) 231/40/8 のテスト、P1-d の CLI 評価、追加監査がすべて通過。git_dirty は false、束 faf0269d…・manifest de307919… は作業ツリーと同じ

script・ログ・hash は data/research/review-001/(Git管理外、SHA256SUMS)。draft-1 時点の追加系列は snapshots/pre-draft2/。

6. 外部レビューが得られた場合の再開点

再開地点は G0(資料固定)。 外部の確認者は、この記録の判定を参考資料としてのみ使い、次を独立に確認する。

区分 内容 外部レビューでの扱い
基準の固定 コミット済み:e73d4ba(draft-1 の基準)→ 559244d(レビュー計画・追加監査)→ 5cbe146(レビュー記録と draft-1 の負例系列)→ 2b501c1(draft-2)。draft-1 の基準を見る場合は e73d4ba か 5cbe146、draft-2 は 2b501c1(後続の記録だけの変更は含めない) 確認者が基準コミットと hash を G0 で記録する
12の証明義務 PO01〜PO12 の判定(§7)は AI-001 の内部判定 すべて独立にやり直す(G1/G2)。作成者の期待は見ずに、反例を先に記す
裁定した意味 RV-05(先行する確認は入力不正、等しい時刻は許す、profile は維持)。兼任による裁定 独立の裁定者が確認。覆る場合は、validation.py の2行と06契約の1行、RN13/RN14、4テストを戻す
等価変異の分類 §4 で「等価」と判断した変異 確認者が等価性を独立に判断する
作成者でない者が書いた修正 RV-01 の負例、RV-02〜04 の修正、境界値の負例 修正への独立再確認(計画 §7)。期待は意味から手で指定してあるが、書いたのはレビュアー本人
未確認点 Python 3.11、他OS、417必須パスの人手再導出、領域3以上の参考意味、形式証明 確認者の範囲で埋める
再開手順 git worktree add --detach で e73d4ba と draft-2 を別々に作り、計画 §6 の再現を両方で実行。結果を draft-1/draft-2 で別に記録 -

外部の指摘で draft-2 の変更が不要と決まった場合は、draft-2 を捨てて draft-1 に戻れる(変更は追加と局所的な修正で、旧版はコミットに残るため)。

7. 内部判定(PO ごと)

PO 内部判定(AI-001、非独立) draft-2 での根拠
PO01 適合 拡張・依存の乱数照合 700(偽認定 0)、変異で依存・所有者の分岐を検出
PO02 適合 同上。S1/S2 の単項断片、領域1〜3の有限確認の範囲
PO03 適合 独立オラクルとの照合 5,000 ケース、予算の境界(P0 の結合上限・回答確定に要する step・未知能力文脈の予算0)
PO04 適合 RV-05 を実装:確認は主張以後(RN13/RN14)。オラクルの生成器も制約に合わせて不一致 0
PO05 適合 事象化・参考意味。RV-02(理由コード)・RV-06(一意名仮定の明記)を解消。存在規則の形の範囲を固定
PO06 適合 事象の根拠統合・内部変数。変異で検出
PO07 適合(RV-01 解消) 段票の再計算照合を RN01〜RN05 が検出。葉の改変・偽造12通りで偽認定 0
PO08 適合(RV-01 解消) 混在スコープ・反例記録・別添え照合を RN10〜RN12 が検出
PO09 適合 予算掃引 54,448評価で不整合 0、境界値(結合1000、事象の1000/4096、予算0)を追加系列が検出、到達不能な4096 bit上限を明記
PO10 適合 予測の乱数照合、RV-03(incomplete)、文脈主体の照合
PO11 適合(RV-01 解消) runtime/依存の hash 照合・runtime 要求数を RN06〜RN09 が検出
PO12 適合(RV-01・RV-04 解消)。Python 3.11 は未実行のため範囲外 169ファイルの再計算一致、certifier、評価の見逃しの解消(変異の検出 99/112、未検出は等価)

8. 結論(対象範囲付き)

  1. 今回の範囲と手法では、S0 に当たる事象は見つからなかった。初版の S1(RV-01)と S2(RV-02〜07)はすべて処理し、未解消の S0/S1 はない。これは網羅の証明ではない。
  2. 計画 §7 の合格条件(全 PO の判断と証拠、未解消 S0/S1 なし、再現と正例・負例、認定範囲の説明の一致)は、内部の単独実施としては満たした。ただし独立性がないため、独立レビューの合格とは数えない。independent_review/evaluation_frozen は false のまま。
  3. 保証対象は「p0-draft-2 の実装が、記載の有限領域と乱数照合の範囲で、AI-001 が書き直した参照計算・追加した負例・変異検査と矛盾しなかった」ことまで。体系の永続性、一般の保存判定、無限更新、臨床妥当性、Python 3.11 での実行には及ばない。参照計算は文書の定義に従うため、定義自体の誤りは検出できない。
  4. 内部で了承した事項(兼任、RV-05 の裁定、profile の維持、等価変異の分類、PO の内部判定)は、§6 のとおり外部レビューで覆り得る。覆っても、draft-1(e73d4ba)へ戻れる。
  5. 未確認点:独立の確認者、Python 3.11・他OS、417必須パスの人手再導出、領域3以上の参考意味、形式証明、P0 比較(compare.py)の変異、事象の split_roles 診断経路の乱数検査。

9. 後続(同日):追加検査と P2 の設計

§8 項目5の未確認点のうち、Python 3.11 での実行、P0 比較(compare.py)の変異、事象の split_roles の乱数検査は、18-additional-checks-ai-001.md で実施し、欠陥は見つからなかった(検査の見逃し4件は追加のテストで閉じた)。§7 の PO12 の「Python 3.11 は未実行のため範囲外」は、3.11.17 での実行により、他のビルド・OS を除いて解消した。次の研究段階の設計は 19-p2-design.md(意味能力の拡張契約)。実装と契約(p0-draft-2)は変更していない。

AI-001

同じ区分の文書