Inverse of the transition map on a Manifold doesn't hold
I was trying to represent S³ as a three dimensional manifold, with coordinates (x,y,z,w) in R⁴, and make the transition map from the upper cap w > 0 to the lateral cap z<0, with the charts being the graphs of the caps as functions. I came up with the following code:
M = Manifold(3, 'S^3')
N = M.open_subset('N')
projN.<x,y,z> = N.chart()
E = M.open_subset('E')
projE.<x,y,w> = E.chart()
ProjNE = projN.transition_map(projE,
[x,y, sqrt(1-x^2-y^2-z^2)], intersection_name='D',
restrictions1= z < 0, restrictions2= w>0)
It sounds reasonable, but calling
ProjNE.inverse()
failed. No problem, i tried using
ProjNE.set_inverse(x,y, -sqrt(1-x^2-y^2-w^2))
but i got the following warning:
Check of the inverse coordinate transformation:
x == x *passed*
y == y *passed*
z == -abs(z) **failed**
x == x *passed*
y == y *passed*
w == abs(w) **failed**
NB: a failed report can reflect a mere lack of simplification.
i don't know why the test is failing. The math sounds ok, where did it go wrong?