12.8. Reasoning with incomplete information#
Give the models of the program
bird(tweety).
ostrich(tweety).
flies(X):-bird(X),not abnormal(X).
abnormal(X):-ostrich(X).
(interpreting the general clause as the corresponding indefinite clause). Which one is the intended model (see Section 2.4)?
The models are
{ bird(tweety), ostrich(tweety), abnormal(tweety) }
{ bird(tweety), ostrich(tweety), abnormal(tweety), flies(tweety) }
i.e. Tweety, being an ostrich, is an abnormal bird which may or may not fly. The intended model is the first one, since we have no reason to assume that ostriches fly.
The Herbrand base of this program is
{ likes(peter,peter), likes(peter,paul),
likes(paul,peter), likes(paul,paul),
student_of(peter,peter), student_of(peter,paul),
student_of(paul,peter), student_of(paul,paul) }
The atoms student_of(paul,peter)
and likes(peter,paul)
are true in every model. If the atom student_of(peter,peter)
is true, then so is the atom likes(peter,peter)
(three possibilities). Disregarding the other four atoms, we obtain the following models:
{ student_of(paul,peter), likes(peter,paul) }
{ student_of(paul,peter), likes(peter,paul), likes(peter,peter) }
{ student_of(paul,peter), student_of(peter,peter), likes(peter,paul), likes(peter,peter) }
Taking the four remaining atoms into account, we obtain \(3*2^4=48\) models. (See also Exercise 2.6.)
The completion of this program is
The first formula states that somebody is wise if and only if he is not a teacher; the second formula says that Peter is wise if and only if he is a teacher. Together, these two statements are inconsistent.