Model Boundary: Explicit Declaration of What Is Not Verified #
形式検証はモデルの 内側 の性質を保証するに過ぎない。本モジュールはモデルの 外側 を第一級の対象として扱い、「V&V マトリクスが緑である」ことと 「実システムが安全である」ことを混同しないようにする。
ModelBoundary は以下を記録する:
- 形式的に検証された性質、
- 証明ではなく試験・解析で裏付けられた性質、
- 意図的にモデル化しない残留リスク(rationale と mitigation を含む)。
意図は帳簿付けではなく epistemic honesty(認識論的誠実さ)にある。 システムに変更が入った際は境界記述も見直すべきである。
F6 の変更点 #
旧実装では ModelBoundary が文字列 systemName と手動同期される
verifiedCount : Nat を持つフラット構造体で、対象 VMatrix との型上の
紐付けがなかった。本版では ModelBoundary (vm : VMatrix) として依存型化し、
verifiedCount は vm.totalRecords からの関数に置き換わる。これにより
他システム用の境界記述を誤って流用すると型エラーになる。
ファイルは VV から Matrix に移動した(VMatrix への依存のため)。
namespace も VerifiedMBSE.Matrix に変更されている。
未モデル化リスクのカテゴリ。
- physical : RiskCategory
形式モデルの外側にある物理現象(宇宙線 SEU、微小隕石衝突、材料疲労等)。
- environmental : RiskCategory
環境要因(太陽活動、熱極値、放射線)。
- human : RiskCategory
ヒューマンファクタ(運用者エラー、手順誤用、訓練不足)。
- software : RiskCategory
検証境界の外側にあるソフトウェアリスク(COTS、ファームウェア、OS)。
- hardware : RiskCategory
ハードウェアリスク(製造不良、経年劣化、部品差替え)。
- organizational : RiskCategory
組織・プロセスリスク(変更管理、サプライチェーン)。
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- VerifiedMBSE.Matrix.instBEqRiskCategory.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
人間可読のカテゴリ名。
Equations
- VerifiedMBSE.Matrix.RiskCategory.physical.toString = "Physical"
- VerifiedMBSE.Matrix.RiskCategory.environmental.toString = "Environmental"
- VerifiedMBSE.Matrix.RiskCategory.human.toString = "Human"
- VerifiedMBSE.Matrix.RiskCategory.software.toString = "Software"
- VerifiedMBSE.Matrix.RiskCategory.hardware.toString = "Hardware"
- VerifiedMBSE.Matrix.RiskCategory.organizational.toString = "Organizational"
Instances For
Equations
性質を裏付ける根拠の強さ。証明と試験・解析を区別し、
ModelBoundary がその差を隠さないようにする。
- verified : EvidenceKind
Lean での形式証明。
- tested : EvidenceKind
試験キャンペーン(ユニット試験、HIL、認定試験)による裏付け。
- analyzed : EvidenceKind
解析手法(FMEA、FTA、Monte Carlo)による裏付け。
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- VerifiedMBSE.Matrix.instBEqEvidenceKind.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
人間可読の種別名。
Equations
- VerifiedMBSE.Matrix.EvidenceKind.verified.toString = "Verified"
- VerifiedMBSE.Matrix.EvidenceKind.tested.toString = "Tested"
- VerifiedMBSE.Matrix.EvidenceKind.analyzed.toString = "Analyzed"
Instances For
Equations
UnmodeledRisk: 形式モデルがカバーしないリスク。rationale と mitigation を 明示的に要求することで、エンジニアにそのギャップを命名・正当化させる。
- description : String
リスクの短い説明。
- category : RiskCategory
リスクのカテゴリ。
- rationale : String
なぜこのリスクを形式化しないかの根拠。
- mitigation : String
非形式の緩和策(プロセス、試験、冗長化、運用制約)。
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
NonFormalProperty: 試験・解析で裏付けられているが証明されていない性質。
- description : String
性質の説明。
- kind : EvidenceKind
- source : String
根拠ソースの参照(報告書 ID、試験キャンペーン名など)。
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
ModelBoundary: モデルがカバーする範囲と外側のリスクを合わせた全体像。
対象 VMatrix を型パラメータとして持つことで、他システム用の境界記述を
誤って流用すると型エラーになる(F6)。verifiedCount は関数として
vm.totalRecords から導出されるため、手動同期は不要。
- systemName : String
この境界の識別子(典型的にはシステム名)。
- nonFormal : List NonFormalProperty
試験・解析で裏付けられているが証明されていない性質。
- unmodeled : List UnmodeledRisk
意図的に形式化しないリスク。
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
追跡している項目の総数(verified + non-formal + unmodeled)。
Equations
- mb.totalItems = mb.verifiedCount + mb.nonFormalCount + mb.unmodeledCount
Instances For
未モデル化リスクをカテゴリで絞り込む。
Equations
- mb.risksInCategory cat = List.filter (fun (r : VerifiedMBSE.Matrix.UnmodeledRisk) => r.category == cat) mb.unmodeled
Instances For
ModelBoundary を人間可読な要約文字列にレンダリングする。
Equations
- One or more equations did not get rendered due to their size.