すべてのまともなLTLからBuchiへの変換またはその他のLTL検証アルゴリズムの最も簡単な実装は何ですか?


8

私はおもちゃのモデルチェッカーを書いており、LTLからBuchiへのオートマトン変換を実装する段階にきました。

さまざまな明白な理由から、アルゴリズムは単純であることを望みます:)たとえば、コードをできるだけ長く、簡潔かつ簡潔にしておく必要があります。

私は複数のチュートリアルで説明されている「ローカルオートマタ+偶然性オートマトン」のアプローチを見てきましたが、実装/理解するのは簡単ではないようです(正確性の証明は非常に大きい)。だから私はそれを後悔しないと確信するまでそれを実装しません:)

したがって、この翻訳の単純で効率的なアルゴリズム、またはおそらく単純で非効率的なアルゴリズムについて説明している論文への参照に感謝します。Buchiオートマトンの最小化に関する論文も歓迎します:)

...あるいは、LTL検証に興味深い代替アプローチはありますか?

参考までに、ここにLTLからBuchiへの変換アルゴリズムの系図を示しますhttp://spot.lip6.fr/wiki/LtlTranslationAlgorithms。誰もがこれらについて何か言うことができますか?

回答:


8

SPOTウェブサイトに記載されていない構造の1つは、Demri&Gastinによる調査、2009年の論理を使用した仕様と検証で与えられています。教えるのに適しています(私がそれを使用する方法です)が、実装のデバッグにも役立つ場合があります。私はそれがSPOTによって使用されるものよりも効率的であることを賭けません。

ω


ありがとう、まさに私が探していたもの!私はさらに多くの答えが来ることへの希望を失っていませんが:)
jkff

2

私は交互のオートマトンを通過する翻訳を考えます。(Vardiの論文「Alternating Automata and program validation」を参照してください)。これは、LTLから代替オートマトンへの非常にエレガントな変換であり、Mihano Ayashi(エレガントでもあります。二重のサブセット構造です)を使用して、非決定的なBuchiオートマトンに到達できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.