Discrete Structures

# Lecture Notes, 22 Sep 2010

 Last Update: 22 September 2010 Note: or material is highlighted

## §1.3: Predicates & Quantifiers (cont'd)

### Knowledge Representation & Translation:

1. Some useful terminology:

In "∀x[A]" and ∃x[A]":

1. The "∀" and "∃" are called the quantifiers;
2. The "x" that follows the quantifier is called the quantified variable (or the bound variable);
3. And the bracketed part is called the scope of the quantifier.

E.g., the scope of ∀x[P(x) ∧ Q(x)] is [P(x) ∧ Q(x)]

• There is no known algorithm for translating directly
from the surface structure of an English sentence
to an equivalent FOL proposition.

• There are only "heuristics" (suggestions) for doing so,
based on grammatical structure & meaning

• Lots of examples:

• "Dictionary" (syntax & semantics) of predicates and terms (for use in the examples):

Let Dog(x) = (x) is a dog
Let Fish(x) = (x) is a fish
Let Glitters(x) = (x) glitters
Let Gold(x) = (x) is gold
Let Mammal(x) = (x) is a mammal
Let Man(x) = (x) is a man
Let Pet(x) = (x) is a pet
Let Wise(x) = (x) is wise
Let mark-twain = Mark Twain
Let sam-clemens = Samuel Langhorne Clemens (as in Clemens Hall)

1. Mark Twain is wise = "Wise(mark-twain)"
2. Mark Twain was a wise man = "Wise(mark-twain) ∧ Man(mark-twain)"

• Note: The tense of "was" is ignored in FOL!

3. Mark Twain is Samuel Langhorne Clemens = "mark-twain = sam-clemens"
4. All dogs are pets = "∀x[Dog(x) → Pet(x)]"

5. Some dogs are pets = "∃x[Dog(x) ∧ Pet(x)]"

Notes:
1. NOT:  "∃x[Dog(x) → Pet(x)]" !!!
which is true about my cat!

i.e., even if there were no dogs, but only cats, "∃x[Dog(x) → Pet(x)]" would be T,
but the English would be false.

See "On the Translation of ‘Some Dogs Are Pets’" for further explanation.

2. Here's yet another explanation:

1. Semantics for ∀x[Dog(x) → Pet(x)]:

• Consider a giant grab-bag of everything in the universe (i.e., everything in the domain)
• Pick any thing at random from the bag.
• Is it a dog?
• If not, then (Dog(x) → Pet(x)) has not been refuted;
i.e., it has not (yet) been determined to have tval=F
∴ assume its tval=T, & continue for-loop through bag.

• If it is a dog, then is it a pet?
• If so, then tval=T else tval=F

2. Semantics for ∃x[Dog(x) ∧ Pet(x)]:

• Consider grab-bag of everything in univ.
• Search in it for a dog.
• If you find a dog, then tval=T
i.e., you found an x in the domain that is both a dog and a pet

else continue searching for a dog

• If you don't find any dogs, then tval=F

3. Semantics for ∃[Dog(x) → Pet(x)]:

• Consider grab-bag of everything in univ.
• Search in it for a dog.
• If you find a dog, then is it a pet?
• If so, then tval=T else continue searching for a dog.
• If you don't find any dogs, then tval=T (!)
(because everything you found is not a dog,
∴ the antecedent's tval=F
∴ the conditional's tval=T (!)

3. I didn't get a chance to mention this in lecture, so I'll mention it here, for the sake of completeness:

Some other versions of FOL use "restricted quantifiers":

"Some dogs are pets" becomes:

(∃x : Dog(x))[Pet(x)]

where the "restriction" on x that Dog(x) is like a type declaration.

"All dogs are pets" becomes:

(∀x : Dog(x))[Pet(x)]

6. No dogs are fish = ¬∃x[Dog(x) ∧ Fish(x)]

• But this could also be represented as: ∀x[Dog(x) → ¬Fish(x)]

• So which is "correct"? Both! They are logically equivalent (you will prove this for HW).

7. To be continued…

Supplement to this lecture…