Next: Implementations: Truth Maintenance Systems Up: Non-Monotonic Reasoning Previous: Default reasoning

### Circumscription

Circumscription is a rule of conjecture that allows you to jump to the conclusion that the objects you can show that posses a certain property, p, are in fact all the objects that posses that property.

Circumscription can also cope with default reasoning.

Suppose we know: bird(tweety)

: penguin(x) bird(x)

: penguin(x) flies(x)

and we wish to add the fact that typically, birds fly.

In circumscription this phrase would be stated as:

A bird will fly if it is not abnormal

and can thus be represented by:

: bird(x) abnormal(x) flies(x).

However, this is not sufficient

We cannot conclude

flies(tweety)

since we cannot prove

abnormal(tweety).

This is where we apply circumscription and, in this case,

we will assume that those things that are shown to be abnormal are the only things to be abnormal

Thus we can rewrite our default rule as:

: bird(x) flies(x) abnormal(x)

: abnormal(x)

since there is nothing that cannot be shown to be abnormal.

If we now add the fact:

penguin(tweety)

Clearly we can prove

abnormal(tweety).

If we circumscribe abnormal now we would add the sentence,

a penguin (tweety) is the abnormal thing:

: abnormal(x) penguin(x).

Note the distinction between Default logic and circumscription:

Defaults are sentences in language itself not additional inference rules.

dave@cs.cf.ac.uk