PHIL 220. Introduction to Logic
A row of a truth table settles the truth value of a formula of propositional logic relative to an assignment of truth values to its basic sentence letters.
A model settles the truth value of a formula of quantificational logic relative to an interpretation of its basic predicates and constants and a domain.
The argument is invalid in propositional logic.
To appreciate the validity of the argument, we must look inside the sentences and ask:
A model answers exactly these three questions.
| propositional logic | quantificational logic | |
|---|---|---|
| an interpretation is… | a row of a truth table | a model |
| it fixes… | a truth value for each letter | a domain, denotations, and extensions |
| how many are there? | \(2^n\) rows for \(n\) letters | infinitely many |
| valid iff… | no row: premises T, conclusion F | no model: premises T, conclusion F |
Domain, denotations, and extensions.
A model for quantificational logic consists of three ingredients:
The extension of a predicate depends on the number of places it has:
| predicate | extension | example |
|---|---|---|
| one-place \(P\_\) for ‘__ is a city’ |
a list of items in the domain | LA, SD |
| two-place \(R\_ \ \_\) for ’__ is north of __’ |
a list of ordered pairs of items | [SF, LA], [LA, SD] |
| three-place \(S\_\ \_ \ \_\) for ’__ is closer to __ than to __’ |
a list of ordered triples of items | [LA, SD, SF] |
Order matters: if [LA, SD] is in the extension of \(R\), then we know that LA is \(R\)-related to SD, not that SD is \(R\)-related to LA. Think of \(R\) as: ’__ is north of __’. LA is north of SD, but SD is not north of LA.
A model only records which objects fall under each predicate. It is silent as to what the predicate means.
Is there an interpretation on which all of these formulas come out true?
domain: LA, SD, SF
denotations:
\(a\): LA
\(b\): SD
extensions:
\(P\_\): LA, SD
\(Q\_\): SF
\(R\_ \ \_\): [LA, LA], [LA, SD], [SD, SD]
\(Rab\) is true in this model because the denotation of \(a\), namely, LA, is \(R\)-related to the denotation of \(b\), namely SD:
Predict each truth value first. Then press:
Evaluate in Model.
All three are true.
\(Qa \to Pa\) is true because \(Qa\) is false in the model:
Use \(0, 1, 2\) instead of LA, SF, SD.
domain: \(0, 1, 2\)
denotations:
\(a\): 0
\(b\): 1
extensions:
\(P\_\): 0, 1
\(Q\_\): 2
\(R\_ \ \_\): [0,0], [0,1], [1,1]
Only the pattern matters, not what objects we choose.
Carnap requires domains to consist of numbers \(0, 1, 2, \dots\)
Find a model in which all three formulas are true.
Work through the forced choices first:
domain: 0, 1, 2
denotations:
\(a\): 0,
\(b\): 1
\(c\): 2
extensions:
\(P\_\): 0
\(Q\_\): 1
\(R\_\_\): [0, 1]
Other models should work as well.
Could \(c\) denote 1?
Only the domain is filled in. Choose denotations and extensions, then press Evaluate in Model.
Find a model in which the premises are true and the conclusion false.
What is it for a formula, whether open or closed, to be true in a model under an assignment?
Is the open formula \(Py\) true in the model?
domain: 0, 1, 2
extensions:
\(P\_\): 0
The question has no answer yet.
\(y\) is not a constant, and the model does not tell us what it stands for.
A variable is like a pronoun: ‘it is \(P\)’ is true or false only once we settle what ‘it’ refers to.
Recall that \(y\) is free in \((Py \wedge \exists x \ Rxy)\):
An assignment \(\alpha\) over a model \(M\) assigns an item in the domain of \(M\) to each variable.
| \(x\) | \(y\) | \(z\) | \(x_1\) | \(y_1\) | \(z_1\) | \(\dots\) |
|---|---|---|---|---|---|---|
| 1 | 0 | 2 | 1 | 0 | 2 | \(\dots\) |
domain: 0, 1, 2
denotations:
\(a\): 0
\(b\): 1
\(c\): 2
extensions:
\(P\_\): 0
\(R\_ \ \_\): [0, 1], [1, 2]
| \(x\) | \(y\) | \(z\) | \(x_1\) | \(y_1\) | \(z_1\) | \(\dots\) |
|---|---|---|---|---|---|---|
| 1 | 0 | 2 | 1 | 0 | 2 | \(\dots\) |
We use this model and this assignment for the next few slides.
An atomic formula \(P\tau_1 \dots \tau_n\) is true in \(M\) under \(\alpha\) iff the items denoted by \(\tau_1, \dots, \tau_n\) fall, in that order, under the extension of \(P\) in \(M\).
| \(x\) | \(y\) | \(z\) | \(x_1\) | \(y_1\) | \(z_1\) | \(\dots\) |
|---|---|---|---|---|---|---|
| 1 | 0 | 2 | 1 | 0 | 2 | \(\dots\) |
\(Py\)
\(y\) is assigned 0, and 0 is on the list for \(P\). True.
\(Rxz\)
[1, 2] is on the list for \(R\). True.
\(Rzx\)
[2, 1] is not on the list. False. Order matters.
\(Rbz\)
[1, 2] is on the list. True.
| \(x\) | \(y\) | \(z\) | \(x_1\) | \(y_1\) | \(z_1\) | \(\dots\) |
|---|---|---|---|---|---|---|
| 1 | 0 | 2 | 1 | 0 | 2 | \(\dots\) |
\(\neg Rxy\)
\(Rxy\) asks whether [1, 0] is on the list for \(R\).
It is not, so \(Rxy\) is false and \(\neg Rxy\) is true.
\(Py \wedge Rxc\)
\(Py\): 0 is on the list for \(P\).
\(Rxc\): [1, 2] is on the list for \(R\).
Since both conjuncts are true, \(Py \wedge Rxc\) is true.
| \(x\) | \(y\) | \(z\) | \(x_1\) | \(y_1\) | \(z_1\) | \(\dots\) |
|---|---|---|---|---|---|---|
| 1 | 0 | 2 | 1 | 0 | 2 | \(\dots\) |
\(Rxx \vee Rax\)
\(Rxx\): [1, 1] is not on the list.
\(Rax\): [0, 1] is on the list.
Since one disjunct is true, \(Rxx \vee Rax\) is true.
\(Rxy \to Rxx\)
\(Rxy\): [1, 0] is not on the list.
Since \(Rxy\) is false, \(Rxy \to Rxx\) is true.
We input a variable assignment (\(\alpha\)) to the model checker.
Evaluate:
Press Show steps to see the clauses at work.
Change \(\alpha\): which truth values change?
\(\exists v \ \varphi\) and \(\forall v \ \varphi\).
To evaluate \(\exists x \ Px\), we consider different values for \(x\) while leaving every other variable alone.
An assignment \(\beta\) is a \(v\)-variant of an assignment \(\alpha\) iff \(\beta\) differs from \(\alpha\) at most in the value it assigns to \(v\).
\(\alpha\)
| \(x\) | \(y\) | \(z\) | \(x_1\) | \(y_1\) | \(z_1\) | \(\dots\) |
|---|---|---|---|---|---|---|
| 1 | 0 | 2 | 1 | 0 | 2 | \(\dots\) |
an \(x\)-variant \(\beta\) of \(\alpha\)
| \(x\) | \(y\) | \(z\) | \(x_1\) | \(y_1\) | \(z_1\) | \(\dots\) |
|---|---|---|---|---|---|---|
| 2 | 0 | 2 | 1 | 0 | 2 | \(\dots\) |
‘At most’: \(\alpha\) is an \(x\)-variant of itself.
With a domain of three items, \(\alpha\) has exactly three \(x\)-variants, one for each value of \(x\).
\(x \mapsto 0\)
| \(x\) | \(y\) | \(z\) | \(x_1\) | \(y_1\) | \(z_1\) | \(\dots\) |
|---|---|---|---|---|---|---|
| 0 | 0 | 2 | 1 | 0 | 2 | \(\dots\) |
\(x \mapsto 1\) (this is \(\alpha\) itself)
| \(x\) | \(y\) | \(z\) | \(x_1\) | \(y_1\) | \(z_1\) | \(\dots\) |
|---|---|---|---|---|---|---|
| 1 | 0 | 2 | 1 | 0 | 2 | \(\dots\) |
\(x \mapsto 2\)
| \(x\) | \(y\) | \(z\) | \(x_1\) | \(y_1\) | \(z_1\) | \(\dots\) |
|---|---|---|---|---|---|---|
| 2 | 0 | 2 | 1 | 0 | 2 | \(\dots\) |
\(\exists v \ \varphi\) is true in \(M\) under \(\alpha\) iff \(\varphi\) is true in \(M\) under some \(v\)-variant of \(\alpha\).
Find a witness: some object we can assign to \(v\), leaving \(\alpha\) otherwise unchanged, that makes \(\varphi\) true.
\(\exists x \ Px\)
Find a witness: assign 0 to \(x\) and leave \(\alpha\) otherwise unchanged.
\(Px\) becomes true. True.
\(\exists z \ (Pz \wedge \neg Rzz)\)
Find a witness: assign 0 to \(z\).
0 is \(P\), and [0, 0] is not on the list for \(R\). True.
\(\forall v \ \varphi\) is true in \(M\) under \(\alpha\) iff \(\varphi\) is true in \(M\) under every \(v\)-variant of \(\alpha\).
Look for a counterexample: a value for \(v\), leaving \(\alpha\) otherwise unchanged, that makes \(\varphi\) false. If there is none, \(\forall v \ \varphi\) is true.
\(\forall x \ Px\)
Counterexample: assign 1 to \(x\).
\(Px\) becomes false. False.
\(\forall z \ \neg Rzz\)
Counterexample: none.
No matter what \(n\) we assign to \(z\), [\(n\), \(n\)] is never on the list for \(R\). True.
\(\forall x \ (Px \to \neg Rxx)\)
Three \(x\)-variants of \(\alpha\) to check:
| \(x\) | \(Px\) | \(Rxx\) | \(\neg Rxx\) | \((Px \to \neg Rxx)\) |
|---|---|---|---|---|
| 0 | T | F | T | T |
| 1 | F | F | T | T |
| 2 | F | F | T | T |
No counterexample: the conditional is true under every \(x\)-variant of \(\alpha\).
Thus \(\forall x \ (Px \to \neg Rxx)\) is true.
\(\exists x \ Rxy\) contains a free \(y\).
Its truth value depends on what \(\alpha\) gives \(y\).
Under \(\alpha\), where \(y \mapsto 0\):
Is there an \(x\) with [\(x\), 0] on the list for \(R\)?
No. False.
Under an assignment where \(y \mapsto 1\):
Is there an \(x\) with [\(x\), 1] on the list for \(R\)?
Yes: 0. True.
When we vary \(x\), the value of \(y\) stays put. That is exactly what an \(x\)-variant does.
Show steps now lists the values attempted for the bound variable: a witness for \(\exists\), everything in the domain for \(\forall\).
Set \(y\) to 1 and evaluate 5 again.
The verdict at the bottom concerns the formulas as a set. Here we only care about each one.
From truth under an assignment to truth in a model.
A formula \(\varphi\) is true in a model \(M\) iff \(\varphi\) is true in \(M\) under every assignment.
Example: in our model \(M\), \(Py\) is not true in \(M\) (consider \(y \mapsto 1\)), and neither is \(\neg Py\) (consider \(y \mapsto 0\)).
domain: 0, 1, 2
extensions:
\(P\_\): 0
\(R\_\ \_\): [0, 1], [1, 2], [2, 0]
\(\exists x \ Px\)
True: 0 is on the list for \(P\).
\(\forall x \ \exists y \ Rxy\)
True: \(0 \to 1\), \(1 \to 2\), \(2 \to 0\).
\(\exists x \ \forall y \ Rxy\)
False, nothing is \(R\)-related to all three.
Ignore the ‘Inconsistent’ verdict.