Question about translating English to first order logic? Which of the following are possible (semantically and syntactically correct) first-order-logic translation of "Salma loves any class which is harder than every Algorithms class".
Is the following translation correct ? and Why ?
$\forall x \forall y[[Class(x) \land AlClass(y) \land Harder(x,y)] \to Loves(Salma,x)]$
My prof considered it as a wrong translation.
 A: What you wrote means: For any $x$ and any $y$, if $x$ is a Class
and $y$ is an Algorithm Class and $x$ is harder than $y$, then Salma
loves $x$. That means, any $y$ will do, as long as it is Algorithm
Class and $x$ is harder than it. Then, even if some $z$ is an Algorithm
Class, but $x$ is not harder than $z$, Salma still loves $x$.
In fact, using the properties of quantifiers, you can transform your
proposition into the following:
$$\forall x\left[Class(x)\wedge\exists y\left[AlClass(y)\wedge Harder(x,y)\right]\rightarrow Loves(Salma,x)\right]\tag{1}$$
That means: for every $x$, if $x$ is a Class and there is a $y$,
such that it is an Algorithm Class and $x$ is harder than it, then
Salma loves $x$. To see that the above is equivalent to what you
wrote, consider the following properties:
$$\forall y\left[P(y)\rightarrow Q\right]\leftrightarrow\left[\exists yP(y)\rightarrow Q\right]$$
$$\exists y\left[Q\wedge P(y)\right]\leftrightarrow\left[Q\wedge\exists yP(y)\right]$$
where $Q$ is any proposition with no free occurrence of "$y$".
Applying these to your formula, together with the fact that $\wedge$
is associative, gives (1). This is not what the exercise is asking for. Salma should love a Class
$x$, if $x$ is harder than every Algorithm Class.
A: 
Salma loves any class which is harder than every Algorithms class

Here we want two conditions for the class, say $a$ that Salma loves:
\begin{align}
1.&~\text{$a$ is a class.}\\
&~Class(a)\\
2.&~\text{$a$ is harder than every Algorithms class.}\\
&~\forall y(AlClass(y) \to Harder(a,y))
\end{align}
So the correct translation would be
$$\forall x[[Class(x) \land\forall y(AlClass(y) \to Harder(x,y))]\to Loves(Salma,x)]$$

Now let's have a look on your translation
\begin{align}
&\forall x \forall y[[Class(x) \land AlClass(y) \land Harder(x,y)] \to Loves(Salma,x)]\\
\equiv&\forall x[[Class(x) \land\exists y(AlClass(y) \land Harder(x,y))] \to Loves(Salma,x)]
\end{align}
the conditions here are
\begin{align}
1.&~\text{$a$ is a class}\\
&~Class(a)\\
\hat2.&~\text{$a$ harder than some Algorithms class $y$}\\
&~\exists y(AlClass(y)\land Harder(a,y))
\end{align}

That conditions $2.$ and $\hat2.$ are not equivalent i.e.
$$\forall y(AlClass(y) \to Harder(a,y))\not\equiv\exists y(AlClass(y)\land Harder(a,y))$$
do you see their difference?
