→Example 4: better colorize Prolog code in text, to improve optical distinction between e.g. "normal(X)" and "in normal logic programming"; BTW: I guess, the new predicate abnormal(X) is obtained by suitably renaming the abduction result? - this should be explained in text
Here the predicate <kbdsyntaxhighlight inline lang="prolog">normal()</kbdsyntaxhighlight> is abducible, and the abducible condition <kbdsyntaxhighlight inline lang="prolog">normal(X)</kbdsyntaxhighlight> corresponds to the negative literal <kbdsyntaxhighlight inline lang="prolog">not(abnormal(X))</kbdsyntaxhighlight> in normal logic programming. The constraint <kbdsyntaxhighlight inline lang="prolog">false :- normal(X), wounded(X)</kbdsyntaxhighlight> ensures that the abducible condition is not assumed when the condition <kbdsyntaxhighlight inline lang="prolog">wounded(X)</kbdsyntaxhighlight> also holds. This is like ensuring that <kbdsyntaxhighlight inline lang="prolog">not(abnormal(X))</kbdsyntaxhighlight> succeeds when <kbdsyntaxhighlight inline lang="prolog">wounded(X)</kbdsyntaxhighlight> fails.
The goal of explaining the observation <kbdsyntaxhighlight inline lang="prolog">canfly(mary)</kbdsyntaxhighlight> has the solution <kbdsyntaxhighlight inline lang="prolog">normal(mary)</kbdsyntaxhighlight>. The same solution justifies the answer <kbdsyntaxhighlight inline lang="prolog">X = mary</kbdsyntaxhighlight> for the goal: