# First-order logic from computational linguistics - implication

I am reading Natural Language Understanding by James Allen.

It has the following sentence

That John is rich implies that he is happy.


And first-order logic representation as

RICH(JOHN1) $$\supset$$ HAPPY(JOHN1)

I think it is incorrect and should be written as

RICH(JOHN1) $$\subset$$ HAPPY(JOHN1)

since rich only subset, there are probably other things that make John happy.

I am quite confident that it is not a typo, but why it is written this way.

Implication is often used in formal logic to translate "if..., then...".

Thus, "That John is rich implies that he is happy" is the same as : "if John is rich, then he is happy".

"If..., then..." is symbolized with the conditional connective : $$\to, \supset, \Rightarrow$$.

The symbol $$\subset$$ is used for the relation of inclusion between sets (or : classes).

In that cases we have e.g. : $$\text {Humans} \subset \text {Animals}$$.

But $$\text {Rich}(\text{John})$$ is not the name of a class; it is a sentence : "John is rich".

• Thank you! It would be so much easier to use arrow notation than superset/subset notation – user1700890 Feb 11 '19 at 16:34