# Reasoning with incomplete information

# 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.