Re: Interpretation of Relations

From: Joe Thurbon <usenet_at_thurbon.com>
Date: Wed, 24 Jan 2007 09:43:45 GMT
Message-ID: <2007012419432382327-usenet_at_thurboncom>


On 2007-01-24 00:38:09 +1000, "JOG" <jog_at_cs.nott.ac.uk> said:

> Joe Thurbon wrote:
> 

>> On 2007-01-23 12:23:37 +1000, "JOG" <jog_at_cs.nott.ac.uk> said:
>>
>>> Well comparing:
>>> F1 = P(a, b, c)
>>> F2 = Ep x(p,a) ^ y(p,b) ^ z(p,b)
>>> 
>>> I'd certainly consider F1 and F2 different propositions.

>>
>> I was a bit terse (I was trying to get a reply in before work) - I
>> didn't mean to suggest that the approaches were equivalent. In fact, I
>> think there is some real merit in the F2 approach (if I understand it).
>>
>> One thing concerns me, though. Where do the 'p's come from? The only
>> interpretation I can make of them are that they are the 'things' which
>> the 'facts' are about. Or are you actually quantifying over predicates?
>> (In which case you're using 2nd order logic).
> 
> Yes I'm intending to quantify over predicates, so absolutely 2nd order
> logic.

I'm going to be on shaky ground then, but here we go! Any comments I make about 2nd order logic below should be taken with an appropriate grain of salt.

> This in turns gives me a lot of intuitive set theory notation if
> I can align it to make any sense.

>>
>>> F1 comments
>>> about the real world directly, whereas in a sense F2 is commenting
>>> about F1 (especially given it starts with existential quantifier,
>>> 'there is a proposition').

>>
>> In FOL, you don't quantify over propositions, you quantify over
>> constants. So you are talking about 2nd order logic (which is fine, I
>> just know close to nothing about it). At this point, I'm actually
>> unsure how to read F2 above.
> 
> I'd read F2 := Ep x(p,a) ^ y(p,b) ^ z(p,b) as "There is a proposition
> in which Role x has Value a, Role y has Value b and Role Y has value
> c".

The problem for this interpretation is that a predicate takes as arguments Constants from a Domain. So if x above is a binary predicate, then its arguments can be either quantifed variables or constants. They can't be other predicates. (This is certainly true of 1st order logic, I'm pretty sure that it's true of 2nd order, too).

So, if you've got what Wikipedia seems to call a domain of discourse, but I always called a set of constants. When your logical theory is a theory about 'things' in the world, the convention is that the elements of this set of constants denote particular 'things' in the 'real world'. But they needn't do so.

Lets call it

D = {joe, jog}.

Then you have a set of predicates, which are functions from tuples-of-elements-from-D to truth values.

For example,

P = {has_corresponded_with(x, y), likes_pizza(x)}

There are a few other constructs, too, like functions, connectives (operators), etc, but this is not a tutorial, and now we have enough to demonstrate my issue with your formulae above.

In first order logic, you quantify over D. In second order logic, you can quantify over either D or P, but not both at the same point in a formula. Either way, predicates cannot be used as 'arguments' to other predicates. Only constants, or variables quantified over D.

So

Exists(x in D) has_corresponded_with(joe, x)

is a well formed formula, but

Exists(x in D) has_corresponded_with(likes_pizza(joe), x)

is not, and neither is (now we're in 2nd order land)

Exists(x in P) has_corresponded_with(x, joe)

But, I think your intuition is right! You do need to make statements about the 'facts' asserted in the database.

[...]

> If you could elaborate on this, then I'd appreciate that. I don't want > to get caught up a blind alley logically.

I hope the above clears it up.

[...]

I'll email you a formal treatment of what I think you are trying to say. I won't post it because it's quite similar to what I posted a while ago, and probably only of interest to you. If anyone else is still reading, I'll be happy to post it here, too.

Cheers,
Joe Received on Wed Jan 24 2007 - 10:43:45 CET

Original text of this message