# Problem with particular simplification of complex function under assumptions

I have proven that $expr=(1 - i)(\dfrac{1+z}{1-z})^{1/4}\dfrac{\sqrt{ 1-z^2+i z\sqrt{1 - z^2}}}{1+z-i\sqrt{1 - z^2}}=1$ when it is assumed that $z\in R$ and $|z|<1$ and when I also plot the real and imaginary parts of it in that domain, it is indeed equal to $1$, but when I try to use
FullSimplify[expr, Assumptions -> {z \[Element] Reals && Abs[z] < 1}]
in order to try to get $1$, it gives back the same form of the expression.

So, what is the problem and how can I fix this?

EDIT: In Mathematica, I wrote this as

expr = (1 - I) ((1 + z)/(1 - z))^(1/4) Sqrt[
1 - z^2 + I*z*Sqrt[1 - z^2]]/(1 + z - I*Sqrt[1 - z^2]);


And after getting the result, I used FullSimplify[%, Assumptions -> {z \[Element] Reals && Abs[z] < 1}]

• Post code in "copy and paste" form (Raw InputForm in code blocks) to help others to help you. Aug 20, 2018 at 2:30
• Reduce[1 != expr && -1<z<1, z] returns False. FindInstance[expr != 1 && -1<z<1, z] returns {}. Normal[Series[expr, {z,0,20}]] returns 1. Will any of those do?
– Bill
Aug 20, 2018 at 3:06
• @BobHanlon Sorry for not responding sooner. It's the same as the one in your answer. Thank you. Aug 20, 2018 at 19:22

expr = (1 - I) ((1 + z)/(1 - z))^(1/4) Sqrt[
1 - z^2 + I*z*Sqrt[1 - z^2]]/(1 + z - I*Sqrt[1 - z^2]);


You can readily show that Im[expr] == 0, i.e., expr is real

Assuming[Element[z, Reals] && Abs[z] < 1,
Im[expr] // ComplexExpand[#, TargetFunctions -> {Re, Im}] & // FullSimplify]

(* 0 *)


The explicitly real form of expr is

expr2 = Assuming[Element[z, Reals] && Abs[z] < 1,
Re[expr] // ComplexExpand[#, TargetFunctions -> {Re, Im}] & // FullSimplify]

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


Series shows that expr is almost certainly 1

Series[expr2, {z, 0, 100}]


Verifying that it is 1

Assuming[Element[z, Reals] && Abs[z] < 1,
expr2 == 1 // ComplexExpand[#, TargetFunctions -> {Re, Im}] & //
FullSimplify]

(* True *)

• Thank you! I have a question though: because I have to do a calculation with a large number of similar terms which Mathematica does not simplify with FullSimplify and Assumptions, isn't there a way to make Mathematica do this simplification as we go? Aug 20, 2018 at 19:28
• If FullSimplify using the option Assumptions doesn't give the desired result then you will have to tailor an approach. You could automate the approach above; however, it may or may not work for other cases. Aug 20, 2018 at 20:03

If you want to prove that something is constant, you can try differentiating it

Assuming[-1 < z < 1, FullSimplify[D[expr, z]]]
(* 0 *)

• This is a great trick, although my goal was to have Mathematica give $1$ by itself because the expression I give in the question is a part of a much larger calculation that's full of similar terms, so I wouldn't replace each of such terms with either $1$ or $-1$ by hand. Smart trick nonetheless! Thank you. Aug 23, 2018 at 21:52

I will offer another, supplementary solution to the solutions given in other answers, but it is by no way convenient for doing calculations (especially long ones). We can just plot the function!
Plot[(1 - I) ((1 + z)/(1 - z))^(1/4) Sqrt[ 1 - z^2 + I*z*Sqrt[1 - z^2]]/(1 + z - I*Sqrt[1 - z^2]), {z, -3, 3}, PlotStyle -> {Red, Thick}]
which give the following plot:

where the graph is cut at $z=1$ because it then the expression becomes equal to $i$ (or, I).

If you think you know the answer, it is often easy to ask Mathematica to verify your suspicion

FullSimplify[ForAll[z, -1 < z < 1, expr == 1]]
(* True *)
{"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 1, "mathjax_display_tex": 0, "mathjax_asciimath": 1, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0, "katex": 0, "math-container": 0, "wp-katex-eq": 0, "align": 0, "equation": 0, "x-ck12": 0, "texerror": 0}