# Practice Problems: Interpretations

The following are some practice problems on interpretations for FOL; i.e., they cover Part VI of *forall x: Calgary*.

## Making existence claims true and false

To make "Some *A*s are *B*s" true, the *A*s and the
*B*s must have at least one object in common (the ymay be the same).

In Carnap, you specify the domain of an interpretation by listing its elements (only natural numbers are allowed, e.g., 0, 1, 2, 3). To specify the extension of a one-place predicate, list the objects in the extension, individually within brackets.

To make ∃*x*(*A*(*x*) ∧ *B*(*x*)) true, make sure the enxtension of
*A*(*x*) and *B*(*x*) overlap. E.g., put `[0]`

for both `A(_)`

and `B(_)`

.

Now give an interpretation that makes ∃*x*(*A*(*x*) ∧ *B*(*x*))
true, but where it's also true that some *A* is not *B*, and some *B*
is not *A*. (Once it gets a bit more complicated it may help to have a
piece of paper around to draw the diagrams corresponding to your
attempts to see what happens, where overlab is required, where it is
prohibited, what has to be contained in what, etc.)

To make makes ∃*x*(*A*(*x*) ∧ *B*(*x*)) *false*, you ensure that
there is *no* overlap between the extensions of *A*(*x*) and *B*(*x*). The
easiest way to make this be the case is to make the extensions of
*A*(*x*) or of *B*(*x*) or of both empty. For instance, the default
interpretation has domain `0`

, and extensions of `A(_)`

and `B(_)`

empty. Click the check button below:

Now give an interpretation that makes ∃*x*(*A*(*x*) ∧ *B*(*x*)) false,
but where it's also true that some A is not B, and some B is not A.

## Making universal claims true and false

To make "All As are Bs" true, the extension of A must be contained in the extension of B must have at least one object in common. The extensions of A and B may be the same.

So to make ∀*x*(*A*(*x*) → *B*(*x*)) true, make sure that everything
in the extension of *A*(*x*) is also in the extension of *B*(*x*). If *A* is
symbolized by a predicate, it's easy to do that. Click the check
button below:

You'll notice that you get a "Success!" message even though you
haven't done anything. That's because by default the extension of
*A*(*x*) is empty, and so all the (zero) objects in the extension of
*A*(*x*) are also in the extension of *B*(*x*). More directly: if *A*(*x*)
has empty extension then no object satisfies *A*(*x*), i.e., *A*(*x*) is
false whatever *x* may be. But a conditional with a false antecedent
is true, so every object satisfies *A*(*x*) → *B*(*x*).

Of course, you may not always be so lucky to make a sentence ∀*x*(*A*(*x*) → *B*(*x*)) true just by making the antecendent always false.
Let's see if we can find an interpretation in which it's also the case
that some *B* is *A* and some *B* is not *A*.

To make "All *A*s are *B*s" false, you proceed as if you wanted to
make "Some *A*s are not *B*s true", i.e., you must ensure that the
extension of *A*(*x*) contains an object that does not satisfy *B*(*x*):

## Validity and entailment

To show that an argument is invalid, i.e., to show that its premises do not entail its conclusion, find an interpretation that makes the premises all true but the conclusion false.

For instance, "Some *A*s are *B*s" does not entail "All *A*s are
*B*s". To see this, find an interpretation that makes ∃*x*(*A*(*x*) ∧ *B*(*x*)) true but ∀*x*(*A*(*x*) → *B*(*x*)) false.

Now show that "Some *A*s are *B*s" also does not entail "Not all *A*s are
*B*s".

## Equivalence

To show that two sentences are not equivalent, you have to give an interpretation that makes one false and the other true.

For instance, a common mistake is to think that the negation of "No
*A*s are *B*s" is "All *A*s are *B*s". The symbolization of "No
*A*s are *B*s" is ∀*x*(*A*(*x*) → ¬*B*(*x*)) and that of "All
*A*s are *B*s" is ∀*x*(*A*(*x*) → *B*(*x*)). So find an
interpretation that show that ¬∀*x*(*A*(*x*) → ¬*B*(*x*))
and ∀*x*(*A*(*x*) → *B*(*x*)) are not equivalent.

If you've paid attention above, you will have first tried to hit the
"check!" button and found that the default interpretation works. Why?
Because if the extension of *A*(*x*) is empty, both ∀*x*(*A*(*x*) → ¬*B*(*x*)) and ∀*x*(*A*(*x*) → *B*(*x*)) are true. This shows that
∀*x*(*A*(*x*) → *B*(*x*)) ⊭ ¬∀*x*(*A*(*x*) → ¬*B*(*x*)).
Now find an interpretation that shows it's also possible to make "Not
all *A*s are *B*s" true without making "All *A*s are *B*s" true.

(Hint: "No *A*s are *B*s" can also be symbolized by ¬∃*x*(*A*(*x*) ∧ *B*(*x*)), so ¬∀*x*(*A*(*x*) → ¬*B*(*x*)) is
equivalent to ∃*x*(*A*(*x*) ∧ *B*(*x*)). And to make "All *A*s are
*B*s" false, you have to make "Some *A*s are not *B*s" true.)

## Validities

Sentences that are true in every possible interpretation are called
validities. For instance, ∀*x* *A*(*x*) ∨ ∃*x* ¬*A*(*x*)
is a validity: either everything in the domain is in the extension of
*A*(*x*), or at least one thing is not. But ∀*x* *A*(*x*) ∨ ∀*x* ¬*A*(*x*) is not a validity. Show this by giving an
interpretation where it is false:

Let's try an example with a two-place predicate. Show that ∀*x* *B*(*x*, *x*) → (∀*x* *B*(*x*, *c*) ∧ ∀*x* *B*(*c*, *x*)) is not a
validity. To tell Carnap about the referent of the name `c`

, just put
the object from the domain into the respective input area. To specify
the extension of a two-place predicate, list all the pairs you want to
be in the extension, in brackets and separated by commas. For
instance, if your domain is just 0, and you want ∀*x* *B*(*x*, *x*) to be
true, the extension of *B*(*x*, *y*) has to include `[0,0]`

. This by itself
isn't enough for a counterexample, though: both ∀*x* *B*(*x*, *c*)
and ∀*x* *B*(*c*, *x*) are also true.

## Examples from lecture

Show that the argument is invalid:

Show that the sentence is not a validity:

Show that the two sentences are not equivalent:

Show that the sentences are jointly satisfiable: