YONAPO RESEARCH
研究記録
MedDSL(仮称)

RESEARCH / RECORD

MedDSL(仮称)P2「意味能力の拡張契約」P2 全体

拡張の設計原理(草案):P2-b〜P2-j の知見の整理

原文 docs/research/49-extension-principles.md

80 KB

GitHubで見る

版 be280c0

この文書の目次 19項目

作成日:2026-10-20。状態:作成者側の草案。独立確認・評価用正解の凍結は未実施(運用方針29)。文書48 の「次の判断」に従い、P2 の各パイロットの結果を、最終目標(vision)へ結び付ける設計原理の草案へ整理します。runtime・宣言・実行例・期待結果は変更していません。

この文書は原理の証明ではありません。 条件を置けば導ける性質、有限の入力で確かめた性質、まだ確かめていない仮説を分け、それぞれを根拠・反例・限界に結び付けます。専用実装が増えたことを、任意の将来能力が合成できる保証へ広げません。例・識別子はすべて架空で、外部資料・患者情報・実データは使っていません。

1. 位置づけと範囲

整理の対象は、新しい意味能力を足した8つの拡張です(P2-a の既存 handler 10件への後付けと、P2-d の評価・版の手順は、共通の土台として扱い、表には載せません)。

作業 本書の章
共通契約を整理する(前提・版・確認対象・情報の選択・問い・保持/喪失/追加・資源停止) §2、§3
保証と限界を分ける(導出・有限確認・仮説を、根拠と反例に結ぶ) §4、§5
次に検証する課題を選ぶ §6

資料と確認の範囲:設計(23・25・31・34・37・40・43・46)、結果(24・26・33・36・39・42・45・48)、宣言(extensions/ の8件)を読み、宣言の義務・証拠・防護例の数は JSON から機械的に数えました。実装コードは、拡張契約の表(extensions.py)と振り分け(host.py)だけを読み直しており、各モジュールの内部は文書の記述に依拠します。本書の作成前に、現在の HEAD(f75d5f3)で全テスト系列(231・52・8・P2 285)と統合評価が通ることを確認しました(Python 3.14.4)。

2. 対象の拡張

段階 拡張(宣言の id) クラス 版・native 仕様(hash 先頭) 依存 義務(うち個別) 証拠の内訳
P2-b 概念の分割 p2-concept-split R6 draft-2・split_spec 30326bd7 基底 15(0) 検査済み 12・手導出 1・有限 2
P2-c 分割の併用 p2-split-combination JOINT draft-2・splits_spec 73e4f482 基底・P2-b 21(0) 14・2・5
P2-e 有効期間つきの主張 p2-temporal-assertion R5 draft-1・temporal_spec f6c5b4d9 基底 15(8) 7・0・8
P2-f 量リテラル p2-quantity-literal R2 draft-1・quantity_spec 84af2e77 基底 17(8) 10・0・7
P2-g 測定の記録・確認・選択 p2-measurement-binding R5 draft-1・measurement_spec 7c2f731f 基底・P2-f 19(12) 10・0・9
P2-h 表示の射影 p2-quantity-display R4 draft-1・display_spec 15f57a8b 基底・P2-f・P2-g 19(12) 10・0・9
P2-i 期間つき数量 p2-temporal-measurement R5 draft-1・temporal_measurement_spec 80785e67 基底・P2-f 19(12) 10・0・9
P2-j 期間つき数量の表示 p2-temporal-display R4 draft-1・temporal_display_spec 8b401795 基底・P2-f・P2-i 19(12) 9・0・10

「個別」は、クラスの必須欄(共通4+クラス固有)の外に、その能力のために設計した義務(TE-1〜8、QT-1〜8、MB-1〜12、DP-1〜12、TM-1〜12、TD-1〜12)です。P2-b と P2-c では、その能力のための義務(R6-1〜6、JOINT-1〜6)を新しいクラスの必須欄にしたので、個別の義務は別にありません。P2-e 以降は新しいクラスを作らず(31 の §7.2)、個別の義務で対応しました。8件の義務は計144、防護例の参照は252です。どの拡張も、拡張全体の証拠の強さ(最も弱い義務)は finite_check で、それより強い拡張はありません。 設計文書にある手作業の導出(§4)は、宣言の証拠の強さには反映されていません(手導出の義務は P2-b・P2-c の3件だけ)。導出と宣言の検査を機械的に結ぶ仕組みはありません。

3. 共通契約の対応表

3.1 七つの欄

各拡張は、旧い意味へ何かを足す「接続」です。次の七欄を、実際に各設計が個別に決めていた事項から取り出しました。事前に仮定した枠ではなく、設計文書と宣言の記述を後から揃えたものです。

欄 その拡張が決めていること
前提 旧い意味に何を足し、何を足さないか。入力側が明示する前提と、方針の差
版 どの profile・native 仕様・依存の版に相対か。固定する hash
確認対象 人の確認が何を拘束するか
情報の選択 どの記録を、どの時点で、どの訂正・競合規則で使うか
問い 答えられる問い、回答型、範囲外
保持・喪失・追加 何が残り、何を分離または失い、何が新しく加わるか
資源・停止 課金、予約、未完了の扱い、停止の順序、認定の範囲

3.2 前提と版

拡張 前提(足すもの・足さないもの) 固定する版・依存
P2-b 分割 公理 A1 包含・A2 被覆・A3 排他を仕様に固定。規則のない単項述語の一文脈・一個体。旧い記録は P1/P2 の区別を持たない 仕様 hash。基底(採用選択)に依存
P2-c 併用 複数の分割(4件・記号10まで)が記号を共有し得る。個別の認定を併用の根拠にしない 仕様 hash。P2-b の check_split を再利用
P2-e 期間 入力者が区間全体について主張する(explicit_interval_uniformity)。期間を限った訂正(scoped_revision)は旧い全体訂正と別方針。UTC 秒精度の有限半開区間 方針 confirmed-scoped-revision。旧い P0 台帳は取り込まない
P2-f 量 架空の固定7単位・5量種。正の倍率・有理数・有限非空区間。不確かさは not_evaluated 局所名は profile と仕様 hash に閉じる。述語に偽装しない
P2-g 測定 三つの架空 property。瞬間の文脈。slot 単位の全体訂正。比較は matched_context だけ P2-f の仕様 hash を固定
P2-h 表示 閉じた単一点だけを最近接偶数丸め(0〜6桁)。保存するのは artifact に因子化する問いだけ P2-g・P2-f の仕様 hash を固定
P2-i 期間つき数量 区間の各時点で数量領域が適用されると入力者が明示。包含する部分訂正。持続を推論しない P2-f の仕様 hash を固定
P2-j 期間つき表示 P2-i の全計画を固定版で再検証・再実行。単一点だけを丸める P2-i・P2-f の仕様 hash を固定

3.3 確認対象と情報の選択

拡張 確認対象 情報の選択
P2-b 分割 基底の確認(主張への参照) 基底の採用選択で採用された原子
P2-c 併用 同上 同上。併用全体の公理の下で全数に判定
P2-e 期間 主張全体(期間・訂正を含む)への人の確認。確認時刻は主張以後 二つの時点を分ける:参照時点 k(記録・確認の可視性)と対象時点 t。除去集合は、t を覆う適格な全ての訂正辺から作る
P2-f 量 なし(未確認の量リテラルも計算する。確認済みの印を後付けしない) なし(入力の数量 ID だけ)
P2-g 測定 記録版の内容全体(文脈・出自・訂正辺・数量の内容 hash)を指定した人の確認 slot 単位。適格な全辺で除去。複数候補は等値でも競合。未確認の訂正元は除かない
P2-h 表示 P2-g に委譲(計画を再実行する) P2-g の選択をそのまま使い、結果 JSON は受け取らない
P2-i 期間つき数量 期間・文脈・数量・依存版を含む内容指定の確認 二時点。t を覆う適格な記録、包含する部分訂正、全適格辺から除去、競合は保持
P2-j 期間つき表示 P2-i に委譲(確認を合成しない) P2-i の選択を再実行

3.4 問いと回答

拡張 操作・回答型 答えられる問い 範囲外
P2-b query_split・candidate_set 分割後の部分の候補集合(asserted・single・open・narrowed・no_parent・parent_opposed・inconsistent)と情報要求。旧い問いは base として不変 文脈をまたぐ推論、時間、定義のある述語
P2-c 判定・併用の問い合わせ 併用の保存性(認定または反例)、併用での候補集合、個別との差 情報を失う段(射影)を含む鎖
P2-e probe_temporal_literal・temporal_literal_probe 時点 t の positive_only・negative_only・both・neither。常に not_certified 期間不明の精密化、終点なし、持続の推論
P2-f evaluate_quantities・quantity_literal_result 換算した領域、比較の関係集合 不確かさ、丸め、臨床採用
P2-g evaluate_measurements・measurement_literal_projection 選択した記録版に基づく換算・matched_context の比較、情報不足・競合・比較不能の診断 縦断比較、検体・方法の同等性推論、相関
P2-h project_measurement_displays・measurement_display_projection 表示文字列、セル全体で一定の閾値の問い。exact_value は範囲外 原値一般、区間の表示
P2-i evaluate_temporal_measurements・temporal_measurement_projection 時点 t で選ばれた記録の換算。常に not_certified 比較、表示、瞬間・集計からの期間の生成
P2-j project_temporal_measurement_displays・temporal_measurement_display_projection 表示文字列、セル一定の閾値。記録・時点・期間・原値の問いは、artifact からは範囲外(別添えがあれば source_replay として分離) 区間の表示、原値・記録の保存の認定

3.5 保持・喪失・追加

拡張 保持 喪失・分離 追加
P2-b 旧い問いの結果、原記録 P1/P2 の区別は記録にないので確定しない(候補集合)。基底の状態へ変換しない 公理 A1〜A3、情報要求
P2-c 個別の結果(併用と併記) 個別の認定は併用の根拠にならない 併用全体の公理の下の保存性判定と反例
P2-e 原記録・確認、旧い全体訂正の経路 期間不明は否定にも全期間にも読み替えず停止 区間一様性、期間を限った訂正(旧い意味との差は方針差として明示)
P2-f 原入力(負数・未約分)と正規化の分離 丸め、不確かさ、外部の字句 次元・量種・単位の局所表、区間の関係集合
P2-g 原記録版・確認・訂正根拠・両出自 対象時点が異なる比較は not_comparable、医学的同等性は扱わない 内容を指定した確認、slot 選択、変数の同一性(記録版ごと)
P2-h 原値を上書きしない 表示が失う区別(例:1.21 と 1.24 が同じ表示) 表示 artifact の型、丸めセル、因子化の範囲
P2-i 全記録・確認・訂正根拠・二時点・原順序 瞬間・集計から期間への持続は追加しない 区間一様性、包含する部分訂正、期間を含む内容確認
P2-j 二時点・選択記録・確認・訂正根拠は応答の根拠に保持(artifact の外) artifact は原値・記録・時点・期間を持たない artifact の型(P2-i・P2-f の版を含む)、別添え source_bundle と source_replay の分離

どの拡張も、converted_to_base=false、clinical_assertions_added=[]、臨床確認と不確かさは未評価、を共通の境界として保ちます。

3.6 資源・停止・認定

拡張 課金と予約 打切り・停止 認定
P2-b 開始・行・語彙ごとに課金 未完了の行は候補を持たない 認定票を出す操作ではない
P2-c 判定は全数 判定は完了するか、認定票を出さない 併用全体の判定による認定または不認定
P2-e 開始1+可視主張+適格な訂正辺+行の確定 未完了行は値なし、完了行は保持 常に not_certified
P2-f 1+数量+6×換算+9×比較 63bit 入力・256bit 中間の上限。未完了はnull 保存認定は発行しない
P2-g 行の料金を先払い。子(量)の予算8/8/12を予約 子の部分結果は使わず、未完了の値・根拠はnull 診断のみ(not_certified)
P2-h 計画の料金 C を先払い(標準 C=16、一表示一質問で合計28)。子は一度だけ呼ぶ 最後の1不足でも認定なし 表示の問いに限り(display_questions_only)、全質問が保存のときだけ
P2-i 行の料金(16/27/21/34など)を先払い。子は一度だけ 未完了の値・完成根拠はnull 常に not_certified
P2-j I の全計画の料金 C を先払い。C が親の上限を超えれば I を呼ばず全行未完了(例:C=125443>100000) 子が部分結果を持っても拾わない artifact だけに因子化する問いに限り

停止の順序は全拡張で共通です:構造・参照・hash の不正(invalid_input)は予算の前に、未対応(unsupported_profile)、未知の能力、資源停止の順。予算 0 でも入力不正は予算に依らず同じ結果、という不変条件は、全942要求の掃引で確認しています(P2-d の枠組みの拡張。許容する例外は仕様が課金を明記した1件のみ)。

3.7 繰り返し現れた義務の主題

個別義務(計64件:E 8・F 8・G 12・H 12・I 12・J 12)と、P2-b・P2-c が新しいクラスの必須欄にした義務(R6-1〜6、JOINT-1〜6)を読むと、能力が違っても同じ種類の義務が繰り返し現れます。次の主題は本書の作成者による分類で、機械的な導出ではありません。

主題 内容 現れた義務
A 識別・版・依存の固定 profile・仕様・依存版・所有を固定 TE-8、QT-1、MB-12、DP-1、TD-1
B 確認の拘束と再実行 確認が内容を拘束し、結果を受け取らず再実行する MB-1、TM-6、DP-9、TD-2
C 可視性と二時点 記録・確認の時点と対象の時点を分ける TE-1、MB-2、TM-2、TD-3
D 訂正・競合・非復活 全適格辺から除去し、復活させず、競合を保つ TE-3〜5、MB-3、TM-3〜4
E 未知・停止順 未知能力・未知情報を落とさず順序を固定 TE-6、MB-4・7、TM-5、DP-12、TD-4
F 資源・原子性 先払い、子の予約、未完了は値なし TE-7、QT-7、MB-10、TM-9〜10、DP-7〜8、TD-10〜11
G 再現・旧経路の非干渉 snapshot の再現、旧観測の不変 QT-8、MB-11、TM-12、DP-11、TD-12
H 臨床・基底へ不昇格 AI 出自を保ち、臨床主張を作らない QT-6、MB-5・9、TM-11、DP-10、TD-8
I 意味固有 境界・丸め・因子化・数値など、その能力だけの意味 TE-2、QT-2〜5、MB-6・8、TM-1・7、DP-2〜6、TD-5〜7・9

A〜H は能力を問わず現れ、I の中身だけが能力ごとに変わります。この観察は§5 の仮説 H2 の根拠ですが、A〜H を自動生成できることの確認ではありません。

4. 保証と限界

4.1 条件から導ける性質(手作業の導出)

次の性質は、設計文書の導出(TE-L1〜5、QT-L1〜5、MB-L1〜6、DP-L1〜5、TM-L1〜6、TD-L1〜5)から、能力にまたがるものを取り出したものです。すべて作成者の手作業の導出で、機械検証も独立確認もしていません。 前提を外すと成り立ちません。

ID 性質 前提 導出元 含まないこと・限界
G1 k 以下の記録・確認だけで選択を作れば、妥当な未来の追加は同じ (k, t) の完成した選択を変えない 同じ方針・依存版で、双方の計算が完了する TE-L1、MB-L2、TM-L4 既に見える主張への確認が k までに追加される場合は範囲外。hash・保持一覧・予算量の一致は含まない
G2 確認が記録版の内容 hash を拘束すれば、値・期間・訂正辺の変更に旧い確認を流用できない hash の衝突を別の内容の同一視に使わない MB-L1、TM-L1 記録と確認を一緒に偽造する攻撃、本人認証
G3 訂正元が除かれても、除去集合を適格な全辺から作るので、訂正された元の記録は自動復活しない 適格でない中間記録の辺は使わない TE-L3、MB-L3、TM-L3 未確認の中間辺を介した推移的な除去は含まない
G4 訂正元の区間の外では、元の主張を除かない。全体訂正の後で期間を絞る方式は、この外側を消す 区間が包含される訂正だけを許す TE-L2、TM-L2(反例:C05・C06) 未知能力・期間不明による停止を無視した非干渉ではない
G5 有限個の既知境界の間では所属が一定なので、境界と代表点を調べれば、この有限の記録集合・時点 k について全ての対象時点の判定を被覆できる 半開区間、有限の記録集合 TE-L4、TM-L5 任意の期間、臨床的な持続、時間論理一般の証明ではない
G6 有理数の正の倍率の換算は可逆で、大小と等号を保つ。非空の有限区間の関係集合は三条件で必要十分 正確な有理数演算 QT-L1〜3 原字句、測定の不確かさ、負の倍率・オフセット・対数
G7 同じ参照は一つの変数(自己比較で等しい)、別の記録は別の変数 局所 ID が選択した記録版に単射 QT-L4、MB-L4 別記録間の相関は表さない
G8 丸めセル全体で一定の問いは artifact から定まる。同じ artifact に異なる原回答が対応する受理可能な二入力があれば、その問いは artifact に因子化しない。可逆な符号化は、先に失った区別を回復しない 固定した丸め・セルの判定 DP-L2〜4、TD-L2〜4 有限入力上限を使った完全な判定ではない。入力族を狭めると反例は自動では一般化しない
G9 専用のスキーマを追加し、旧核・旧 handler を変更しなければ、旧観測を保持できる構成になる 共有 validator を変えない TE-L5、MB-L6、DP-L5、TD-L5 設計だけの証明ではなく、回帰(§4.2)が要る
G10 個別に保存的な拡張でも、併用が保存的とは限らない(K04 型)。単項述語の分割では、併用全体の公理の下で全数に判定できる 単項述語、分割4件・記号10まで P2-c の導出(25) 多項述語、情報を失う段を含む鎖
G11 固定した snapshot・k・依存版が残れば、同じ選択を再現できる 元の要求と実装が保持される MB-L6、TD-L1 保存先、旧実装の可用性、認証は保証しない

4.2 有限のテストで確認した性質

各拡張について、手指定の期待、参照計算との比較、選んだ意味変異、予算掃引を行いました。期待は設計文書から手で指定し、実装の出力から生成していません。 参照計算は作成者が書いた別実装で、独立の第三者によるものではありません。

拡張 実行例(JSON・必須パス) 参照計算との比較(行) 意味変異 予算
P2-b 34・224 全数列挙1,080通り、乱数3,536行、密な差分2,500台帳(24) 35件(等価1。他34件は検出) 60台帳・3,067の予算
P2-c 38・221 判定の全数78通りと乱数400、併用の乱数500件、密な差分2,500(26) 39件(全て検出) 40台帳の掃引
P2-e 61・462 25,488(二記録16,128+三記録5,760+乱数3,600) 5件 6/14/9 の境界
P2-f 79・609 区間比較3,660・換算357・乱数区間1,000 9件 79要求・652評価
P2-g 137・1,425 小さい履歴16,263・二slot144・乱数1,200 10件+検査器への漏出注入 子の予算8/8/12
P2-h 145・2,128 丸め32,080・閾値492行(5,740問)ほか 10件 C=16、合計28
P2-i 151・1,676 24,552(訂正DAG15,480ほか) 12件(11件を期待の不一致で検出) 16/27/21/34
P2-j 170・2,670 主要四系列17,210表示行、丸め14,070行 3件+注入検査 C=125443 の拒否ほか

全体の確認:統合評価は18宣言・220義務・386防護例を登録し、拒否0です。予算の不変条件は942要求・16,502回の掃引で違反0。固定済みの22,052件の出力は P2-a の前の基準と同一で、P2-j の前後でも旧い6,095出力が相違0でした。Python 3.14.4 と 3.11.17 の両方で通過しています。

有限確認の限界:(1) 変異は作成者が選んだ集合で、網羅ではない。(2) 参照計算と期待を同じ作成者が書いたため、仕様の読み違いは両方に入り得る。実際に、P2-j では手指定の表の誤り(閉セルの下端の lt と上端の gt)が展開時に見つかり、P2-d の検査器の変異検査では3件の見逃しが見つかった。(3) 有限の入力上限・記録数・語彙の内側での確認である。

4.3 検査で見つかった契約の不足

整理の途中で、契約の枠が足りなかった点が繰り返し出ています。次は仮説の根拠になります(§5)。

発見 出所 対応 残る不足
R2 では公理つきの読み取りを表せなかった P2-b クラス R6 を追加 義務表が完全という保証はない
COMP・R6 では記号を共有する併用を扱えなかった P2-c クラス JOINT を追加 JOINT は基底読み取りと公理を前提とし、後の時間・測定の併用には使えない(37 の §2)
R5 の必須欄だけでは時間の採用規則の正しさを検査できなかった P2-e 時間固有 TE-1〜8 を個別に宣言・検査 個別義務を自動生成する仕組みはない
R2-3 は基底を読まないため空虚に満たされた P2-f 空の前提に対して満たす旨を明記 核に接続する段階で再検証が要る
全体訂正と部分訂正は併用できない(全体訂正の後で期間を絞ると外側が消える) P2-i 専用の R5 を新設し、P2-g へ記録を合成して渡す案を採らない 時間と測定の併用は、接続ごとに設計し直した
表示は時点・記録を符号化せず、旧い表示の入口は新しい記録を受け取れない P2-j 専用の R4 を新設 拡大パケット(応答の根拠・別添えを含む対象)の保存判定は未着手
拡張の独立(117/136組)は、意味上の併用保証と別である P2-j 結果文書に明記 意味上の併用を判定する一般の手段はない

5. 仮説と反証の方法

次は未確認の仮説です。それぞれ、今ある証拠、反例の候補、反証する実験を結び付けます。

ID 仮説 今ある証拠 反例・限界 反証する実験
H1 能力を足す接続は、§3.1 の七欄(前提・版・確認対象・情報の選択・問い・保持/喪失/追加・資源停止)を接続ごとに明示すれば設計できる。型の共存や個別の通過だけでは足りない P2-i:全体訂正と部分訂正の衝突(C05・C06)。P2-g の確認拘束。P2-h・j の因子化と喪失の反例 七欄は完成した8件から後付けで取り出した。新しい接続を事前に七欄だけから設計したことはまだない。七欄で足りない接続が出るかもしれない 次の接続を七欄だけから設計し、七欄に収まらない決定が出たら欄を足す(§6)
H2 義務の大半(主題 A〜H)は能力を問わず繰り返し、能力ごとに変わるのは意味固有の部分(主題 I)に限られる。したがって A〜H はテンプレートにでき、I は自動導出できない §3.7。個別義務の数が12前後に収束 分類は作成者のもの。A〜H が本当に能力非依存かは、新しい能力で確かめていない。テンプレートの自動生成は未実装 次の能力で A〜H を先に書き出し、その後に I を設計して、A〜H に収まらない義務が何件出るかを数える
H3 認定(certified)は、artifact に因子化する問いのような既知テンプレートに相対的に出せる。一般の保存判定は出せない P2-h・j の認定範囲。G8 範囲を狭めれば常に出せる(空虚になり得る)。範囲の選び方の妥当性を示す基準がない 認定範囲が広すぎる変異(別添えで認定を拡大する等)を検出できるかの確認を、新しい能力でも続ける
H4 個別の拡張の通過から、併用の意味上の保証は導けない。併用は接続ごとに設計し直す K04(P2-c)、P2-i の不足、P2-j の「独立組は意味保証と別」 反例は設計上の観察で、一般の不可能性の証明ではない。逆に、導ける十分条件が見つかる可能性がある 既存の2拡張の併用で、十分条件(例:読み取りだけ・区間を共有しない)から併用の性質を導けるか試す
H5 契約のクラス表(BASE・HOST・R1〜R6・COMP・JOINT)は完全でない。新しい意味ごとに不足が見つかる R6・JOINT の追加、R5 の不足、JOINT の非適用。P2-e 以降は、不足を新しいクラスにせず個別義務で補った(クラス化するかは未決) 不足は各パイロットが選んだ断片で見つかったもので、未知の能力が表に収まるかは分からない 新しい能力を既存クラスに当てはめ、収まらない義務が出るかを記録する
H6 有限の検査(手指定・別計算・変異)は、同じ作成者による限り、仕様の読み違いと選んだ変異の外の退行を見逃す P2-j の表の誤り、P2-d の見逃し3件 独立確認を現在のリポジトリでは行わない(29)。検出の方法は有限のまま 反例を実装より先に作る習慣の維持。独立確認は別リポジトリでの将来の課題
H7 訂正・精密化・撤回を、元の記録を消さずに追加情報として扱う設計は、能力が増えても保てる P2-e・g・i の非復活。G3。P2-g の文脈の不明の精密化(M33) 撤回と、確認済みの期間不明の精密化は未実装(33・39・45)。この仮説の成否を最も直接に試すのは未実装の部分 §6 の課題

6. 次に検証する課題の選定

6.1 候補と基準

原理の不足を最も明確に検証できる課題を選ぶため、次の基準で候補を比べます。

基準 内容
K1 §5 の仮説(H1・H2・H4・H7)の予測が、外れ得る形で試せるか
K2 既存の断片を変更せずに足せるか。変更が要るなら、それ自体が契約の不足の明確な証拠になるか
K3 vision の変化類型(vision の表)のうち、まだ試していないものに当たるか
K4 規模が小さく、外部データを使わず、D03 の保留範囲を侵さないか
K5 反例を実装より先に作れるか
候補 K1 K2 K3 K4 K5 備考
C1 未知期間の精密化 強い(H1・H7・H2) 変更が要る可能性が高い(それ自体が証拠) 記録の訂正・知識の修正 小〜中 作れる 下記
C2 縦断比較 強い(H1・H4) 要る(比較・時間相関の新しい意味) 記録の不一致、用途の違い 大。時間相関・比較可能性・臨床的な意味が一度に入る 作りにくい C1 の後が自然
C3 瞬間・集計から期間への意味引き継ぎ 中(H1) 小 新しい表現形式 小〜中 作れる 「持続を推論しない」という現在の制限を、明示的な根拠つきの変換に置き換える
C4 拡大パケット(別添えを含む対象)の保存判定 中(H3) 小 実装・機器の変更 中 作れる 認定範囲の拡大を試す。H3 に特化
C5 時間 × 概念分割の併用 強い(H4・H5) 大(JOINT の拡張) 新しい概念 大 作れる 併用の十分条件の探索に向く。C1 より重い
C6 拡張の版を上げる(例:単位表の更新) 中(H1・H5) 小〜中 コア仕様の改訂 小 作れる 版の手順(27 の §4)を P2 拡張へ初めて適用する
C7 同じ共通表現から複数の出力先の射影 中(H1) 小 用途・出力先の違い 中 作れる 薄い臨床ライブラリの試作範囲に直結

6.2 選定:C1「未知期間の精密化」を最初に

vision の変化類型に対して、これまでの検証範囲は次のとおりです。

変化類型 これまでの検証
新しい概念・属性・関係 分割(P2-b)、数量(P2-f)、期間(P2-e)
新しい表現形式・領域 数量、表示(P2-h・j)
定義・知識の修正 分割の一断片のみ。確認済みの不完全な情報を後で精密化する経路は未実装
用途・制度・地域の違い 表示射影が一つの模擬。複数の用途・出力先を同時に扱う実験はない
記録の訂正・撤回・不一致 訂正・競合は検証済み。撤回は P2-g で未対応と明記(39)。ほかの拡張にも専用の撤回の操作はない
実装・機器・AI の変更 AI 出自の保持と版の固定のみ。実装の差し替えの実験はない
コア仕様の改訂 P0 の draft-1 → draft-2 の再現のみ(P2-d)。P2 の拡張の版更新は未実施

C1 を選ぶ理由:現在の設計は、確認済みの期間不明記録を、後から期間既知の記録で精密化して阻害を解消する経路を持たないと明記しています(31 の §3.1)。一方 P2-g は、文脈の不明(例:方法不明)を、新しい記録・新しい内容確認で精密化できます(M33)。つまり、瞬間では成り立つ精密化が、期間では、部分訂正が要求する区間の包含検査が期間不明では実行できないために成り立たない、という二つの原理(精密化と部分訂正)が衝突する点が、既にはっきりしています。これは H1(選択の順序と確認対象を接続ごとに定める必要)と H7(追加情報として扱う設計が保てるか)を、外れ得る形で試せる最小の課題です。

C2 を後にする理由:縦断比較は、時間相関・比較可能性・臨床的な意味が一度に入り、反例を先に作りにくく、未知期間の扱いを前提にします。C1 の結果を使ってから設計するほうが、不足を切り分けられます。

併走する小さな課題:C6(拡張の版を上げる)は規模が小さく、コア仕様の改訂という未検証の変化類型に当たります。C1 の設計と並行して、版の手順を P2 の拡張へ適用する準備ができます。

6.3 C1 の設計の出発点(実装前の予測と反例)

次は実装の前に固定しておく予測と反例の候補です。いずれも未実施で、設計時に見直します。

予測

ID 予測 外れた場合
Y1 精密化は新しい記録と新しい確認として追加でき、旧い記録・確認・計算根拠は消えない H7 が崩れる。元の記録を書き換える必要が出る
Y2 精密化の前後で、unassessed が決定へ変わるのは許されるが、決定済みの答えは、適格な訂正辺を通さずに追加情報だけでは変わらない 情報の追加が決定済みの答えを変えるなら、G1 と G3 の前提が足りない
Y3 参照時点 k を精密化の前に取れば、精密化前の結果(阻害)を再現できる 過去の参照時点の再現(G11)が壊れる
Y4 精密化の確認が到着する順序によらず、同じ k では結果が同じ 順序依存なら、確認の到着順を状態として持つ必要がある

反例の候補(実装より先に手で期待を指定する)

ID 内容 試すこと
R1 記録 A は期間不明で確認済み。後から B が A の期間を [1,5) と精密化する。時点 t=3 と t=7 で問う 精密化を「A の期間を B の区間に置き換える」と読むか、「B を A の訂正として追加し、A の不明は t=7 でなお阻害する」と読むかで、t=7 の答えが変わる。どちらを採るかは、記録についての記録(第二階の主張)を契約が許すかという問いになる
R2 二つの精密化 B・B' が A に対して食い違う区間を主張する 競合を保つか。確認の順序で優劣を付けないか(latest-wins の変異を検出できるか)
R3 精密化の確認が、精密化前の計算根拠を無効にするか 過去の k での結果が変わらないこと(Y3)
R4 精密化の区間が、A の訂正対象の区間に包含されない 包含検査が、不明な区間に対して三値になるときの停止の順序

R1 は、現在の契約に「記録の期間という属性を、後から別の記録が確定する」操作を表す枠が無いことを示唆します。その場合は、契約のクラス表(H5)または七欄(H1)のどこに足すかが、不足の明確な証拠になります。

6.4 この後の順序

  1. 本書への利用者の確認。C1 を選ぶかどうかは、利用者の判断です(本書は作成者の提案)。
  2. C1 の意味設計:七欄と主題 A〜H を先に書き出し、意味固有の部分(主題 I)として残るものを数える(H2 の実験)。反例と手指定の期待を、実装より先に作る。
  3. C1 の最小実装と内部評価。契約の不足が見つかった場合は、不足と変更理由を旧版とともに記録する。
  4. C6(版の更新)、続いて C2(縦断比較)。
  5. 原理の草案の更新後に、R4 の実資料評価と、薄い臨床ライブラリの試作範囲を選ぶ。ライブラリの範囲は、七欄の「確認対象」を医療者の確認操作に、「問い」と「保持・喪失・追加」を出力先の要求に対応させて決める(これも仮説で、C7 で試す)。外部資料の利用は D03 の条件を確認してから行う。

7. 限界と未解決

  • 本書は作成者(AI)の整理で、独立確認も利用者以外の確認もありません。導出(§4.1)は手作業で、機械検証していません。仮説(§5)は、反証の実験が済むまで仮説のままです。
  • 8件の拡張は、いずれも架空の語彙・単位・方針で、限られた断片です。実在の体系、医学的な妥当性、臨床の閾値、会計・分類への接続は検証していません。
  • 七欄と主題 A〜H は、完成した8件から後付けで取り出したものです。未知の能力に適用できるかは分かりません。
  • 未解決のまま残る課題:未知期間の精密化、撤回、瞬間・集計からの意味引き継ぎ、縦断比較・相関、拡大パケットの保存判定、一般の合成保証、認証・永続台帳、実コード・会計システムへの接続と標準化(48 の §6)。
  • この草案の内容は、変化に耐える医療コード体系そのものの確立の代わりにはなりません。目標との関係は、有限の実験から取り出した設計上の観察を、反証できる形に整えた段階です。

8. P2-k(課題 C1)の結果による更新

§6 で選んだ C1「確認済みの期間不明記録の精密化」を、P2-k として実装・評価しました(結果52)。七欄と共通義務の主題を実装の前に書き出し、予測と反例を手指定の期待51に固定しました。以下は§5 の仮説の更新で、元の表は変更せず、作成時点の記録として保持します。いずれも一つの断片の結果で、作成者側の評価です。

仮説 P2-k での結果 更新後の状態
H1(七欄で接続を設計できる) 七欄を先に埋めて設計し、実装・評価の最中に七欄に収まらない決定は出なかった。ただし七欄は作成者が用意した枠で、反証を試みたのは一度 一つの事前の設計で支持。新しい接続でさらに試す
H2(義務の大半は能力を問わない主題 A〜H) 12の個別義務のうち8が A〜H、4が意味固有(精密化の対象と区間の限定、半開境界、部分訂正との相互作用、限界)と予測し、実装の最中に新しい意味固有の義務は出なかった。割当は作成者による 一つの事前の予測で支持。テンプレートの自動生成は未検証
H5(クラス表は完全でない) クラス R5 と必須欄で宣言・登録は足りた。新しいクラスは作らなかった。一方、意味を継承する関係を宣言する欄がない(H8) 追加の不足を一つ記録。クラス化するかは未決
H7(訂正・精密化を追加情報として扱う設計が保てるか) 精密化を、元の記録を消さない新しい種類の記録として足せた。過去の参照時点の再現、到着順の非依存、確認前・suspected・AI 由来の精密化が結果を変えないこと(状態不変)を確認した 一つの断片で支持。撤回、精密化の精密化、競合の解消は未実装のまま

新しい仮説

ID 仮説 今ある証拠 反例・限界 反証する実験
H8 既存の拡張の意味を継承する新しい拡張は、継承元との差分(共通の断片での行ごとの一致)を義務として宣言し、検査する必要がある。現在の契約はこの関係を宣言する欄を持たず、継承は実装の共有でも宣言でも保証されない P2-k は、P2-e の台帳に記録の種類を足せず、新しい台帳と専用実装が要った。継承は、精密化のない要求を P2-e の実装に流す21,920行の差分で確認した(宣言には書かれていない) 差分の検査が書けたのは、共通の断片が明確だったため。共通の断片が曖昧な継承では書けないかもしれない。実装を共有すれば差分は自明になるが、旧版の非干渉(G9)と両立しない 次の継承する拡張(C2 縦断比較、C6 版更新)で、差分の検査を事前に義務として宣言し、検査の書きやすさと見逃しを記録する

課題の選定の更新:C1 は実施済み(断片のみ)。次の候補は C6(拡張の版を上げる。H8 の継承の検査と、コア仕様の改訂の変化類型)と C2(縦断比較。H1・H4)です。着手前に利用者の確認を取ります。

9. P2-l(課題 C6)の結果による更新

§8 で次の候補に挙げた C6「拡張の版を上げる」を、P2-l として実装・評価しました(結果55)。数量(P2-f)の単位表を改訂し(u_third の倍率を 1/3 から 2/3 へ、u_hundred を追加)、依存する4拡張を再固定しました。継承の差分の検査を、実装の前に義務(VR-1)として宣言しました。一つの断片の結果で、作成者側の評価です。

仮説 P2-l での結果 更新後の状態
H1(七欄) 版の更新も七欄に収まった(前提=意味の改訂、版=profile 名維持+hash+コミット、確認対象=派生した hash で旧い確認は使えない、など)。七欄に収まらない決定は出なかった 二つ目の事前の設計で支持。n=2、設計者は同一
H5(クラス表) 版の更新にクラスの変更は要らなかった。ただし、継承の差分と、依存先の再固定の範囲は、クラスの外に置かれる 追加の不足は出ず、H8 の根拠が増えた
H7(訂正・精密化) 単位表の改訂は「同じ ID の意味が変わる」ので、旧入力を黙って再解釈しない(旧入力682件中、黙った再解釈 0)。旧版は履歴に残り、再現できる 版の更新の面からも支持。撤回などは未実装のまま
H8(継承を宣言する枠がない) VR-1 を既存の書式の義務として宣言できたが、registry は「旧版との差分」を理解せず、検査の名前を引くだけ。継承の差分の検査は、版の記録と比較器(履歴を使う)で行った 支持が増えた。宣言の書式に継承の欄を足すかは、次の判断

新しい発見

ID 発見 根拠 限界
F1 版の比較は、符号化の中の hash を見る必要がある。hash を含む符号化(例:artifact の base64)は、64桁の16進を置換するだけでは、中の hash の違いが、符号の文字列の違いとして残る 初回の比較で期待の差が161件。復号して正規化すると宣言した6件になった 復号できる符号化に限る。未知の符号化の中の hash は見えない
F2 派生した hash(確認が拘束する内容の hash)があるので、再固定は置換でできない。生成器を旧版と同じ時点で保持することが、版の手順の前提 置換した入力は P2-g/h/i/j の全標本で拒否された 生成器が旧版と同じ状態で再実行できるかは、別途確かめていない
F3 affected() の列挙は、宣言が embedded_in に書いた範囲に限り、末端の拡張の自分の定数・宣言・生成器の複製・防護例の期待値は列挙しない 実際の再固定697件のうち、列挙の外が8件。防護例の期待値が改訂の影響を受けて登録を拒否した 列挙を広げる方法は未検討

課題の選定の更新:C6 は実施済み(断片のみ)。次の候補は C2(縦断比較)です。着手前に利用者の確認を取ります。

10. P2-m(課題 C2)の結果による更新

§9 で次の候補に挙げた C2「縦断比較」を、P2-m として実装・評価しました(結果58)。同じ slot の二時点の測定を比べる専用 R5 で、P2-i の二端点の換算領域を、独立な変数として P2-f の比較へ渡します。七欄と共通義務の主題(A〜H)を実装の前に書き出し、予測 W1〜W8 と反例 X1〜X9 を手指定の期待57に固定しました。一つの断片の結果で、作成者側の評価です。

仮説 P2-m での結果 更新後の状態
H1(七欄で接続を設計できる) 七欄を先に埋め、実装の最中に七欄へ収まらない決定は出なかった。ただし、評価の基盤(未完了行の値の検査の欄名の一覧、再固定の連鎖の一覧)は七欄の外にあり、手で更新が要った(F4・F6) 三つ目の事前の設計で支持。n=3、設計者は同一。七欄の外の基盤の更新が要ることを併記
H2(義務の大半は能力を問わない主題 A〜H) 12の個別義務のうち8が A〜H、3が意味固有(独立な変数・比較可能性・方向と順序)、1(LC-12)はどれにも収まらず、新しい主題「接続面の閉包」(前段の出力が後段の入力の制約を満たすか)が要った。この予測は実装前に固定しており、反例(L50〜L53)で成立した A〜H は単独の能力には足りるが、断片の合成では足りない。新しい主題 J が要る。テンプレートの自動生成は未検証
H4(個別の通過から併用の保証は導けない) 同じ二つの端点の領域から、共有参照と独立な変数で別の関係(幅のある領域で equal だけ/三つ全て)が出る。P2-i と P2-f の既存の義務は、この差を区別しない。親にない義務が4件(LC-9〜12) 一つの合成で支持。点の領域では二つの組み方が一致するため、反例は幅のある領域に限る
H5(クラス表は完全でない) R5 と必須欄で宣言・登録は足りた。新しいクラスも宣言の書式の変更も要らなかった 追加の不足は出ず
H8(継承を宣言する枠がない) LC-7(端点の行は P2-i の直接実行と一致)を既存の書式で宣言でき、検査も書けたが、registry は P2-i を指すと理解しない。さらに、文脈の判定は P2-g の matched_context を再び述べたもので、P2-g の変更は affected() に P2-m を含めない。P2-g の比較の理由を一つ壊した木で、検出したのは P2-m の差分の検査(D2)だけだった 三つ目と四つ目の根拠。継承は依存(読み取り)と別の関係で、宣言の書式で表せない

新しい発見

ID 発見 根拠 限界
F4 再固定の連鎖(repin_specs.py の一覧)は手で保つ一覧で、依存する拡張を足すときに載せ忘れても、宣言の登録では気付けなかった 一覧から P2-m を外してもそれまでの全検査が通ることを確認。仕様の内容から連鎖を求める検査を足し、外すと失敗することを確認 P1 の連鎖(handover→events)は別の手順で、この検査の対象外
F5 依存される側の改訂の再固定の範囲は、依存する拡張が増えるごとに広がる。P2-i の仕様の hash を含むファイルは、P2-i 自身の例148、P2-j の170を加えて318、P2-m の103を加えて421(ほかに実装・宣言・台帳) hash の文字列の検索。P2-m を新しい拡張として足したことで、既存のファイルの変更は 0 符号化の中の hash は数えていない(F1)。数は登録点であり、意味の変更の大きさではない
F6 未完了行の値の検査は、値を持つ欄の名前の一覧を手で保つ。新しい拡張が新しい欄名を持つと、一覧へ足さない限り漏れを検出できない。空配列・false は真偽で偽になり、欄名の一覧の真偽判定だけでは漏れとして扱えなかった 漏れの注入検査(relation_set: [])が初回に通らなかった。P2-h・j に続く三度目 欄名を拡張の仕様から導く案は未実施
F7 P2-i の出力は P2-f の入力として常に有効とは限らない(約分した有理数の出力は256bitの中間で、入力は63bit)。目標単位の選び方だけで止まる・止まらないが変わる L50〜L53 と境界の6入力。元のリテラルへ切り替える変異は検出された 数値の上限の差で、意味の誤りではない。ほかの断片の対にも同じ形の不整合があるかは未調査

追加の実験として、数量の仕様に単位を一つ足す改訂を、コピーした木で予行しました。再固定の道具(連鎖に P2-m を載せた状態)と生成器だけで、P2-m の103例は hash の値を除いて同一になり、全て通りました(P2-l の手順が、新しい依存先にも手編集なしで使える)。

課題の選定の更新:C2 は実施済み(断片のみ。三点以上の傾向、差の大きさ、基準範囲、別 slot・別 view は未対応)。残る候補は、C7(複数の出力先への射影)、実資料評価と薄い臨床ライブラリの試作範囲の選定、継承を宣言する欄(H8)を契約に足すかの判断です。後者は契約の書式の変更を伴うので、着手前に利用者の確認を取ります。

11. P2-n(仮説 H8:継承の欄)の結果による更新

§8〜§10 で積み上げた H8(意味を継承する関係を宣言する枠がない)に対し、利用者の指示で、宣言の書式を p2-extension-manifest-draft-2 に上げて inherits を足しました(設計59、手指定の期待60、結果61)。予測 N1〜N9 を実装の前に固定しました。契約の変更の一つの結果で、作成者側の評価です。

仮説 P2-n での結果 更新後の状態
H8(継承を宣言する枠がない) 欄を足して、20宣言に9項目(証人30、理由つきの欠落2)を宣言できた。元の拡張が影響を受けると、継承する側が affected() に列挙され、継承で結ばれた組は独立としない。実装・仕様・旧実行例は変更せず、extensions.py と宣言・検査・道具だけの変更で足せた 対処した。ただし、継承の真偽は検査できない(偽りの宣言も、書かれない継承も排除できない)
H5(クラス表は完全でない) クラス表ではなく宣言の書式が不足していた(継承の関係)。新しいクラスや義務は要らなかった(義務の数は変わらず259) 不足の種類が増えた:クラス、義務の主題(P2-m)、宣言の関係(継承)
H1(七欄で接続を設計できる) 契約の変更も七欄に収まった(版=書式の draft-2、確認対象=継承の主張に義務の証拠を結ぶ、など)。実装の最中に七欄の外の決定は、再固定の道具と版の比較の道具に出た 四つ目の事前の設計。n=4、設計者は同一
H6(有限の検査は、仕様の読み違いと選んだ変異の外を見逃す) 証人は単一の差を覆い、複数の差の同時の組み合わせは覆わない(d6)。差分の検査だけが捕まえた。予測のうち d4 は外れ、疑いの探索の適合率の予測も外れた(調整した版で) 支持。証人は差分の検査の代わりにならない

新しい発見

ID 発見 根拠 限界
F8 契約の版が変わると、版の比較の道具が、旧い木を旧い実装で扱う必要がある。作業ツリーの registry に旧い版の宣言を渡す設計は、書式の更新で失敗した 修正前に QuantityVersionTests が unsupported_manifest_schema で失敗。木ごとの registry にして、P2-l の記録の検証が通る 旧い木の実装が実行できる限り
F9 欄を必須にしても、書かれなかった継承は出てこない。予測外の継承(P2-f ← P1)は、疑いの探索で見つかった。探索の再現率は5/7で、見逃しは語彙の違う規則 20宣言のうち6件が継承を持つ。探索は共通の語彙も数えると104/150組を疑う 探索の調整は既知の継承を見て行った。未知の継承の検出力の見積りではない
F10 継承の辺は、再検証の範囲を広げ、独立の意味を変える。P2-e の temporal.py の変更が及ぶ拡張は1件から7件、独立な組は150から143 affected() と independent_pairs() の測定 範囲の広がりは、見えなかった結合を表すもので、変更が多いことを意味しない
F11 契約の検査が、前提の拡張の一覧を手で保っていた(依存の閉包)。継承を足すと35件の誤りになった 宣言から求める形に直した。F4・F6 に続く、手で保つ一覧を内容から求める修正の三つ目 他にも手で保つ一覧があるかは未調査

課題の選定の更新:H8 は対処した(継承の関係は一種類)。残る候補は、C7(複数の出力先への射影)、実資料評価と薄い臨床ライブラリの試作範囲の選定、継承の関係の拡張(差を伴う継承、同じ拡張の版の間の継承)です。着手前に利用者の確認を取ります。

12. P2-o(薄い臨床ライブラリ)の結果による更新

利用者の承認した範囲選定(62)に従い、操作から台帳を組み立てて出力先の要求の充足を診断する薄い臨床ライブラリを実装しました(設計63、手指定の期待64、結果65)。予測 V1〜V10 を実装の前に固定しました。新しい外部資料は参照していません。作成者側の評価で、独立確認は受けていません。

仮説 P2-o での結果 更新後の状態
H1(七欄で接続を設計できる) 七欄を先に埋め、実装の最中に七欄へ収まらない決定は出なかった。評価の基盤の更新は、手で保つ一覧への追加(約11ファイル)で、七欄の外 五つ目の事前の設計。n=5、設計者は同一
H2(義務の大半は主題 A〜H) 12の個別義務のうち8が A〜H、4が意味固有と予測どおりに割り当てられた。CL-9(要求を宣言として持つ)は意味固有に置いたが、登録は主題を検査せず、置き場の正しさは作成者の判断。「宣言を解釈する側」という主題を立てるかは未決 支持(弱い)。未決を一つ記録
H4(併用の保証は個別の通過から導けない) 一つの行に表せない要素と足りない要素が並ぶとき、状態の優先が行を決める。この優先は P2-i にも P2-f にもなく、ライブラリが決める 支持。ただし優先を試す例が事前の表になかった(F13)
H5(クラス表は完全でない) R5 と必須欄で宣言・登録は足りた。新しいクラスも書式の変更も要らなかった 追加の不足は出ず
H6(有限の検査は、仕様の読み違いと選んだ変異の外を見逃す) 事前に手指定した表にも穴があった。集約の優先の入れ替えを、事前に列挙した変異のうち一つが検出されないことで見つけた(F13)。型破損の全ノード検査が、検証の前の誤りも見つけた(F14) 支持。穴の発見は、事前に列挙した変異と検査の種類に依る
H8(継承を宣言する枠) P2-n の欄を新しい拡張に使えた(3項目・証人16、全て登録時に一致)。ただし探索は宣言した2組のうち1組しか見つけなかった(F12) 欄は使える。探索の性能は標本の外で下がった(標本は小さい)

新しい発見(詳細は 65 の§4)

ID 発見 限界
F12 継承の探索は、新しい拡張の宣言2組のうち1組を見つけた。見逃したのは丸めを自分の言葉で述べ直した組 標本は1拡張・2組
F13 事前の手指定の表に、集約の優先を試す例がなく、変異で見つけて足した(O08・O09) 列挙した変異の外の穴は見つからない
F14 型破損の全ノード検査が、操作の origin.kind が配列のときの例外を見つけた 全ノード×6種の範囲
F15 新しい拡張を足す手で保つ一覧への追加が約11ファイル 一覧は漏れを検査が教える。作業は残る
F16 子(P2-i)の拒否は子の理由と位置で返る 操作者向けの文言への変換は範囲外

課題の選定の更新:薄い臨床ライブラリ(L1)は実施済み(断片のみ)。残る候補は、実資料への接地(U2。取得の前に利用者の確認)、CPC の版の監査(U3)、複数の出力先への射影の拡張(C7)、継承の関係の拡張です。着手前に利用者の確認を取ります。

13. P2-p(出力先の構造への写像の可否)の結果による更新

接地の監査(66)の結果を、P2-oを変更しない合成の専用R5として実装しました(設計67、手指定の期待68、結果69)。予測 W1〜W10 と反例 Z1〜Z9 を実装の前に固定しました。取得した FHIR R5 v5.0.0 のページ(台帳に記録、Git管理外)は、構造・型・濃度・制約の読み取りに限ります。作成者側の評価で、独立確認は受けていません。

仮説 P2-p での結果 更新後の状態
H1(七欄で接続を設計できる) 七欄を先に埋め、実装の最中に七欄へ収まらない決定は出なかった。手指定の段階で「保持・喪失・追加」の欄の中の矛盾(流れの作り方)が見つかった(F17) 六つ目の事前の設計。n=6、設計者は同一
H2(義務の大半は主題 A〜H) 17義務のうち、GR-9(外部の資料に結んだ事実)は A〜H に収まらなかった。P2-m の LC-12(接続面の閉包)、P2-o の CL-9(要求を宣言として持つ)に続く、三つ目の「主題の外の義務」 支持(弱い)。新しい接続(合成・宣言・外部資料)ごとに、主題の外の義務が一つ出る(n=3)。新しい主題を立てるかは未決
H5(クラス表・書式は完全でない) R5 と必須欄で足りた。ただし、入れ子の要求が他の仕様の hash を埋め込むため、宣言に pin を足す必要があった(F19) 追加の不足は出ず。宣言の項目の追加の手間が見えた
H6(有限の検査は読み違いと選んだ変異の外を見逃す) 手指定の期待の97例が初回にすべて通った。同じ作成者が期待と実装を続けて書いたので、共有する読み違いを見逃し得る。別計算は Decimal(別の道)だが、P2-o の別計算を再利用している 支持(変わらず)。初回の全通過は、独立な検証の代わりにならない
H8(継承を宣言する枠) この拡張は他の拡張の規則を再び述べないので、継承は宣言しなかった。探索も疑いを挙げなかった(偽の疑いなし) 欄は使わない場合も自然。探索の性能の見積りにはならない

新しい発見(詳細は 69 の§4)

ID 発見 限界
F17 設計の矛盾(流れの作り方)を、手指定の期待を書く段階で見つけた 実装前の決定。期待を先に書く手順の効果の一例
F18 外部の資料に結んだ事実の義務(GR-9)が主題の外。三つの拡張で一つずつ(n=3) 主題の分類は作成者による
F19 合成の宣言は、入れ子の要求が埋め込む他の仕様の hash の pin も持つ 手で書く宣言の項目
F20 判定の誤りで無限に回る箇所を、変異を選ぶ段階で見つけ、入力の上限から導いた境界で資源停止にした 通常の入力では届かない
F21 新しい拡張を足す手で保つ一覧が約11ファイル(P2-oと同程度) 一覧は検査が漏れを教える

課題の選定の更新:接地の第二段(FHIR の構造への写像の可否)は実施済み(構造は一つ、値・期間・文脈のみ)。残る候補は、status・code の写像と Provenance への出力(判断が要る)、CPC の版の監査、複数の出力先への射影の拡張、継承の関係の拡張です。着手前に利用者の確認を取ります。

14. P2-q(status・code の写像と Provenance への出力)の結果による更新

P2-pの範囲外だった status・code の写像と Provenance への出力を、P2-pを変更しない合成の専用R5として実装しました(設計70、手指定の期待71、結果72)。予測 X1〜X10 と反例 Z1〜Z9 を実装の前に固定しました。取得した FHIR R5 v5.0.0 のページ(台帳に記録、Git管理外)は、構造・定義の読み取りに限ります。作成者側の評価で、独立確認は受けていません。

仮説 P2-q での結果 更新後の状態
H1(七欄で接続を設計できる) 七欄を先に埋め、実装の最中に七欄へ収まらない決定は出なかった。75例は初回にすべて通った 七つ目の事前の設計。n=7、設計者は同一
H2(義務の大半は主題 A〜H) 18義務のうち、QR-11(外部の資料に結んだ事実)は A〜H に収まらなかった。P2-m の LC-12、P2-o の CL-9、P2-p の GR-9 に続く四つ目 支持(弱い)。新しい接続ごとに主題の外の義務が一つ出る(n=4)。新しい主題を立てるかは未決
H4(併用の保証は個別の通過から導けない) 合成の結果(意味の判断を宣言に委ね、足りなければ依頼にする)は、P2-p・P2-o の個別の通過から決まらない。許容集合・仮定の残し方・依頼の宛先は、この拡張で決めた 支持
H5(クラス表・書式は完全でない) R5 と必須欄で足りた。入れ子が3層になり、宣言の pin が6つに増えた(F24) 追加の不足は出ず。宣言の項目の手間が増える
H6(有限の検査は読み違いと選んだ変異の外を見逃す) 例の形式(required_paths)は配列の長さを検査できず、余分な項目を足す変異が最初の例で未検出だった(F22)。別計算のテストは項目の数を比べる 支持。検査の形式の限界が具体的に見えた

新しい発見(詳細は 72 の§4)

ID 発見 限界
F22 required_paths の例は配列の長さを検査できない。ハッシュを含む配列は全体で書けない 別計算のテストが補う
F23 記録に観察者がいない。Provenance の agent が必須なので、観察者が不明な記録は生成の Provenance を出せない 記録モデルの変更は別の判断
F24 入れ子が深くなるほど、宣言の pin が増える(6つ) 手で書く項目
F25 主題の外の義務が四つ目(n=4) 主題の分類は作成者による
F26 新しい拡張を足す手で保つ一覧が約11ファイル(四度目も同程度) 一覧は検査が漏れを教える

課題の選定の更新:Observation の status・code と Provenance は実施済み(断片のみ。revision の entity・activity の符号・署名は未対応)。残る候補は、観察者を記録モデルに足す判断(P2-iの記録の定義の変更)、CPC の版の監査、複数の出力先への射影の拡張です。着手前に利用者の確認を取ります。

15. P2-r(記録に観察者を足す版の更新)の結果による更新

P2-qで見つかった記録モデルの穴(F23)を、期間つき数量の記録に任意の項目 observer を足す版の更新として直し、中核モデルの変更が下流へ及ぶ範囲を測りました(設計73、手指定の期待74、結果75、版の記録)。予測 Y1〜Y10 と反例 Z1〜Z8 を実装の前に固定しました。外部資料は新たに参照していません。作成者側の評価で、独立確認は受けていません。

仮説 P2-r での結果 更新後の状態
H1(七欄で接続を設計できる) 版の更新も七欄に収まった(前提=任意の項目、版=draft-3 と依存の更新、確認対象=観察者は内容の一部、など)。25件の手指定の期待は初回にすべて通った 八つ目の事前の設計。n=8、設計者は同一
H5(クラス表・書式は完全でない) 版の記録の書式は変えずに、意味の変更(任意の項目の追加)を宣言できた。比較器の追加した入力の読み方を一般化する必要はあった 追加の不足は出ず
H6(有限の検査は読み違いと選んだ変異の外を見逃す) 予測した Y2(全て拒否)は実測で拒否678・同一59、Y6(750〜800)は813、Y10(防護例が壊れる)は0だった。予測の一部が外れた 支持。予測の数値の見積りは粗い
H7(訂正・追加情報を保つ設計) 観察者を足しても旧入力の結果は変わらず、旧い確認は新版へ引き継がない規則が保たれた 支持(版の更新の面から)
H8(継承を宣言する枠) この更新は継承の宣言を使わず、依存の木と版で足りた 変更なし

新しい発見(詳細は 75 の§4)

ID 発見 限界
F27 操作の列から台帳を組み立てる系列の入力は hash を持たず、置換だけで再固定できる(台帳を直接持つ系列は不可) 入力の形に依る
F28 affected() は過小(9件、予測どおり)と過大(118件、予測外)を同時に持つ。宣言の embedded_in が pin ごとでない 過大は安全側
F29 履歴に結んだ検査は、リポジトリが進むと例外を手で足す必要がある 契約の更新の検査の緩和
F30 版の更新の影響を受ける入力の数は、総数でなく、pin を持つ入力の数(旧入力737件のうち678) 分類は比較器による

課題の選定の更新:記録モデルの穴は、観察者の追加として直した(任意の項目。必須にする更新は未実施)。残る候補は、項目を必須にする版の更新(旧入力を拒否する)、CPC の版の監査、revision の entity と activity の符号です。着手前に利用者の確認を取ります。

16. P2-s(観察者を必須にする版の更新)の結果による更新

P2-rで足した任意の項目を必須にし、不明を明示の値にして、旧入力を拒否する版の更新を測りました(設計76、手指定の期待77、結果78、版の記録)。予測 S1〜S10 と反例 W1〜W8 を実装の前に定めました(履歴では実装と同じコミットで保存)。外部資料は新たに参照していません。作成者側の評価で、独立確認は受けていません。

仮説 P2-s での結果 更新後の状態
H1(七欄で接続を設計できる) 旧入力を拒否する版の更新も七欄に収まった(前提=必須の項目、版=draft-4 と依存の更新、確認対象=観察者は内容の一部、など)。新しい入力7件の期待は文書77と一致 九つ目の事前の設計。n=9、設計者は同一
H5(クラス表・書式は完全でない) 版の記録の書式は変えずに、要求の側の変更(全ての入力に項目が加わる)を、宣言の種類 required_field(26行の比較器の拡張)で宣言できた 追加の不足は出ず
H6(有限の検査は読み違いと選んだ変異の外を見逃す) 予測 S5(結果の違いは record_observer だけ)は要求の原情報の写しの違いを見落とし、S9(拒否は invalid_observer)は旧版の検査の順序を読み違えた。実装の副作用の error_path の変化は、手指定の期待では見つからず、版の記録の比較器が見つけた 支持。見つけたのは宣言と実測の突き合わせ
H7(訂正・追加情報を保つ設計) 必須にしても旧入力の結果は変わらず(拒否または同一)、移行は欠落に明示の unknown を足すだけで、観察者を推測しなかった 支持(版の更新の面から)
H8(継承を宣言する枠) この更新は継承の宣言を使わず、依存の木と版で足りた 変更なし

新しい発見(詳細は 78 の§5)

ID 発見 限界
F31 意味の変更を宣言する比較器は、宣言にない診断の変化(理由・状態が同じで error_path だけ変わる)も見つける 宣言した名前の項目は経路を問わず許容する(F32)
F32 宣言の照合は項目の名前(経路の末尾)で行うので粗い。根拠の record_observer と原情報の写しの observer を区別しない 経路全体の宣言は未実施
F33 確認は仕様の版に結ばれるので、新旧の互換の部分集合は小さい(旧版へ渡した765件のうち受理8件) 台帳を直接持つ入力に限る
F34 旧版の拒否の理由は旧版の検査の順序で決まる(unknown は invalid_observer でなく主に missing_field) 受理 0 が検査の順序によらず成り立つかは未確認

課題の選定の更新:観察者の追加(任意)と必須化は実演した。残る候補は、revision の entity と activity の符号、CPC の版の監査、複数の出力先への射影の拡張です。項目の意味の変更・削除、複数の項目を同時に更新する版の更新は未実施です。着手前に利用者の確認を取ります。

17. P2-t(Provenance の activity の符号と revision の entity)の結果による更新

P2-q の範囲外だった Provenance の activity の符号と entity(revision)を、P2-q の上に足す合成の専用 R5 として実装しました(設計79、手指定の期待80、結果81)。予測 T1〜T10 と反例 Z1〜Z12 を実装の前に定めました(履歴では実装と同じ作業で保存)。外部資料は、HL7 の provenance-entity-role の符号系ページ1つを追加で取得しました(Git 管理外、台帳に記録)。作成者側の評価で、独立確認は受けていません。

仮説 P2-t での結果 更新後の状態
H1(七欄で接続を設計できる) 合成の設計も七欄に収まった(前提=宣言と作成者の読み、版=P2-q の固定、確認対象=確認も agent も作らない、など)。手指定の期待73ファイルと手で導いた料金は初回にすべて通った 十個目の事前の設計。n=10、設計者は同一
H2(義務の大半は主題 A〜H) 17義務のうち、PT-10(外部の資料に結んだ事実)は A〜H に収まらなかった。P2-m の LC-12、P2-o の CL-9、P2-p の GR-9、P2-q の QR-11 に続く5つ目。他は意味固有(I)と A〜H に収まった 支持(外れは同じ形で n=5)
H5(クラス表・書式は完全でない) 追加の不足は出なかった。クラスは R5、書式は draft-2 のまま 追加の不足は出ず
H6(有限の検査は読み違いと選んだ変異の外を見逃す) 予測10件がすべて成立し、外れによる発見はなかった。ハッシュは fixture で確かめられず、1変異は別計算でしか検出できなかった(F38)。読みの共有は同じ作成者の検査では見つからない 反証も補強もできず。読みの共有は未検査
H7(訂正・追加情報を保つ設計) 訂正の関係を、向き・同一性・多重度を保って運べた。ただし訂正者が不明な訂正は運べない(F35) 支持。運べない理由を区別して示した
H8(継承を宣言する枠) この拡張は継承の宣言を使わず、依存の木と版で足りた。探索も P2-t に疑いを挙げなかった 変更なし

新しい発見(詳細は 81 の§4)

ID 発見 限界
F35 記録の観察者を「不明」と明示できること(P2-s)と、訂正の関係を運べることは両立しない(agent 必須の Provenance では、訂正者不明の訂正は確認済みでも表せない) 入口で訂正者を求める設計は未実施
F36 下位の結果に前の版のハッシュがないので、P2-i の私有のハッシュ関数を再利用し、選ばれた記録のハッシュで自己検証した 下位の私有の関数への依存
F37 向きの読み(target=新しい版、entity=古い版)は二つの定義の組み合わせで、一つのページに書かれていない 作成者の読み。source など別の読みもある
F38 fixture でハッシュと項目の数を確かめられず、1変異は別計算でしか検出できなかった(F22 と同型) 例外による検出は粗い
F39 検査器の「未完了行の値」の欄の一覧が増えるたびに、変異の表の目印を5行直す必要がある 一覧を1か所に持てば減る
F40 共有の語彙を数える探索は、新しい独立な組17のうち14を疑いに挙げる(排他的な共有の語では0) 測定値

課題の選定の更新:Provenance の revision の entity と activity の符号は実演した。残る候補は、訂正者を訂正の操作の入口で求めること(F35)、CPC の版の監査、複数の出力先への射影の拡張です。着手前に利用者の確認を取ります。

18. P2-u(用語の版更新の監査)の結果による更新

取得済みの RxNorm CPC の2版(2026-09-08 → 10-05)の版更新を、旧版の参照ごとに監査する契約を、他の拡張に依存しない単独の R5 として実装し、実データに適用しました(設計82、手指定の期待83、結果84)。予測 AP1〜AP10・RP1〜RP7 と反例 Z1〜Z12 を実装の前に定めました(履歴では実装と同じ作業で保存)。新しい外部資料は取得していません。committed な例は架空で、実データの行は Git に入れていません。作成者側の評価で、独立確認は受けていません。

仮説 P2-u での結果 更新後の状態
H1(七欄で接続を設計できる) 版更新の監査という、これまでと異なる種類の拡張も七欄に収まった(前提=属性の方針は宣言、版=snapshot の版と任意のハッシュ、確認対象=確認を作らない、など)。手指定の期待87件と手で導いた料金は初回にすべて通った 十一個目の事前の設計。n=11、設計者は同一
H2(義務の大半は主題 A〜H) 16義務がすべて A〜I に収まり、主題の外の義務は出なかった(n=5 から増えず)。native が外部の事実を持たなかったため これまでの外れ(n=5)は外部の資料などに結んだ事実を持つ拡張で出ており、持たない拡張では出なかった(n=1。関連は推測)
H5(クラス表・書式は完全でない) 追加の不足は出なかった。クラスは R5 追加の不足は出ず
H6(有限の検査は読み違いと選んだ変異の外を見逃す) 予測の外れ3件(属性の差の概念数の範囲×2〔行と概念の単位の取り違え〕、方針の違いの効果〔推論の誤り〕)、変異の見逃し1件(例を1つ足した)、共通の検査器との衝突1件 支持。見つかったのは測定・統合評価・変異の突き合わせ
H7(訂正・追加情報を保つ設計) 比較していないものと推定しないもの(後継・逆向き・意味)を、結果に明示して返した 支持(版更新の面から)
H8(継承を宣言する枠) 独立な拡張なので、継承の宣言は不要。依存も共有もなく、独立な組が23組増えた 変更なし

新しい発見(詳細は 84 の§5)

ID 発見 限界
F41 関係の面の差は、この月の組では収載の出入りで説明され、独立な情報を足さなかった 1組の測定
F42 原子が不変なので、名称の面はほぼ空になった 識別子の運用に依る
F43 属性の差は NDC に支配され、一つの属性名の分類が状態の分布の大半を決める。分類を宣言しない影響は小さい(27概念) 方針は作り手の仮定
F44 予測の単位の取り違え(属性の行と概念の数) 予測は単位を明記する
F45 方針の違いの効果の推論の誤り 優先順を通した効果は手で導くと間違えやすい
F46 共通の予算の検査器の欄の一覧が、一般的な欄の名前と衝突する(偽の違反1,073件) 衝突は統合評価でしか見つからない
F47 変異の見逃しが、範囲の外に出る例の構造から起きた(例を1つ足した) 変異の突き合わせで見つかった
F48 native が外部の事実を持たないと、外部の資料に結んだ事実の義務が出ない(事実は道具の側) 事実は NLM の文書3ページ(台帳つきで取得)と局所データに結んだ。契約の義務としては宣言していない
F49 公式の履歴(退役した RxCUI の表、RXNCUICHANGES)は CPC でなく通常のリリースにある。API(ライセンス不要)でも状態を照会できる 通常のリリースは利用者が保留。API は利用者の判断(b)で170参照に限り照会した
F50 CPC に不在であることは廃止の証拠でない。実測:不在の170参照のうち70(41%)は RxNorm で有効、100は廃止、置換先の指定は0(85) 1か月の組。説明ページは最終確認2019年4月17日
F53 予測の推論の誤り:不在の参照に置換先があると見た(予測5〜40%、実測0件)。廃止でも置換先が指定されないものが59% 85 の AQ4

課題の選定の更新:CPC の版の監査は、1か月の組で実演した。残る候補は、未見の月次 CPC への適用(公表後)、NLM の説明ページを台帳つきで取得して事実を結ぶこと、訂正者を訂正の操作の入口で求めること(F35)、複数の出力先への射影の拡張です。着手前に利用者の確認を取ります。

付録:集計の方法

  • 義務・証拠・防護例の数は、extensions/p2-*.json(8件)を JSON として直接数えた。証拠の内訳(検査済み/手導出/有限)は、各宣言の obligations[].evidence(checked_native_template/hand_derivation/finite_check)。
  • 実行例・必須パス・参照計算の行数・変異の件数は、各結果文書(24・26・33・36・39・42・45・48)の記載をそのまま写した。本書では再実行していない。再計算した値は、統合評価(18宣言・220義務・386防護例、942要求・16,502評価)と全テスト系列の通過だけである。
  • §3.7 の主題の分類は、個別義務の文言を読んだ作成者による。

P2 全体

同じ区分の文書