Converting English into first order predicate logic

532 Views Asked by At

S(x), which stands for “x is a surgeon” P(x, y), which stands for “x is a patient of y” R(x), which stands for “x recovers” H(x), which stands for “x is happy”

1>"A surgeon with no patients is happy" means: for any person xx, if xx is a surgeon and there is no person yy for which yy is a patient of xx, then xx is happy.

2> "A surgeon is happy if all her patients recover" means: for any person xx, if xx is a surgeon and - if for every person yy for which yy is a patient of xx, we have that yy recovers - then xx is happy.

I have these as solution:

1:∀(x) ( S(x)∧ ∀(y)P(y,x) → H(x) ) 2: ∀(x) [ { S(x)∧ (∀(y)P(y,x) ∧ R(y)) } → H(x)]

Are these okay?

And how do prove that 1 follows from 2 by resolution (not by drawing a truth table)?

1

There are 1 best solutions below

0
On

Your symbolizations are not ok

For 1), you have:

$\forall x (S(x) \land \forall y P(y,x) \rightarrow H(x))$

First, I would really recommend using some parentheses:

$\forall x (\color{red}(S(x) \land \forall y P(y,x)\color{red}) \rightarrow H(x))$

Second, your statement and up saying that the surgeon is happy when everyone is a patient of the surgeon ... it should be that the surgeon is happy when no one is a patient of the surgeon, which is to say that the surgeon is happy when everyone is not a patient of the surgeon. Thus:

$\forall x ((S(x) \land \forall y \ \color{red} \neg P(y,x)) \rightarrow H(x))$

For 2) you have:

$\forall x ((S(x) \land \forall y (P(y,x) \land R(y))) \rightarrow H(x))$

This ends up saying that any surgeon that has everybody for a patient, all of whom recover, is happy. Notice that this implies that the surgeon herself is a patient of herself as well! This is far too strong .. you want:

$\forall x ((S(x) \land \forall y (P(y,x) \color{red}\rightarrow R(y))) \rightarrow H(x))$

As far as resolution goes ... can you show your own attempt first, please?