What's the difference between predicate and propositional logic?

Propositional logic (also called sentential logic) is logic that includes sentence letters (A,B,C) and logical connectives, but not quantifiers. The semantics of propositional logic uses truth assignments to the letters to determine whether a compound propositional sentence is true.

Predicate logic is usually used as a synonym for first-order logic, but sometimes it is used to refer to other logics that have similar syntax. Syntactically, first-order logic has the same connectives as propositional logic, but it also has variables for individual objects, quantifiers, symbols for functions, and symbols for relations. The semantics include a domain of discourse for the variables and quantifiers to range over, along with interpretations of the relation and function symbols.

Many undergrad logic books will present both propositional and predicate logic, so if you find one it will have much more info. A couple of well-regarded options that focus directly on this sort of thing are Mendelson's book or Enderton's book.

This set of lecture notes by Stephen Simpson is free online and has a nice introduction to the area.


Propositional logic is an axiomatization of Boolean logic. As such predicate logic includes propositional logic. Both systems are known to be consistent, e.g. by exhibiting models in which the axioms are satisfied.

Propositional logic is decidable, for example by the method of truth tables:

[Truth table -- Wikipedia]

and "complete" in that every tautology in the sentential calculus (basically a Boolean expression on variables that represent "sentences", i.e. that are either True or False) can be proven in propositional logic (and conversely).

Predicate logic (also called predicate calculus and first-order logic) is an extension of propositional logic to formulas involving terms and predicates. The full predicate logic is undecidable:

[First-order logic -- Wikipedia]

It is "complete" in the sense that all statements of the predicate calculus which are satisfied in every model can be proven in the "predicate logic" and conversely. This is a famous theorem by Gödel (dissertation,1929):

[Gödel's completeness theorem -- Wikipedia]

Note: As Doug Spoonwood commented, there are formalizations of both propositional logic and predicate logic that dispense with axioms per se and rely entirely on rules of inference. A common presentation would invoke only modus ponens as the single rule of inference and multiple axiom schemas. The important point for a formal logic is that it should be possible to recognize (with finite steps) whether a claim in a proof is logically justified, either as an instance of axiom schemas or by a rule of inference from previously established claims.


A proposition is a statement that is having a truth value(either true or false) associated with it. Where a predicate is a statement whose truth value is dependent upon the variables. Example: $P(n) : n$ is an odd integer. Where a domain is a set of all integers. Here, $P(n)$ is dependent upon $n$.
Example $3+3= 6$ is a proposition.


I think this example from "Overview of proposition and predicate logic " by Jan Kuper gives a suitable explanation. In proposition logic, we can express statements as a whole, and combinations of them. Intuitively, a statement is a sentence in which something is told about some reality, and which can be true or false about that reality. For example, if p is the statement ”Albert is at home”, and q means ”the door is locked”, then q→¬p says: ”if the door is locked, then Albert is not at home”.

In first-order predicate logic, a statement has a specific inner structure, consisting of terms and predicates. Terms denote objects in some reality, and predicates express properties of, or relations between those objects. For example, the same example as before might be expressed as Locked(d) → ¬AtHome(a). Here, Locked and AtHome are predicates, and d and a are terms, all with obvious meanings.


Added to the already proposed answers, another track may be recursion. Looking at this:

P = (Q ∨ P)

Would one say this is True where both P and Q are the same or False otherwise, or would one says “don't know” as it presents an infinite recursion?

Seen as a proposition, this can be reduced to P = Q with P and Q given; seen as a predicate (predicate as in Prolog), this will be infinitely recursive.

Note: I came to this topic precisely due to an ambiguous interpretation of the example given above, which made me have the same question as the OP.