CTL*

CTL*は、計算木論理(CTL)と線形時相論理(LTL)のスーパーセットです。パス量指定子と時相演算子を自由に組み合わせることができます。CTLと同様に、CTL*は分岐時間論理です。CTL*論理式の形式意味論は、与えられたクリプキ構造に基づいて定義されます

歴史

LTLは、1977年にアミール・プヌエリによって初めてコンピュータプログラムの検証のために提案されました。4年後の1981年、EMクラークEAエマーソンはCTLとCTLモデル検査を発明しました。CTL*は1983年にEAエマーソンジョセフ・Y・ハルパーンによって定義されました。[1]

CTLとLTLはCTL*より前に独立して開発されました。どちらのサブロジックもモデル検査コミュニティの標準となっていますが、CTL*はこれらのロジックや他のロジックを表現・比較するための表現力豊かなテストベッドを提供するため、実用上重要です。これは驚くべきことです[要出典] 。なぜなら、 CTL*におけるモデル検査の計算量はLTLよりも悪くないからです。どちらもPSPACE内にあります

構文

整形式の CTL* 式言語、次のような明確な(括弧に関して)文脈自由文法によって生成されます。

ここで、 は一連の原子式の範囲を取ります。有効なCTL*式は非終端記号 を用いて構築されます。これらの式は状態式と呼ばれ、記号 によって作成される式はパス式と呼ばれます。(上記の文法には冗長性が含まれています。例えば、含意と同値性は、ブール代数(または命題論理)においてのみ、否定と連言から と定義でき、他の2つは時相演算子XUで定義できます)

演算子は基本的にCTLと同じです。ただし、CTLではすべての時間演算子( )の直前に量指定子を置く必要がありますが、CTL*ではこれは必須ではありません。普遍パス量指定子は、CTL*では古典的な述語論理と同様に定義できますが、CTLフラグメントでは定義できません。

数式の例

  • LTL でも CTL でもない CTL* 式:
  • CTL にない LTL 式:
  • LTL にない CTL 式:
  • CTL と LTL にある CTL* 式:

注意: LTL を CTL* のサブセットとして扱う場合、すべての LTL 式には暗黙的にユニバーサル パス量指定子が接頭辞として付けられます

セマンティクス

CTL* の意味論は、あるクリプキ構造に関して定義されます。その名前が示すように、状態式はこの構造の状態に関して解釈され、経路式はこの構造上の経路に関して解釈されます。

州の公式

クリプキ構造の状態が状態式を満たす場合、それは と表記されます。この関係は次のように帰納的に定義されます。

  1. すべてのパス
  2. から始まるいくつかのパス

パス式

パス式とパスの満足関係も帰納的に定義されます。このために、部分パスを次のように表記します

意思決定の問題

CTL*モデル検査(固定モデル上の入力式)はPSPACE完全[2]であり、充足可能性問題は2EXPTIME完全である。[2] [3]

参照

参考文献

  1. ^ エマーソン、E. アレン;ハルパーン、ジョセフ Y. (1983)。 」「時々」と「決してない」の再考」。第10回ACM SIGPLAN-SIGACTプログラミング言語原理シンポジウム- POPL '83議事録。pp.  127– 140。doi :10.1145/567067.567081。ISBN 0897910907. S2CID  15728260。
  2. ^ ab Baier, Christel ; Katoen, Joost-Pieter (2008-01-01). モデル検査の原理 (表現と心のシリーズ). MIT Press. ISBN 978-0262026499
  3. ^ Orna Kupferman ; Moshe Y. Vardi (1999年6月). 「Churchの問題再考」. Bulletin of Symbolic Logic . 5 (2): 245– 263. doi :10.2307/421091. JSTOR  421091. S2CID  18833301.
Retrieved from "https://en.wikipedia.org/w/index.php?title=CTL*&oldid=1294122656"