models

PHIL 220. Introduction to Logic

Gabriel Uzquiano

from truth tables to models

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.

why truth tables are not enough

  1. \(\forall x \ (Px \to Qx)\)
  2. \(Pa\)
  1. \(Qa\)
  1. \(p\)
  2. \(q\)
  1. \(r\)

The argument is invalid in propositional logic.

To appreciate the validity of the argument, we must look inside the sentences and ask:

  • What does the quantifier range over?
  • What do the constants stand for?
  • Which things do the predicates apply to?

A model answers exactly these three questions.

truth tables and models

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

models

Domain, denotations, and extensions.

what is a model?

A model for quantificational logic consists of three ingredients:

  1. a domain of discourse over which the quantifiers range,
  2. a denotation for each constant of the language, and
  3. an extension for each predicate of the language.
  • The domain is a set, for example, the set of Los Angeles, San Diego, and San Francisco. What is important is that the domain is never empty.
  • Each constant denotes exactly one object in the domain. We may let \(a\), for example, denote Los Angeles and let \(b\) denote San Francisco. On the other hand, we may let two constants may denote the same object. Maybe \(c\) denotes Los Angeles just like \(a\) does.
  • An extension may be empty: a predicate may apply to nothing at all.

extensions

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.

how to specify a model

Is there an interpretation on which all of these formulas come out true?

  1. \(Raa\)
  2. \(Qa \to Pa\)
  3. \(Rab\)

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:

  • the pair [LA, SD] is on the list of pairs in the extension of \(R\_ \ \_\).

the same model in the model checker

  1. \(Raa\)
  2. \(Qa \to Pa\)
  3. \(Rab\)

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:

  • LA is not on the list for \(Q\).

the choice of objects is uninportant

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

practice: build a model

Find a model in which all three formulas are true.

  1. \(Rab \wedge \neg Rba\)
  2. \(Pa \wedge \neg Rac\)
  3. \(Qa \to Rac\)

Work through the forced choices first:

  • [\(a\), \(b\)] is on the list for \(R\), [\(b\), \(a\)] is not. So \(a\) and \(b\) are different objects.
  • \(a\) is on the list for \(P\), but [\(a\), \(c\)] is not on the list for \(R\).
  • \(Rac\) is false, which means that \(Qa\) must be false and \(a\) is not on the list for \(Q\).

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?

practice: build a model

Only the domain is filled in. Choose denotations and extensions, then press Evaluate in Model.

how to find a counterexample to validity

Find a model in which the premises are true and the conclusion false.

  1. \(Pa \vee Pb\)
  2. \(Qa\)
  3. \(Pb \wedge Qa\)
  1. \(Pa\)
  • Start with the conclusion: \(a\) is not \(P\).
  • \(b\) is \(P\) and \(a\) is \(Q\).
  • 1 and 2 are now true as well.

practice: find a counterexample to validity

  1. \(Pa \to Rab\)
  2. \(Rab \to (Raa \vee \neg Rba)\)
  3. \(Rba\)
  1. \(\neg Pa\)
  • \(Pa\) must be true.
  • Given 1, \(Rab\) must be true.
  • Given 2, \(Raa \vee \neg Rba\) must be true.
  • Given 2, \(Rba\) is true making \(\neg Rba\) is false. Hence \(Raa\).

truth in a model under an assignment

What is it for a formula, whether open or closed, to be true in a model under an assignment?

the issue with open formulas

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

assignments

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\)
  • The model fixes what the constants stand for.
  • The assignment fixes what the variables stand for.
  • When combined, they settle what every term stands for, and hence the truth value of every formula.

our model and assignment

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.

atomic formulas

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.

negation and conjunction

\(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.

disjunctions and conditionals

\(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.

check with the model checker

We input a variable assignment (\(\alpha\)) to the model checker.

Evaluate:

  1. \(Py\)
  2. \(Ryb\)
  3. \(\neg Rxy\)
  4. \((Py \wedge Rxc)\)
  5. \((Rxx \vee Rax)\)
  6. \((Rxy \to Rxx)\)

Press Show steps to see the clauses at work.

Change \(\alpha\): which truth values change?

quantifiers

\(\exists v \ \varphi\) and \(\forall v \ \varphi\).

variants

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\).

the three \(x\)-variants of \(\alpha\)

\(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 x \ \varphi\) asks: is \(\varphi\) true under at least one of these?
  • \(\forall x \ \varphi\) asks: is \(\varphi\) true under all of them?

existential quantification

\(\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.

universal quantification

\(\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.

universal quantification: case by case

\(\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.

why ‘leave \(\alpha\) otherwise unchanged’?

\(\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.

check with the model checker

  1. \(\exists x \ Px\)
  2. \(\exists z \ (Pz \wedge \neg Rzz)\)
  3. \(\forall x \ Px\)
  4. \(\forall x \ (Px \to \neg Rxx)\)
  5. \(\exists x \ Rxy\)

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.

truth in a model

From truth under an assignment to truth in a model.

truth in a model

A formula \(\varphi\) is true in a model \(M\) iff \(\varphi\) is true in \(M\) under every assignment.

  • For a closed formula, the assignment makes no difference: it is true under all assignments or under none. Therefore, it is true or false in \(M\).
  • An open formula may be true under some assignments and false under others. Then it is neither true in \(M\) nor is its negation.

Example: in our model \(M\), \(Py\) is not true in \(M\) (consider \(y \mapsto 1\)), and neither is \(\neg Py\) (consider \(y \mapsto 0\)).

example

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.