Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

I need to to understand the difference between predicates and functions in the context of Clasual Form Logic in order to define the Herbrand universe.

If I have p(x) :- q(f(x)) would I be right in saying that p and q are predicates while f is a function because it is "nested"? By this thinking then if I have p(x) :- q(x) both p and q are predicates and I have no functions?

If this is incorrect then how can I tell the difference between a predicate and function?

share|improve this question
add comment

2 Answers

up vote 6 down vote accepted

A predicate is a box that takes an argument and returns a Boolean value. For example, "$x \mapsto x \text{ is even}$".

A function is a box that takes an argument and returns a value. For example, "$x \mapsto x^2$".

Edit (following Amy's suggestions): There is some domain over which all variables range. A function takes zero or more arguments of that domain and returns another argument from that domain. A predicate takes zero or more arguments of that domain and returns a Boolean value.

share|improve this answer
    
By your definition, then, since a predicate returns a "value" (albeit a specific kind of value: Boolean), is it also a function, whereby a function includes predicates, but also includes "boxes" that return non-boolean values? Just hoping to clarify for OP. –  amWhy May 17 '11 at 19:40
    
I don't understand: if a function takes arguments in a domain D and returns another argument in D, then how about a function from R to Q? I think a good distinction is that a predicate is an expression that ascribes a property to some thing or things (to subject(s) in your choice of universe), and has a singleton as input (more than one input, you get a relation). A function from X to Y assigns a single value in Y to each value of X. –  gary Jun 19 '11 at 20:29
add comment

A predicate is a function that returns true or false.

Source: http://stackoverflow.com/questions/6337778/predicate-vs-functions-in-first-order-logic

share|improve this answer
    
Apologizes for opening an old thread, but I felt to clarify. Thanks :) –  Jayant Nov 27 '13 at 14:52
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.