2
$\begingroup$

I'd like to express a proposition using formal predicate logic notation. The difficulty I'm having is that the proposition is not true for all members of the domain of concern, but a subset.

I'd like to express the idea that: all people whose names begin with a Z, who have pets, have dogs.

The domain of concern is $X$, all people. I have the functions $Z(x)$ (true if the person $x$ has a name that begins with a Z), $P(x)$ (true if $x$ has a pet), and $D(x)$ (true if $x$ has a dog).

My best effort is:

($\forall x ∈ X. Z(x) \land P(x)) \implies D(x)$

I'm worried, however, that the left hand side of the implication doesn't do what I want it to do (extract out a subset of $X$) because it is false (not all people in the world have names that begin with Z and pets.)

Is my solution correct? Is my concern valid? What's the right way to express this claim? Do I just need some strategically placed parentheses?

Note: I am working my way through an MIT MOOC for fun, and this is a homework problem on that course. I've changed the context of the problem to obscure it from Googlers.

  • 0
    Right now, this is not a propositional function of x as the x in D(x) is free. (Due to the parenthesis before $\implies$). If you remove the parenthesis and instead extend the scope of $\forall $ to D(x), then it is correct.2017-01-04

1 Answers 1

2

The main proplem I see with your answer is your (incorrect) use of parenthes, because the $x$ occurring in the predicate $D(x)$ is not within the scope of the quantified $x$.

This can be corrected if you write:

$$\forall x \Big(\big(Z(x)\land P(x)\big)\rightarrow D(x)\Big)$$