==Default reasoning in ALP==
As shown in<ref>{{cite report | url=https://www.cs.ubc.ca/~poole/papers/Theorist-CS-86-06.pdf |first1=David |last1=Poole |first2=Randy |last2=Goebel |first3=Romas |last3=Aleliunas | title=Theorist: A Logical Reasoning System for Defaults and Diagnosis | institution=Univ. Waterloo | type=Research Report | number=CS-86-06 | date=Feb 1986 }}</ref><ref>{{cite book | url= |first1=David |last1=Poole |first2=Randy |last2=Goebel |first3=Romas |last3=Aleliunas | contribution=Theorist: A Logical Reasoning System for Defaults and Diagnosis | pages=331–352 | doi=10.1007/978-1-4612-4792-0 | isbn=978-1-4612-9158-9 | editor1=Nick J. Cercone | editor2= Gordon McCalla | title= The Knowledge Frontier – Essays in the Representation of Knowledge | ___location=New York, NY | publisher=Springer | series=Symbolic Computation | volume= | edition=1st | year=1987 |s2cid=38209923 }}</ref>, abduction can also be used for [[default reasoning]].
Moreover, abduction in ALP can simulate [[negation as failure]] in normal logic programming.
Consider the classic example of reasoning by default that a bird can fly if it iscannot consistent tobe assumeshown that the bird canis flyabnormal. The exampleHere canis bea formulatedvariant naturallyof asthe anexample abductiveusing logicnegation program.as Herefailure isin anormal variantlogic of the exampleprogramming:
<syntaxhighlight lang="prolog">
canfly(X) :- bird(X), normal_flying_birdnot(abnormal_flying_bird(X)).
false :- normal_flying_birdabnormal_flying_bird(X),:- wounded(X).
bird(john).
bird(mary).
</syntaxhighlight>
Here is the same example using an abducible predicate <syntaxhighlight inline lang="prolog">normal_flying_bird(_)</syntaxhighlight> with an integrity constraint in ALP:
Here the predicate <syntaxhighlight inline lang="prolog">normal_flying_bird(_)</syntaxhighlight> is abducible. It is possible to conclude <syntaxhighlight inline lang="prolog">canfly(mary)</syntaxhighlight> under the assumption <syntaxhighlight inline lang="prolog">normal_flying_bird(mary)</syntaxhighlight>. The assumption and conclusion are acceptable because it cannot be shown that <syntaxhighlight inline lang="prolog">wounded(mary).</syntaxhighlight> In contrast, it is not possible to conclude <syntaxhighlight inline lang="prolog">canfly(john),</syntaxhighlight> because the assumption <syntaxhighlight inline lang="prolog">normal_flying_bird(john)</syntaxhighlight> together with the fact <syntaxhighlight inline lang="prolog">wounded(john)</syntaxhighlight> violates the integrity constraint. ▼
The example can be reformulated in normal logic programming without abduction, by using [[negation as failure]] with a non-abducible predicate <syntaxhighlight inline lang="prolog">abnormal_flying_bird(_),</syntaxhighlight> which is the contrary of the abducible predicate <syntaxhighlight inline lang="prolog">normal_flying_bird(_)</syntaxhighlight>: ▼
<syntaxhighlight lang="prolog">
canfly(X) :- bird(X), not(abnormal_flying_birdnormal_flying_bird(X)).
abnormal_flying_birdfalse :- normal_flying_bird(X):-, wounded(X).
bird(john).
bird(mary).
</syntaxhighlight>
▲The example can be reformulated in normal logic programming without abduction, by using [[negation as failure]] with a non-abducible predicate <syntaxhighlight inline lang="prolog"> abnormal_flying_birdnormal_flying_bird(_),</syntaxhighlight> which is the contrary of the abducible predicate <syntaxhighlight inline lang="prolog"> normal_flying_birdabnormal_flying_bird(_)</syntaxhighlight> :.
In general, reasoning by means of abduction in ALP simulates reasoning by negation as failure in normal logic programming.<ref>Eshghi, K. and Kowalski, R.A., 1989, June. Abduction Compared with Negation by Failure. In ICLP (Vol. 89, pp. 234-255).</ref> Conversely, negation as failure with the [[stable model semantics]] can simulate abduction in ALP.
▲HereUsing theabduction predicatein <syntaxhighlightALP inline lang="prolog">normal_flying_bird(_)</syntaxhighlight> is abducible. Itit is possible to conclude <syntaxhighlight inline lang="prolog">canfly(mary)</syntaxhighlight> under the assumption <syntaxhighlight inline lang="prolog">normal_flying_bird(mary)</syntaxhighlight>. The conclusion can be derived from the assumption andbecause conclusionit arecannot acceptablebe shown that the integrity constraint is violated, which is because it cannot be shown that <syntaxhighlight inline lang="prolog">wounded(mary).</syntaxhighlight> In contrast, it is not possible to conclude <syntaxhighlight inline lang="prolog">canfly(john),</syntaxhighlight> because the assumption <syntaxhighlight inline lang="prolog">normal_flying_bird(john)</syntaxhighlight> together with the fact <syntaxhighlight inline lang="prolog">wounded(john)</syntaxhighlight> violates the integrity constraint. This manner of reasoning in ALP simulates reasoning with negation as failure.<ref>Eshghi, K. and Kowalski, R.A., 1989, June. Abduction Compared with Negation by Failure. In ICLP (Vol. 89, pp. 234-255).</ref>
InConversely, theit generalis case,possible to simulate abduction in ALP using negation as failure with the [[stable model semantics]]. This can be simulateddone by adding, for every abducible predicate <syntaxhighlight inline lang="prolog">p,</syntaxhighlight> an additional contrary predicate <syntaxhighlight inline lang="prolog">negp,</syntaxhighlight> and a pair of clauses:
<syntaxhighlight lang="prolog">
p :- not(abpnegp).
abpnegp :- not(p).
</syntaxhighlight>
whereThis <syntaxhighlightpair inlineof lang="prolog">abp</syntaxhighlight>clauses ishas atwo predicatestable representingmodels, theone contraryin ofwhich <syntaxhighlight inline lang="prolog">p,</syntaxhighlight> is true, and neitherthe <syntaxhighlightother inline lang="prolog">abp</syntaxhighlight>in norwhich <syntaxhighlight inline lang="prolog">pnegp,</syntaxhighlight> are abducible.<ref>Kakas,is Atrue.C., Kowalski,This R.A.technique andfor Toni,simulating F.,abduction 1992. Abductive logicis commonly used in [[answer set programming.]] Journalto ofsolve logicproblems using a ''generate and computation,test'' 2(6), ppmethodology.719-770.</ref>
==Formal semantics==
|