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

359 Views Asked by At

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):

enter image description 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.

2

There are 2 best solutions below

2
On

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.

0
On

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)$