Листинг А.2. Трассировка решения задачи Р4
CLIPS> (reset)
==> f-0 (initial-fact)
==> f-1 (world (tag 1) (scope truth) (context 0))
==> f-2 (statement (speaker A)
(claim OR F A T B) (reason 0) (tag 1))
CLIPS> (run)
FIRE 1 unwrap-trues f-1,f-2
Assumption
A is a knight, so (OR F A T B) is true.
==> f-3 (claim (content OR F A T B)
(reason 1) (scope truth) (context 0))
==> f-4 (claim (content T A) (reason 1)
(scope truth) (context 0)) FIRE 2 left-or: f-1,f-3
==> f-5 (claim (content F A) (reason 1)
(scope truth) (context 1))
<== f-1 (world (tag 1) (scope truth) (context 0))
==> f-6 (world (tag 1) (scope truth) (context 1))
FIRE 3 contra-truth-scope: f-6,f-4,f-5
Disjunct 1 is inconsistent with earlier truth context.
<== f-5 (claim (content F A) (reason 1)
(scope truth) (context 1)) FIRE 4 right-or: f-6,f-3 .
==> f-7 (claim (content Т В) (reason 1)
(scope truth) (context 2))
<== f-6 (world (tag 1) (scope truth)
(context 1))
==> f-8 (world (tag 1) (scope truth)
(context 2))
FIRE 5 consist-truth: f-8, f-2
Statement is consistent:
<== f-8 (world (tag 1) (scope truth) (context 2))
==> f-9 (world (tag 1) (scope consist) (context 2))
FIRE 6 true-knight: f-9, f-7
В is a knight
<== f-7 (claim (content Т В) (reason 1)
(scope truth) (context 2))
FIRE 7 true-knight: f-9,f-4
A is a knight
<== f-4 (claim (content Т A) (reason 1)
(scope truth) (context 0))
CLIPS>