nested word
Nested word
直感的には、XMLのような構造や、callイベントやretイベントを持つトレースをイメージすると良いかと.
定義
アルファベット上の長さのnested wordは組として定義される。ここで、は長さの上の語で、は長さのマッチング関係である。
マッチング関係
長さのマッチング関係はの部分集合であり、次の条件を満たす
- すべてのエッジは順方向()
- エッジは共通のポジションを決して持たない(任意のについてとなるようなが高々一つ存在しかつとなるようなが高々一つ存在する)
- エッジは交差しない(となるようなを見つけることは出来ない)
参考
Comparing LTL Semantics for Runtime Verification
当ブログ最初の記事ですが, 初っ端から論文紹介です。
(挨拶記事だけ書いてブログに飽きるというジンクスを回避したい…)
以降も,こんな感じで面白いなと思った論文や記事の紹介,解説をしていく感じになると思います(続けば)
ざっくり説明するので,しっかり理解したい人は原文をどうぞ
Comparing LTL Semantics for Runtime Verification
概要
- 時相論理式のモデルは普通イベントの無限長の語
→対して, 実行時のイベントは有限長(利用可能なプレフィックスは増加するが) - 実行時検査の観点から, 有限長のトレースの為のLTL由来の論理を再調査
- 結果として
→実行時検査用のLTL由来論理が満たすべき4つの公理を確立
→それらを全て満たす4値論理RV-LTLを導入 - 加えて, RV-LTLについて, ムーア機械を用いるモニタの構成を提案
1節 導入
ある性質のモニタリングでは少なくとも3つの異なる状況がある
- 性質は続くステップとは独立に, 有限回のステップ後満たされる(true)
- 性質は以降何が続いても満たされない(false)
- 既に現れたプレフィックスではまだ判断出来ない(inconclusive)
[ABLS05, BLS06]ではこれらの状況に対応する有限トレース上の3値論理LTL3を提案した.
LTL3はsafety(e.g. Gp)とco-safety(e.g. Fp)のようなモニタ可能(monitorable)な性質については良くマッチしたが, モニタ不可能(non-monitorable)な性質(((e.g. G(r -> Fa))についてはその限りでない.そこで, request/acknowledge 性質((e.g. G(r->Fa)))に関する直感に基づき, inconclusiveの代わりに次の2つの値を入れたような論理を考える.
論理式について
- aで終わる有限長文字列はがおそらく満たされる事を表す真理値
- rで終わる有限長文字列はが充足されなさそうであることを表す真理値
論文の構成
2節 : 議論の準備
3節 : 既存の3つのLTLベースの論理のおさらい
4節 : 実行時検査を目的とした時のこれら論理の有用性を議論
5節 : RV-LTLの導入と諸々の証明
6節 : RV-LTLモニタの構成
2節 準備
真理領域
真理値はある種の束として解釈できる.有限束にはユニークな最小元()と最大限()が存在する.例えば, という束を考えれば、これはよく知られたBooleanに対応する(e.g. ,).束が有限ド・モルガン束であるとき, を真理領域(Truth domain)と呼ぶ.
無限トレース上のLTL
無限トレース上のLTL式の意味は関数によって与えられる.
以降,この論文では,この真理領域や,LTLの文法,関数の定義を変更することで与えられる有限トレース上のLTLについての議論と比較をしている.
3節 有限トレース上のLTL
3節では既存の有限トレース上のLTLについて紹介を兼ねていくつかの観点から比較をしている. 詳しくは原文を読んでもらうこととして, ここでは後の節の都合上最低限紹介が必要な2つを説明する.
FLTL
有限トレース上のLTLを考えるとき, X(Next)オペレータをどのように扱うかが問題になる.論理式は次の時点でが成り立つことを意味する時相演算子だが,たとえばトレース長が1であるとき,すなわち次の時点,というのが存在しない場合にをどのように扱うのか,という問題である.FLTLでは,強いX(strong neXt),弱い(weak neXt)という2つのXを導入することでこれを解決している. ここで, は次の時点が存在しない場合,偽として評価され,は次の時点が存在しない場合真として評価される.
LTL3
では,文法は無限長のトレース上のLTLのものをそのまま用いますが,意味を与える関数の値域を3値に拡張します.具体的には,の他に,となるような値?を加えます.この論理では, ある有限長のトレースuの上で論理式が()に評価されるのは,任意の無限長トレースが続いてもその判断が変わらない時, すなはちのようなとき, となります.続くトレースによって,真偽が変わるような場合には?がその論理式の値になります.したがってこの時,トレースの長さが足りない場合のは?が割り当てられる事になります.
4節 実行時検証用LTLの為の公理
実行時検証に用いるLTL風の論理が満たすべき性質のようなものを著者は次の4つの公理としてまとめている.
Existential Next (Nextの存在についての公理)
無限トレース上のLTLではととの間には,iffの関係が成り立つが,有限トレース上のLTLでは必ずしもそうでなければならないというのは厳しすぎるので,それを弱めた形で入れている.これはFLTLでもLTL3でも成り立つ.
Complementation by Negation (否定による補完)
任意の性質任意の語について,
これは,2値論理では当然成り立っていそうな性質だが,非決定的な値を含むような論理では必ずしも成り立たない.実際,FLTLでは成り立つがLTL3では成り立たない.
Impartiality(公平性)
任意の性質任意の有限語について,
今度は打って変わって2値論理では満たすことの出来ない性質になっている.任意の有限語に対してのいずれかを割り当てねばならないためである.当然2値論理であるFLTLはこれを満たさず,LTL3は満たしている.
Anticipation(予期)
任意の性質任意の有限語について
公平性とは逆の性質になっており,有限トレース上で判断できるものは判断されなければならないとしている.FLTLではこれは満たされないが,LTL3では満たされる.
5節 RV-LTL
4節で説明した4つの公理を全て満たすような有限トレース上のLTLとして,RV-LTLというものを導入する.RV-LTLの意味は,4つの値(順序関係は,自明ではないが直感的なのでここでは省略)を持つ束をレンジに持つような関数によって与えられる.の直感的な意味は良いとして,の直感的な意味は,導入の時に説明したように,有限のトレース上では判断がつかないが,無限に続いたら,おそらく満たす(満たさない)だろうというような意味になる.先に説明した公理の内,LTL3は否定による補完の公理以外を満たし,FLTLは否定による補完の公理を満たしていた.この2つの特徴を併せ持つようにRV-LTLの意味を与える関数を次のように与える.
ここではLTL3での解釈,はFLTLでの解釈を表す.
本記事では詳細は書かないが,この論理のもとで,導入でもあげた request/acknowledgeの例を考えてみると、このRV-LTLが直感的な意味と一致していることがわかる.(原文では丁寧に書いてある)
6節 モニタの構成
RV-LTLの論理式から対応するムーア機械を構成する方法を与えています.
そんなに長くないので詳細は原文を(ry
7節 結論
省略.
原文を(ry