next up previous
Next: Isa and instance relationships Up: Predicate logic Previous: Predicate logic

An example

Consider the following:

and try to draw the conclusion: Prince's car consumes a lot of petrol.

So we can translate Prince is a mega star into: mega_star(prince) and Mega stars are rich into: tex2html_wrap_inline7176m: mega_star(m) tex2html_wrap_inline7156 rich(m)

Rich people have fast cars, the third axiom is more difficult:

Assume cars is a relation then axiom 3 may be written: tex2html_wrap_inline7176c,m: car(c,m)tex2html_wrap_inline7186rich(m) tex2html_wrap_inline7156 fast(c).

The fourth axiom is a general statement about fast cars. Let consume(c) mean that car c consumes a lot of petrol. Then we may write: tex2html_wrap_inline7176 c:tex2html_wrap_inline7204 fast(c) tex2html_wrap_inline7206 m:car(c,m) tex2html_wrap_inline7156 consume(c) tex2html_wrap_inline7210.

Is this enough? NO! -- Does prince have a car? We need the car_of function after all (and addition to car): tex2html_wrap_inline7176 c:car(car_of(m),m). The result of applying car_of to m is m's car. The final set of predicates is: mega_star(prince) tex2html_wrap_inline7176 m: mega_star(m) tex2html_wrap_inline7156 rich(m) tex2html_wrap_inline7176 c:car(car_of(m),m). tex2html_wrap_inline7176 c,m: car(c,m) tex2html_wrap_inline7186 rich(m) tex2html_wrap_inline7156 fast(c). tex2html_wrap_inline7176 c:tex2html_wrap_inline7204 fast(c) tex2html_wrap_inline7206 m:car(c,m) tex2html_wrap_inline7156 consume(c) tex2html_wrap_inline7210. Given this we could conclude: consume(car_of(prince)).



dave@cs.cf.ac.uk