Проверьте эквивалентные формулы 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) ? 

Формула Firt: Эквивалент

Вторая формула: эквивалент

Третья формула: эквивалент

Это правильно? Если вы не правы, не могли бы вы привести один из возможных контрпримеров в модели Крипке?

Заранее спасибо.

1 ответ

Я попытаюсь использовать семантику CTL, определенную здесь: Википедия о CTL.

(Я) Для доказательства 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, пусть S0 будет начальным состоянием. В S0 нет p nor q держит, только в S1 p держит, только в S2 q держит.

Переходы:

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

S1 образует SCC, а S2 образует SCC. AF(p или q) выполняется для этой структуры Крипке, поскольку (p или q) выполняется для ВСЕХ состояний, кроме S0, и в конечном итоге каждая последовательность достигает S1 или S2. А как насчет AF (p) или AF(q)? AF(p) НЕ выполняется, поскольку существует последовательность S0 S2 S2 S2 ..., где p не появляется. AF (q) не выполняется, поскольку существует последовательность S0 S1 S1 S1 ..., где q не появляется.

Для (III): весело проведите время, доказывая это, возможно с методами, использованными выше:)

Другие вопросы по тегам