3.2.3. Реализация других временных операторов
Рекурсивные уравнения для операторов INEV и SOME имеют следующий
вид:
T,s ╞ INEV(p1,p2), если T,s ╞ p2 ∨ (p1 & PRETILDA INEV(p1,p2)).
T,s ╞ SOME(p1,p2), если T,s ╞ p2 & (∼p1 ∨ PRE SOME(p1,p2)).
Ниже приводится прологовская реализация данных операторов, включая
ограничительные условия:
inev(P1,P2,L,S):-inl(S,L),!,fail.
inev(P1,P2,L,S):-P2=..K,insert(K,[S],P00),P02=..P00,call(P02),
!.
inev(P1,P2,L,S):-arc(S,T,S1),
!,
P1=..K,insert(K,[S],P0),P01=..P0,call(P01),
pretilda(inev(P1,P2),[S|L],S).
some(P1,P2,L,S):-inl(S,L),
!.
some(P1,P2,L,S):-P2=..K,insert(K,[S],P0),P02=..P0,call(P02),
non(arc(S,T,S1)),
!.
some(P1,P2,L,S):-P2=..K,insert(K,[S],P00),P02=..P00,call(P02),
P1=..T,insert(T,[S],P0),P01=..P0,
non(P01),
!.
some(P1,P2,L,S):-P2=..K,insert(K,[S],P0),P02=..P0,call(P02),
pre(some(P1,P2),[S|L],S).
Некоторые упрощения
Ниже приводятся некоторые упрощения представления операторов
временной логики. Во-первых, список l используется только в ходе