How do we define equality in real numbers? How do we define equality in real numbers? I know in logic we define equality by Leibniz's law.
   $$ \forall x \forall y[x=y \rightarrow \forall P(Px \leftrightarrow Py)] $$
But how do we define the set of all $P$'s for a system. For example for fractions we say $1/2$ and $2/4$ are not equal but in rational numbers they are. But it seems to me the set of all propositions that make sense about fractions and that of rational numbers are the same.

First of all, this is not how equality is defined. This is a property that equality has.
In modern first-order logic equality is primitive. We don't define it, we just know that two things are equal if and only if they are the same thing. So two numbers are equal if and only if they are the same number.
For example, $0.\overline 9=1$ because both of these are in fact the same number.
So what about $\frac12$ and $\frac24$? Why are they equal? Well, recall that when we say $x=\frac ab$ we really mean that $x$ is the unique number such that $bx=a$. And so we have that: $$x=\frac12\iff 2x=1\iff 2\cdot2x=2\cdot1\iff 4x=2\iff x=\frac24$$
Therefore the two fractional representations of $\frac12$ are the same. But why does it surprise us that there are several ways of writing the same number? It shouldn't, after all, $0$ is both the unique number such that $1-1$ equals to it, as well the smallest number such that $x^2=x$, and the unique rational number $x$ such that $\sin \pi=x$.
There are many ways of writing an expression which evaluates to the same number. And that's fine. But here's the kicker: expressions are not actual numbers, they are string in the language, and whether or not two expressions are equal may (or may not) depend on the interpretation of the symbols involved in these expressions.
So perhaps a better question would be "What determines if two expressions have the same value in $\Bbb R$", but that question is vague since it doesn't specify the language, and how it might be interpreted. And in different languages we may be able to express different things (e.g. compare what you can express in the language which only includes $\leq$ and what you can express in the language which also includes $0,1,+,\cdot$ but doesn't include $\leq$).
