Re: predicate in a predicate
- From: Jan Burse <janburse@xxxxxxxxxxx>
- Date: Thu, 06 Dec 2007 19:31:31 +0100
Keenlearner schrieb:
or Can I have a predicate in the predicate, so that I can generalized
the "live" predicate ?
live( John, in(Bali) )
live( John, with(Marry) )
You can have this in FOL. But its not a predicate in a predicate,
its a function in a predicate.
And it even makes sense in appropriate models. For example in
a term model, you could have.
live(john,in(bali)).
live(john,with(marry)).
In term models you have equality and inequality. For two
different function symbols f1 and f2 you have in a term
model:
forall x f1(x)<>f2(x) (*)
Thus the in and with can function as a selector, and
will broaden the meaning of live.
This technique is often seen in logic programming. At
the end of the day (in term models), you can
work with either one of the following forms:
live(john,bali,in)
live_in(john,bali)
live(john,in(bali))
live(in(john,bali))
in(bali,live(john))
You will get similar results. Its a matter of what
else requirements you have.
There is no such thing as compliance with FOL. FOL
is very flexible and you have a vaste design space
how to solve a problem.
Best Regards
(*) K. L. Clark. Negation as failure. In H. Gallaire and J. Minker, editors, Logic and Data Bases, pages 293{322. Plenum Press,
New York, 1978.
.
- References:
- predicate in a predicate
- From: Keenlearner
- predicate in a predicate
- Prev by Date: Re: Enderton problem
- Next by Date: Re: Enderton problem
- Previous by thread: Re: predicate in a predicate
- Next by thread: Re: predicate in a predicate
- Index(es):
Loading