These problems can be either observations that need to be explained (as in classical abduction) or goals to be achieved (as in normal logic programming).
where: Normally, the logic program P does not contain any clauses whose head (or conclusion) refers to an abducible predicate.
The clauses in P define a set of non-abducible predicates and through this they provide a description (or model) of the problem domain.
A problem, G, which expresses either an observation that needs to be explained or a goal that is desired, is represented by a conjunction of positive and negative (NAF) literals.
Thus abductive explanations extend the logic program P by the addition of full or partial definitions of the abducible predicates.
Quality criteria to prefer one solution over another, often expressed via integrity constraints, can be applied to select specific abductive explanations of the problem G. Computation in ALP combines the backwards reasoning of normal logic programming (to reduce problems to sub-problems) with a kind of integrity checking to show that the abductive explanations satisfy the integrity constraints.
The potential solution of becoming a citizen by residence and naturalization fails because it violates the integrity constraint.
The abductive logic program below describes a simple model of the lactose metabolism of the bacterium E. coli.
The program, P, describes (in its first rule) that E. coli can feed on the sugar lactose if it makes two enzymes permease and galactosidase.
This can arise either as an observation to be explained or as a state of affairs to be achieved by finding a plan.
This goal has two abductive explanations: The decision which of the two to adopt could depend on additional information that is available, e.g. it may be known that when the level of glucose is low then the organism exhibits a certain behaviour – in the model such additional information is that the temperature of the organism is low – and by observing the truth or falsity of this it is possible to choose the first or second explanation respectively.
Moreover, abduction in ALP can simulate negation as failure in normal logic programming.
[3] Conversely, it is possible to simulate abduction in ALP using negation as failure with the stable model semantics.
This technique for simulating abduction is commonly used in answer set programming to solve problems using a generate and test methodology.
The formal semantics of the central notion of an abductive explanation in ALP can be defined in the following way.
of ground atoms on abducible predicates such that: This definition leaves open the choice of the underlying semantics of logic programming through which we give the exact meaning of the entailment relation
is consistent, can be sufficient, meaning that there exists at least one model (possible ensuing world) of the extended program where the integrity constraints hold.
In practice, in many cases, these two ways of formalizing the role of the integrity constraints coincide as the logic program and its extensions always have a unique model.
Most of the implementations of ALP extend the SLD resolution-based computational model of logic programming.
Examples of systems of the former approach are ACLP, A-system, CIFF, SCIFF, ABDUAL and ProLogICA.