Predicate logic


Courtesy of this site, we have a nice succint definition of a predicate:

A predicate is a verb phrase template that describes a property of objects, or a relationship among objects represented by the variables.

The statement Mat is right can be thus represented by the arbitrary object Mat as it applies to the predicate “is_right” represented by capital R:


Or for a different verb template, “Mat gives to the world a lesson in being right” where the template reads “[object] gives to [object] an [object]”, the predicate can be expressed as Give(x,y,x) or G(x,y,z):

G(Mat,world,lesson in being right)

Fine. Hardly stretches the old wheat and grain.

(New rhyming slang invention.)

But then I come unstuck.

The page then gives us a little test as follows:

Let G(x,y) represent the predicate x > y

  • G(6,13) means 13 is greater than 6. Yes or no?

… obviously this is a no, because according to the ordering of the predicate definition, the first value should be greater than the second.

Computer says “correct”!

  • G(2,0) is true. Yes or no?

… well, yes, 2 is greater than 0.

Computer says “correct”!

(Interestingly we have now invoked an assertion outside of the predicate definition, one which depends on us being aware of what “greater than” actually means in the real world. I can just about cope. But I’m scared.)

  • G(7,1) means 7 is greater than 1. Yes or no?

Well, that’s exactly how the predicate reads. As an aside to this, seven is indeed greater than one, although that wasn’t the question that was asked.

Computer says “correct”! (Well at least to the first bit!)

  • “4 is less than 5” can be represented by G(5,4). Yes or no?

I answered NO. Maybe you can see why already, from my comments.

Computer says “incorrect”.

Mat says “does not compute does not compute”

Can someone shed some light on this? I’m sure I’m missing something very basic.

My reason for answering NO was that, regardless of the values, it doesn’t follow that if x is greater than y, then the opposite is definitely not true. This is because the predicate “is_less_than” is not even defined in this exercise, in order for us to say that it’s the opposite to the predicate “is_greater_than”.

If it read

“blue is greater than green” can be represented by G(blue,green)

… then I would agree: yes. But,

that “green is less than blue” can be represented by G(blue,green)

… is surely never true.

I prefer these object values of green and blue when dealing with a mathematical construct “is greater than”, they are more arbitrary than actual numbers and therefore helpful in abstracting predicate logic from the functions it seeks to convey.

If the predicate “is_less_than” were to be defined, then it still wouldn’t hold true, not until we have also defined “is_equal_to”.

Consider the question:

“5 is less than 5” can be represented by G(5,5). Yes or no?

The fact that 5 is not less than 5 is largely irrelevant in answering this question. Of course, 5 is NOT less than 5 in the real world – but the real world has nothing to do with predicate logic. The reason the above is NO is because the predicate “is_equal_to” has still not been defined.

I’m making such a big thing about the ‘real world’, because have we not also applied some non-predicate mathematics to our workings out when answering that second question posed by the website?

I’m down with that shit, but it would have been nice to know in advance, right? Especially as all the other questions were ones of veracity of equivalence rather than truth in the real world.

So – someone help me out on this.

Is Mat Right?

R(Mat) is true?


2 Responses

  1. David

    April 3, 2009 3:01 am

    Well, you’ve caused me an hour and half of head scratching and I’ve still yet to arrive at a rigorous explanation. Much of the problem being the lack of formalisation in the cited article leading to major ambiguities.

    What we are discussing here is First Order Logic (FOL) and although it is a formal deductive system used in linguistics and philosophy it is interpreted by mathematical structures. Herein lies the problem of trying to take the maths out of logic. You’ve taken the red pill because talking about seemingly simple stuff in a generalised fashion means getting very deep.

    My set (group and field too) theory is rather rusty having graduated in 1999 but I’m just getting a feel again for why I did maths in the first place. You have a healthy non-acceptance of non-rigorous statements which means I’m going to have to root out some proper definitions. Browsing wikipedia has revealed the need to discuss propositional functions, indicator functions, relations, axioms and then your on to really fundamental questions about existence, consistency and completeness.

    I really want to make the time to at least come up with an intuitive proof. I think a formal one is out of the question. So I’ll have to get back to you on this as I must first repose your question in a mathematical way.

  2. martin

    April 13, 2009 4:34 pm

    G(6,13) means ‘6 is greater than 13’. If the computer says it means something else then the computer is wrong. (My computer refuses to run the applet, so it’s probably written in some non-standard microsoft goo-language anyway.)

    Of course we are not being asked for the truth-value of the statement here, only the meaning implied by the syntax.

    As to whether x ‘is less than’ y can be taken to mean the same as y ‘is greater than’ x is indeed a moot point. Of course it does, but we haven’t been told so.

    I agree, the exercise is sloppy. I suggest you write to the webmaster and point this out.

Leave a Reply