This is a very common from of non-monotonic reasoning. Here We want to draw conclusions based on what is most likely to be true.
We have already seen examples of this and possible ways to represent this knowledge.
We will discuss two approaches to do this:
DO NOT get confused about the label Non-Monotonic and Default being applied to reasoning and a particular logic. Non-Monotonic reasoning is generic descriptions of a class of reasoning. Non-Monotonic logic is a specific theory. The same goes for Default reasoning and Default logic.
This is basically an extension of first-order predicate logic to include a modal operator, M. The purpose of this is to allow for consistency.
For example: : plays_instrument(x) improvises(x) jazz_musician(x)
states that for all x is x plays an instrument and if the fact that x can improvise is consistent with all other knowledge then we can conclude that x is a jazz musician.
How do we define consistency?
One common solution (consistent with PROLOG notation) is
to show that fact P is true attempt to prove . If we fail we may say that P is consistent (since is false).
However consider the famous set of assertions relating to President Nixon.
: Republican(x) Pacifist(x) Pacifist(x)
: Quaker(x) Pacifist(x) Pacifist(x)
Now this states that Quakers tend to be pacifists and Republicans tend not to be.
BUT Nixon was both a Quaker and a Republican so we could assert:
This now leads to our total knowledge becoming inconsistent.
Default logic introduces a new inference rule:
which states if A is deducible and it is consistent to assume B then conclude C.
Now this is similar to Non-monotonic logic but there are some distinctions: