Reputation: 877
I have the following statement that I would like to translate to predicate logic:
The performance of a push system will vary according to the environment, but the performance of a pull system will always be better.
The following lexicon is given:
P(x, y): x is the performance of y
H(x): x is a push system
L(x): x is a pull system
E(x): x is the environment
V(x, y): x will vary according to y
B(x, y): x will always be better than y
I thought of this translation:
∃x(P(x, H(x)) ⇒ V(x, E(y)) ∧ ∀x(P(x, L(y)) ⇒ B(L(x), H(y))
But, I was told that I cannot supply predicates as arguments to other predicates, and thus P(x, H) as I have done above is not correct. Any suggestions on how to correctly translate the statement? Thanks.
Upvotes: 0
Views: 212
Reputation: 4318
I am not sure if the question is suitable for StackOverflow. There are two different discussions:
How to represent this sentence in a logical form using the lexical representations above.
How to automatically translate the text into that logical form.
The main question seems to be about how to represent. I will explain the problem with P(x, H(x))
.
According to your lexicon, H(x)
is representing "x is a push system" therefore H(x)
has propositions' type (maybe you call it t
-type).
To be even more clear, let's take the representation you asked, P(x, H(x))
, and translate it back to English.
P(x, H(x))
==> "x is the performance of H(x)
" ==> "x is the performance of 'x is a push system'" ~~> "x is the performance of a proposision about x"
It doesn't make sense because H(x)
is representing a proposition and it is different from x
itself.
Probably, you want something like: P(x, y) ∧ H(y)
Upvotes: 1