I need some clarity on predicate logic:


D(x)    x is a dog
F(x, y) x is a friend of y
O(x, y) x owns y
h       Harry
s       Susan

express the following sentence in predicate logic

All of Harry's friends are dog owners

My understanding is that a predicate cannot be an argument to another predicate.

This is what I think is the solution

∃x[F(x, h) ∧ ∀x∃y(D(y) ∧ O(x, y))]

Is that valid? To me it reads: Some people are friends of Harry, then that same person definitely own a dog?

Or is the answer the simpler

∀x∀y[F(x, h) ∧ D(y) ∧ O(x, y)]

But it feels like that says everyone is a friend of Harry

After some input from @Keelan:

∀x[F(x, h) → ∃y(O(x, y) ∧ D(y))]

Which I read as: For everyone where it is the case that they are friends with Harry, they own y and y is a dog.

  • 1
    "∀y(O(x, y) ∧ D(y))" means that everything is a dog and is owned by harry's frine. That is nonsense, – miracle173 Oct 16 '15 at 2:08

In your first proposal (∃x[F(x, h) ∧ ∀x∃y(D(y) ∧ O(x, y))]), you're assuming Harry has at least one friend, which may not be the case. If he has no friends, the statement is true (see vacuous truth). Also, you're using x both as bounded by ∃ and as bounded by ∀, while the latter is inside the first. This is never allowed.

In your second proposal (∀x∀y[F(x, h) ∧ D(y) ∧ O(x, y)]), you're saying that everyone is a friend of Harry, that everyone is a dog and that everyone owns everyone!

Here are some hints to get you started (since this looks like homework I won't give you a complete solution):

  • "All of Harry's friends are dog owners" can be rewritten as "For all people it holds that if they are Harry's friend, then they are a dog owner"
  • "X is a dog owner" can be rewritten as "There is an Y such that Y is a dog and X owns Y"

Your third suggestion (∀x[F(x, h) → ∀y(O(x, y) ∧ D(y))]) is almost correct. However, this reads as "For all x holds that if they are friends with Harry, then for all y it holds that x owns y and y is a dog" -- in other words, Harry is a dog as well (and x)!

  • I did not consider rewriting the statements, that helps a lot – Leon Oct 15 '15 at 17:55

You should split your sentence into simpler parts and try to express this simple sentence. Then you should compose the more complex sentences.

Try to express "somebody is a friend of harry", e.g t is a friend of Harry


"somebody is a dog owner", e.g. x is a dog onwer.

∃y(D(y) ∧ O(x,y))

try to Express " all of Harry friends have the property P" That means for friend z of Harry P(z) is valid.

∀z(F(z,h) → P(z))

Now compose it to the final statement; all of harry's friends are dog owners

∀z(F(z,h) → (∃y(D(y) ∧ O(x,y))))

  • On my iPad the tinted boxes that contain the quotes are blank. – Mark Andrews Nov 15 '17 at 19:14
  • @MarkAndrews now the text is visible – miracle173 Nov 16 '17 at 4:25
  • I can see the text now. Useful answer, by the way. Thanks. – Mark Andrews Nov 16 '17 at 18:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.