# Using a truth table to test argument validity in predicate logic with finite domain.

I'm just making the transition from propositional logic to predicate logic and I was wondering how we would use truth tables to test the validity of an argument expressed in predicate logic.

Example

Say, our universe of discourse comprises two smurfs named Clumsy and Hefty. I have the following argument:

Clumsy is a smurf.
All smurfs are blue.
Therefore, Clumsy is blue.

I translated this into predicate logic as follows:

$$S(x)$$ - "x is a smurf"
$$B(x)$$ - "x is blue"

Premises:
P1. $$S(c)$$
P2. $$\forall x B(x)$$
Conclusion:
$$∴ B(c)$$

Assuming that I have expressed the argument correctly, let

• $$S(c)$$ - "Clumsy is a smurf"
• $$S(h)$$ - "Hefty is a smurf"
• $$B(c)$$ - "Clumsy is blue"
• $$B(h)$$ - "Hefty is blue"

Then I can make a truth table as follows (the table can be viewed/edited here):

Questions:

• Have I expressed the argument correctly?
• Is my truth table correct?

I wasn't quite sure how to check the premise "all smurfs are blue" in the truth table. I basically just broke the predicate $$\forall x B(x)$$ down into two statements (one for each smurf in the universe): $$S(c) ⇒ B(c)$$ and $$S(h) ⇒ B(h)$$. Then to assess validity, I checked that the conclusion was true for all lines where $$S(h)$$, $$S(c) ⇒ B(c)$$ and $$S(h) ⇒ B(h)$$ are all true. Since the conclusion is always true when all the premises are true (see highlighted rows), I concluded that the argument must be valid.

EDIT: On second thoughts, I think $$\forall x B(x)$$ should be $$S(c) ⇒ B(c) \land S(h) ⇒ B(h)$$, but the highlighted rows would remain unchanged, so it wouldn't affect the conclusion that the argument is valid.

• Caution: Just because a conclusion is a consequence of the premises doesn't mean an argument is valid, especially if the argument contains intermediate claims between them. Sep 16 at 23:45
• Thanks @aschepler, by "intermediate claims", do you mean $S(c)⇒B(c)$ and $S(h)⇒B(h)$? I really wasn't sure about these, so I wouldn't be surprised if they are incorrect. I just figured that saying $∀xB(x)$ is tantamount to requiring $S(x)⇒B(x)$ for all objects in our domain. Sep 17 at 0:06
• This argument has no intermediate claims, just premises and a conclusion. Yes, it's strange to use $\forall x B(x)$, which says "everything is blue". In that case, it doesn't matter what is or isn't a smurf: $\forall x B(x)$ as the only premise justifies $B(c)$. I'd write "all smurfs are blue" as $\forall x (S(x) \rightarrow B(x))$. (Though if the universe contains exactly the two objects $c$ and $h$, then yes, $(S(c) \rightarrow B(c)) \land (S(h) \rightarrow B(h))$ is equivalent.) Sep 17 at 0:27
• Is the purpose here to evaluate claims given a fixed universe of discourse, or to find an appropriate universe of discourse for examining the truth of a given claim? Sep 17 at 0:29
• Just to clarify, by $\forall x B(x)$, I meant $\forall x \in U (B(x))$, where $U = \{Clumsy, Hefty\}$. Sep 17 at 0:44

Yes, assuming that the domain is finite, you can indeed use a truth table to check the validity of an argument involving a first-order statement (though even though you can, you probably SHOULDN'T do it; more on this towards the end of the answer).

The reason for this is that the universal quantifier is, essentially, just a big block of conjuctions. Saying e.g.

$$\forall x\in\{6,3,8\}:P(x)$$

is (by definition) the same as saying

$$P(6)\land P(3)\land P(8)$$

Essentially, the (finitely domained) first-order statement has now been decomposed into ordinary propositions, so naturally it is possible to use them in a truth table. That being said, you probably SHOULDN'T do it either way; the truth tables will become exponentially bigger and less intuitive as the domain expands. Instead, you should be using the laws of inference instead. They have the great benefits of being MUCH more intuitive, as well as also working on infinite domains.

In your example, a more intuitive way to prove the validity of the argument would be as follows;

First of all, we know (by the rule of inference) that

$$\forall x(S(x)\implies B(x))$$

implies

$$S(c)\implies B(c)$$

Going back to the original problem, we have

$$S(c) \land \forall x(S(x)\implies B(x))$$

As discussed above, this implies

$$S(c) \land (S(c)\implies B(c))$$

Which obviously implies $$B(c)$$

If you want to make the proccess even easier to understand (though a bit longer, and limited to a finite domain), you can also just express the first-order statement as a block of conjuctions of propositions and go from there;

$$S(c) \land \forall x\in\{c, h\}(S(x)\implies B(x))$$

$$\iff S(c) \land (S(c)\implies B(c)) \land (S(h)\implies B(h))$$

$$\implies(S(c) \land (S(c)\implies B(c)))$$

$$\implies B(c)$$

I was wondering how we would use truth tables to test the validity of an argument expressed in predicate logic.

We wouldn't. You can not use truth tables in predicate logic.

The only case where this works is if the formula is merely a first-order instance of a propositional tautology, i.e. a formula that can be obtained by inserting predicate logic formulas for propositional variables in a propositionally valid formula. E.g. $$\forall x P(x) \lor \neg \forall x P(x)$$, which is just an instance of $$p \lor \neg p$$ with $$\forall x P(x)$$ taking the place of $$p$$.

But we can not look "inside" the atomic formulas and reason about how individuals and predicates relate to each other using this method. There just exists no such thing as truth tables for predicate logic.

• Thanks @lemontree, but what if the domain were small, wouldn't we be able to enumerate all possible combinations of truth assignments for all objects in the domain (like I've done in the table in my post) and then evaluate validity just as we would in propositional logic? Sep 17 at 3:07
• Yes, as long as the domain is finite, we can technically do it. So your idea isn't all wrong, it's just that it doesn't generalize, and isn't standard practice. Dark Rebellion's answer explains it well. Sep 19 at 19:23