1.1 Logic Formulas 5
which is in a certain relation with some other individuals. For example the sentence
“Mary has a child” can be formalized as the formula:
∃X child of (X, mary)
On occasion the logical connectives “∨”and“↔” are used. They formalize the con-
nectives “or” and “if and only if” (“iff”).
So far individuals have been represented only by constants. However it is often
the case that in the world under consideration, some “individuals” are “composed
objects”. For instance, in some world it may be necessary to discuss relations between
families as well as relations between persons. In this case it would be desirable to
refer to a given family by a construction composed of the constants identifying the
members of the family (actually what is needed is a function that constructs a family
from its members). The language of logic offers means of solving this problem. It is
assumed that its alphabet contains symbols called functors that represent functions
over object domains. Every functor has assigned a natural number called its arity,
which determines the number of arguments of the function. The constants can be
seen as 0-ary functors. Assume now that there is a ternary
3
functor family, a binary
functor child and a constant none. The family consisting of the parents Bill and Mary
and children Tom and Alice can now be represented by the construction:
family(bill, mary, child(tom, child (alice, none)))
Such a construction is called a compound term.
The above informal discussion based on examples of simple declarative sentences gives
motivation for introducing basic constructs of the language of symbolic logic. The kind
of logic used here is called predicate logic. Next a formal definition of this language
is given. For the moment we specify only the form of allowed sentences, while the
meaning of the language will be discussed separately. Thus the definition covers only
the syntax of the language separated from its semantics.
From the syntactic point of view logic formulas are finite sequences of symbols such
as variables, functors and predicate symbols. There are infinitely many of them and
therefore the symbols are usually represented by finite strings of primitive characters.
The representation employed in this book usually conforms to that specified in the
ISO standard of the programming language Prolog (1995). Thus, the alphabet of the
language of predicate logic consists of the following classes of symbols:
• variables which will be written as alphanumeric identifiers beginning with capital
letters (sometimes subscriped). Examples of variables are X,Xs,Y,X
7
,...;
• constants which are numerals or alphanumeric identifiers beginning with lower-
case letters. Examples of constants are x, alf ,none,17,...;
• functors which are alphanumeric identifiers beginning with lower-case letters
and with an associated arity > 0. To emphasize the arity n of a functor f it is
sometimes written in the form f/n;
3
Usually the terms nullary, unary, binary and ternary are used instead of 0-ary, 1-ary, 2-ary and
3-ary.