Systems and Software Verification 7. Safety Properties システム情報科学府 情報工学専攻 荒木研究室 修士2年 住田 辰雄 目次 • • • • • 7.0 安全性 7.1 時相論理における安全性 7.2 形式定義 7.3 実際の安全性 7.4 履歴変数法 2006/9/28 モデル検査勉強会 2 7.0 安全性 • 安全性 – 特定の条件において,望まれないイベントは 決して起こらない • 2つのプロセスが同時にcritical sectionに入らない (S1) • メモリーオーバーフローが起こらない (S2) • ある状況は不可能である (S3) • 鍵が点火装置にない限りは,車は始動しない (S4) – 到達可能性の否定は安全性である 2006/9/28 モデル検査勉強会 3 7.1 時相論理における安全性 • 安全性 – CTL • 結合子AGを用いて記述する – AG¬(crit_sec1∧crit_sec2) (S1) – AG¬overflow (S2) – PLTL • 結合子Gを用いて記述する – G¬(crit_sec1∧crit_sec2) (S1) – G¬overflow (S2) 2006/9/28 モデル検査勉強会 4 7.1 時相論理における安全性 • 安全性 – 条件が付随する安全性は結合子Wを用いて 記述する • CTL – A¬starts W key (S4) (7.1) – A¬starts U key (7.2) » (7.1)と(7.2)は異なり,(S4)とは一致しない » (7.2)は安全性ではない • PLTL – ¬starts W key (S4) 2006/9/28 モデル検査勉強会 5 7.2 形式定義 • 安全性定義への提案 – 我々がすることが少なければ,安全性が検証 される機会は多くなる • 全ての安全性を満たす唯一の方法は変わらない ままで何もしないことである • もし振る舞いCが性質Pを満たすならば,集約した 振る舞いC’⊆CはPを満たす 2006/9/28 モデル検査勉強会 6 7.2 形式定義 • 構文上の特徴付け – いかなる安全性もAG 形式で記述すること ができる • – past時相論理式 » 普通のブール結合子と原子命題と一緒にpast結合 子のみを使用する論理式 • 安全性が違反された場合,すぐにそれに気づくこと ができるべきである 2006/9/28 モデル検査勉強会 7 7.2 形式定義 • past結合子 – F-1 • Fに対応するpast結合子 • いくつかの過去の瞬間においてφが満たされている – X-1 • Xに対応するpast結合子 • 前の瞬間においてφが満たされている – φSψ • Uに対応するpast結合子 • ψは過去の瞬間において満たされており,それ以来φは満た されている 2006/9/28 モデル検査勉強会 8 7.2 形式定義 • 例 – AG¬(sc1∧sc2) – AG(starts => F-1 key) – ψ1,ψ2 : 安全性の論理式 • ψ1∧ψ2 – 安全性の論理式である • ψ1∨ψ2 – 安全性の論理式ではない – (AGP)∨(AGQ)はAG と等価となる形式が存在しない 2006/9/28 モデル検査勉強会 9 7.2 形式定義 • 反例 – 満たされていない安全性に応じてモデル検査 ツールが提供するメッセージ -1 – AG F が満たされていないならば,初期状態 から望まれない状態へと続く有限の経路が存 在する 2006/9/28 モデル検査勉強会 10 7.3 実際の安全性 • 現在past時相論理を扱うことのできるモデ ル検査ツールは存在しない • past時相論理を組み合わせる利点 – 構文がAG であれば,安全性の論理式であ ることが保証される – 過去と未来を組み合わせるような自然な記述 に適しており,豊富な形式化を行うことができ る 2006/9/28 モデル検査勉強会 11 7.3 実際の安全性 • 形式AG を扱うためのアプローチ – 過去削除 • past論理式とfuture論理式を組み合わせた時相論 理式は等価な純粋なfuture論理式に変換すること ができる AG( F-1 ) A( W ) – 履歴変数法 – 2006/9/28 モデル検査勉強会 12 7.4 履歴変数法 2006/9/28 モデル検査勉強会 13 7.4 履歴変数法 -1 • AG(alarm => F crash) – alarmが鳴るときはいつでも,必ずcrashが事前に起 こっている • AG(alarm => (¬reset) S crash) – alarmが鳴るときはいつでも,最後のクラッシュから resetは起こっていない • AG(alarm => X -1crash) – alarmが鳴るときはいつでも,crashが直ちに事前に起 こっている • h - – が真であるかどうか保持するブール変数 2006/9/28 モデル検査勉強会 14 7.4 履歴変数法 h1 : X -1crash h2 : (reset) S crash 2006/9/28 モデル検査勉強会 15 7.4 履歴変数法 • A+hist – Aと同じ振る舞いをする • Aと同じ時相論理式を満たす – A |= AG (alarm => X -1crash) • A+hist |= AG (alarm => h1) 2006/9/28 モデル検査勉強会 16
© Copyright 2024 ExpyDoc