作成日:2026-10-20。状態:限定した断片の最小実装・内部評価を完了。独立確認・評価用正解の凍結は未実施です。設計37・手指定期待38 の型付き測定版をR5として実装しました。両文書の未実装という記載は設計時点の記録として保持し、現在の状態は本書に記録します。
1. 実装した意味と境界
| 実体 | 内容 |
|---|---|
| measurement.py | 全sourceの検証、内容参照、確認の可視性、slotの選択、文脈診断、数量への接続、共有予算 |
| native仕様 | 3つの架空property、方針、量の依存版、hash・変数・停止・資源の契約 |
| host.py | 新schemaを専用経路へ登録。旧schemaの振り分けを保持 |
| R5宣言 | 共通4+R5の3+MB-1〜12の19義務、31防護例の参照。量への依存を明示 |
| 実行例 | M36/N12/B4を137 JSON・1425必須パスと専用テストへ展開 |
| 参照計算 | 確認の到着順で状態を更新。数量は整数対の既存参照計算を使用 |
| 検査 | API/CLI、有限列挙・seed、hash、文脈、変数、予算、上限、保持、変異の14テスト |
数量wrapper全体のhashを記録版へ含め、記録版全体とsource参照・接続仕様のhashを人の確認へ結びます。同じID・同じ数値でも、文脈・出自・訂正辺・数量の内容を差し替えれば古い確認は一致しません。ただし確認者の認証、署名、改ざん防止、永続的な同一性の管理は実装していません。入力内の human と内容を構造上照合するだけで、医学的妥当性を保証しません。
参照時点に見えるconfirmed記録で、内容に一致する人の確認も見えるものを適格とします。全適格記録の訂正辺を使うため、訂正元が後に除かれても、その元が除いた記録は自動復活しません。未確認の中間記録の辺を推移的に使わず、最新記録の優先や等値の統合も行いません。候補が一つのときだけ次へ進みます。
検査順は、問うslot内の全可視記録・参照数量の未知能力、候補数、未知property・文脈・種類・単位、比較時の既知文脈の相違、量計算です。保留中・訂正済みの可視記録の未知能力も停止理由になります。主体・property・検体・方法・瞬間の一致は今回の限定方針で、縦断比較や医学的比較可能性の一般則ではありません。unknownとunspecifiedは一致に変換せず、新しい記録版と確認によってのみ精密化します。
量の計算は固定したP2-fへ渡し、選択した記録版に作業用数量IDを一対一で割り当てます。同じ区間リテラルを使う別測定は別変数で、自己比較のequalへ潰しません。同じ選択記録版だけが同一変数です。確率的な独立性や測定間の相関は表していません。
完成した数値計算だけが値と binding_evidence / calculation_evidence を持ちます。情報不足・競合・比較不能の診断を完了した行は assessment_complete=true ですが、数値・完成根拠はnullです。資源で途中停止した行はdiagnosticsもnullで、incompleteへ載せます。既に完成した前の行は保持します。原sourceは配列順も含めて保持し、Hs用の四表の並べ替えとは区別します。
計算しても clinical_confirmation: not_evaluated、uncertainty_propagated: false、converted_to_base: false、clinical_assertions_added: []、certificate.status: not_certified です。量の処理系・native仕様、旧基底5ファイルは変更していません。R5の枠内に収まり、JOINTや新しい契約クラスは追加していません。MB-1〜12は個別に定めた義務で、自動導出ではありません。
2. 手指定期待と参照計算
| 系列 | 分母 | 内容 |
|---|---|---|
| M | 36条件・65 JSON・1071必須パス | 内容を指定した確認、可視性、訂正、競合、文脈、未知、変数、過去の再現 |
| N | 12条件のうち11条件・60 JSON・120必須パス | 欄・参照・hash・型・訂正・量依存・未対応・静的上限。N12は回帰・順序・snapshot・変異で補う |
| B | 4条件・12 JSON・234必須パス | 予算0、換算16、二slot比較25、自己比較20、二換算27、部分完了 |
| 小さい履歴の有限列挙 | 1807履歴・16,263行 | 0〜3記録の全訂正辺、confirmed/suspected、確認なし/即時/遅延、9参照時点 |
| 二slotの組合せ | 144行 | 共有数量/別数量、自己比較/別slot、未知・文脈の版違い・保留の6×6 |
| seed付き履歴 | 200要求・1200行 | seed 20261020、1〜6記録、分岐・確認遅延・不明文脈、3view×2query |
| 選定した変異 | 10件+検査器への漏出注入 | 内容hash、確認時刻、latest-wins、訂正元の選別、文脈の無視、未知の一致、別変数の統合、子予算のリセット、臨床昇格 |
参照計算との照合は合計 17,607行です。設計時の選択式だけの有限点検を、別の実行件数として加算していません。実装は集合差で選択し、参照計算は確認が利用可能になった順で集合を更新します。量の参照計算はP2-fの整数対・証人点による計算を使い、nativeの関数・表は読みません。作成者側の別計算であり、独立の確認者による評価ではありません。
期待は文書38と設計式から手指定し、runtimeの結果で更新していません。fixtureは正常なJSONに限り、NaN/Infinity等の生JSON、APIの型置換、1 MiB・深さ64の静的上限、native実体の不整合を専用テストで補います。未来の記録でも不正な参照hashを予算前に拒否します。四表の順序を変えた照合では、入力hashと保持した原sourceの順序だけを比較から除き、Hs・完成根拠・他の欄は同じことを確かめます。
10変異は元ファイルを変更せず別の関数束で実行します。9件は対応する手指定期待の不一致で検出し、子予算を100000へリセットする1件は子の呼出引数の観測で検出します。正常時の子予算8/8/12も別に照合します。数値結果だけでは予算リセットを検出できたとはしていません。根拠・diagnosticsの早期漏出と、未完了行を完了と偽る注入で共通検査器も点検します。検出範囲は選定した変異だけです。
行は設計37の式に沿って、選択・文脈の診断と子の計算予約までを全て先払いします。換算は8、比較は12を親から予約し、同一記録の子の実費11との差も返却しません。子の入力を複製して1 MiBを超えた場合は、その行の計算時にresource_limitとなり、値・完成根拠を返しません。これは親source自身の静的拒否と区別します。自然な複製上限の例と、後の行での下位資源停止の注入を検査しています。
共通予算は479要求・6070掃引評価、違反0です。全480要求のうち、budget欄自体が欠ける負例1件はfixtureの拒否で照合し、置換掃引の分母に加えていません。数量までの343要求・4077評価に、測定の136要求・1993評価を追加しました。不正予算を有効な予算へ修復した入力に、修復前と同じ拒否は要求しません。既存の予算依存拒否の例外は1件を維持します。
3. 回帰・統合評価
Python 3.14.4と3.11.17で以下を通過しました。初回は両版ともP2の235件が通過し、budget欄欠落の負例を有効な予算へ修復して比較していた既存テスト1件が失敗しました。欠落はfixtureの拒否で照合するよう前提を修正し、再固定後に両版で全236件を再実行し、全件通過しました。runtimeと手指定期待はこの修正で変更していません。失敗ログも保持します。ログは data/research/p2-g/py314/・py311/(Git管理外)です。
| 検査 | Python 3.14.4 | Python 3.11.17 |
|---|---|---|
| 開発系列 | 231件通過 | 231件通過 |
| 追加系列 | 52件通過 | 52件通過 |
| 追加監査(再固定後) | 8件通過 | 8件通過 |
| P2系列(既存222+接続14) | 全236件通過 | 全236件通過 |
| 測定API/CLIの手指定期待 | 137例・1425必須パス一致 | 137例・1425必須パス一致 |
| 統合評価 | 不一致なし | 不一致なし |
版比較つき統合評価は data/research/p2-d/p2-g-py314/・p2-g-py311/ で通過しました。この実行時のmanifestは 09ad7ab52af4b0e04e8767059678eb633df031437585a1d05400a26862ab215f です。その後の変更は前述のテスト前提と説明・文書で、runtimeは同一です。最終snapshotで監査・P2全体を通過させ、版比較を省いた統合評価を p2-g-py314-final/・p2-g-py311-final/ で通過させました。P2全体の版比較テストも最終snapshotで再実行しています。
| 統合評価の対象 | P2-g追加後の分母 |
|---|---|
| 登録・義務・防護例 | 15宣言・163義務・313防護例の参照 |
| 証拠の強さ | checked_native_template 122、finite_check 33、hand_derivation 8 |
| 防護例のない義務 | 既存の3件(R1-3/R3-3/COMP-3)。測定の19義務には全て防護例あり |
| 振り分け・依存の独立 | 91組中77組。意味上の併用保証とは区別 |
| P2の例 | P2 35/128、分割34/224、分割併用38/221、時間61/462、量79/609、測定137/1425(JSON/必須パス) |
| 共通予算 | 479要求・6070掃引評価、違反0、従来の例外1件 |
| 旧基底 | P1全20条件・80 JSON・417必須パス、別枠P0の37 JSON・221必須パス |
過去の分母は P2_D_EXPECTED・P2_E_EXPECTED・P2_F_EXPECTED として保持します。新しい件数を歴史資料の通過件数へ足しません。
4. 追加前の基準と固定した実体
設計コミット c44f690 をクリーンな一時worktreeへ出し、追加前の統合評価を通過させました。設計37の追加前runtime基準 e69a628 から、c44f690では設計資料だけを追加しています。旧共通343要求+旧防護例35件と時間・数量の予算変種を合わせた 1176出力は、追加後と certifier だけを除いて一致しました。他のhash・意味の欄は除いていません。従来の22,052出力の挙動digestも d0a2233574ab350e65217ef6da8ed037fe34020e8ee79eee2506bd9ce4320236 のままです。保存先は data/research/p2-g/baseline-integrated.json・old-requests.json・old-results.json・old-behavior-comparison.json です。
新しい仕様・宣言・例・検査・参照計算・生成器と契約37/38を固定対象へ加え、516→663ファイルとしました。旧fixture・旧基底・quantity.py/quantity_spec.jsonは変更していません。
- 測定native仕様hash:
7c2f731f2e24423f552bef8fb61efd5bdb74fac326279c7d7800639bb301a454 - 数量の依存仕様hash:
84af2e771d1868471d0a8441021fde2a7253b1fc17f8ff9b807461e3df7f1f43 - manifest hash:
ef7cf5fe4a3c304765f38b5576db61629d7f4f9696318322bcce205708883e4b - 束hash:
23c9c49095316533213edb38fd6ff11310fb98b756e891cbe60c071c76e49bdb - 追加前manifest:
791cbf9cf92734950ffe2d9a7985fb53b02789d05712fd113ecab9c5cac7919e - 追加前の束:
b2265c126bd087fd2c55e4a72fe25172bb9fa897d3056bc0e0e5b63c802d65bd
作成者snapshotであり、独立確認済みの正解の凍結ではありません。independent_review / evaluation_frozen はfalseです。コミット前の実行のgit_dirtyはtrueで、コミット後に同じhash・新例・旧挙動・旧核の不変を読み取りだけで再確認します。
5. 再現・次の判断
PYTHONPATH=src python3 -B -m med_dsl --fixture examples/p2-measurement/m01.json
python3 -B -m unittest discover -s tests/p2 -p test_measurement.py -v
python3 -B scripts/research/check-extensions.py --json
python3 -B scripts/research/evaluate-p2.py --output data/research/p2-d/p2-g-reproduce
次は厳密な数量と丸めた表示を分ける射影の意味設計を優先します。異なる原値が同じ表示になる反例、原値・記録版・仕様・根拠を併存させた再現、表示だけで失う問いを先に定めます。医療者の入力と接続先の分離に向けて、表示や出力先の都合で原意味を上書きしない条件を研究します。
P2-eとの期間の併用、概念分割との意味上の接続、撤回・部分訂正、主体の訂正、一般の縦断比較、検体・方法の同等性、相関・測定不確かさ、認証・永続台帳、実体系への接続、R4、臨床ライブラリ・標準化は未完了です。今回の有限断片の実装を、将来全体への対応の証明やコード体系そのものの完成とは扱いません。独立確認は 運用方針29 に従って別の英語リポジトリで行う対象として保持します。