Re: Interpretation of Relations

From: JOG <jog_at_cs.nott.ac.uk>
Date: 24 Jan 2007 05:06:10 -0800
Message-ID: <1169643970.619548.214320_at_k78g2000cwa.googlegroups.com>


On Jan 24, 9:43 am, Joe Thurbon <use..._at_thurbon.com> wrote:
> On 2007-01-24 00:38:09 +1000, "JOG" <j..._at_cs.nott.ac.uk> said:
>
>
>
> > Joe Thurbon wrote:
>
> >> On 2007-01-23 12:23:37 +1000, "JOG" <j..._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.

Thanks for this Joe. Just to clarify this, my limited knowledge of SOL began with considering that say we had:

Shape(Cube) ^ Shape(Sphere) ^ Shape(Cylinder) ...

Where Cube, Sphere, Cylinder, etc, are themselves predicates, then in SOL we can do powerful stuff such as express the claim that no object has every shape in a way that brings out the quantifier in every shape:

¬Ex AP(Shape(P) -> P(x))

O.k., a rather odd predicate, but nevertheless so far so good. The problem is that I then took the step (that seemed intuitive at the time but now looks rather naive) in assuming that in SOL I could use a predicate name as some sort of constant within _any_ other predicate. E.g. Sides(Cube, 3), whereas I should more correctly be stating: Cube(a) -> Sides(a, 3).

I know what I want to do with a database but expressing it formally has been more frustrating than I had expected.

>
> 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 - 14:06:10 CET

Original text of this message