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, 2015 at 2:08

2 Answers 2


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, 2015 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. Nov 15, 2017 at 19:14
  • @MarkAndrews now the text is visible
    – miracle173
    Nov 16, 2017 at 4:25
  • I can see the text now. Useful answer, by the way. Thanks. Nov 16, 2017 at 18:43

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .