检查等效的CTL公式

时间:2015-09-17 10:11:41

标签: model boolean-expression boolean-operations model-checking ctl

我正在进行CTL练习,我正在尝试检查以下公式是否相同。但我不确定我做得对不对。

EF (p or q) = EF(p) or EF(q) ? 
AF(p or q) = AF(p) or AF(q) ? 
A(p U ( A(q U r) )) = A(A(p U q) U r) ? 

公式:等价

第二个公式:等价

第三个公式:等效

是不是? 如果错了你能给我一个Kripke模型中可能的反例吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

我会尝试使用此处定义的CTL的语义:Wikipedia about CTL

(I) 证明EF (p or q) = EF(p) or EF(q)

(M, s1) |= EF (p or q)*

<=> (Def. of EF)

There is s1->s2->... such that there is an i >= 1 such that (M, s_i) |= (p or q)

<=> (Def. of or)

There is s1->s2->... such that is an i >= 1 such that ((M, s_i) |= p OR ((M, s_i) |= q)

<=> (Equivalence rules for predicate logic)


(There is s1->s2->... such that is an i >= 1 such that ((M, s_i) |= p)
 OR 
(There is s1->s2->... such that is an i >= 1 such that ((M, s_i) |= q)

<=> (Def. of EF)

EF(p) or EF(q)

所以等价是有效的。

(II)

AF(p or q) = AF(p) or AF(q)

假设具有三个状态S0,S1,S2的Kripke结构,让S0为初始状态。 在S0中,p nor q都不成立,在S1中只有p成立,在S2中只有q成立。

过渡是:

S0 -> S1
S0 -> S2
S1 -> S1
S2 -> S2

S1形成SCC,S2形成SCC。 AF(p或q)适用于此Kripke结构,因为(p或q)适用于除S0之外的所有状态,并且每个序列都会达到S1或S2。 AF(p)或AF(q)怎么样? AF(p)不成立,因为存在序列S0 S2 S2 S2 ...其中没有p出现。 AF(q)不成立,因为存在序列S0 S1 S1 S1 ...其中没有出现q。

对于(III):有趣的证明,可能使用上面使用的技术:)