In the first part we have seen the concept of Set theory and relational theory. In this part we are going to learn about the concept of predicate logic.

**Part II – Predicate Logic**

**What is logic?**

Logic is a language for reasoning and is a collection of rules we use when doing reasoning. In logic we are interested in true or false of statements, and how the truth/falsehood of a statement can be determined from other statements. There are various types of logic such as logic of sentences (propositional logic), logic of objects (predicate logic), logic involving uncertainties, logic dealing with fuzziness, temporal logic etc.

*Propositional logic* is logic at the sentential level. The smallest unit we deal with in propositional logic is a sentence. Sentences considered in this logic are not arbitrary sentences but are the ones that are true or false. This kind of sentences is called *proposition*. For example, “Grass is green”, and “2 + 5 = 5” are propositions. The first proposition has the truth value of “true” and the second “false”. But “Close the door”, and “Is it hot outside?” are not propositions. Also “x is greater than 2”, where x is a variable representing a number, is not a proposition, because unless a specific value is given to x we cannot say whether it is true or false, nor do we know what x represents.

Let **P** be the proposition “It is snowing”, **Q** be the proposition “I will go the beach”, and **R** be the proposition “I have time”, then the English sentence, “I will go to the beach if it is not snowing” is restated as “If it is not snowing, I will go to the beach”. This can be represented as symbols as below:

**¬****P **-> **Q**

The symbols are called connectives and below is the list of connectives and there meaning.

**¬ **– NOT

^ – AND

v – OR

-> – IF THEN (or IMPLY)

<-> – IF AND ONLY IFF

Similarly, “It is not snowing and I have time only if I will go to the beach” is restated as “If it is not snowing and I have time, then I will go to the beach”, and it is translated as (**¬****P **^ **R**) -> **Q.**

**Predicate Logic**

The propositional logic is not powerful enough to represent all types of assertions that are used in computer science and mathematics, or to express certain types of relationship between propositions such as equivalence. For example, the assertion “x is greater than 1”, where x is a variable, is not a proposition because you cannot tell whether it is true or false unless you know the value of x. Thus the propositional logic cannot deal with such sentences. However, such assertions appear quite often in mathematics and we want to do inference on those assertions.

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

Consider the following sentences:

- “John gives the book to Mary”
- “Jim gives a loaf of bread to Tom”
- “Jane gives a lecture to Mary”

We can derive a template here. The template is “……gives……to…..”. This template is called a predicate and it describes a relationship among three objects. The predicate can be written as *G(x, y, z).* The x, y, and z are the variables. So *G(John, Book, Mary)* represents “John gives the book to Mary and *G(Jane, lecture, Mary)* represents “Jane gives a lecture to Mary”.

I’m omitted some other aspects of predicate logic like, quantifiers, well-formed formula (wff) etc. since these are not relevant in our discussions on relational model at present.

**Next**

So we have covered two fundamental theories of relational model viz. set theory and predicate logic. In the next section we will merge these concepts to build the relational model