Conformality of distances¶
Exervise I.7.14.i [1] $ \newcommand{\Space}[3][]{\mathbb{#2}^{#3}_{#1}} \newcommand{\cycle}[3][]{{#1 C^{#2}_{#3}}} \newcommand{\realline}[3][]{#1 R^{#2}_{#3}} \newcommand{\bs}{\breve{\sigma}} \newcommand{\zcycle}[3][]{#1 Z^{#2}_{#3}} \newcommand{\SL}[1][2]{\mathrm{SL}_{#1}(\Space{R}{})} $ Show $\SL$-conformality:
The distance
\eqref{eq:distance-first-ell-hyp} \begin{equation} \label{eq:distance-first-ell-hyp} d_{\sigma,\bs}^2(P, P') = \frac{ \bs ((u-u')^2-\sigma(v- v')^2) +4(1-\sigma\bs) v v'} {(u- u')^2 \bs-(v-v')^2} ((u-u')^2 -\sigma(v- v')^2), \tag{I.7.2} \end{equation} is conformal if and only if the type of point and cycle spaces are the same, i.e. $\sigma\bs=1$.
The parabolic distance \begin{equation} d_{p,\bs}^2(y, y') = (u-u')^2. \tag{I.7.3} \end{equation} is conformal only in the parabolic point space.
Solution. We define the simplification for matrices in $\SL$:
from init_cycle import *
sl2_relation1 = {a : (1+b*c)/d}
Define the image of $P=(u,v)$ under the Möbius transformation and make the component-wise substitution of the simplification rule.
gP=clifford_moebius_map(sl2_clifford(a, b, c, d, e), P, e)
gP=[gP[0].subs(sl2_relation1,subs_options.algebraic).normal(),\
gP[1].subs(sl2_relation1,subs_options.algebraic).normal()]
The same for the image of $P_1=(u_1,v_1)$ under the Moebius transformation
gP1=clifford_moebius_map(sl2_clifford(a, b, c, d, e), P1, e)
gP1=[gP1[0].subs(sl2_relation1,subs_options.algebraic).normal(),\
gP1[1].subs(sl2_relation1,subs_options.algebraic).normal()]
Make a warning on the output.
print("Two lines below shall contain 'False' (twice) as the correct result")
The routine to check conformality for various combination of matrics in point and cycle spaces
def check_conformality(Len_c, si=3):
Len_cD= ((Len_c.subs({u : gP[0], v : gP[1], u1 : gP1[0],\
v1 : gP1[1]})\
/Len_c).subs({u1 : u+t*x, v1 : v+t*y}));
Len_fD = Len_cD
print("Conformity in a cycle space with metric: E P H ")
# Iterate metric of the point space
while (si<2):
output="Point space is %s" % eph_case(si)
si1 = -1
# Iterate metric of the cycle space
while (si1<2):
Len_cD = Len_fD.subs({sign : numeric(si)}, subs_options.algebraic)\
.subs({sign1 : numeric(si1)}, subs_options.algebraic).normal()
if (Len_cD.has(t)):
Len_cD = Len_cD.series(relational(t, 0, eq), 1).op(0).normal()
is_conformal = not(Len_cD.is_zero() or Len_cD.has(t) or Len_cD.has(x) or Len_cD.has(y))
output=output+(" %s " % is_conformal)
si1=si1+1
si=si+2
print(output)
Use regularised expression for distances checked in le-distance-first.ipynb aka le.I.7.5.ipynb to check the elliptic and hyperbolic cases
print("Elliptic/hyperbolic distances")
dist = (sign1*(pow(u-u1,2)-sign*pow(v-v1,2))+4*(1-sign*sign1)*v*v1)*(pow(u-u1,2)\
-sign*pow(v-v1,2))/(pow(u-u1,2)*sign1-pow(v-v1,2))
check_conformality(dist, -1)
Then check the parabolic case
print("Parabolic distance")
dist=pow(u-u1,2)
check_conformality(dist, 0)
This notebook is a part of the MoebInv notebooks project [2] .
References¶
Vladimir V. Kisil. Geometry of Möbius Transformations: Elliptic, Parabolic and Hyperbolic Actions of $SL_2(\mathbb{R})$. Imperial College Press, London, 2012. Includes a live DVD.
Vladimir V. Kisil, MoebInv notebooks, 2019.