11 Closed World Assumption

As in the Relational Model, Predica adopts the closed world assumption (CWA). In Predica this follows directly from its treatment of predicates and from the fact that every attribute stores the extension of a unary predicate. Under the CWA, the extension of a predicate is taken to be complete: every fact that holds is recorded, and every fact not recorded is taken to not hold.

For a value type such as:


value Circle
{
    Point centre;
    Real radius;
}

the attribute centre is the unary predicate whose extension contains all and only the centres of the circle. Likewise, radius records all and only the radii of the circle. If a value does not appear in the extension of an attribute, Predica interprets this as meaning that the value is not a centre (or radius) of the circle.

This behaviour is fundamental to Predica’s logical operators. Negation, difference, and constraint subtraction all rely on the assumption that the recorded extensions are complete. Without the CWA, these operators would not have a well-defined meaning.

The closed world assumption does not restrict the kinds of predicates that may be defined. A predicate’s extension may record facts about the actual world, or it may record what is known, believed, permitted, required, possible, or otherwise modal in character. The closed world assumption applies only to the chosen extension: whatever belongs to that extension is taken to be completely recorded for the purpose of logical inference, regardless of the interpretation of the predicate itself.