KAOS (97) 過程ベースの仕様 (4.4.2-9)

ここでは,原書にある例の続きである.

要求3

会議参加予定者には,会議開始の少なくとも3週間前までに期日と場所の通知を行うこと.

対応する様相論理記述

∀p: Person, m: Meeting

Holds(m) ∧ Intentded(p,m) ⇒ ◆≥3w Notified(p, m)

「mという会議を開き,かつ p が出席を意図しているならば,3週間以上前のどこかで,その会議の通知がある」というのが解釈である.

前回と同様に3Wという時間(間隔)を用いている.全称限量子は,全ての会議や参加者に関して,それが成り立つということを示している.

前提1

もし,会議の日付や場所が適切で,そのことが通知されるならば,会議参加予定者は,会議に出席する.

対応する様相論理記述

∀p: Person, m: Meeting

Intended(p,m) ∧ Notified(p, m) ∧ Convenient(m, p) ⇒ ◇ Participates (p, m)

会議自体は,未来のどこかなので,様相演算子「いつか」を使用している.開催日を過ぎた未来には,意味がない.

前提2

ミーティング場所が便利の良い場所であれば,その場所は恒に便宜が良い

対応する様相論理記述

∀p: Person, m: Meeting

Convenient(m, p) ⇒ □ Convenient (m, p)

そういう前提を置くと云うことである.

(nil)

KAOS (96) 過程ベースの仕様 (4.4.2-8)

ここでは,原書にある例を幾つか見る.

要求1

列車のドアは,プラットフォーム(駅)間では,閉まっていなければならない.但し,緊急事態のためにプラットフォーム間で停止している間は除く.

対応する様相論理記述

∀tr: Train, pl: Platform

(●At(tr, pl) ∧ ¬At(tr, pl) ⇒ tr.Doors = ‘closed’ W [At(tr, next(pl))  ∨  Alarm  (tr)  ∧ ¬Moving(tr)])

「一つ前ではプラットフォームにいるが,いまはいない」というのが条件部分である.このとき,列車のドアは,「閉まっている.それは,列車が次の駅に到着するか,停止してアラームがあるときまで続く」というのが,この文の解釈である.

最初の束縛変数の定義部分(∀tr: Train, pl: Platform)は,これまで説明していない.集合の要素と捉えてもよいし,なじみの抽象データ型とインスタンスというとらえ方でも良い.いずれ説明したい.trというのはある列車を,plはあるプラットフォーム(駅)を示している.いま全称限量子で束縛しているので,一つ前に駅にいて,いまはその駅にいない列車という条件になっている.ある列車を考えたときに,全ての駅に同時に存在することはできないので,「前に」ある駅にいた列車がいまはいないという制約が,●At(tr,pl)の部分である.●で十分かは,議論があるだろうが,何らかの制約は必要になる.

要求2

列車は,次のプラットフォームに5分以内に到着しなくてはならない.

対応する様相論理記述

∀tr: Train, pl:Platform (At(tr, pl) ⇒ ◇≤5m At(tr, next(pl))

≤5mという記述法は,始めて出てきている.◇は,いつか生じるということである.いつかというのは,あまりにも漠としているので,制約を加えている.時間(間隔)制約を書くときには,比較的よく見る記法となる.論理的な取扱に関して,実践的な方法はすくない 1.ここでは,あくまで要求としてどう表現するかというレベルで考える.

次回も引き続き原書の例について考える.

(nil)

Notes:

  1. 分野としては,時間(間隔)代数(Interval Algebra),時間(間隔)時相論理(Interval Temporal Logic, ITL)がある.発展形としては,duration calculiがある.

KAOS (95) 過程ベースの仕様 (4.4.2-7)

最初は,操作(証明)を行う時に必要な公理である 1.様相論理の場合は,少し複雑なので,「未来」における例を示す.

(0) □ φ → φ

(1) ○¬φ ⇔ ¬○φ

(2) ○(φ → ψ)  ⇔ (○φ → ○ψ)

(3) □(φ → ψ)  ⇔ (□φ → □ψ)

(4) □φ  → □○φ

(5) (φ ⇒ ○φ) → (φ ⇒ □φ)

(6) φWψ ⇔ [ψ  ∨ (φ ∧ ○(φWψ))]

(7) □φ ⇒ φWψ

ここで始めて出てきた φ ⇒ ψ は,□ (φ → ψ) である.また,φ ⇔ ψ は,□ (φ ↔ ψ) である.ほとんど,意味は明らかであろう.ちなみに□, ◇, U は,上記を用いて,次の様に代数的に書くことができる.

□φ⇔(φ∧○□φ)

◇φ ⇔ (φ ∧ ○◇φ)

φUψ ⇔ ( ψ  ∨  [φ ∧ ○ (φUψ)]


次は,いつもの(証明)規則である.典型的なものを示す.

特殊化

□ φ ⊢ φ

全ての φ が真であれば,ある φ も真である.これは,公理(0)でもある.

MP (Modus Ponens)

(φ1 ∧ … ∧ φn) ⇒ ψ, □p1, …, □ φn  ⊢ □ ψ

推移律

φ ⇒ ψ, ψ ⇒ ξ  ⊢  φ ⇒ ξ

単調性

φ ⇒ ψ ⊢  □φ ⇒ □ψ

(nil)

Notes:

  1. これまでは,余り公理を明示化してこなかった.もちろん,公理は体系を定める上では重要であり.正確に議論するためには必要である.