命題時相論理の決定手続きの比較
Comparison of Propositional Temporal Logic decidion procedure

概要

命題時相論理はハードウェア、ソフトウェアにおいての検証法に有効である ことが知られている。検証の計算量はP-Spaceであることが知られているが、 その詳細は対象となる問題や時相論理の種類、検証法によって異なる。ここで はTableau法とResultionを取り上げ、実際にかかる時間について実測し比較と考 察を行う。

contents


1.はじめに

近年、科学技術の発達によりハードウェア・ソフトウェアは複雑かつ大規模な ものとなっている。そのため設計段階において誤りが生じる可能性が高くなっ てきている。その結果、設計されたシステムに誤りが無い事を保証するための 論理設計や検証手法の確立が重要な課題となっており、数学的に設計の正しさ を保証することができる検証手法が重要視されてきている。
時相論理はその検証手法でも有効な手段の一つである。しかし検証における計 算量はP-Spaceであることも知られている。しかし、その詳細は対象となる問題や時相 論理の種類、検証法によって異なる。本研究ではLTTL(Linear Time Temporal Logic)、ITL(Interval Temporal Logic)の2つの論 理に対して、 Semantic Tableaux、Resolutionという2つの決定手続きを実装し、 充足性のチェックにかかる計算時間を実測、比較しその違いについて考 察する。
本研究で用いるTemporal operatorは5種類ありLTTLでは□(allways), ◇(sometime) ITL では&(chop)、|(bar)を用いる。 またそれぞれの論理で用いるoperatorの○(Next)がある。


2. LTTL

LTTLでは時間を直線的で、1クロックづつに分ける離散的な時間を考える。この論理は 終了時間が存在しない無限の時間で考える論理である。

2.1. Semantic Tableaux

定義1 sを状態として、vs(A)は命題論理式Aに対応する状態sでの 真理値を表すとする。LTTLでは、状態は時刻に対応する。時刻i の状態をsiとする。 □ A: 最初の状態 s0から引き続く、任意の状態 si において vs0(A) = T かつ vSi(A) = T が成り立つときである。
◇ A : s0から引き続くある 状態si(0 < i)においてvSi (A) = Tが成り立つ ときである。
○ A : siの次の状態 si+1で vSi+1(A) = T が なりたつときである。
これに従来使われている論理記号、∨,∧,¬,⇒を用いる。
まずSemantic Tableauxと呼ばれる決定手続きについて説明する。 また、この手続きで用いるtemporal operatorの展開規則を 表1に示す。

表1 LTTLの展開規則

αルールにおける展開で導出された式はAND、βルールはORで結合して いるものとする。古典論理に関する展開については省略する。
このルールにより、論理式をツリー状に展開することで充足性のチェックを行う。 Semantic Tableauxでは展開したツリーの全ての葉に以下のマークを示せば終了であ る。
葉は次のように分けられる。

また、この論理では考える時間が無限なので、無限にイベントが延期される 場合を検出するeventualityのチェックを行わなければならない。eventuality のチェックとは、任意のループで、起こるべき事象が今までに発生しているかど うかを調べる事である。 これは展開を行ってできた葉の親をたどっていき、起こるべき事象が過 去に発生していたかどうかを調べることで十分である[1]。

2.2. Resolution

この検証方法は与えられた式をConjuctive Normal Form(CNF)と呼ばれる形式 に変換し、resolutionによってCNFを減らしていくことにより、 充足性のチェックを行う[1]。

定義2
命題変数と、その否定 p, ¬p をリテラルという。
next operator のついた式やリテラルを項という。
always operatorとnext operatorとリテラルだけでできたものを元素項といい、 さらにsometime operatorがついたものを条件項という。
元素項の集合でできたものを節といい、項の集合でできたもの を類似節という。
もとの論理式を節で表したものをCNFという。

Resolutionの展開規則は、次のようになる。 全ての論理式は Pi ∧ □Q という形のCNFに変換することがで きる。このCNFを使ってResolutionを考える(PとQ は節)[4]。 CNFに変換する過程でP,Qがリテラルでない場合の□(P ∨ Q) という形のときは (□ P ∨ □ Q) ⇒ □ (P ∨ Q) と右向きにしか論理が成り立たないので、P ∨ Qを新しい変数Rに置き換 える。よって式は

□(P ∨ Q) = □R ∧ □(¬R ∨ P) ∧ □(¬R ∨ Q)
というCNFに変換される。 ある節 C',C'' において任意のリテラルlが
C' ∋ l かつ C'' ∋ lc
ならResolutionして得られる節 C は
C = { C' - l } ∩ { C'' - lc }
となる。

節が□、◇の場合は、節を現在時刻と次の時刻に展開する。
Resolutionでの終了条件は、CNF Si をresolutionして得られるSi+1がSi = Si+1とな るか、S ∋ [](nil)となった場合である。もし後者の場合ならこの論理 式は充足可能(unsatisfiable)でない。


3. ITL

ITLでは真理値は時間区間に対応して決まる。 定義3 &を任意な2つの時区間の結合とし、時区間 t でのAの評価を vt (A) とする。論理式での時区間の結合(chop)も同じ記号&で表す。 vt (P & Q) = vt' (P) ∧ vt''となり、 t = t' & t''
また、chopの双対であるbar |を次のように定義する。 P | Q = ¬ (¬ P & ¬ Q)
さらに○についてはAより1時区間短い式で考える。
ITLではtableau methodの展開を時間が0であるemptyと0 以外の時間であるmoreに分けて考える[2][3]。
ITLでは終了時間が存在するため、eventualityに関しては、展開終了時刻にその 事象が起こっているなら、その論理式でのeventualityは満たされていると考える ことができるのでチェックを行う必要がない。

3.1. Semantic Tableaux

次に□p、 ◇pのITLへの変換を示す。
◇ p = true & p
□ p = false | p
この変換を用いてITLの展開を行う。

表2 ITLの展開規則

ηルールにおける展開で導出された式はP & Qで考えると事象Pが発生 した後に事象Qが発生しなけらばならないのでAND連結、γルールはそ の双対なのでOR連結となる。
ITLもまたLTTLと同様にツリーを構築し、終了条件もLTTLと同じもの になる。

3.2. Resolution

ITLでのresolutionを考える。これもCNFへの変換を考える。 まず、ここでは □、◇をchop、barへ変換する。 chop P & Qの場合を考える。この式をempty、moreに分けて考える とemptyの場合、時刻が0なのでP ∧ Q となり、moreの場合Pが発生 していると考えるので、more(P) & Q = more(P & Q)となり、Qが起こる のが未来に延長されていると考えることができる。
次にbar P | Qの場合はempty(P)のとき、事象PまたはQが発生していれば いいのでP ∨ Qとなり、more(P)のときは事象Pが発生しているか、Qが 発生しているかを考えればよいのでmore(P) | Q = more(P | Q ) と変換することができる。
よって式は次のように変換してresolutoinを行う。

P & Q = ( empty(P) ∧ Q ) ∨ ( more(P & Q ) )
P | Q = ( empty(P) ∨ Q ) ∧ (more(P | Q) )
これをallways、sometime operatorに適用し変換すると次のようになる。

◇P = ( (true ∨ more(true & P) P )
□ P = ( (false ∨ P) ∧ (more(false | P) ) )
となる。
Resolution手続きや終了条件は、LTTLの場合と同様である。


4. 実装評価

これらの論理を実装し、充足性のチェックにかかる時間を計りその結果 をグラフに示した。図1、図2は単純なallways operator、 Sometime operatorのネストにかかった時間をそれぞれに示す。 またいろいろな論理式を実際に展開し、それにかかった平均時間を表3 に示す。かかった時間にある **** は計測したCPUのメモリ 不足のため計測できなかったことを示している。 LTTLのresolutionに関しては、eventualityのチェックが完全でないため、 sometime operatorの入った論理式は展開できないものが数多くあった。

図1 Allways operator の個数

図2 Sometime operator の個数

図1、図2からわかることは、LTTLとITLではallways、sometime operator のネストに関しては対称的な結果となった。それに対し、resolutionでの 展開はtemporal operatorのネストはCNFに変換する時にネストの省略を 行っている。そのためsemantic tableauxよりは高速に展開が行えたと考えられる。

表3 いろいろな論理式の展開にかかった時間[s]

しかし、いろいろな論理式の展開を行った表3で分かるように operatorの組み合わせが増加すると、resolutionでは展開を行うことが できなくなった。それに対し、LTTL、ITLでは時間は増加しているが展開 はほとんど可能であった。
LTTL、ITLは変数やoperatorの数が増加すればかかる時間も指数オーダーでほ とんど増加している。しかし、一部の式では高速に行えるものもあった。
Resolutionについては現在、CNFは線形リストで表している。そのためresolution できないものもリストに入っているのでresolutionの対象を探すのに、時間が かかっている。また、次の時刻に対して展開を行うたびに、リストが 大きくなる可能性があり複雑な式ではメモリ不足の為に展開を行うことが できなくなったと考えられる。
その解決策としてリストをハッシュ化することで、clashed literalを効率的 に探索し、resolutionを行う回数を減らす事ができればより高速に実行でき ると考えられる。


5. 結論

本研究では、各種の時相論理の自動検証を行った。まだどの論理での 充足性のチェックにtemporal operatorが増加すると、時間がかかっ てしまう。そのなかでresolutionはまだ効率が悪く展開を行えない 式がたくさんある。しかし、与える式によってはsemantic tableauxよりも高速 に行えるものもあった。
これからの課題として、まず検証系の実装自体の効率が悪いので高速に行え るようにする。さらにハッシュ化、並列化、BDD化など考慮し高速化を図る。


参 考 文 献
M.Ben-Ari ``Mathematical Logic for Computer Science'' pp11-91, pp.64-77, pp200-243, 1992.

Sinji Kono, ``A Combination of Clasual and Non Clausal Temporal Logic Program,'' July 12 1993.

Sinji Kono, ``Automatic Verification on Interval Temporal Logic,'' Apr 24 1994.

G.Venkatesh SSE Group ``A Decision Method for Temporal Logic Base on Resolution''