# Logical and non logical symbols and predicates

I am going through the text from "R.Brachmann and H.Levesque: Knowledge representation and reasoning". Here it has been described(in page 15) that there are two types of symbols : the logical symbols and the non logical symbols.

Logical symbols are the ones that have a fixed meaning and the non logical ones are the ones having application dependent meaning.

What I find confusing is "variables" having classified as logical ones whereas functions symbols have been classified as non logical ones.

I don't know whether I should be confusing this with the context of programming languages or not but variables also don't have fixed meanings and they too are created for application dependent use.

Shouldn't they both be in the same slot?

Now for predicates, I do not understand what exactly is a predicate? Do predicates mean the same thing as relations like "greater than", "less than"? If yes, then can there be an infinite variety of predicates? I can think of only this "lesser than ", "greater than", "equal to". What are some more examples of predicates?

P.S : Sorry about the predicate part , perhaps the following link contains a lot about it : https://stackoverflow.com/questions/6337778/predicate-vs-functions-in-first-order-logic

• I cannot open your first link, can you check this? – ttnick Mar 18 '18 at 21:31
• The link to the book doesn't work. Could you please give the full title, authors and publisher? – David Richerby Mar 18 '18 at 21:55

A predicate is basically a set or a function from your universe $A$ to $\{0, 1\}$ (belongs to the set or not). More examples for that are edge relations or any kind of property you can assign to an object (e.g. male, female when $A$ is the set of all humans).
In FO you can distinguish non-logical symbols from logical symbols by looking at their interpretations via a structure. Constants, functions, and relations are assigned by this structure. Variables are not non-logical symbols because they do not change their meanings when you vary the structure you use for the interpretation of the formula. However, they also have no fixed meaning (compared to $\exists, \wedge, \neg, \ldots$), so you do not have to count them as logical symbols either.