Formal Logic/Predicate Logic/The Predicate Language

From testwiki
Jump to navigation Jump to search

Template:Formal Logic:TOCPageNav


The Predicate Language

This page informally describes our predicate language which we name 𝒫. A more formal description will be given in subsequent pages.

Language components

Use of 𝒫 occurs in the context of a domain of objects. Ascribing a property to 'everything' is only interpreted as ascribing it to everything in the domain.

Definitions

Variables serve as placeholders in general statements for objects in the domain of discourse. We will use the lower case letters n through z as variables. Frequently, variables correspond to pronouns in statements. For instance, consider the statement 'For any number, if it is even then it is not odd.' Introducing the variable x produces 'For any number x, if x is even then x is not odd.'

An operation letter is a function that takes a fixed number of objects (or variables representing objects) and returns an object in the domain. We write operation letters as lower case letters a through m. An operation letter that takes n objects is called an n-place operation letter. Zero-place operation letters are allowed and merely represent a fixed object. Usually, the context is sufficient to determine the number of places of each operation letter.

For examples on this page, we also allow numerals (0,1,2,...) as zero-place operation letters.

A term is any of the following:

  • A variable
  • A zero-place operation letter.
  • An n-place operation letter (with n1) followed by a parenthesized list of n terms.

Examples include x,y,z (variables); a,b,c (zero-place operation letters); f(c) (1-place operation letter f operating on c); and g(x,f(c)) (2-place operation letter g operating on x and f(c)).

If a term contains no variables, then it is called a name. Each name specifies a particular object in the domain, whereas terms containing variables do not.

Examples

For the remainder of this page, assume the following translations.

c :  Cainf(x) :  the father of xg(x,y) :  the greater of x and y

With the right set of characters in the domain, c names Cain, and (according to Biblical tradition) f(c) names Adam.

The term g(x,y) is not a name because it contains variables. Then the terms g(7,3) and g(3,3), however, name 7 and 3 respectively (assuming that 7 and 3 are in the domain).

Primitive formulae

A predicate letter is a function that takes a fixed number of objects (or variables representing objects) and returns a sentence letter. Predicate letters will consist of capital letters A through Z. The same symbols will be used for predicate letters of any number of places, so, as with operation letters, we sometimes need to specify the number of places but usually can rely on context. Notice that zero-place predicate letters are sentence letters we are familiar with from sentential logic.

A primitive formulae is either one of the following:

  • A zero-place predicate letter (that is, a sentence letter).
  • An n-place predicate letter (with n1) followed by a parenthesized list of n terms.

Examples include

P
F(f(c))
G(g(x,y),u,v)

Examples

Image showing Yul Brynner is bald
Image of Yul Brynner
Image showing Don King is not bald
Image of Don King

If P translates 'Snow is white', then it is true. However, it is false if it translates 'Snow is blue'.

Suppose we add the following translations to the translations above:

F(x) :  x is bald
b :  Yul Brenner
k :  Don King

We say that F is true of all bald things and false of all non-bald things. Thus F(b) is true while F(k) is false. Whether F(f(c)) is true or false depends on whether Adam was bald.

Now add

G(x,y,z) :  x is between y and z

to the translations above. Then G(g(x,y),u,v) is neither true nor false because x and y are variables that do not name anything, nor do the variables u or v. But if we substitute numbers for the variables, then the G(g(3,3),1,4) is true while G(g(7,3),1,4) is false.

Sentential connectives

The predicate language 𝒫 will use sentential connectives just as they were used in the sentential language 𝒮. These were:

¬, , , , and 

Using the translations already set above (together with letting numerals be zero-place operation letters),

F(f(d))G(g(7,3),1,4)

is true while

F(f(d))G(g(7,3),1,4)

is false.

Quantifiers

Quantifiers are special symbols that allow us to construct general sentences which are about all thing or about some (at least one) things.

Universal quantifier: 

  • x translates to English as 'for all x'.
  • x F(x) is called a universal generalization.
  • x F(x) is true if F(x) is true of all objects in the domain. Roughly speaking, it is true if
F(a1)F(a2)...F(an)
where each (ai) names an object in the domain and all objects in the domain are named. This is only a rough characterization, however. First, we do not require that all objects in the domain have a name in the predicate language. Second, we allow there to be infinitely many objects in the domain but do not allow infinitely long sentences.
  • Some authors use (x) instead of x. This notation is semi-obsolete and is becoming ever less frequent.

Existential quantifier: 

  • x translates to English as 'there exists an x' or, perhaps a bit more clearly, 'there exists at least one x'.
  • x F(x) is called an existential generalization.
  • x F(x) is true if F(x) is true of at least one object in the domain. Roughly speaking, it is true if
F(a1)F(a2)...F(an)
where each (ai) names an object in the domain and all objects in the domain are named. This is only a rough characterization, however. First, we do not require that all objects in the domain have a name in the predicate language. Second, we allow there to be infinitely many objects in the domain but do not allow infinitely long sentences.

Translation

Using the translation scheme

F(x) :  x is a number
G(x) :  x is prime

we translate as follows.

All numbers are prime.
x(F(x)G(x))
Some numbers are prime.
x(F(x)G(x))
No numbers are prime.    (two equivalent alternatives are given)
x(F(x)¬G(x))
¬x(F(x)G(x))
Some numbers are not prime.
x(F(x)¬G(x))


Now using the translation scheme

P(x) :  x is a person
L(x,y) :  x loves y
g :  George
m :  Martha

we can translate as follows.

George loves Martha.
L(g,m)
Martha loves George.
L(m,g)
George and Martha love each other.
L(g,m)L(m,g)


We can further translate as follows.

Everybody loves everybody.    (the second alternative assumes only persons in the domain)
x(P(x)y(P(y)L(x,y)))
xyL(x,y)
Somebody loves somebody.    (the second alternative assumes only persons in the domain)
x(P(x)y(P(y)L(x,y)))
xyL(x,y)
Everybody loves somebody (or other).    (the second alternative assumes only persons in the domain)
x(P(x)y(P(y)L(x,y)))
xyL(x,y)
Somebody is loved by everybody.    (the second alternative assumes only persons in the domain)
yx(P(y)(P(x)L(x,y)))
yxL(x,y)
Everybody is loved by somebody (or other).    (the second alternative assumes only persons in the domain)
xy(P(x)P(y)L(y,x))
xyL(y,x)
Somebody loves everybody.    (the second alternative assumes only persons in the domain)
yx(P(y)(P(x)L(y,x)))
yxL(y,x)