•
accessible
(
Bi
, [
Х
|
Rest
]
, Bj
):-
transition
(
Bi
,
X, Bk
),
accessible
(
Bk
,
[
Rest
],
Bj
) — рекурсивное правило достижимости состояния
Bj
из состояния
Bi
.
Рассмотрим процессный граф переходов, показанный на рис. 1.
Здесь есть пара путей
(
b
1
,
?
a
1
.
!
a
1
, b
2
)
и
(
b
1
,
?
nota
1
.
!
e, b
2
)(
b
2
,
?
nota
2
.
!
e,
b
3
)(
b
3
,
?
a
1
.
!
a
3
, b
4
)
. Первый путь содержит один переход, на котором в
ответ на восприятие
?
a
1
осуществляется реакция
!
a
1
. Во втором пу-
ти последним переходом является переход
(
b
3
,
?
a
1
.
!
a
3
, b
4
)
, на котором
в ответ на восприятие
?
a
1
выполняется реакция
!
a
3
. Применительно
к проверке корректности сетевых экранов (как это будет ясно далее)
при определенной интерпретации наличие двух таких путей на про-
цессном графе переходов недопустимо. Тогда логическая программа
должна обнаруживать подобные пары путей.
Логическая схема программы (псевдокод) на языке VISUAL
PROLOG 5.0 для процессного графа переходов графа, приведенно-
го на рис. 1, позволяющая обнаружить наличие указанной пары путей,
будет следующей:
domains
f
=
f
(
symbol
)
list
=
f
*
predicates
nondeterm transition
(
symbol, symbol, symbol
)
nondeterm accessible
(
symbol, list, symbol
)
clauses
transition
(
b
1,
f
(?
a
1,!
a
1),
b
2).
transition
(
b
1,
f
(?not
a
1,! !
e
),
b
2).
transition
(
b
2,
f
(?
a
2.!
a
2),
b
3).
transition
(
b
2,
f
(?not
a
2, !
e
),
b
3).
transition
(
b
3,
f
(?
a
1,!
a
3),
b
4).
Рис. 1. Процессный граф переходов
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2015. № 1 103