My question is very simple. I am trying to simplify an expression that I was expecting to be vanishing. However, If I numerically evaluate the expression (for large values of one parameter) I find 1, whereas if I simplify it I get 0, see the picture

Here’s the code to reproduce it

```
(m Sqrt(P + Sqrt(m^2 + P^2)) - Sqrt(-P + Sqrt(m^2 + P^2)) (P + Sqrt(m^2 + P^2))) 1/Sqrt(P + Sqrt(m^2 + P^2)) /. m -> 1 /. P -> 10^8 // N
(m Sqrt(P + Sqrt(m^2 + P^2)) - Sqrt(-P + Sqrt(m^2 + P^2)) (P + Sqrt(m^2 + P^2))) 1/Sqrt(P + Sqrt(m^2 + P^2)) // Simplify(#, {m > 0, P > 0}) &
```

What’s happening?

Equivalently, I have rescaled $mrightarrow x P$ and try to take the $xrightarrow 0^+$ limit. I get the error `"Unable to determine whether expressions .... are equal to zero. Assuming they are." `

Here’s the code

```
(m Sqrt(P + Sqrt(m^2 + P^2)) - Sqrt(-P + Sqrt(m^2 + P^2)) (P + Sqrt(m^2 + P^2))) 1/Sqrt(P + Sqrt(m^2 + P^2)) /. m -> x P // Simplify(#, P > 0) &
Limit(x - Sqrt((-1 + Sqrt(1 + x^2))/(1 + Sqrt(1 + x^2))) (1 + Sqrt(1 + x^2)), x -> 0,Direction -> "FromAbove")
```

This is strange because if I FullySimplify the expression under the limit, I get 0. What am I doing wrong?