CTL等效性检查

时间:2014-01-02 16:23:59

标签: ctl

我被告知以下CTL公式不相同。但是,我找不到一个模型,其中一个是真的而另一个不是。 CTL是一种计算时态逻辑。

公式1:AF p OR AF q
公式2:AF( p OR q )

第一个说:对于从开始状态开始的所有路径,有一个未来,其中p为从开始状态开始的所有路径保持OR,存在q保持的未来。

第二种:对于从开始状态开始的所有路径,存在p OR q保持的未来。

1 个答案:

答案 0 :(得分:0)

该模型有点棘手。首先,应该注意 AF(p OR q)意味着 AF p或AF q 。因此,我们正在寻找一种模型,其中 AF(p OR q)为真,但 AF p或AF q 为假。

我假设您熟悉M. Huth和M. Ryan在计算机科学教科书中描述的Kripke模型符号(见http://www.cs.bham.ac.uk/research/projects/lics/)。

设M =(S,R,L)是一个模型,其中S = {s0,s1,s2}作为可能状态的集合,R = {(s0,s1),(s0,s2),(s1 ,s1),(s1,s2),(s2,s2)}作为过渡关系,L是如下定义的标记函数:L(s0)= {}(空集),L(s1)= {p }和L(s2)= {q}。

假设起始状态是s0。很明显, AF(p OR q)保持在s0。但是,s0不满足 AF p OR AF q 。为了证明这一点,我们必须证明 s0不满足 AF p * * s0不满足 AF q

因为我们可以选择路径s0 - >,所以在s0不满足

AF p 。 s2 - > s2 - > s2 - > ...

类似地,在s1处不满足 AF q ,因为我们可以选择路径s0 - > s1 - > s1 - > s1 - > ...