next up previous contents index
Next: Stratified Normal Programs Up: Using Tabling in XSB: Previous: Tabled Predicates and Tracing   Contents   Index

Normal Programs

Normal programs extend definite programs to include default negation, which posits a fact as false if all attempts to prove it fail. As shown in Example 1.0.1, which presented one of Russell's paradoxes as a logic program, the addition of default negation allows logic programs to express contradictions. As a result, some assertions, such as shaves(barber,barber) may be undefined, although other facts, such as shaves(barber,mayor) may be true. Formally, the meaning of normal programs may be given using the well-founded semantics and it is this semantics that XSB adopts for negation (we note that in Version 2.5 the well-founded semantics is implemented only for variant-based tabling).



Subsections

Luis Fernando P. de Castro 2003-06-27