# How to prove this algebraic identity?

I mean $$\forall z \in \mathbb C\left(\ \left| \sqrt{z^2-1}-z\right| +\left| z+\sqrt{z^2-1}\right| =| z-1| +| z+1|\right ) .$$

The command

ComplexPlot3D[Abs[Sqrt[z^2 - 1] + z] + Abs[Sqrt[z^2 - 1] - z] - Abs[z - 1] -
Abs[z + 1] // Chop, {z, -3 - 3*I, 3 + 3*I}] confirms it, but this is not a proof. Here are my unsuccessful attempts.

ForAll[z, Abs[Sqrt[z^2 - 1] + z] + Abs[Sqrt[z^2 - 1] - z] ==
Abs[z - 1] + Abs[z + 1]]
Resolve[%, Complexes]


is running without any response for hours. The same issue with

Reduce[Abs[Sqrt[z^2 - 1] + z] + Abs[Sqrt[z^2 - 1] - z] ==
Abs[z - 1] + Abs[z + 1], z]


The command

FindInstance[Abs[Sqrt[z^2 - 1] + z] + Abs[Sqrt[z^2 - 1] - z] != Abs[z - 1] + Abs[z + 1], z]


returns the input. A few other attempts (for example, with Solve) are omitted.

• Hard problem (I sincerely hope I'm wrong). Somewhat related: mathematica.stackexchange.com/q/119346/1871 Oct 11, 2022 at 16:06
• @xzczd: Thank you for your interest to the question. I'd like to quote Piet Hein; "ORIGINALITY Original thought is a straightforward process. It's easy enough when you know what to do. You simply combine in appropriate doses the blatantly false and the patently true" Oct 11, 2022 at 16:46
• and " PROBLEMS Problems worthy of attack prove their worth by hitting back " Oct 11, 2022 at 16:50
• With a bit of cheating (Abs-> Sqrt[#^2] output of Resolve[ForAll[{z}, Sqrt[(Sqrt[z^2 - 1] + z)^2] + Sqrt[(Sqrt[z^2 - 1] - z)^2] - Sqrt[(z - 1)^2] - Sqrt[(z + 1)^2] == 0]] is False, which I don't believe. Since replacing ForAll by Exists and testing ==, <, > supports your conjecture.
– Acus
Oct 11, 2022 at 17:06
• @Acus; Mathematica is right; Abs[z]!=Sqrt[z^2] for complex values of z. Thank you anyway. Oct 11, 2022 at 17:12

Since both sides are positive, the identity is valid if the square of left hand side equals the square of right hand side.

$$\forall z \in \mathbb C \; \; \; \left(\ \left| \sqrt{z^2-1}-z\right| +\left| z+\sqrt{z^2-1}\right| \right )^2 = \left( | z-1| +| z+1| \right)^2 .$$

To verify in Mathematica:

FullSimplify[ComplexExpand[(Abs[Sqrt[z^2 - 1] + z] + Abs[Sqrt[z^2 - 1] - z])^2, z]]

(* 2 (1 + Abs[z]^2 + Sqrt[(-1 + z^2) (-1 + Conjugate[z]^2)]) *)

FullSimplify[ComplexExpand[(Abs[z - 1] + Abs[z + 1])^2, z]]

(* 2 (1 + Abs[z]^2 + Sqrt[(-1 + z^2) (-1 + Conjugate[z]^2)]) *)

• Wow, surprisingly simple! I'm happy to see I'm wrong :) . Oct 12, 2022 at 3:11
• How does this prove of disprove the statement?
– pts
Oct 12, 2022 at 20:51

The function

f[w_]:=Abs[Sinh[w]-Cosh[w]]+Abs[Sinh[w]+Cosh[w]]-Abs[Cosh[w]-1]-Abs[Cosh[w]+1]


vanishes:

f[u+I*v]//ComplexExpand//FullSimplify[#,Element[u|v,Reals]]&
(* 0 *)


Therefore f[ArcCosh[z]] vanishes, and this is OPs identity.

• @Diffycue - you could also use Element[{u, v}, Reals] which if you look at the FullForm is stored as Element[u | v, Reals] Oct 12, 2022 at 1:05
• Clever but sadly still not rigorous, because Sinh[ArcCosh[z]] == Sqrt[z^2 - 1] doesn't always hold. Oct 12, 2022 at 3:01
• For every complex number $z$ there is some other complex number $w$ such that $(z,\sqrt{z^2-1}) = (\cosh w, \sinh w)$. Oct 12, 2022 at 5:25
• @user293787: Unfortunately, ForAll[z, Exists[w, z == Cosh[w] && Sqrt[1 - z^2] == Sinh[w]]] :Resolve[%, Complexes] performs False. Oct 12, 2022 at 6:25
• @user293787:+1. You are right. Sorry for the typo. Oct 12, 2022 at 9:35

Your ComplexPlot3D is a good test for the numerical exactness of the methods used by this Mathematica built-in for this task. Try to play around with the numerical exactness values for Your session.

Just in case You like a serious answer from Mathematica use:

 FindInstance[
Abs[Sqrt[z^2 - 1] + z] + Abs[Sqrt[z^2 - 1] - z] ==
Abs[z - 1] + Abs[z + 1], z, Complexes, 1]


(* {{z -> 0}} *)

I selected $$n=1$$, but there are infinitely many solutions because this is an identity. If $$n>1$$ is chosen, the given routines searches infinitely long again.

The error message FindInstance::nsmet is by the use of this additional option gone. nsmet is an abbreviation for Namespace methods. So this is a very broad and not so in-depth error message.

The noise in Your ComplexPlot3D is of the size of MachinePrecision (15.9546)\$. So Mathematica uses the chance to show residual noise. You might choose to suppress this by using option to ComplexPlot3D PlotRange

ComplexPlot3D[
Abs[Sqrt[z^2 - 1] + z] + Abs[Sqrt[z^2 - 1] - z] - Abs[z - 1] -
Abs[z + 1] // Chop, {z, -1 - I, 1 + I},
PlotRange -> {0.0, 15. 10^-15}] It is a not so rarely discussed topic, why does Mathematica produce that often the very same noise pattern for specified problems?

I used the default color theme for my plot.