Elementary Möbius Geometry III

Pairs of Subspheres in (S^3)

by 
Rolf Sulanke

Starting date  February 9, 2011
Finished  March 11, 2011
Revised January 5, 2012

Introduction

This notebook  continues  the notebooks [emg1] and [emg2] about elementary Möbius geometry.   We consider here those pairs of subspheres of the Möbius space being not treated in these notebooks under the action of the Möbius group; the titles of sections 2 - 5 show the pairings considered here. Pairs of  spheres are treated in the notebook  [emg1],  and pairs of circles in  [emg2].  The last section treates some examplees of geodesics in the space of 0-spheres. In this section some concepts of Lie algebras are needed. They  are contained in the package liealgsh.m, added to moebpack.tar.gz. Again the three-dimensional  case is emphasized.   The calculations and examples illustrate and complete the presentation of the subject in our book [O-S], Section 2.7, or the paper [ S4].  There one finds the foundations of elementary Möbius  geometry in terms of  linear algebra. See also the Introductions to the notebooks mentioned above.

Our consideration are based  on the linear algebra of  n-dimensional pseudo-Euclidean vector spaces of index 1, sometimes named Minkowski spaces. The tools enhancing Mathematica  for applications in this field are contained in the package neuvec.m, which needs the packages vectorcalc.m and euvec.m containing useful modules for working in elementary geometry and linear algebra.  A notebook “pseuklid.nb”  about pseudo-Euclidean geometry is contained in the packed files sphs4.tgz or sphs4.zip on my homepage, see [S1]. In Chapter 1 below the usages of the new Modules and Functions defined in the loaded packages and in the Global Context  can be seen after evaluating the initialialization cells of the notebook.  Loading the package mpairs.m containing functions applied to the Möbius geometry of pairs the other packages already used in Elementary Möbius Geometry I, II  are loaded automatically. All the packages needed to work with this notebook are contained in the packed file moebpack.tar.gz; download it and unzip the files to your working directory.

Copyright

This notebook and the accompanying packages are  public. Authors who intend to publish a changed or completed version of them should do it under their own names with the condition that they cite the original notebook with the internet address or other source where they got it. I am not responsible for errors or damages originated by the use of the procedures contained in my notebooks or packages; everybody who applies them should test carefully whether they are appropriate for his purposes.

Keywords

Möbius group,  isotropic cone, pseudo-orthonormal coordinates, spheres,  circles,  point pairs,  pairs of subspheres, pseudo-Euclidean space,  pseudo-orthogonal Lie algebra,  Killing form, Möbius invariants of pairs of subspheres,  Möbius invariants expressed by Euclidean invariants,  geodesics of the 0-spheres manifold.

Initialization

Before starting to work interactively with this notebook first time, read this section carefully and  make the necessary preparation. Later it suffices to call the menu item "Evaluation. Evaluate Initialization Cells".

The needed packages

For working with the notebook you need the packages
vectorcalc.m,  euvec.m,  neuvec.m,  mspher.m, mcirc.m, moeb.m, mpairs.m. Only for the last  section the package liealgsh.m is needed too.You may download these and other packages from my Homepage .  From there you find all the packages mentioned above together with the code of the notebook in the file emg.tgz.
Before initializing the notebook ensure that these packages and the current notebook are laying in your working directory, which should be on the $Path of Mathematica on your Computerm, or

Insert the path of your working directory into the  appropriate of the next two cells,  e.g.

For Windows:

SetDirectory["D:\\mymath\\emg"];

or

SetDirectory["C:\\Users\\Rolf Sulanke\\mymath\\emg"];

For Linux:

SetDirectory["~/mymath/wdir"]

Now give the cell corresponding to your  operating system the properties "Cell Evaluatable" and "Initialization cell" (Menu Cell/Cell properties), and inactivate these properties for the  cells corresponding to the other operating system. If this is done, save the notebook. Next time you may start the notebook directly with the evaluation of the initialization, as follows:

The Initialization

Before starting to work interactively with the notebook

Activite Evaluation/Evaluate Initialization from the menu.

The first command loads the packages mentioned above:

Needs["mpairs`"]

In this notebook we  will  consider the 3-dimensional  Möbius space as the elliptical quadric,  the 3-dimenssional sphere, in the 4-dimensional real projective space.  Therefore we set the dimension dim and the index ind  of the vector space as follows:

dim::usage="dim is the dimension of the vector space under consideration; it must be set within the Global Context.";

?dim

dim =5;

ind ::usage="ind is the index of the pseudo-Euclidean vector space under consideration; it must be set within the Global Context.";

ind =1;

You may change these constants any time you wants. But remember that these constants enter in many procedures defined in the packages or notebooks;  some of them may not work if dim or ind are changed.

The matrix of the scalar products of any orthonormal basis of the pseudo-Euclidean vector space is

MatrixForm[Table[pssp[stb[i], stb[j]],{i,dim},{j,dim}]]

Terminology: Spheres are usual 2-dimenional spheres if we consider the 3-dimensional spherical geometry. We prefer the three-dimensional case since we can imagine this geometry and represent the configurations graphically.

dim

?vec

vec[x]

?dual

dual[vec[x]]

ind

pssp[vec[x],vec[y]]

$Assumptions

We always assume that the global constants and variables appearing in the next command are real numbers:

$Assumptions=s∈Reals&&t∈Reals&&u∈Reals&&v∈Reals&&w∈Reals&&x∈Reals&&y∈Reals&&z∈Reals&&a∈Reals&&b∈Reals&&c∈Reals&&k∈Reals&&h∈Reals;

$Assumptions

1.  List of Symbols and their Usages

In this Chapter one finds tables of the symbols introduced in the imported packages and in the Global Context.
To get the usages click on the name! If this does not work correctly, enable Dynamic Updating in the Evaluation Menu.

1.1.  Symbols in the Package vectorcalc.m

The package vectorcalc.m contains some functions specializing or supplementing the Mathematica built-in functions in the field of linear algebra, affine or projective geometry.

?vectorcalc`*

1.2.  Symbols in the Package euvec.m

The package euvec.m contains functions for applications to the Euclidean analytic geometry.

?euvec`*

sterproj[stb[dim]]

invsterproj[%]

??invsterproj

%.%

1.3.  Symbols in the Package neuvec.m

The package neuvec.m contains enhancements of Mathematica  for applications to pseudo-Euclidean geometry.

?neuvec`*

?dimm

Options[orthonorm]

ide[]*IdentityMatrix[dim]

%//MatrixForm

This is the Gram matrix of a pseudo-orthonormal Basis:

Table[pssp[stb[i],stb[j]],{i,1,dim},{j,1,dim}]//MatrixForm

dual[vec[x,7]]

pssp[vec[x,7],vec[y,7],3]

Options[orthonorm]

??neglect

Context[neglect]

1.4.  Symbols in the Package mspher.m

The package mspher.m contains functions relating Möbius and Euclidean geometry of spheres in the 3-dimensional Möbius space.

?mspher`*

1.5.  Symbols in the Package mcirc.m

The package mcirc.m containes functions specific for the geometry of circles in the 3-dimensional Euclidean space and the Möbius space.

?mcirc`*

1.6.  Symbols in the Package moeb.m

The functions of the package moeb.m relate spseudo-orthonormal and isotropic-orthonormal coordinates of the pseudo-Euclidean vector space. Furthermore funcions describing Euclidean and hyperbolic geometry as subgeometries of the Möbius geometry.

?moeb`*

1.7.   Symbols in the Package mpairs.m

The package mpairs.m containes functions used  for the geometry of pairs of subspheres in the 3-dimensional  Möbius space.

?mpairs`*

vspacepp[null[3],{x,y,z}]

vspace[{null[3],{x,y,z}}]

Simplify[%-%%]

1.8.   Symbols in the Global Context

Evaluate the next cell to get the actual list of the Global`*  symbols in the Global Context.

?Global`*

2.   Spheres and circles

A pair (S, C), consisting of a sphere S and a circle C of the 3-dimensional Euclidean space or the 3-dimensional sphere,  is defined up to a Möbius transform by exactly a single invariant, if C is not contained in S ("general position"). It is easy to show that all pairs (S, C) with C⊂S are Möbius equivalent; indeed, this follows from the transitivity of the action of the Möbius group of the sphere (S^2) .on the manifold of all circles contained in (S^2).  In the first subsection we calculate this invariant moebsc, then we give some examples, and finally we derive an expression of moebsc in terms of Euclidean invariants of the pair (S,C).

2.1 Definition of the Invariant moebsc

We consider the pair (S(vn), C(cn1,cn2)); here S(vn) denotes the sphere corresponding to the spacelike unit vector vn,  and C(cn1,cn2) the circle defined by the Euclidean 2-space spanned by the orthonormal vectors cn1,cn2. Such a pair  is defined up to Möbius equivalence by a single invariant:

?moebsc

moebsc[vn,cn1,cn2]

moebsc[vn_,cn1_,cn2_]:= pssp[vn, cn1]^2 +  pssp[vn, cn2]^2

Obviously, this invariant is independent of the choice of the generating vectors (vn normed, cn1,cn2 orthonormal):

fct[t_] := moebsc[vec[x], stb[4] *Cos[t] + stb[5]*Sin[t],- stb[4]*Sin[t] + stb[5]*Cos[t]]

fct[t]

Simplify[fct[t] -fct[0]]

As circle we have chosen here the "standard circle" grc1 defined by stb[4], stb[5]:

?plotcircle2spv

grc1 =plotcircle2spv[stb[4], stb[5],PlotStyle ->{Red,Thick}]

Sometimes it is better to thicken the circle a bit:

ParametricPlot3D[{Cos[t],Sin[t],0},{t,0,2 Pi},PlotStyle -> Thick]

grc2 = %;

Choosing the standard circle is not a restriction of generality, since the Möbius group acts transitively on the manifold of all circles. The formula for moebsc makes sense for arbitrary vectors vn = vec[x]; it defines an invariant of the pair of subspaces defined by vn, and cn1,cn2,  only if the vector vn is normalized (cn1,cn2 assumed to be orthonormal). If vn is timelike, it defines a hyperbolic 3-dimensional linear complex of spheres: This are all the spheres corressponding to spacelike unit vectors orthogonal to vn. In this case, moebsc[vn, cn1,cn2] = 0 if and only if all spheres containing the circle C(cn1,cn2) belong to the linear sphere complex defined by vn. For isotropic vectors vn = vec[x] only the vanishing of moebsc is an invariant property. Let p denote the point of (S^3) defined by the isotropic vector vn. Then we have
moebsc[vn, cn1,cn2] = 0 <==> p ∈ C.
One easily proves that the Möbius group acts transitively on each of the manifolds of pairs
{(p, C) |  p ∈ C},  {(p, C) |  p ∈ (S^3) \  C}.
(Exercise: Show this using pseudo-orthogonal linear algebra.)

Clear[fct]

2.2  Examples

2.2.1 Inclusion: rank 2

Clearly, we always have rank[{vn,cn1,cn2}] ≥ 2.  Any two pairs (S, C) with C ⊂ S are Möbius equivalent, and this inclusion takes place iff  rank[{vn,cn1,cn2}] = 2, and then we have moebsc[vn,cn1,cn2] = 1. Indeed, we have rank[{vn,cn1,cn2}] = 2 iff vn is contained in the span of cn1, cn2. Then vn must be spacelike, and being   normed it follows moebsc[vn,cn1,cn2] = 1. The spheres corresponding to

vn = cn1*Cos[t] + cn2*Sin[t]

form the bundle of spheres through the circle; this is a spacelike geodesic in the space of all spheres, see the notebook [emg], section 5.3.

Simplify[moebsc[stb[4]*Cos[t] + stb[5]*Sin[t], stb[4], stb[5]]]

Table[euklidsphereplot3D[N[{0,0,0,Cos[k*Pi/10], Sin[k*Pi/10]}],-1,1,-1,1,PlotStyle->Opacity[2/k],Mesh-> None], {k,3,7}];

Show[{%,grc2},PlotRange -> All,Boxed -> False,Axes -> False]

pict1 =%;

2.2..2 Example 1. Tangent Pairs

The condition  moebsc[vn,cn1,cn2] = 1 does not be sufficient for the inclusion of the circle into the sphere. From  the results in [S4] it follows: If

rank[{vn,cn1,cn2}] =3,   and    moebsc[vn,cn1,cn2] = 1

the circle is tangent to, but not contained in the sphere.

1. Example.  Here is the vector defining the unit sphere with center{2,0,0} and radius 1

vmm = spherevec[2,0,0,1]

sph2 =euklidsphereplot3D[vmm,-1,1,-1,1 ,PlotStyle -> Opacity[.4],Mesh-> None]

Show[{%,grc2},PlotRange -> All]

testgr=%;

vcenter[vmm]

vradius[vmm]

moebsc[vmm,stb[4],stb[5]]

rank[{vmm, stb[4],stb[5]}]

Turning the unit sphere around the tangent corresponds to the spacelike vector

vm[t_] =Simplify[ spherevec[1+Cos[t],0,Sin[t],1]]

Simplify[moebsc[vm[t],stb[4],stb[5]]]

For almost all t we have

rank[{vm[t], stb[4],stb[5]}]

The following is a singular exception:

rank[{vm[Pi], stb[4],stb[5]}]

Forr all t≠ k*Pi, k odd  integer, the pair (grc1, (S^2)[t])  is Möbius equivalent to (grc1, (S^2)[0]). As an exercise: Find a Möbius transformation which proves the equivalence.
A figure showing this family of pairs can be seen here or in subsection 2.2.4:

Table[euklidsphereplot3D[vm[i*2*Pi/10],-1,1,-1,1 ,PlotStyle -> Opacity[.4],Mesh-> None],{i,1,10.2}];

Show[{grc1,%}, PlotRange -> All, Boxed-> False, Axes -> False]

2.2.3 Example 2. Bundle of Tangent Circles

vc[t_]=vspace[{1,0,0},{0,1,t},{0,-1,-t}]

Table[Simplify[pssp[%[[i]],%[[j]]]],{i,1,Length[%]},{j,1,Length[%]}]

Simplify[moebsc[vmm,vc[t][[1]],vc[t][[2]]]]

rank[{vmm,vc[t][[1]],vc[t][[2]]}]

Table[plotcircle2spv[vc[i/10],PlotStyle -> Red],{i,-5,5}];

Show[{%,grc2,sph2},PlotRange -> All,Boxed-> False, Axes->False]

tangex= %;

Clearly, all the pairss of this pair family are Möbius equivalent.

2.2.4 Example 3.  Circle and Sphere  Rosette

Let CC be the circle of radius 1 and center {1,0,0} in the x,z-plane:

ParametricPlot3D[{1+Cos[t],0, Sin[t]}, {t,0,2*Pi}]

?plotcircle3D

testcircle[t_]:= plotcircle3D[1+Cos[t],0, Sin[t],Pi/2,0,1]

The unitcircles in this plane with centers at CC give a nice rosette

Table[testcircle[k*2*Pi/10],{k,10}];

Show[%,PlotRange -> All]

All the unitspheres with center at CC are tangent to the standard unit circle grc1 at the point {1,0,0}:

spherevec[1+Cos[t],0, Sin[t],1]

Simplify[%]

This is a family of spacelike vectors defining  spheres tangent to the standard unit circle at the point {1,0,0}:

sphv[t_] := {1+Cos[t],1+Cos[t],0,Sin[t],Cos[t]}

Simplify[pssp[sphv[t],sphv[t]]]

The invariant of the pair is, as expected:

Simplify[moebsc[sphv[t],stb[4],stb[5]]]

rank[{sphv[t],stb[4],stb[5]}]

rank treats the "general" case,  there may exist singular points in which the statement fails, in our example:

rank[{sphv[Pi],stb[4],stb[5]}]

In this case the standard unit circle is contained in the sphere:

Show[{euklidsphereplot3D[N[sphv[Pi]], -1,1,-1,1,PlotStyle  -> Opacity[.5], Mesh -> None], grc2}]

For t ≠ (2k+1)Pi this is not the case, we have a general tangent sphere:

Show[{euklidsphereplot3D[N[sphv[2*Random[]*Pi]], -1,1,-1,1,PlotStyle  -> Opacity[.5], Mesh -> None], grc2},PlotRange -> All]

Here is a family of  spheres, including the singular case

Table[Show[{euklidsphereplot3D[N[sphv[k*Pi/4]], -1,1,-1,1,Mesh -> None,PlotStyle-> Opacity[.3]], grc2}, PlotRange -> All],{k,-4,4}];

Show[%,PlotRange -> All, Boxed -> False, Axes -> False]

tangex3= %;

Spin this picture around the z-axis.

2.2.5 Test of the Conformity

We consider two special pairs (S0, C), (S1,C) with C = grc1,  corresponding to the spacelike vectors

msph0 = sphv[0]

msph1 = sphv[Pi/2]

Show[{euklidsphereplot3D[msph0,-1,1,-1,1,PlotStyle  -> Opacity[.5], Mesh -> None],grc2},PlotRange -> All]

Show[{euklidsphereplot3D[msph1, -1,1,-1,1,PlotStyle  -> Opacity[.5], Mesh -> None],grc2},PlotRange-> All]

At first glance it seems to be doubtful that these pairs, having the same Möbius invariants,  are Möbius equivalent, as follows from the general theory:  In the first pair, the plane of the circle  is orthogonal to the tangent plane of the sphere at the common point, and in the second pair the circle belongs to this plane. But really, they are equivalent; "plane" is not a concept of Möbius geometry, neither "plane of a circle", nor "tangent plane". We ask for a Möbius transformation g with g(msph0,C) = (msph1,C).  We will find  such a Möbius transformation of the sphere (S^3).  As a transformation of the Euclidean space (E^3)  it has a pole, and is conformal for all other points. 
The example of these pairs is interesting since it shows a two pairs of Euclidean objects being Möbius equivalent, but not conformally Euclidean equivalent.

msph0

msph1

We find a pseudo-orthogonal matrix of order two  transforming the first two components into each othe; the third component remains fixed, and the last two components are permuted.

Reduce[{{Cosh[t],Sinh[t]},{Sinh[t],Cosh[t]}}.{2,2}== {1,1}, t, Reals]

mat ={{Cosh[t],Sinh[t],0,0,0},{Sinh[t],Cosh[t],0,0,0},stb[3],stb[5],-stb[4]}/.t-> -Log[2]

%//MatrixForm

Table[pssp[mat[[i]],mat[[j]]],{i,5},{j,5}]

Det[mat]

Indeed, mat is pseudo-orthogonal, orientation preserving, and maps msph0 into msph1;

mat.msph0

%== msph1

Obviously, it preserves the standard unitcircle. The corresponding map in orthonormal coordinates of the Euclidean 3-space is given by

stepro[mat.invstepro[vec[x,3]]]

FullSimplify[%]

fmat= %;

fmat/.{x[1]->x,x[2]->y,x[3]->z}

fg[x_,y_,z_] := {-(3/5)+((8 (4 x+3 z))/(5 (5+x (-6+5 x)+5 (y^2)+z (8+5 z)))),((8 y)/(5+x (-6+5 x)+5 (y^2)+z (8+5 z))),((4 (-1+(x^2)+(y^2)+(z^2)))/(5+x (-6+5 x)+5 (y^2)+z (8+5 z)))}

Clearly, this map must have a pole; we  find it by

Reduce[5+x (-6+5 x)+5 (y^2)+z (8+5 z)== 0,{x,y,z},Reals]

This is a pole:

fg[3/5,0,-4/5]

===>>>Now we verify that the map fg is conformal for all points {x,y,z} ≠{3/5, 0, -4/5}. We calculate the partial derivatives

D[fg[x,y,z],x]

FullSimplify[%]

fgx[x_,y_,z_] := {-((16 (2 (x^2)-2 (y^2)+3 x z-(2+z) (1+2 z)))/(((5+x (-6+5 x)+5 (y^2)+z (8+5 z)))^2)),-((8 (-6+10 x) y)/(((5+x (-6+5 x)+5 (y^2)+z (8+5 z)))^2)),-((8 (3 (x^2)-2 x (5+4 z)-3 (-1+(y^2)+(z^2))))/(((5+x (-6+5 x)+5 (y^2)+z (8+5 z)))^2))}

D[fg[x,y,z],y]

FullSimplify[%]

fgy[x_,y_,z_] :={-((16 y (4 x+3 z))/(((5+x (-6+5 x)+5 (y^2)+z (8+5 z)))^2)),((8 (5+x (-6+5 x)-5 (y^2)+z (8+5 z)))/(((5+x (-6+5 x)+5 (y^2)+z (8+5 z)))^2)),((16 y (5-3 x+4 z))/(((5+x (-6+5 x)+5 (y^2)+z (8+5 z)))^2))}

D[fg[x,y,z],z]

FullSimplify[%]

fgz[x_,y_,z_]:={((8 (3 (x^2)-2 x (5+4 z)+3 (1+(y^2)-(z^2))))/(((5+x (-6+5 x)+5 (y^2)+z (8+5 z)))^2)),-((8 y (8+10 z))/(((5+x (-6+5 x)+5 (y^2)+z (8+5 z)))^2)),-((16 (2 (x^2)+2 (y^2)+3 x z-(2+z) (1+2 z)))/(((5+x (-6+5 x)+5 (y^2)+z (8+5 z)))^2))}

Here is the matrix describing the differential of fg at the point {x, y, z}:

derfg[x_,y_,z_] := {fgx[x,y,z],fgy[x,y,z],fgz[x,y,z]}

mmfg =derfg[x,y,z]

The Euclidean scalar products of the partial derivatives form the matrix

FullSimplify[Table[mmfg[[i]].mmfg[[j]],{i,3},{j,3}]]

%//MatrixForm

(((5+x (-6+5 x)+5 (y^2)+z (8+5 z)))^2)/.{x->3/5, y->0, z -> -4/5}

Reduce[5+x (-6+5 x)+5 (y^2)+z (8+5 z)==0,{x,y,z}, Reals]

It follows that the pole is the only real  zero of the nominator; the shape of the matrix shows that the map fg  is conformal at all other points. We check  that fg transforms the pairs as stated. First we see that the standard unit circle is transformed onto itself:

Simplify[fg[Cos[u],Sin[u],0]]

ParametricPlot3D[%,{u,0,2*Pi},PlotPoints -> 60, PlotRange -> All]

Of course, the common point of the pairs remaines fixed:

fg[1,0,0]

Finally, the image of the sphere corresponding to sph0:

ParametricPlot3D[{2+Cos[u]*Cos[v],Sin[u]*Cos[v],Sin[v]},{u,0,2*Pi},{v, -Pi/2,Pi/2}]

Show[{%,grc2},PlotRange -> All]

is the sphere corresponding to sph1:

ParametricPlot3D[fg[2+Cos[u]*Cos[v],Sin[u]*Cos[v],Sin[v]],{u,0,2*Pi},{v, -Pi/2,Pi/2},PlotPoints -> 60, PlotRange -> All]

Show[{%,grc2},PlotRange ->All]

2.2..6 Intersecting Pairs

We assume now rank[vn, cn1, cn2] = 3. The sphere S and the circle C are intersecting in a 0-sphere (two points) iff the orthogonal complement of span[vn,cn1, cn2] is pseudo-Euclidean, and this is the case iff

moebsc[vn, cn1, cn2] < 1.

In the next subsection we will see that in this case one has

((Cos[α])^2) =  moebsc[vn, cn1, cn2],

where α denotes the intersection angle. Consider the standard unit circle and the halfspheres

Table[moebsc[stb[2]*Cos[k*Pi/20]+stb[5]*Sin[k*Pi/20],stb[4],stb[5]], {k,3,8}]

N[%]

Table[euklidsphereplot3D[N[stb[2]*Cos[k*Pi/20]+stb[5]*Sin[k*Pi/20]],-1,1,-1,1,PlotStyle -> Opacity[.2], Mesh -> None], {k,3,8}]

Show[%,PlotRange -> All]

Show[{grc2, %}, PlotRange -> All]

tgr1 = %;

We try another example: We fix the unit sphere and vary the circle:

Table[moebsc[stb[4],stb[3]*Sin[k*Pi/20] + stb[4]*Cos[k*Pi/20], stb[2]*Sqrt[2]+stb[5]], {k,1,10}]

N[%]

Table[plotcircle2spv[stb[3]*N[Sin[k*Pi/20]]+ stb[4]*N[Cos[k*Pi/20]], stb[2]*N[Sqrt[2]]+stb[5],PlotStyle -> {Green,Thick}], {k,1,10}]

Show[%,PlotRange -> All]

tgrc10 = %;

grs1=euklidsphereplot3D[stb[5], -1,1,-1,1,   Mesh -> None,PlotStyle->{Opacity[.3], Red}];

Show[{grs1,tgrc10},PlotRange -> All]

tgrscc = %;

2.2.7 Orthogonal Intersections

The standard unit circle intersects the "sphere" x = 0 orthogonally:

moebsc[stb[2],stb[4],stb[5]]

Generally, any sphere corresponding to a spacelike unit vector of the orthogonal complement to [cn1, cn2], here the space spanned by stb[1], stb[2], stb[3], intersects the circle grc1 orthogonally. 
We consider the  spheres S(stb[1]Cosh[t] + stb[5]*Sinh[t]):

moebsc[stb[2]Cosh[t] + stb[3]*Sinh[t],stb[4],stb[5]]

Table[euklidsphereplot3D[stb[2]Cosh[t] + stb[3]*Sinh[t]],{t, 0, 2, 0.5}]

extab = %;

Table[Show[{extab[[i]], grc2}], {i,1,5}]

Show[%,PlotRange -> All]

Show[{extab[[5]],grc2},PlotRange -> All]

gs2 = %;

The set of all the spheres intersecting  a given circle orthogonally is a 2-dimensional sphere family, corresponding to the hyperboloid of spacelike unit vectors of the orthogonal complement of cn1,cn2: a linear sphere congruence.

ur = Random[];tr=Random[];vsph={Sinh[tr],Cos[ur*2*Pi]*Cosh[tr], Sin[ur*2*Pi]*Cosh[tr],0,0}

N[pssp[%,%]]

moebsc[vsph,stb[3],stb[4]]

euklidsphereplot3D[vsph,-1,1,-1,1, PlotStyle -> Opacity[.4], Mesh-> None]

Show[{%, grc2},PlotRange -> All]

2.2.8 Disjoint Pairs

We consider the spheres S(stb[4]Cosh[t] + stb[1]*Sinh[t]). Obviously, for t = 0 the standard circle grc1 is contained in the corresponding "sphere", the x,y-plane:

euklidsphereplot3D[stb[4]]

Show[{%,grc2}]

Since moebsc > 1 for t ≠ 0, any sphere S(stb[3]Cosh[t] + stb[5]*Sinh[t]) is disjoint to the unit circle:

moebsc[stb[4]Cosh[t] + stb[1]*Sinh[t],stb[4],stb[5]]

euklidsphereplot3D[stb[4]Cosh[2.] + stb[1]*Sinh[2.]]

Show[{%,grc2},PlotRange -> All]

gs2 = %;

Evaluste the next cells several times and compare the value of moebsc with the graphical result:

tr=Random[];vsph={Sinh[2*tr],0, 0,Cosh[2*tr],0}

moebsc[vsph,stb[3],stb[4]]

Show[{euklidsphereplot3D[vsph],grc2},PlotRange -> All]

2.3  Euclidean Interpretation of moebsc

2.3.1 A General Formula

The spacelike vector defining a sphere with given center and radius is

?spherevec

sv =spherevec[x,y,z,r]

pssp[%,%]

Simplify[Together[%]]

The adapted frame of the arbitrary circle is

?circlespacevectors

cv = circlespacevectors[X,Y,Z,U,V,R]

We  calculate

Simplify[moebsc[sv, cv[[1]], cv[[2]]]]

The vector

vd ={x,y,z} - {X,Y,Z}

is the radius vector of the centers, and

vn=unit[2][{U,V}]

is the position vector: a unit normal vector of the plane of the circle. Therefore we can express the conformal invariant moebsc as a function of the Euclidean positioning entities vd,vn, r, R:

moebscfct[vd_List, vn_List, r_,R_] :=
((vd.vd -r^2 -R^2)/(2*r*R))^2 +((vd.vn)/r)^2

In Euclidean terms, the radii r, R, the distance of the centers d = Sqrt[vd.vd], and the angle

phi,d *Cos[phi]=vd.vn,0≤phi<Pi,

between the postion vector vn and the radiusvector of the centers vd are a complete invariant system of the pair of non-oriented circle with a non-oriented sphere. In these terms the conformal invariant moebsc can be expressed as

euklidmoebsc[d_,r_,R_,phi_] := ((d^2 -r^2 -R^2)/(2*r*R))^2 + ((d*Cos[phi])/r)^2

euklidmoebsc[d,r,R,phi]

As far as I know,  this expression of the conformal invariant of a sphere and a circle is new; at least I have not found it in the literature. The result is a good example of a symbolic calculation in Mathematica with the tools developed in the item "Spheres" or in  the new  emg-notebooks. The first term is the square of the conformal Coxeter invariant of the given sphere with the sphere through the circle, having the same center and radius as the circle:

coxeterinv[r,R,d]

The second term measures the influence of the angle between the position vector and the radius vector of the centers; d*Cos[phi] is the length of the projection of this radius vector onto the normal of the circle plane through the circle's center. From our expression euklidmoebsc one recognizes immediately that moebsc vanishes if and only iff the circle intersects the sphere orthogonally: The tangents of the circle at the intersection points are the radial lines from the center of the sphere to these points.

2.3.2 Evaluation

Since any circle is Möbius equivalent to the standard circle grc1, given by stb[4], stb[5],  we reach all possible values of the invariant by

moebsc[spherevec[x,y,z,r],stb[4], stb[5]]

what coincides with

moebscfct[{x,y,z},{0,0,1}, r, 1]

Since m = {x,y,z} is the center of the sphere, and d = Sqrt[m.m] the distance of the centers, we may simplify this formula as follows:

fctinv[d_, r_,z_] :=  ((1 + r^2 -d^2)^2 + 4*z^2)/(4*r^2)

Obviously, only the values for  (z^2)≤  (d^2)are to consider.

fctinv[d,r,z]

Clearly, this is not a Möbius invariant of the arbitrary sphere with an arbitrary circle: alle the spheres are compared with the standard circle grc1. Therefore it is not invariant e.g. against dilatations, which are Möbius transformations. In spite of this the function may be applied to study how the invariant moebsc depends of the Euclidean invariants. Here the sphere has radius 1, its center is on the z-axis at d = z:

Simplify[fctinv[d,1,d]]

Plot[fctinv[d,1,d], {d, 0,3}]

Here the circle is contained in the unit sphere (as equator, what is not essential):

fctinv[0,1,0]

Now the unit sphere has the center in distance d from the origin (the circle's center); the center lies in the plane of the circle:

Plot[fctinv[d,1,0], {d, 0,3}]

For d = Sqrt[2] we have orthogonal intersection of circle and sphere:

fctinv[Sqrt[2],1,0]

?sphereplot3D

sphereplot3D[{Sqrt[2], 0,0},1,0, 2*Pi,-Pi/2,Pi/2,Mesh-> None, PlotStyle-> Opacity[.3]]

Show[{%,grc2},PlotRange -> All]

In the following picture only the values Abs[z] ≤ d are to consider:

Plot3D[fctinv[d,1,z],{d,0,2},{z,-d,d}]

FindMinimum[fctinv[d,1,z],{d,1},{z,0}]

2.3.3 The Invariant moebsc and the Mutual Position

The standard unit sphere:

spherevec[0,0,0,1]

euklidsphereplot3D[-stb[5],-1,1,-1,1,PlotStyle -> Opacity[.4], Mesh -> None]

sph1 = %;

The circle with Radius R, center at X on the x-axis and position vector

unit[2][{u,v}]

corresponds to the Euclidean 2-space  spanned by

csvs[X_,R_,u_,v_]:=circlespacevectors[X,0,0,u,v,R]

Simplify[csvs[X,R,u,v]]

vspuv = %;

Simplify[Table[pssp[vspuv[[i]],vspuv[[j]]],{i,1,2},{j,1,2}]]

Some pairs: the sphere sph1 and circles with X = R = 2, and random u,v:

bspv[u_,v_] :=  {{2*Cos[u] Cos[v],Cos[u] Cos[v],Cos[v] Sin[u],Sin[v],2 Cos[u] Cos[v]},{(1/4),1,0,0,-(1/4)}}

Table[(a = Random[]*2*Pi;b = Random[]*Pi;Print["u = " , a," v = ",b];Print["moebsc = ",moebsc[stb[5],bspv[a,b][[1]],bspv[a,b][[2]]]] ;Show[{plotcircle2spv[bspv[a,b][[1]],bspv[a,b][[2]]],sph1},PlotRange -> All]),{4}]

For studying the properties of moebsc[(S,C)], without restriction of generality we may assume that S is the standard unit sphere and that the line connecting the centers of S and C is the x-axis.

moebsc[spherevec[0,0,0,1],vspuv[[1]], vspuv[[2]]]

We consider

fctmoebscuv[X_,R_,u_,v_] =%;

Since all the unit circle with center at the origin are contained in the standard unit sphere we obtain the constant 1 for

fctmoebscuv[0,1,u,v]

Next we consider the standard unit sphere and circles with radius 1, center {3/2,0,0}, and arbitrary position vector:

Plot3D[fctmoebscuv[3/2,1,u,v], {u,0,2*Pi}, {v,-Pi/2,Pi/2}]

Now we turn the unit circle with center {3/2, 0, 0} around the parallel to the z-axis through the center:

Table[Print["moebsc = ", N[moebsc[stb[5],csvs[3/2,1,k*Pi/5,0][[1]],csvs[3/2,1,k*2*Pi/5,0][[2]]]]];Show[{plotcircle2spv[csvs[3/2,1,k*Pi/5,0][[1]],csvs[3/2,1,k*Pi/5,0][[2]]],sph1},PlotRange -> All], {k,5}]

Show[%, PlotRange -> All]

fctmoebscuv[3/2,1,u,0]

Plot[fctmoebscuv[3/2,1,u,0],{u,0,2*Pi}]

N[fctmoebscuv[3/2,1,0,0]]

N[fctmoebscuv[3/2,1,Pi/2,0]]

fctmoebscuv[3/2,1,u,0]

Here are the tangent cases:

Reduce[(1/4) ((1/16)+9 ((Cos[u])^2))==1,u,Reals]

N[ArcCos[((Sqrt[7])/4)]]

N[ArcCos[((-(Sqrt[7]))/4)]]

plotcircle2spv[csvs[3/2,1,0.848062078981481`,0][[1]],csvs[3/2,1,0.848062078981481`,0][[2]]]

tc1 = %;

plotcircle2spv[csvs[3/2,1,2.293530574608312`,0][[1]],csvs[3/2,1,2.293530574608312`,0][[2]]]

tc2 = %;

Show[{tc1,tc2,sph1}, PlotRange -> All]

The minimum is

fctmoebscuv[3/2,1,Pi/2,0]

The intersection angle in this position (circle is contained in the x,z-plane) is (In degrees)

N[ArcCos[1/8]]*180/Pi

plotcircle2spv[csvs[3/2,1,Pi/2,0][[1]],csvs[3/2,1,Pi/2,0][[2]],PlotStyle-> Thick]

Show[{%,sph1},PlotRange -> All]

The position for the maximum:

fctmoebscuv[3/2,1,0,0]

plotcircle3D[1.5,0,0,0, 0, 1]

Show[{%,sph1}, PlotRange -> All]

2.3.4 Plane and Circle

If the sphere S of the pair (S,C) appears as an Euclidean plane with an equation in Hesse's normal form

Clear[a,b];
{vec[x,3].{a,b,c} == p, {a,b,c}.{a,b,c} == 1}

its characterizing spacelike vector in the 5-space is

?planevec

pn =planevec[a,b,c,p]

We consider again

cv = circlespacevectors[X,Y,Z,U,V,R]

and  calculate

Simplify[moebsc[pn, cv[[1]], cv[[2]]]]

The term d = -p+a X+b Y+c Z is the distance of the center of the circle to the plane, and the expression

Cos[α] = a Cos[U] Cos[V]+b Cos[V] Sin[U]+c Sin[V]

defines the angle α between the given plane and the plane of the circle. Therefore we get for the Möbius invariant of the pair (P,C) of the plane P and the circle C the expression moebsc in Euclidean terms:

planecirclemoebsc[d_,R_,alpha_] := (d/R)^2 +(Cos[alpha])^2

It is easy to transfer the geometric consideration we did in the case (sphere, circle) to the pairing (plane, circle).

Clear[cv,pn,x]

The combinations (plane,  line), (sphere, line) we leave to the interested reader...

3.  Spheres and Point Pairs

3.1.  Point Pairs as 0-Spheres

3.1.1  An Adapted Frame

A point pair can be represented by a pair of isotropic vectors, which define a pseudo-Euclidean 2-space, or its orthogonal complement, an Euclidean 3-space in the 5-dimensional pseudo-Euclidean vector space. We will construct for any pair (a,b) of distinct points in the 3-space, i.e. a  0-sphere, an pseudo-orthonormal frame (c[[i]]) in the pseudo-Euclidean 5-space such that
a = stepro[c[[1]] + c[[5]]],   b  = stepro[c[[1]] - c[[5]]].
Such a frame we call adapted to the 0-sphere; of course, it is not uniquely defined.  To this aim we first construct a pseudo-orthonormal basis of the pseudo-euclidean 2-space spanned by the preimages invstepro[a], invstepro[b], and then an orthonormal basis of its orthogonal complement; joining these bases we obtain the wanted adapted frame.
Here is a variable point in the Euclidean 3-space:

point[a_] := Table[a[i], {i,1,3}]

A corresponding isotropic vector is

invstepro[point[a]]

Simplify[pssp[%,%]]

The following scalar product is not Möbius invariant, since the point defines the  isotropic vector only up to a non zero factor; the expression is zero iff point[a] = point[b]. Any two pairs of distinct points are Möbius equivalent.

pssp[invstepro[point[a]],invstepro[point[b]]]

Simplify[Together[%]]

We will show that his expression equals the following Euclidean invariant of the radius vector pair

euinv[a_List,b_List] := -2(a-b).(a-b)/((1 + a.a)*(1 + b.b))/;Length[a]== Length[b]

being negative for a≠ b.

euinv[point[a],point[b]]

euinv[stb[1,3],stb[2,3]]

pointt[a_] := invstepro[point[a]]

pointt[a]

?stepro

For two points a, b we obtain orthogonal vectors

Simplify[Together[pssp[pointt[a] + pointt[b], pointt[a] - pointt[b]]]]

Simplify[Together[pssp[pointt[a] + pointt[b], pointt[a] + pointt[b]]]]

Simplify[% == -((4*((a[1] - b[1])^2 + (a[2] - b[2])^2 + (a[3] - b[3])^2))/((1 + a[1]^2 + a[2]^2 + a[3]^2)*(1 + b[1]^2 + b[2]^2 + b[3]^2)))]

Simplify[Together[%%- 2*euinv[point[a],point[b]]]]

Thus  pointt[a] + pointt[b] is timelike for a≠ b.  Obviously we have

Simplify[Together[pssp[pointt[a] + pointt[b], pointt[a] + pointt[b]]== 2*pssp[pointt[a],pointt[b]]]]

Analogously we get

Simplify[Together[pssp[pointt[a] - pointt[b], pointt[a] - pointt[b]]]]

Simplify[Together[% + 2*euinv[point[a],point[b]]]]

Thus  pointt[a] - pointt[b] is spacelike for a≠ b. These formulae lead to the following procedure, which defines an adapted pseudo-orthogonal frame of the pseudo-Euclidean 2-space, spanned by the representing isotropic vectors pointt[a],  pointt[b] of the 5-space:

pp2space[a_List,b_List] := Module[{eu,d = Length[a],m},
		If[(Length[b] != d)||(a== b), 
				Print["Incorrect arguments!"];Return[]];
m = Table[null[d+2] ,{2}];
		eu =4(a-b).(a-b)/((1 + a.a)*(1 + b.b));
	m[[2]] = (invstepro[a] - invstepro[b])/Sqrt[eu];
m[[1]]= (invstepro[a] + invstepro[b])/Sqrt[eu]; Return[m]]

pp2space[a_List] := pp2space[a[[1]], a[[2]]]

?pp2space

for control purpose we set

pts=pp2space[point[a], point[b]]

and verify

FullSimplify[pssp[pts[[1]],pts[[2]]]]

FullSimplify[pssp[pts[[2]],pts[[2]]]]

FullSimplify[pssp[pts[[1]],pts[[1]]]]

Applying the pseudo-Euclidean expression for the stereographic projection we obtain the Euclidean points back:

stepro[pts[[1]]+pts[[2]]]

stepro[pts[[1]]-pts[[2]]]

An orthonormal basis of the orthogonal complement is obtained by

?vspacepp

vspacepp[a_List, b_List] := Module[{m,m1,d=Length[a]},
m = pp2space[a,b];
If[m ==Null, Return[Null]];
m1 = orthonorm[NullSpace[{dual[m[[1]],d+2],dual[m[[2]],d+2]}]];
Return[m1]]
vspacepp[a_List] := vspacepp[a[[1]], a[[2]]]

Joining these bases we obtain the wanted adapted frame of the pseudo-Euclidean 5-space:

?psframepp

psframepp[a_List,b_List] :=  Module[{m,m1, d = Length[a]},
    m = pp2space[a,b];
    If[m ==Null, Return[Null]];
    m1 = orthonorm[NullSpace[{dual[m[[1]]],dual[m[[2]]]}]];
    Return[Append[Prepend[m1,m[[1]]],m[[2]]]]]

3.1.2  Test of vspacepp

vspacepp[null[3], stb[1,3]]

vvv[x_,y_,z_] =vspacepp[null[3], {x,y,z}]

The general formula leads to a fault for x= 0:

FullSimplify[%, {x,y,z}∈Reals]

Table[Simplify[Chop[pssp[%[[i]],%[[j]]]]],{i,Length[%]},{j,Length[%]}]//MatrixForm

vvv[0,y,z]

The reason is that Mathematica simplifies Abs[x)/x -> 1/Sin[x] what may cause an error incase x=0.  Direct evaluation yields the expected result:

vspacepp[null[3], {0,y,z}]

Table[Simplify[Chop[pssp[%[[i]],%[[j]]]]],{i,Length[%]},{j,Length[%]}]//MatrixForm

vspacepp[null[3], {0,0,z}]

Table[Simplify[Chop[pssp[%[[i]],%[[j]]]]],{i,Length[%]},{j,Length[%]}]//MatrixForm

vspacepp[null[3], {0,0,0}]

Timing[vspacepp[-{x,y,z}, {x,y,z}]]

www[x_,y_,z_]=Simplify[%[[2]]]

Table[Simplify[Chop[pssp[%[[i]],%[[j]]]]],{i,Length[%]},{j,Length[%]}]//MatrixForm

Here x=0 leads to an erro rmessage

www[0,y,z]

Again this happens, since Mathematica simplifies

FullSimplify[Abs[x]/x,x∈Reals]

instead of

FullSimplify[Abs[x]/x == Sign[x], x∈Reals]

FullSimplify[Abs[x]/x == 1/Sign[x], x∈Reals]

www[x,y,z]

The direct calculation yields the correct result

vspacepp[-{0,y,z}, {0,y,z}]

{{((-1+(y^2)+(z^2))/(2 (Sqrt[(y^2)+(z^2)]))),0,0,0,((1+(y^2)+(z^2))/(2 (Sqrt[(y^2)+(z^2)])))},{0,0,-((z Abs[y])/(y (Sqrt[(y^2)+(z^2)]))),((Abs[y])/(Sqrt[(y^2)+(z^2)])),0},{0,1,0,0,0}}

Table[Simplify[Chop[pssp[%[[i]],%[[j]]]]],{i,Length[%]},{j,Length[%]}]//MatrixForm

Table[Simplify[Chop[pssp[%%[[i]],invstepro[-{0,y,z}]]]],{i,Length[%%]}]

Table[Simplify[Chop[pssp[%%%[[i]],invstepro[{0,y,z}]]]],{i,Length[%%%]}]

vspacepp[-{0,0,z}, {0,0,z}]

vspacepp[-{0,0,0}, {0,0,0}]

vspacepp[-{0,y,0}, {0,y,0}]

Inserting the corresponding arguments into the function www we again obtain error messages.

www[0,y,0]

3.1.3  Examples

psframepp[{1,1,1},{0,0,0}]

Table[pssp[%[[i]],%[[j]]],{i,1,5},{j,1,5}]//MatrixForm

Timing[psframepp[randomv[3],randomv[3]]]

atpp = %[[2]];

Table[Chop[pssp[%[[i]],%[[j]]]],{i,1,5},{j,1,5}]//MatrixForm

psframepp[{1,1,1},{1,1,1}]

Remember: null[] = null[dim]:

psframepp[{1,1,1},null[]]

Simplify[psframepp[{-t,0,0},{t,0,0}]]

Simplify[%, t>0]

Simplify[Table[pssp[%[[i]], %[[j]]],{i,5}, {j,5}]]//MatrixForm

The procedure works correctly also in symbolical calculations

Simplify[psframepp[{a,b,c},{x,y,z}]]

The next two cells show that the calculated frame is adapted:

stepro[%[[1]]+%[[5]]]

stepro[%%[[1]]-%%[[5]]]

3.1.4  Random Test

The procedures pp2space,vspacepp, psframepp work in arbitrary dimension. We consider random points in the 4space and put

dim = 6;

psid =dual[IdentityMatrix[6]]//MatrixForm

We take two random points of the eucliden 4-space (recommendation: try it with different factors), and control the pseudo-orthonormality of the resulted adapted frame:

(a =-5* randomv[4];b =4* randomv[4];
	Print[{a,b}];
mat = Timing[psframepp[a,b]];
Print[mat[[1]],MatrixForm[mat[[2]]]];
	mbt = Table[pssp[mat[[2,i]],mat[[2,j]]],{i,6},{j,6}];
	Print[Chop[mbt]])

The random points are reproduced:

{stepro[mat[[2,1]] + mat[[2,dim]]], stepro[mat[[2,1]] - mat[[2,dim]]]} =={a,b}

Now we restore the dimension

dim = 5;

Clear[a,b,mat, mbt,psid]

3.2. The Invariant moebspp and the Mutual Position

3.2.1. The definition

Let the 0-sphere (a, b) consisting of  two distinct  points of the 3-space be given. Then the corresponding Euclidean 3-subspace of the pseudo-Euclidean 5-space is the span of the orthonormal vectors vspacepp[point[a], point[b]] defined above.

point[a]

Let the spacelike unit vector vn define a sphere, and the orthonormal vectors b ={ b[[1]], b[[2]], b[[3]]} span the subspace vspacepp of the point pair. Then, see [O-S] or [S4],  the only invariant describing the mutual position is

?moebspp

moebspp[n_List,a_List,b_List] := Module[{m, dn = Length[n], da=Length[a]},
If[(da ≠ Length[b])|| (da+2 ≠ dn), Print["Incorrect arguments!"];Return[]];
m = vspacepp[a,b];
Return[Sum[pssp[m[[i]], n]^2,{i,da}]/pssp[n,n]]]

The point pair belongs to the hypersphere iff

indicator[n_List,a_List,b_List] := pscross[Join[ vspacepp[a,b],{n}]]

equals null[]; the pair (sphere, point pair) is not in general position.

Remark. The last two definitions and the last statement are valid in any dimension dim ≥ 3.

?indicator

3.2.2. The Mutual Position

Since the Möbius group acts transitively on the space of all spheres we may assume that the sphere under consideration is the standard unit sphere defined by stb[5]:

euklidsphereplot3D[stb[5]]

If one of the points belong to the sphere we may assume by the transitivity of the action of the Möbius group on the sphere that this point is {1,0,0}. we obtain

moebspp[stb[5],{x,y,z},{1,0,0}]

This is also the case if both points belong to the sphere. An arbitrary point of the unit sphere is

unit[u,v]

moebspp[stb[5],unit[u,v],{1,0,0}]

Both cases are distinguished by the value of the indicator which is zero iff both points belong to the sphere:

indicator[stb[5],{x,y,z},{1,0,0}]

indicator[stb[5],unit[u,v],{1,0,0}]

Equal points generate an error message:

indicator[stb[5],{x,y,z},{x,y,z}]

Now we consider the case that none of the points a, b belongs to the sphere. By spherical reflection we reach that one of the points lies inside the sphere. Since the Möbius group acts transitively on all points inside the sphere (remember hyperbolic geometry) we may assume that one point is the origin. We getall possible mutual positions with one point not on the sphere consideringthe point pair {{0,0,0}, {x,y,z}} and the unit sphere, defined by stb[5]; the invariant is

Clear[x,y,z];invfctspp[x_,y_,z_] = moebspp[stb[5], {0,0,0},{x,y,z}]

We calculate  the function

inv=Simplify[invfctspp[x,y,z]]

This simple result shows: The points are separated by the sphere iff inv < 1, they lie on one side of the sphere iff inv >1, and  only one point belongs to the sphere iff inv = 1. If the points coincide we obtain an error message:

moebspp[stb[5], {x,y,z},{x,y,z}]

For opposite points we obtain

inv =moebspp[stb[5], -{x,y,z},{x,y,z}]

Reduce[%<1,{x,y,z},Reals]

This expression equals 1 iff the points lie on the sphere, and >1 else; opposite points are never separated by the sphere. Discuss the invariant

inv =moebspp[stb[5], {1-x,0,0},{1+x,0,0}]

and remark its incorrectness at the singularity at x = 0 :

inv =moebspp[stb[5], {1-x,0,0},{1+x,0,0}]/.x->0

inv =moebspp[stb[5], {1,0,0},{1,0,0}]

3.3. An Expression of the Invariant moebspp in Euclidean Terms

3.3.1. The result

Now we consider the arbitrary sphere with the corresponding spacelike vector

vs = spherevec[x,y,z,r]

and the point pair {{-t,0,0}, {t,0,0}}. We calculate the invariant

moebspp[vs,{-t,0,0}, {t,0,0}]

Simplify[%, t>0]

This result leads to the following  function:

fctmoebspp[t_, x_, y_, z_, r_] :=(4*t^2*(y^2 + z^2) + 
(-r^2 - t^2 + x^2 + y^2 + z^2)^2)/(4*r^2*t^2)

Test: The points belong to the sphere:

fctmoebspp[t,0,0,0,t]

Simplify[fctmoebspp[t,0,0,z,Sqrt[z^2 +t^2]]]

The terms entering in the function

fctmoebspp[t,x,y,z,r]

have very simple Euclidean interpretations: r and t are the radii of the spheres, d = (Sqrt[(x^2)+(y^2)+(z^2)]) is the distance of their centers, and   (t^2) ((y^2)+(z^2)) is the square of the surface of the triangle formed by the point pair and the center of the sphere:

cross[{{x,y,z},{t*2,0,0}}]/2

%.%

It follows:
PROPOSITION 1. In the Euclidean 3-space let r >0 denote the radius of the 2-sphere S, t >0 the radius of the 0-sphere pp,  d the distance of their centers, and u, 0 ≤ u < Pi, the angle between the line containing the 0-sphere and the line containing the centers, u=0 in case d=0. Then the function

euklidmoebspp[r_,t_,d_,u_] := (d^2-r^2-t^2)^2/(4*r^2*t^2) + (d*Sin[u]/r)^2

euklidmoebspp[r,t,d,u]

is conformally invariant; it is an expression of the Möbius invariant moebspp[(S,pp)) of the pair (S,pp) in Euclidean terms.

COROLLARY.  The last formula is valid for hyperspheres and 0-spheres of the n-dimensional Euclidean space.

3.3.2. Test

Let the 0-sphere be {{0,0,-t},{0,0,t}} and the center of the 2-sphere be

ct2sph[d_, v_,u_] := d*unit[2][{v,u}]

ct2sph[d,v,u]

The spherevector is

sph2v[d_,u_,v_,r_] := spherevec[d Cos[u] Cos[v],d Cos[u] Sin[v],d Sin[u],r]

Activate the next cell repeatedly; change the factors at the random varibles, if wanted.

(d=.9*Random[];u=Random[]*Pi/2; v=Random[]*Pi*2;r=Random[];t=Random[]; 
Print["(d,u,v,r,t) = ",{d,u,v,r,t}];
res= moebspp[sph2v[d,u,v,r],{0,0,-t},{0,0,t}];
Print["res = ", res];
eures = euklidmoebspp[r,t,d,Pi/2 -u];
Print["eures = ", eures];
Print["diff = ",Chop[res - eures]];
Show[{euklidsphereplot3D[sph2v[d,u,v,r],-1,1,-1,1,PlotStyle ->  Opacity[.2],Mesh-> None], Graphics3D[{PointSize[0.04],Point[{0,0,-t}],Point[{0,0,t}]}]},PlotRange -> All]
)

3.3.3.  Sphere

Now we consider  the point pair with t = 1 and the unit sphere S1 with center {1,0,0};their invariant is

fctmoebspp[1,1,0,0,1]

Point pair and sphere are "interlaced": any sphere through the point pair intersects the sphere S1. We will calculate the intersection angle between the sphere S1 and any sphere through the point pair. The spacelike vectors of this sphere bundle  form the unit sphere in

vspacepp[{-1,0,0},{1,0,0}]

Clear[u,v];vn[u_,v_] := stb[3]*Cos[u]*Cos[v] + stb[4]*Cos[u]*Sin[v] +stb[5]*Sin[u]

pssp[vn[u,v],invstepro[{-1,0,0}]]

pssp[vn[u,v],invstepro[{1,0,0}]]

The sphere vector of S1 is

sv1=spherevec[1,0,0,1]

euklidsphereplot3D[sv1,-1,1,-1,1,Mesh-> None,PlotStyle->{Red, Opacity[.3]}]

sph1 =%;

The points are

pts =Graphics3D[{PointSize[0.03],Point[{-1,0,0}],Point[{1,0,0}]}];

Show[{pts,sph1}]

The following function gives the cosinus of the intersection angle of the spheres sph1 and thhe sphere defined by vn[u,v]:

Clear[u,v];ftest[u_,v_] :=pssp[sv1,vn[u,v]]

ftest[u,v]

The maximum of this function is 1/2 (u=3*Pi/2), and the Minimum is - 1/2 (u=Pi/2):

ftest[3*Pi/2,v]

ftest[Pi/2,v]

vn[3*Pi/2,v]

vn[Pi/2,v]

Maximum and minimum are reached with the standard unit sphere with opposite orientation:

euklidsphereplot3D[%,-1,1,-1,1,Mesh-> None,PlotStyle->{Green, Opacity[.1]}]

sphmim= %;

Thus, the maximum of ftest[u,v] is 1/2, and this is the square root of the "eigenvalue", which is in this case simply the invariant moebspp.

For the intersection angle we have

angle[u_] := 
  ArcCos[-Sin[u]/2 ]

Plot[angle[u]*180/Pi, {u,0,2*Pi}]

The minimal angle is 60°.

angle[3*Pi/2]*180/Pi

The minimal angle will be reached for the sphere

vn[3*Pi/2,v]

vradius[%]

vcenter[%%]

sphmin equals -spmax (opposite orientation)

Show[{pts,sphmim,sph1}]

Table[euklidsphereplot3D[vn[u,0],-1,1,-1,1,Mesh-> None,PlotStyle->{Blue, Opacity[.1]}],{u,Pi/2,3*Pi/2,Pi/3}]

Show[{pts,sphmim,sph1,%},Boxed -> False]

3.3.4. Random Test in Dimension 5, i.e. dim = 7, ind = 1

We will not change the values  dim = 5, ind = 1, because we want checking wether the modules defined so far work indepedently of these basic constants. You may  also  choose, e. g. the plane replacing 7and 5 by  4 and 2 in the commands defining the random vectors  below.

vn=randomv[7]

pssp[vn,vn]

Thus, vn is a spacelike vector. We take two random points of the Euclidean 5-space:

vx = randomv[5]

vy = randomv[5]

and calculate the Möbius invariant of the hypersphere defined by vn, and the 0-sphere, defined by the two points:

ti1 =moebspp[vn,vx,vy]

Now we calculate the Euclidean invariants of the configuration and use euklidmoebspp calculating the Möbius invariant by these Euclidean entities. First the radius of the hypersphere:

rr=vradius[vn]

Next the radius of the 0-sphere

tt =Sqrt[(vx-vy).(vx-vy)]/2

To calculate the distance of the centers we calculate the center of the hypersphere:

vcenter[vn]

nd subtract it from the center of the 0-sphere:

vdiff =(vx+vy)/2 -%

The length of this vector is the distance we asked for:

dd = Sqrt[vdiff.vdiff]

Finally we have to find the angle of the vector vdiff with the line through vx,vy:

uu = ArcSin[Sqrt[1-(vdiff.(vx-vy)/(dd*2*tt))^2]]

Inserting these entities into euklidmoebspp we obtain

ti2 =euklidmoebspp[rr,tt,dd,uu]

Indeed, this coincides, up to numerical disturbances, with ti1:

Chop[ti1-ti2]

OK! Repeat the commands of this subsection, may be,  in other dimensions, as often you need it to be sure that all is correct.

3.4. Orthogonality

We remark that the invariant function inv in  example 3.2.2 above  is always greater than zero; it tends to zero for x ->∝ . The 0-sphere {null[3], ∝} has the property that all spheres through these points (i.e.all planes through the origin), and all circles through these points (i.e. all  lines through the origin) intersect the unit sphere orthogonally. Furthermore, the two points of the 0-sphere are in inversion with respect to the unit sphere.  Since both these properties are Möbius invariant, and moebspp[(S,pp)] defines the pair (S,pp) up  to a Möbius transform, we obtain

PROPOSITION 2. Let S be a sphere, and  pp = {p1,p2} a point pair in inversion with respect to this sphere. Then all the spheres through {p1, p2} intersect S orthogonally, and conversely, if all spheres containing the two points meet a sphere S orthogonally, then the points are in inversion with respect to S. The points {p1,p2} are in inversion with respect to S iff moebspp[(S,pp)] = 0.

Example.

moebspp[stb[5],{x,y,0},sphericalreflection[{x,y,0},null[3],1]]

PROOF.  The remark formulated in the paragraph before proposition 2 is already proving the statement. Geometrically one may argue  that any circle  or sphere intersecting S orthogonally is mapped onto itself under the inversion at S, and vice versa, any circle or sphere not contained in S and mapped onto itself by the inversion must intersect S orthogonally.  Thus, if any circle of the bundle defined by p1,p2 is mapped onto itself, the circles through p1,p2 intersect S orthogonally and p1,p2 are in inversion with respect to S, and vice versa.   We will give yet another proof using the formula

?euklidmoebspp

Clear[r,t,d,u,v,w];euklidmoebspp[r,t,d,u]

Obviously, this invariant vanishes iff  (d^2)=(r^2)+(t^2) and u = k*Pi, k integer: We may set r=d*Cos[w], t =d*Sin[w] and obtain

Simplify[euklidmoebspp[d*Cos[w],d*Sin[w],d,Pi] ]

On the other hand, u = 0, Pi means  that p1, p2, and the center m of S are kollinear. For the distances of p1,p2 to the center  m we have:

a1 = d -d*Sin[w]; a2 = d+ d*Sin[w];

It follows

Simplify[a1^2*a2^2== d^4*Cos[w]^4]

This shows that p1,p2 are in inversion with respect to S.  If p1,p2 are in inversion with respect to S one has u = 0 or u = Pi; easily one calculates with the notations used above   (d^2)=(r^2)+(t^2).

Remark 1. The geometric arguments and the statements about moebspp are valid in any dimension n ≥ 2 of the Euclidean space (dim = n+2). Thus, proposition 2 remains valid if "sphere" is replaced by "hypersphere".

Remark 2. Since moebspp is always non negativ, proposition 2 leads to the attempt of the following interpretation of moebspp:
moebspp(S, (p1,p2)) is a measure of the deviation of p2 from the point in inversion to p1 wth respect to the hypersphere S, or symmetrically, of the deviation of p1 from the point in inversion to p2 wth respect to the hypersphere S.

Example

We will now construct a finite example for this situation. We consider the points S0 = {{0,0,0}, {2,0,0}}. The corresponding 3-dimensional Euclidean subspace is

nspx =vspacepp[null[3], stb[1,3]*2]

Therefore, the spacelike unit vectors of all spheres containing S0 have the parameter representation as the standard unit sphere of this 3-space:

orthospheres[u_,v_]:= stb[3]*Cos[u]*Cos[v]+stb[4]*Cos[u]*Sin[v] +nspx[[1]]*Sin[u]

One speaks about the "bundle of spheres through S0. Now we will find the spheres which  intersect all spheres of the bundle orthogonally. They correspond to the spacelike unit vectors of the orthogonal complement to the Euclidean subspace spanned by nspx, i.e. the pseudo-Euclidean 2-space spanned by the isotropic subspaces which represent the points of S0. We define an pseudo-orthonormal basis:

dnspx=Table[dual[nspx[[i]]], {i,3}]

NullSpace[dnspx]

orthonorm[%]

ocase = %

Table[Simplify[Together[pssp[ocase[[i]],ocase[[j]]]]],{i,2},{j,2}]

Obviously, the spacelike unit vectors we asked for form the hyperbola

ovec[t_] := ocase[[1]]*Sinh[t] + ocase[[2]]*Cosh[t]

Simplify[pssp[ovec[t],ovec[t]]]

The Möbius invariant of any sphere of this family paired with S0 is, as expected

moebspp[ovec[t], null[3], stb[1,3]*2]

Simplify[Together[%]]

Obviously, ovec[t], t ≥ 0, corresponds to all the spheres with the property, that all spheres orthospheres[u,v] through {0,0,0}, {2,0,0} intersect them orthogonally:

pssp[orthospheres[u,v], ovec[t]]

Simplify[%]

We show that the point pair {0,0,0}, {2,0,0} is in inversion with respect to any of the spheres ovec[t]. First we calculate center and radius of the sphere defined by ovec[t]:

vcenter[ovec[t]]

Simplify[%]

vradius[ovec[t]]

Simplify[%]

Sperical reflection at a hypersphere with center a and radius r has been defined in euvec.m:

?sphericalreflection

We show that the image of the origin under the inversion at any  of the spheres ovec[t] coincides with {2,0,0}:

sphericalreflection[null[3],{((Cosh[t]+Sinh[t])/(-Cosh[t]+2 Sinh[t])),0,0}, ((Sqrt[3])/(-Cosh[t]+2 Sinh[t]))]

Simplify[%]

This shows the situation described in proposition 2; we construct a picture with the dates of our example.

pts = {Point[null[3]],Point[{2,0,0}]}

Show[Graphics3D[{RGBColor[1,0,0],PointSize[0.03],pts}]]

ex1 = %;

euklidsphereplot3D[ovec[0],-1,1,-1,1,Mesh-> None, PlotStyle -> Opacity[0.3]]

ex2 = %;

Show[{ex1,ex2}]

ex12 = %;

In the next cell consider the case of random aa < 1.

aa = Random[];Print[aa];Table[euklidsphereplot3D[orthospheres[k*Pi/8, aa*Pi/2],0,1,-1,1,Mesh-> None, PlotStyle -> {Green,Opacity[0.2]}],{k,0,4}]

Show[%]

ex3 = %;

Show[{ex1,ex2,ex3}, Boxed->False]

ex123 = %;

The three spheres through the points corresponding to the vectors of nspx are the x,y-plane, the x,z-plane and

euklidsphereplot3D[nspx[[1]],-1,1,-1,1,PlotPoints -> 50,Mesh -> None,PlotStyle-> Opacity[.4]]

ex4 = %;

Two circles through the points are

{plotcircle2spv[nspx[[1]],nspx[[2]]], plotcircle2spv[nspx[[1]],nspx[[3]]]}

Show[%]

ex5 = %

Show[{ex1,ex2,ex5}, Boxed-> False]

ex125 = %;

More circles:

pssp[orthospheres[u,v],orthospheres[u+Pi/2,v]]

Simplify[%]

Table[plotcircle2spv[orthospheres[0,k*Pi/10],orthospheres[Pi/2,k*Pi/10]],{k,-10,10,2}]

Show[%]

ex6 = %;

Show[{ex1,ex2,ex6}, Boxed -> False]

ex126 = %;

4.  Circles and Point Pairs

In this section we consider pairs (C, pp) consisting of a Circle C = (Subscript[S, 1]^1) and a point pair pp = (a1,a2) = (Subscript[S, 2]^0) contained in the Euclidean 3-space or the 3-sphere. Such a pair is said to be in general position, if the union C⋃pp is not contained in a 2-sphere.  Then its mutual position is defined up to Möbius equivalence by two invariants, which we are going to calculate. We study the relation between the values of these invariants and the geometry of the pair. In the last subsection we find formulas expressing the invariants in terms of the Euclidean invariants of the pairs.

4.1. The invariants

As it has been very detailed described in the notebook mcircles.nb, a circle in the 3-sphere or in the Euclidean 3-space can be defined by a 2-dimensional Euclidean subspace of the pseudo-Euclidean 5-space. Let p1, p2, p3 be three pairwise distinct points in the Euclidean 3-space. Their preimages under the stereographic projection define uniquely a circle in the 3-sphere containing them, and the corresponding isotropic vectors span a pseudo-Euclidean 3-space, the orthogonal complement of which is the Euclidean subspace we ask for. An orthonormal base of this space is given by vspace[p1,p2,p3],

?vspace

Here is the standard unit circle:

vspace[{1,0,0}, {-1,0,0}, {0,1,0}]

plotcircle2spv[v1,v2] plots the circle corresponding to the orthonormal vectors v1,v2, in our cse grc1, defined already in subsection 2.1:

plotcircle2spv[%]

Show[grc1]

vspacepp is a special case of vspace. Let b ={b1,b2,b3} be an orthonormal basis corresponding to the point pair pp=(a1,a2), e.g.

blist = vspacepp[{0,-1,0},{1,1,0}/Sqrt[2]]

vspace[{{0,-1,0},{1,1,0}/Sqrt[2]}]

%-blist

Then the condition that the circle containes both points is indicator[n1,a1,a2] = indicator[n2,a1,a2] = null[]:

?indicator

indicator[stb[4],{0,-1,0},{1,1,0}/Sqrt[2]]

indicator[stb[5],{0,-1,0},{1,1,0}/Sqrt[2]]

The condition that at least one of the points a1, a2 belongs to the circle through the 3 points b1, b2, b3 implies that all the five points belong to a sphere; i. e. the points are not in general position

incid[a1_,a2_,b1_,b2_,b3_] := Det[{invstepro[a1],invstepro[a2],invstepro[b1],invstepro[b2],invstepro[b3]}]

vanishes, e.g.

incid[{0,3,0},{1,1,0}/Sqrt[2],{1,0,0}, {-1,0,0}, {0,1,0}]

Clear[a,a1,a2,b]

The matrix of the double projection whose eigenvalues are the Möbius invariants of the pair (see [S4]) is

ppmatrix::usage ="Let a and b be Lists of orthonormal basis vecors of subspaces A, resp. B, of a pseudo-Euclidean vector space V. Assume dim A <= dim B and denote by p, resp.q the projections q:A-> B, p:B->A. Then ppmatrix[a,b] is the matrix of the double projection pq with respect to the basis a. If dim A > dim B,ppmatrix[a,b]=ppmatrix[b,a].";

ppmatrix[a_,b_]:= Module[{ka=Length[a],kb= Length[b],i,j,l,mm,mc,c},
If [kb<ka, Goto[mm]];
c[i_,j_] := Sum[pssp[a[[i]],b[[k]]]*pssp[b[[k]],a[[j]]],{k,1,kb}];
mc =Array[c,{ka,ka}];
Return[mc];
Label[mm];
c[i_,j_] := Sum[pssp[b[[i]],a[[k]]]*pssp[a[[k]],b[[j]]],{k,1,ka}];
mc =Array[c,{kb,kb}];
Return[mc]]

ppmatrix[{vec[a]},{vec[b]}]

Let ma = {ma[[1]],m a[[2]]} be an orthonormal basis of the Euclidean 2-space defining the circle C, and mb = {mb[[1]], mb[[2]], mb[[3]]}  an orthonormal basis of the Euclidean 3-space defining the point pair {p0, p1}:

ma =Map[vec,{a1,a2}];mb=Map[vec,{b1,b2,b3}];

Only if one assumes the orthonormality of the bases ma,mb we obtain a correct representation of the double projection

Simplify[ppmatrix[ma,mb]]

Simbolically one calculates

Simplify[ppmatrix[{a1,a2},{b1,b2,b3}]]

Simplify[ppmatrix[{b1,b2,b3},{a1,a2}]]

ppmatrix chooses automatically the operator generated as double projection  on the subspace of smaller dimension:

%==%%

For circle pairs ppmatrix coincides with pp:

ma ={a1,a2};mb={b1,b2};

ppmatrix[ma,mb]

Simplify[%==pp[a1,a2,b1,b2]]

For the pairing of a circle and a point pair we define

Clear[ppcpp,a,b,ma,mb]

ppcpp[a_,b_] := Module[{la=Length[a],lb=Length[b]},
If[Not[MatrixQ[a]&&MatrixQ[b]]||(la≠2)&||(lb≠3),Print["Incorrect arguments!"];Return[]];
ppmatrix[a,b]]

ma =Map[vec,{a1,a2}];mb=Map[vec,{b1,b2,b3}];

ppcpp[ma,mb]

%-ppmatrix[ma,mb]

Its eigenvalues are the  generalized cosinus squares of the stationary angles, and the spheres corresponding to the  eigenvectors we call eigenspheres.  Instead of the eigenvalues one can take the determinant and the trace of the matrix ppcpp also forming a complete system of Möbius invariants for pairs (C, pp) in general position.

The function ppmatrix may be composed with other functions delivering the orthonormal bases appearing as its arguments, e.g.

?vspace

?vspacepp

Clear[a1,a2,a3,b1,b2,b3,r];
ppcpp3pts2pts[a3_List,b2_List] := ppmatrix[vspace[a3],vspacepp[b2]]

ppcpp3pts2pts[{{1,0,0},{-1,0,0},{0,1,0}}*r,{null[3],{x,y,z}}]

Simplify[%]//MatrixForm

If the circle is given by its Euclidean parameters, one may find the invariant by the function

Clear[x,y,z,u,v,p,r]

ppcppcircle2pts[x_,y_,z_,u_,v_,r_][p_List] := ppmatrix[circlespacevectors[x,y,z,u,v,r], vspace[p]]

circlespacevectors[x,y,z,u,v,r]

vspace[{{0,-1,-1},{0,1,1}}]

ppcppcircle2pts[0,0,0,u,Pi/3,r][{{0,-1,-1},{0,1,1}}]

Simplify[Det[%]]

Simplify[Tr[%%]]

Since the Möbius group acts transitively on the space oft all 0-spheres we may assume that the 0-sphere is S0={{0,0,-1},{0,0,1}}; for this pair and arbitrary circle we get the ppmatrix

ppcppcircle2pts[x,y,z,u,v,r][{{0,0,-1},{0,0,1}}]

FullSimplify[%,x∈Reals&&y∈Reals&&z∈Reals&&u∈Reals&&v∈Reals&&r>0]

The result of the simplification is the following not very appealing expression:

ppcircle2ptsfct[x_, y_, z_, u_, v_, r_] := 
  {{Cos[u]^2*Cos[v]^2 + Cos[v]^2*Sin[u]^2 + 
     (x*Cos[u]*Cos[v] + y*Cos[v]*Sin[u] + 
       z*Sin[v])^2, (1/(2*r))*
     (2*x*Cos[u]*Cos[v] + 2*y*Cos[v]*Sin[u] + 
      (-1 - r^2 + x^2 + y^2 + z^2)*
       (x*Cos[u]*Cos[v] + y*Cos[v]*Sin[u] + 
        z*Sin[v]))}, 
   {(1/(2*r))*(2*x*Cos[u]*Cos[v] + 
      2*y*Cos[v]*Sin[u] + 
      (-1 - r^2 + x^2 + y^2 + z^2)*
       (x*Cos[u]*Cos[v] + y*Cos[v]*Sin[u] + 
        z*Sin[v])), (4*x^2 + 4*y^2 + 
      (-1 - r^2 + x^2 + y^2 + z^2)^2)/(4*r^2)}}

FullSimplify[ppcircle2ptsfct[x,y,z,u,v,r]== %]

FullSimplify[Det[ppcircle2ptsfct[x,y,z,u,v,r]],x∈Reals&&y∈Reals&&z∈Reals&&u∈Reals&&v∈Reals&&r>0]

FullSimplify[Tr[ppcircle2ptsfct[x,y,z,u,v,r]],x∈Reals&&y∈Reals&&z∈Reals&&u∈Reals&&v∈Reals&&r>0]

The results are not very charming, but they are useful for numerical calculations.

uu=Random[];vv= -Random[];{xx,yy,zz}=t*{1,1,1};
Print[uu*2*Pi,"  ", vv*Pi/2,"  ", {xx,yy,zz}];Plot3D[Det[ppcircle2ptsfct[xx,yy,zz,uu,vv,r]],{r,0,10},{t,-1,1}]

Plot3D[Tr[ppcircle2ptsfct[xx,yy,zz,uu,vv,r]],{r,0,10},{t,0,.5}]

Print[uu,"  ", vv,"  ", {xx,yy,zz}]

Clear[uu,vv,xx,yy,zz,r]

It remains the task to express the Möbius invariants of such a pair by geometrical parameters of such a configuration. This will be done in the last subsection 4.5 below.

4.2. Examples

4.2.1. Pairs not in General Position

Here only one point lies on the circle:

ppcpp3pts2pts[{{1,0,0}, {-1,0,0}, {0,1,0}}][{{x,y,z},{0,-1,0}}]

FullSimplify[Together[%]]

mm[x_,y_,z_] = %;

We show that mm[x,y,z] is the unit matrix. Indeed,  it is symmetric,

Simplify[mm[x,y,z][[1,2]]-mm[x,y,z][[2,1]]]

and the term mm[x,y,z][[1,2]]^2 is zero, what unfortunately Mathematica cannot prove by simplification:

FullSimplify[mm[x,y,z][[1,2]]^2]

In the following special cases the statement is true:

FullSimplify[mm[x,y,0][[1,2]]^2]

FullSimplify[mm[x,0,z][[1,2]]^2]

FullSimplify[mm[0,y,z][[1,2]]^2]

We calculate this coefficient 10000 times with random arguments:

Timing[m12=Table[xx= 5*Random[];yy= -10*Random[];zz=-3* Random[];mm[xx,yy,zz][[1,2]],{10000}]];

%[[1]]

The calculation needed 9.282 s. Repeat it wis other factors of the randum numbers. Always the sum is zero (up to a numerical error):

Sum[m12[[i]],{i,1,10000}]

Clear[xx,yy,zz]

Here both points belong to the circle

ppcpp3pts2pts[{{1,0,0}, {-1,0,0}, {0,1,0}}][{{0,-1,0},{1,1,0}/Sqrt[2]}]

The invariants are the same! But the following ranks differ

rank[{invstepro[{1,0,0}],invstepro[{-1,0,0}],invstepro[{0,1,0}],invstepro[{x,y,z}],invstepro[{1,1,0}/Sqrt[2]]}]

rank[{invstepro[{1,0,0}],invstepro[{-1,0,0}],invstepro[{0,1,0}],invstepro[{0,1,0}],invstepro[{1,1,0}/Sqrt[2]]}]

In both cases the pairs are not in general position. This examples shows that the eigenvalues of ppcpp do not suffice to distinguish the two cases; in addition the dimension rank -2 of the smallest sphere containing the pair must be considered.  We remark that in case of general position the eigenvalue 1 may have multiplicity at most 1; thus an example of a pair (C,pp) in general position with twofold eigenvalues one may not exist.

In the following example the pair belongs to the plane  ( = sphere) z = 0, we again do not have general position; one has  the varying invariant (1/((Abs[x])^2)), and the constant 1:

fctppcpp[x_]:=
ppcpp[vspace[{1,0,0}, {-1,0,0}, {0,1,0}],vspacepp[{0,0,0},{x,0,0}]]

fctppcpp[x]

rank[{invstepro[{1,0,0}],invstepro[{-1,0,0}],invstepro[{0,1,0}],invstepro[{0,0,0}],invstepro[{x,0,0}]}]

For ((Abs[x])^2) < 1 the circle in this sphere does not separate the points, for ((Abs[x])^2)>1 it does, and for ((Abs[x])^2)=1 the point belongs to the circle; separate has a meaning, of course , only within the sphere z=0. The situation here is the same as in subsection 3.2, only one dimension less. The singularity  for x = 0 corresponds to the fact taht in this case the 0-sphere degenerates into a single point.

4.2.2. Pairs in General Position

Here is an example of a pair in general position

rank[{invstepro[{1,0,0}],invstepro[{-1,0,0}],invstepro[{0,1,0}],invstepro[{0,3,0}],invstepro[{2,1,1}]}]

ppcpp3pts2pts[{{1,0,0}, {-1,0,0}, {0,1,0}},{{0,3,0},{2,1,1}}]

Det[%]

Tr[%%]

4.2.3. The Circle may be a Line

vspace[{{0,0,0},{1,1,1},{2,2,2}}]

ppcpp3pts2pts[{{0,0,0},{1,1,1},{2,2,2}},{{1,0,0}, {-1,0,0}}]

Det[ppcpp3pts2pts[{{0,0,0},{1,1,1},{2,2,2}},{{1,0,0}, {-1,0,0}}]]

Tr[ppcpp3pts2pts[{{0,0,0},{1,1,1},{2,2,2}},{{1,0,0}, {-1,0,0}}]]

4.2.4. One Eigenvalue 0

We consider the standard unit circle and the points pair {{0,0,0},{0,0,1}} being in general position:

rank[{invstepro[{1,0,0}],invstepro[{-1,0,0}],invstepro[{0,1,0}],invstepro[{0,0,0}],invstepro[{0,0,1}]}]

The Euclidean subspace corresponding to the standard unit circle has the orthonormal basis

vspace[{{1,0,0}, {-1,0,0}, {0,1,0}}]

The matrix of the double projection is

ppm= ppcpp3pts2pts[{{1,0,0}, {-1,0,0}, {0,1,0}},{{0,0,0},{0,0,1}}]

Det[ppm]

Tr[ppm]

Eigenvalues[ppm]

Eigenvectors[ppm]

The geometric interpretation is the following: There exists a sphere, containing the unit circle and being "orthogonal to the 0-sphere" ( see 3.2, Orthogonality; it is defined to be the sphere through the standard unit circle such that the points {0,0,0},{0,0,1} are mapped into each other by spherical reflection at this sphere. An elementary consideration shows that this is the sphere with radius Sqrt[2] and center {0,0,-1}.) The other eigenvalue is the maximum of the Möbius invariant of two spheres, one  containing the circle, the other the point pair, and these spheres are disjoint, since the invariant is > 1. Since the double projection is an endomorpism of the space spanned by

vspace[{1,0,0}, {-1,0,0}, {0,1,0}]

we have the eigensphere to the eigenvalue 0

ppm.{1,1}

ev1= (stb[4] + stb[5])/Sqrt[2]

vcenter[ev1]

vradius[ev1]

The point pair  is

pts = {Point[null[3]],Point[{0,0,1}]};

Show[Graphics3D[{RGBColor[1,0,0],PointSize[0.04],pts}]]

grpts = %;

The eigensphere to the eigenvalue 0 is

euklidsphereplot3D[ev1,-1,1,-1,1,Mesh-> None, PlotStyle->{Green,Opacity[0.5]}]

gev1 = %;

Show[{grpts,gev1,grc1}]

Indeed, we have, as stated above,

{0,0,1} == sphericalreflection[null[3],{0,0,-1},Sqrt[2]]

We calculate the projection of ev1 into

vspacepp[{0,0,0},{0,0,1}]

vpp= %;

Table[pssp[vpp[[i]], ev1], {i,3}]

Therefore, the projection is null[5], and the eigensphere gev1 intersects any sphere containing the point pair orthogonally.

fam1[t_]:= vpp[[1]]*Cos[t] + stb[2]*Sin[t]

fam1[k*Pi/5]*Sign[5-2*k]

Table[euklidsphereplot3D[fam1[k*Pi/5]*Sign[5-2*k],0],{k,1,5}]

Show[%,PlotRange -> All]

grfam1=%;

Joining the point pair, the eigensphere,  and the circle we obtain

Show[{grfam1,gev1,grpts,grc1},PlotRange -> All]

pictfam1 = %;

The other eigensphere is given by

ppm.{-1,1}

eval2 =(-stb[5]+ stb[4])/Sqrt[2]

The projection of this eigenvector in vspacepp[{0,0,0},{0,0,z}] is

preval2= Sum[pssp[vpp[[i]], eval2]*vpp[[i]], {i,3}]

For  z = 1 we have the eigensphere

eval2

euklidsphereplot3D[eval2,-1,1,-1,1,PlotStyle-> Opacity[.2],Mesh-> None]

geval2 = %;

The normalized projection of eval2  in vspacepp[{0,0,0},{0,0,z}] and the corresponding sphere are

projeval2 = normalize[preval2]

euklidsphereplot3D[projeval2]

gev3 = %;

The generalized cosinus is the square root of the eigenvalue

pssp[projeval2, eval2]

This is the maximal value of the generalized cosinus for any pair of spheres, one containing the standard unit circle and the other containing the point pair {null[3], {0,0,1}.

Show[{grc1,geval2,gev3,grpts},PlotRange -> All]

grevmax = %;

Joining the "minimal" eigensphere gev1 one obtains the complete picture

Show[{gev1,grevmax},PlotRange -> All,Boxed-> False,Axes-> None]

grevmaxmin = %;

Remove[ppm,pts,projeval2,preval2,ev1,eval2,vpp,fam1]

4.2.5. Standard Unit Circle and Random Point Pairs

a1={0,0,RandomReal[]};a2=-{0,RandomReal[],2*RandomReal[]};Print["a1 = ",a1,", a2 = ",a2];mpp=ppcpp3pts2pts[vspace[,{a1,a2}];Print["mpp = ",MatrixForm[mpp]];Eigenvalues[mpp]

rank[{invstepro[{1,0,1}],invstepro[{1,0,-1}],invstepro[{1,1,0}],invstepro[a1],invstepro[a2]}]

Graphics3D[{PointSize[.03],Point[a1], Point[a2]}]

pts=%;

We calculate spacelike 5-vectors corresponding to the spheres through the standard unit circle grc1 and the point a1 resp. a2:

b1 =pscross[{invstepro[{1,0,0}],invstepro[{0,-1,0}],invstepro[{0,1,0}],invstepro[a1]}]

b2 =pscross[{invstepro[{1,0,0}],invstepro[{0,-1,0}],invstepro[{0,1,0}],invstepro[a2]}]

ppsphs={euklidsphereplot3D[b1,-1,1,-1,1,PlotStyle->{Opacity[.3],Red},Mesh->None],
euklidsphereplot3D[b2,-1,1,-1,1,PlotStyle->{Opacity[.3],Blue},Mesh->None]};

Show[{pts,grc1,ppsphs},Axes-> None]

They intersect at grc1 under an angle with cosinus

wi=pssp[b1,b2]/Sqrt[pssp[b1,b1]*pssp[b2,b2]]

The intersection angle is (in degrees)

angle = N[ArcCos[wi]*180/Pi]

4.2.6. The Eigenspheres of the Random Pair

The spheres sphs cannot be the eigenspheres of the pair which intersect orthogonally. We calculate and plot them now.

Eigenvalues[mpp]

Eigenvectors[mpp]

vspace[{{1,0,0},{-1,0,0},{0,1,0}}]

ev1 = -0.9408601745781059`*stb[5] -0.33879511787045574`*stb[4]

eval2 =0.33879511787045574`*stb[5]-0.9408601745781059`stb[4]

pssp[ev1,eval2]

esps={euklidsphereplot3D[ev1,-1,1,-1,1,PlotStyle->{Opacity[.3],Red},Mesh->None],
euklidsphereplot3D[eval2,-1,1,-1,1,PlotStyle->{Opacity[.3],Blue},Mesh->None]};

Show[{pts,grc1,esps},Axes-> None]

4.3. The Separation Property

In all the examples in subsection 4.2 we have at least one eigenvalue greater or equal 1. Indeed, one can show

PROPOSITION 3. For any point pair pp = (a1,a2) and any circle C of the Euclidean 3-space or the 3-sphere being in general position there exist spheres S0, S1 separating pp and C. i.e. pp ⊂  S0, C ⊂  S1, and S0 ⋂ S1 = ∅.

Proof. For the dimensions of the pseudo-Euclidean subspaces defining pp and C, respectively, we have

dim W0 = 2, dim W1 = 3.

Their Euclidean orthogonal complements have the dimensions

dim U0 = 3, dim U1 = 2.

By our assumption, pp and C are in generaal position: there does not exist a sphere containing both. This is equivalent to

dim U0 ⋂ U1 = 0, or dim U0 + U1 = 5.

Therefore the (direct) sum U0 + U1 is the whole pseudo-Euclidean vector space; let v be a timelike vector and v = u0 +u1 its representation according to the decomposition V = U0 + U1. Then neither u0 nor u1, being spacelike vectors, may vanish. The subspace span(u0,u1) is pseudo-Euclidean, and the spheres S0 = S(u0), S1 = S(u1) corresponding to these vectors  have the stated separation property.

4.4. Two Associated Spheres Belonging to a Pair ((Subscript[S, 1]^1), (Subscript[S, 2]^0))

Each pair (C, (p0, p1)) of a circle C and a 0-sphere (p0, p1) defines, in general,  two spheres, containing (C, p0) and (C, p1), respectively, see Example 4.2.5.  We call them the associated spheres of the pairing. If one of the points belong to the circle the corresponding sphere remains indetermined. Let us consider the general case, that none of the two points is contained in the circle. If (cn1, cn2) is a basis of the Euclidean subspace defining the circle C, then the spacelike vector defining the sphere through C and a point p is given by the cross product as follows:

?pscomplement

Context[pscomplement]

?normalize

circlepointsphere[cn1_,cn2_,p_]:=Module[{vc},
vc =pscomplement[cn1,cn2];
vc = AppendTo[vc,invstepro[p]];
Return[normalize[pscross[vc]]]]

Obviously, circlepointsphere yields the null vector null[5] iff p∈ C,  e.g.

circlepointsphere[stb[4], stb[5], {0,1,0}]

Example 1

?vspace

For the standard unit circle we obtain

vspace[{{1,0,0},{-1,0,0},{0,1,0}}]

Analogously  to example 4.2.5 we consider

a1=null[3];a2=-{0,0,z};Print["a1 = ",a1,", a2 = ",a2];mpp=ppcpp3pts2pts[{{1,0,0},{-1,0,0},{0,1,0}}][{a1,a2}];Print["mpp = ",MatrixForm[mpp]];Eigenvalues[mpp]

vn1 = circlepointsphere[stb[4],stb[5], null[3]]

Clearly, this is the x,y-plane:

euklidsphereplot3D[stb[4]]

grvn1 = %;

The other sphere is

vn2[z_] := circlepointsphere[stb[4],stb[5],{0,0,z}]

vn2[z]

Simplify[Together[pssp[%,%]]]

vradius[vn2[z]]

vcenter[vn2[z]]

Simplify[%]

Specializing to the case z=1 :

vn2[1]

This is the standard unit sphere:

euklidsphereplot3D[stb[5],-1,1,-1,1,PlotStyle->{Opacity[.3]},Mesh->None]

grvn2 = %;

grpts =Graphics3D[{PointSize[.03],Point[a1], Point[stb[3,3]]}]

Show[{grvn1,grvn2,grpts,grc1}]

Here the spheres intersect orthogonally. We remark that zero is the smaller eigenvalue of our pair {C, (S^0)}. For the cosinus of the intersection angle for variable z we obtain (Remember: vn2[z] is a spacelike unit vector for all values of z):

pssp[vn1,vn2[z]]

Together[%]

Remove[vn1,vn2]

Example 2

Clear[x,y,z]

We consider the pair consisting of the standard unit circle C:

Show[grc1]

and the point pair {null[3], {x,y,z}}.

Clear[vpp];vpp[x_,y_,z_] := vspace[{{0,0,0},{x,y,z}}]

vpp[x,y,z]

Table[Simplify[pssp[%[[i]], %[[j]]]],{i,3}, {j,3}]

vpp[0,y,z]

vpp[x,y,0]

vpp[0,0,z]

vpp[0,0,0]

The matrix defining the invariants of {C, {null[3], {x,y,z}} is

pcfct[x_,y_,z_] :=ppmatrix[{stb[4],stb[5]},vpp[x,y,z]]

pcfct[x,y,z]

Simplify[%]

Eigenvalues[%]

Simplify[%]

Factor[(x^4)+(y^4)+2 (y^2) (-1+(z^2))+(((1+(z^2)))^2)+2 (x^2) (-1+(y^2)+(z^2))]

F[x_,y_,z_] = %;

Simplify[F[x,y,z] - (1-x^2-y^2-z^2)^2]

Since
 (d^2)=(x^2)+(y^2)+(z^2)
 is the square of the distance of the two points we may write down the eigenvalues in the form

eval1[d_,z_]:= (1 + d^2 - Sqrt[(1-d^2)^2 + 4*z^2])/(2*d^2)

eval2[d_,z_]:= (1 + d^2 + Sqrt[(1-d^2)^2 + 4*z^2])/(2*d^2)

For the intersection angle of the two spheres {C, null[3]}, {C,{x,y,z}} we calculate the cosinus

cosfct[x_,y_,z_]:=pssp[circlepointsphere[stb[4], stb[5], null[3]],circlepointsphere[stb[4], stb[5], {x,y,z}]]

cosfct[x,y,z]

Simplify[%]

Thus we better define

cosfct[x_, y_, z_] := (1 - x^2 - y^2 - z^2)/
   Sqrt[4*z^2 + (-1 + x^2 + y^2 + z^2)^2]

cosfct[x,y,z]

This function gives correct values  for pairs not  in general position, too. If the pair is not in general position the associated spheres coincide and the intersection angle is a multiple of Pi, see the special cases below.

We want to epress this cosinus by the eigenvalues. For this purpose we calculate the trace and the determinant

Simplify[eval1[d,z]+eval2[d,z]]

Simplify[eval1[d,z]*eval2[d,z]]

The wanted expression is obtained solving first

Solve[{e1 + e2 == 1+(1/(d^2)),e1*e2 ==(((d^2)-(z^2))/(d^4))},{d,z}]

Inserting the solutions into cosfct we get the wanted expression.  Only the squares (d^2),(z^2) enter in cosfct; thus all four solutions give the same result. We remember

cosfct[x,y,z]

We remark

Simplify[1-2 e1+(e1^2)-2 e2+2 e1 e2+(e2^2)== (e1+e2-1)^2]

Inserting (x^2)+(y^2)+(z^2) = (d^2) we consider

fct[d_,z_]:=(1-d^2)/(Sqrt[4*z^2 +(1-d^2)^2])

and simplify the substitution

fct[d,z]/.{z^2 ->(e1+e2-e1*e2-1)/(e1+e2-1)^2, d^2 -> 1/(e1+e2-1)}

FullSimplify[%, e1 + e2 > 1]

Therefore the  cosinus of the  intersection angle α of the associated spheres is

Cos[α] = ((1-(d^2))/(Sqrt[(((1-(d^2)))^2)+4 (z^2)])) = ((e1+e2 - 2)/(Abs[e1-e2]))

This is the expression we asked for. By a Möbius transform any pairing of a circle and a point pair not contained in the circle can be brought in the position that the circle coincides with the standard unit circle C and one of the points coincides with the center null[3] of C.  Since under a Möbius transform the eigenvalues and the intersection angle between the associated spheres remain invariant, we proved:
PROPOSITION 4. Let (S^1) be an arbitrary circle (or a line) and (S^0) = {p0, p1} a point pair disjoint to (S^1). Then the cosinus of the intersection angle α of the associated spheres is expressed by the eigenvalues e1,e2 of the pairing {(S^1), (S^0)} by the formula

Cos[α] = ((e1+e2 - 2)/(Abs[e1-e2]))

As an exercise check this formula in the case that the circle is a line.

Degenerate case:

If one of the points belong to the circle, the formula yields 0; moreover, the same is true for all points on the standard unit sphere  (d = 1):

Off[Set::write]

Simplify[cosfct[Cos[t], Sin[t],0]]

Simplify[cosfct[Cos[t]*Cos[s], Sin[t]*Cos[s],Sin[s]]]

If (S^0) degenerates to a  single, "double counting" point, both spheres coincide; thus we obtain α = 0:

Simplify[cosfct[0,0,0]]

For points belonging to the x,y-plane we get

Simplify[cosfct[x,y,0], {x,y}∈ Reals]

This equals  ±1, as expected, since both "spheres" coincide with the x,y plane; the pair (C,pp) is not in general position.

Clearly, one has

cosfct[x,y,z]-cosfct[-x,-y,-z]

The associated spheres intersect orthogonally iff (x,y,z) is a point of the standard unit sphere:

cosfct[x,y,Sqrt[1-x^2-y^2]]

Solve[cosfct[x,y,z]== 0,z]

Also in this case the associated spheres do not coincide with the eigenspheres.  To show this, we calculate the eigenspheres:

Simplify[Eigenvectors[pcfct[x,y,z]]]

evvs = %;

evvs/.{x-> 0,y->0,z->1}

evvs/.z->Sqrt[1-x^2-y^2]

Simplify[%,{x,y}∈ Reals]

In our example, the eigenspheres do not change if the associated spheres do not change. That is true also in the general case. Here is the spaceelike vector of the associated sphere through the point {x,y,z}:

Simplify[circlepointsphere[stb[4], stb[5], {x,y,z}]]

We fix this point and consider an arbitrary point {u,v,w} on this sphere; it is a solution of

Solve[pssp[invstepro[{u,v,w}],{0,0,0,-1+(x^2)+(y^2)+(z^2),-2 z}]==0,{u,v,w}]

Now we calculate the ppmatrix of this point:

Simplify[pcfct[u, v, w] /. 
   v -> Sqrt[-w + w*x^2 + w*y^2 + z - 
       u^2*z - w^2*z + w*z^2]/Sqrt[z]]

The Eigenvectors do not depend on u,v,w:

evvs =Simplify[Eigenvectors[%]]

Simplify[Eigenvalues[%%]]

Simplify[D[%[[1]],w]]

Simplify[evvs == Eigenvectors[pcfct[x,y,z]]]

Thus we proved
PROPOSITION 5. Let (C,p1,p2) be a pair of the circle C and the point pair (p1, p2) in general position. Denote by S1 the associated sphere through p1. Then the eigenspheres of the pairings (C, p,p2) for p∈S1 do not depend on p; they coincide with those of the pairing [C,p1,p2). The invariants, i.e. the eigenvalues of the ppmatrix corresponding to (C,p,p2), depend on p.

4.5. Möbius Invariants Expressed by Euclidean Invariants

In this subsection we will express the determinant and the trace of ppcpp[(C,pp)] by Euclidean invariants of the configuration obtaining formulas similar, but more complicated, to the Coxeter distance of two spheres. The calculations show very well the excellent performance of Mathematica in doing symbolical transformations.

4.5.1. Adaption of the Euclidean Coordinates to the Point Pair

First we adapt the coordinate system to the 0-sphere of radius R: let the center be the origin and the point pair belong to the z-axis :

Remove[p1,p2];Clear[R]

p1[R_] := {0,0,R}; p2[R_]:= {0,0,-R};

?pp2space

Context[pp2space]

pp2space[p1[R], p2[R]]

FullSimplify[%, R>0]

psvpp[R_]=%;

Table[pssp[%[[i]],%[[j]]], {i,2},{j,2}]//MatrixForm

FullSimplify[%, R>0]

stepro[psvpp[R][[1]]+psvpp[R][[2]]]

stepro[psvpp[R][[1]]-psvpp[R][[2]]]

?vspacepp

vspacepp[p1[R], p2[R]]

FullSimplify[%, R>0]

%/.R->1

psvpp[1]

We define directly

appspace[R_] :={{(-1+R^2)/(2 R),0,0,0,1/2 (1/R+R)},{0,0,1,0,0},{0,1,0,0,0}}

appspace[R]

Table[pssp[appspace[R][[i]],appspace[R][[j]]], {i,3},{j,3}]//MatrixForm

Simplify[%]//MatrixForm

The 0-sphere appears as the intersection of the z-axis with the sphere of radius R with center at the origin. The orthogonality of appspace and psvpp can easely be checked:

Table[pssp[psvpp[R][[i]],appspace[R][[j]]], {i,2},{j,3}]//MatrixForm

Simplify[%]//MatrixForm

4.5.2. Adaption of the Euclidean Coordinates to the Circle

Next we turn the coordinate system around the z-axis in such a way that the center m of the considered circle with radius r belongs to the x,z-plane. Explaining it otherwise, we choose the coordinates in such a way that the plane defined by p1,p2, and m is the x, z-plane. Then we get for the

?circlespacevectors

bcspace[x_,z_,u_,v_,r_]:= circlespacevectors[x,0,z,u,v,r]

bcspace[x,z,u,v,r]

We introduce the distance d of the centers and  the angle b between the line containing the 0-sphere (p1, p2), i.e. the z-axis, and the radius vector of the centers {x,0,z} substituting

FullSimplify[%//.{x->d*Sin[b], z->d*Cos[b]}]

Thus bcspace[x,z,u,v,r] coincides with the function

eubcspace[d_, b_, u_, v_, r_] := 
  {{d*(Cos[u]*Cos[v]*Sin[b] + 
      Cos[b]*Sin[v]), Cos[u]*Cos[v], 
    Cos[v]*Sin[u], Sin[v], 
    d*(Cos[u]*Cos[v]*Sin[b] + 
      Cos[b]*Sin[v])}, 
   {(1 + d^2 - r^2)/(2*r), 
    (d*Sin[b])/r, 0, (d*Cos[b])/r, 
    -((1 - d^2 + r^2)/(2*r))}}

We check this:

eubcspace[d,b,u,v,r]//.{d-> Sqrt[x^2+z^2], b-> ArcCos[z/d]}

Simplify[%,x>0&&z>0]

%== bcspace[x,z,u,v,r]

Defining b we silently assumed d>0. Let us shortly consider the case d = 0, i.e. x=z=0:

bcspace[0,0,u,v,r]

In this case the function eubcspace does not depend on b:

eubcspace[0,b,u,v,r]

Thus we agree to set b=0 in case of d=0.

Remark: the parameters u,v are the geographic coordinates of the position vector of the circle; they will be replaced by angles depending of the pair (C, pp) later..

4.5.3. Calculation of the invarints

The matrix of the double projection corresponding to the pair (C, (p1,p2)) is

ppcppmatrix[d_,b_,u_,v_,r_,R_ ]:= ppmatrix[eubcspace[d,b,u,v,r],appspace[R]]

Simplify[ppcppmatrix[d,b,u,v,r,R]]

Det[%]

FullSimplify[Together[%],r>0&&R>0&& d>0]

We take this result as the definition of the function

detppcppmatrix[d_, b_, u_, v_, r_, R_] := (1/(4*r^2*R^2))*
   ((r^2 + R^2 - d^2*Cos[2*b])^2*Cos[u]^2*Cos[v]^2 + 
    (d^4 - 2*d^2*r^2 + (r^2 + R^2)^2 - 2*d^2*R^2*Cos[2*b])*Cos[v]^2*
     Sin[u]^2 + 4*d^4*Cos[b]^2*Sin[b]^2*Sin[v]^2 - 
    d^2*(-r^2 - R^2 + d^2*Cos[2*b])*Cos[u]*Sin[2*b]*Sin[2*v])

Now we calculate the trace

Tr[ppcppmatrix[d,b,u,v,r,R]]

FullSimplify[Together[%],r>0&&R>0&& d>0]

Again we take this result as the definition of the function

trppcppmatrix[d_, b_, u_, v_, r_, R_] := 
  (1/(4*r^2*R^2))*(d^4 - 2*d^2*r^2 + (r^2 + R^2)^2 - 
    2*d^2*Cos[2*b]*(R^2 + r^2*Cos[u]^2*Cos[v]^2) + 
    r^2*((d^2 + 4*R^2 + d^2*Cos[2*u])*Cos[v]^2 + 
      2*d^2*(2*Cos[b]^2*Sin[v]^2 + Cos[u]*Sin[2*b]*Sin[2*v])))

4.5.4. Invariant angles

The parameters u,v of the position vector posv of the circle are defined with respect to the adapted frame. First we replace  the angle v of  the posv with the x,y-plane by the angle w of posv and the line through pp, i.e. the z-axis, v+w = Pi/2

v -> Pi/2 - w

The parameter u is the angle between the orthogonal projection of the position vector posv and the orthogonal projection of the radius vector(Overscript[o m, ⟶])joining the centers of pp and C onto the plane through o, orthogonal to the line containing pp,u=0 if d=0.

Let a denote the angle between the position vector of the circle and the line connecting the centers, (d>0). We replace the angle u by a, using the equation

Cos[u]*Sin[b]*Sin[w] + Cos[b]*Cos[w]==  Cos[a]

The first substitution yields

detppcppmatrix[d,b,u,v,r,R]//. v->Pi/2 - w

%//.{ Sin[2 ((π/2)-w)]-> 2* Sin[w]*Cos[w],Sin[u]^2 -> 1 - Cos[u]^2}

%//.Cos[u]-> (Cos[a]-Cos[b]*Cos[w])/(Sin[b]*Sin[w])

FullSimplify[ %,{d,r,R,a,b, w}∈Reals]

This result motivates the explicit definition

detppcpp[a_, b_, w_, d_, r_, R_] := (1/(4*r^2*R^2))*
   (2*d^2*((-Cos[a]^2)*(d^2 - 2*r^2 + d^2*Cos[2*b]) + 2*(d^2 - r^2 + R^2)*Cos[a]*Cos[b]*Cos[w] - 
      2*R^2*Cos[b]^2*Cos[w]^2) + (d^4 - 2*d^2*r^2 + (r^2 + R^2)^2 - 2*d^2*R^2*Cos[2*b])*Sin[w]^2)

detppcpp[a,b,w,d,r,R]

In case of d = 0 the angles a,b are not defined. We calculate

detppcpp[a,b,w,0,r,R]

This expression does not depend on a,b; thus the settings a = 0, b= 0 in case d = 0 are justified.

We treat the trace in the same way:

trppcppmatrix[d,b,u,v,r,R]//. v->Pi/2 - w

FullSimplify[%, {u,w,b}∈Reals]

%/.Cos[2*u] -> 2*Cos[u]^2-1

%//.Cos[u] -> (Cos[a]-Cos[b]*Cos[w])/(Sin[b]*Sin[w])

FullSimplify[ %,{d,r,R,a,b, w}∈Reals]

Using this formula we finally define

trppcpp[a_, b_, w_, d_, r_, R_] := (d^4 + r^4 + 4*r^2*R^2 + R^4 + 2*d^2*r^2*Cos[2*a] - 2*R^2*(d^2*Cos[2*b] + r^2*Cos[2*w]))/(4*r^2*R^2)

The case d = 0

trppcpp[a,b,w,0,r,R]

This expression does not depend on a,b; thus the settings a = 0, b= 0 in case d = 0 are justified.

Notations:

C is a circle with center m, radius r, and position vector posv in the Euclidean 3-space.

pp = (p1, p2) is a 0-sphere of radius R with center m0 in the Euclidean 3-space.

d denotes the distance of the centers m, m0,

a  denotes the angle between the position vector of the circle and the line connecting the centers, a = 0 if d = 0,

b denotes the angle between the line joining the centers and the line containing pp, b = 0 if d = 0.

w denotes the angle between the position vector posv and the line containing pp.

PROPOSITION  6. With the notations just explained  the expression

detppcpp[a,b,w,d,r,R]

is the determinant, and

trppcpp[a,b,w,d,r,R]

the trace of the matrix of the double projection ppspp[(C,pp)]. As such, they form a complete invariant system for the Möbius geometry of the pairs (C,pp) of circles C with point pairs pp.

Since all calculations are done already, the proof is an easy consequence of the general theory.

4.5.5. Control, OK!

We use the assumptions and notations explained in propostition 6:

Thus we have for the angle a

unit[2][{u,v}].{x,y,z}/Sqrt[x^2+y^2 + z^2] == Cos[a]

This leads to the definition

anglea[x_, y_, z_, u_, v_] := Module[{ds=x^2+y^2+z^2, angle},
If[(N[ds] ==  0.)|| ds == 0,angle = 0,
angle = ArcCos[(x*Cos[u]*Cos[v] + y*Cos[v]*Sin[u] + z*Sin[v])/Sqrt[x^2 + y^2 + z^2]],
angle = ArcCos[(x*Cos[u]*Cos[v] + y*Cos[v]*Sin[u] + z*Sin[v])/Sqrt[x^2 + y^2 + z^2]]];
Return[angle]]

For testing the result we take the 0-sphere {p1[R], p2[R]} with random R>0:

{p1[R],p2[R]}

and a circle with random center {x,y,z}, random Radius r>0, and a random position vector unit[2][u,v].  First we calculate the determinant and the trace of the matrix ppmatrix of this configuration directly, by the help of

?circlespacevectors

and appspace inserted into ppcpp,  and then we compare the results with the functions detppcpp, trppcpp appearing in proposition 6  (?).

Now we calculate the Euclidean invariants of the configuration, insert them into the functions detppcpp, trppcpp, and substract the determinant or the trace, respectively, of aamatrix. In both cases the test should give zero, up to numerical disturbances:

res[]:=(RR = 2*Random[];xx =5* Random[];yy = -3*Random[];zz = 2*Random[];rr = 1*Random[];
uu=2*Pi* Random[];vv = RandomReal[{-Pi/2,Pi/2}];
aa = anglea[xx,yy,zz,uu,vv];
ww= Pi/2 - vv; 
dd = Sqrt[xx^2+yy^2+zz^2];
If[dd==0||dd== 0.,bb= 0,
bb = ArcCos[zz/dd],bb = ArcCos[zz/dd]];RR = Random[];
aamatrix=ppmatrix[circlespacevectors[xx,yy,zz,uu,vv,rr],appspace[RR]];
dettest = detppcpp[aa,bb,ww,dd,rr,RR]-Det[aamatrix];
trtest = trppcpp[aa,bb,ww,dd,rr,RR]-Tr[aamatrix];
{dettest,trtest})

Repeat this Test with changing th ranges of the random numbers!

res[]

OK! All seems to be correct.  The next cell contains a test program calculating the mean error of 100 tests

Timing[Clear[err];err={0,0};For[i=0,i≤100,i++,res[];Print[res[]];err= err + res[];];err*10^(-2)]

res[]

The number err depends on the factors at the coordinates and the radii; if these values are in "critical regions", e.g. differ strongly, the number err increases.  As you see, also in these cases the test functions have only small values. Make your experiments! A bit hesitating one may say that the tests confirm the statements of proposition 6.

Clear[aa,bb,xx,yy,zz,rr,RR,uu,vv,ww,aamatrix,aa,bb,dd,dettest,trtest,err]

5.  Point Quadrupels

We consider pairs of  0-spheres, i.e. point quadrupels {{a1,a2},{b1,b2}}.  Since each point quadrupel belongs to a sphere, we could consider spherical Möbius geometry: dim = 4, but for later applications we will continue with dim =5 here. Since the Möbius group of the sphere coincides with the broken linear transformations in one complex variable of the Riemann sphere, and this is the projective complex line, an invariant of the quadrupel coincides with the complex cross ratio, the basic invariant of complex projective geometry. Historically, the Möbius group has been found by Möbius in this important context. We considered the original complex Möbius group, and its relation to the 2-dimensional real case, in the notebook [RS]. Here we are interested more in the real situation, for later application in differential geometry. Therefore we will apply the general method of Möbius invariants for pairs of subspheres also in this lowest dimensional case. Since the cross ratio is a complex number we may expect to obtain two real invariants describing the mutual position of two point pairs in the Möbius space.

5.1. A complete invariant system

Let {a_list, b_list} = {{a1,a2},{b1,b2}} be two point pairs in the  3-space. Then the corresponding double projection is defined as

ppptspp[a_List, b_List] := Module[{av, bv, i, j,k},
		av = vspacepp[a[[1]], a[[2]]];
	bv = vspacepp[b[[1]], b[[2]]];
If[av == Null||bv==Null, Return[]];
		Table[Sum[pssp[av[[j]],bv[[k]]]*pssp[av[[i]],bv[[k]]],{k,3}],
			{i,3},{j,3}]]

The eigenvalues of this matrix and the rank

rk[a1_List, a2_List, b1_List, b2_List]:=rank[Join[vspacepp[a1, a2],vspacepp[b1, b2]]]

are a complete invariant system for the möbius geometry of point pairs.

First examples

ppptspp[{{-1,0,0}, {1,0,0}},{{0,-1,0}, {0, 1,0}}]//MatrixForm

This is the same as

ppmatrix[vspace[{{-1,0,0}, {1,0,0}}],vspace[{{0,-1,0}, {0, 1,0}}]]//MatrixForm

rk[{-1,0,0}, {1,0,0},{0,-1,0}, {0, 1,0}]

vspacepp[{0,-1,0}, {0, 1,0}]

vspace[{{0,-1,0}, {0, 1,0}}]

?psframepp

psframepp[{0,-1,0}, {0, 1,0}]

stepro[%[[1]]+ %[[5]]]

stepro[%%[[1]]- %%[[5]]]

If the two point pairs coincide, we get the identity matrix:

ppptspp[{{-1,0,0}, {1,0,0}},{{-1,0,0}, {1,0,0}}]

ppmatrix[vspace[{{-1,0,0}, {1,0,0}}],vspace[{{-1,0,0}, {1,0,0}}]]//MatrixForm

rk[{-1,0,0}, {1,0,0},{-1,0,0}, {1,0,0}]

vspacepp[{0,1,0}, {0, 1,0}]

ppptspp[{{-1,0,0}, {1,0,0}},{{0,1,0}, {0, 1,0}}]

5.2. Throws

5.2.1. Definition of a throw and the matrix pppts

We say that a point quadrupel is  a throw, if at least three of the four points are different. In this case we show that at least  one of the three eigenvalues of the corresponding matrix equals 1. To this aim we assume without loss of generality that all four points belong to the x,y-plane; by a Möbius transform we reach that three of the points are  unit points on the axes:

Simplify[ppptspp[{{-1,0,0}, {1,0,0}},{{x, y,0},{0,1,0}}]]

Therefore we may define

pppts[x_,y_] :={{1,0,((-1+(x^2)+(y^2))/((x^2)+(((-1+y))^2)))},{0,1,0},{((-1+(x^2)+(y^2))/((x^2)+(((-1+y))^2))),0,(((x^2)+(((1+y))^2))/((x^2)+(((-1+y))^2)))}}

pppts[x,y]//MatrixForm

Our first example corresponds to

pppts[0, -1]

pots[x_,y_]:=Graphics3D[{PointSize[.02],Point[{-1,0,0}],Point[{1,0,0}],Point[{0,1,0}],Red,Point[{x,y,0}]}]

5.2.2. The eigenvalue 1

pppts[x,y]

Thus, {0,1,0} is eigenvector with eigenvalue 1, for all values of x,y:

%.{0,1,0}

The corresponding sphere is obtained by going back to the pseudo-Euclidean 5-space and applying euklidsphereplot3D:

tpm = Transpose[vspacepp[{-1,0,0}, {1,0,0}]]

tpm//MatrixForm

tpm.{0,1,0}

Thus, the eigenvector to the eigenvalue 1 defines the sphere which contains the four points:

euklidsphereplot3D[%]

5.2.3. The other eigenvalues

Simplify[Det[pppts[x,y]]]

In the general case, the eigenvalues are

Simplify[Eigenvalues[pppts[x,y]]]

Simplify[%]

feval1[x_,y_]:=(1+x^2+y^2-Sqrt[x^4+2*x^2*(-1+y^2)+(1+y^2)^2])/(x^2+(-1+y)^2)

feval2[x_,y_]:=(1+x^2+y^2+Sqrt[x^4+2*x^2*(-1+y^2)+(1+y^2)^2])/(x^2+(-1+y)^2)

Plot3D[feval1[x,y], {x,-2,2},{y,-2,2},PlotPoints -> 80,PlotRange -> All]

Plot3D[feval1[x,y], {x,-.2,.2},{y,.8,1.2},PlotPoints -> 80, PlotRange ->All]

Simplify[(1+x^2+y^2)^2-(x^4+2*x^2*(-1+y^2)+(1+y^2)^2)]

The eigenvalue feval1[x,y] has a singularity at the point (0,1); at this point the second 0-sphere ((0,1), (x, y)) degenerates to a point, thus, the invariants are undefined.

feval1[0,y]

Plot[feval1[0,y], {y, -2,2}]

feval1[0,1.0000001]

feval1[0,1.]

feval1[0,.999999]

Plot3D[feval2[x,y], {x,-2,2},{y,-2,2},PlotPoints -> 80,PlotRange -> {0.5,5}]

Plot3D[feval2[x,y]-feval1[x,y], {x,-2,2},{y,-2,2},PlotPoints -> 80,PlotRange -> {0,3}]

Plot3D[feval2[x,y]+feval1[x,y], {x,-2,2},{y,-2,2},PlotPoints -> 80,PlotRange -> {0,3}]

Simplify[Eigensystem[pppts[x,y]]]

The matrix of the eigenvectors is

evmatr[x_,y_] = %[[2]]

Simplify[evmatr[x,y][[2]].evmatr[x,y][[3]]]

5.2.4. The eigenspheres

Again we may define the corresponding eigenspheres:

tpm//MatrixForm

tpm.evmatr[x,y][[2]]

We multiply the Eihenvectors with -1+(x^2)+(y^2), what does not change the eigenspheres.

eigensphere2[x_,y_]:= tpm.evmatr[x,y][[2]]*(-1+x^2+y^2)

eigensphere3[x_,y_]:= tpm.evmatr[x,y][[3]]*(-1+x^2+y^2)

Simplify[pssp[eigensphere2[x,y],eigensphere3[x,y]]]

Of course, the eigenvectors are always spacelike;

Simplify[pssp[eigensphere2[x,y],eigensphere2[x,y]]]

Simplify[pssp[eigensphere3[x,y],eigensphere3[x,y]]]

For points (x,y) on the unit circle all  the four points lie on this circle; this case is treated in the next subsection.

rk[{-1,0,0}, {1,0,0},{x, y,0},{0,1,0}]

rk[{-1,0,0}, {1,0,0},{Cos[t],Sin[t],0},{0,1,0}]

Simplify[eigensphere2[Cos[t],Sin[t]]]

Simplify[eigensphere3[Cos[t],Sin[t]]]

For any points (x, y) not on the unit circle  we obtain two orthogonal spheres:

xx=3*Random[];yy=3*Random[];Print["(x,y) = (",xx,", ", yy,")"];
Print["ev1 = ",feval1[xx,yy],", ","ev2 = ",feval2[xx,yy]];
{euklidsphereplot3D[eigensphere2[xx,yy],-1,1,-1,1,Mesh -> None ,PlotStyle->Opacity[.3]],euklidsphereplot3D[eigensphere3[xx,yy],-1,1,-1,1,Mesh -> None ,PlotStyle->Opacity[.3]]};

Show[{pots[xx,yy],%},PlotRange -> All,Boxed-> False]

Clear[xx,yy]

5.3. Four points on the standard unit circle

5.3.1. Two Point Pairs

Simplify[pppts[Cos[t], Sin[t]]]

Obviously, the eigenvalues are

Eigenvalues[%]

eigenv1[t_] := {1,1,(1+Sin[t])/(1-Sin[t])}

Plot[Log[(1+Sin[t])/(1-Sin[t])],{t,0,Pi},PlotRange ->{0,13}]

For t = 0, Pi all the eigenvalues are 1 since the point pairs have a common point:

eigenv1[Pi]

eigenv1[0]

Since for t = Pi/2 the second point pair degenerates to one point, we here get a singularity:

eigenv1[Pi/2]

For t = 3Pi/2 we have orthogonal 0-spheres:

eigenv1[3Pi/2]

It follows: for all values of t the multiplicity of the eigenvalue 1 is at least 2.  This is due to the fact that the points are not in generl position: they belong to a circle.

5.3.2.The orthogonal case

Eigensystem[pppts[0,-1]]

Eigenvectors[pppts[0,-1]]

The corresponding eigenspheres are

bvv = vspacepp[{-1,0,0}, {1,0,0}]

Clear[ev1,eval2,ev3]

ev1 = Transpose[bvv].{0,0,1}

eval2 = Transpose[bvv].{0,1,0}

ev3 = Transpose[bvv].{1,0,0}

pts1 = {Point[{1,0,0}],Point[{-1,0,0}]}

pts2 = {Point[{0,-1,0}],Point[{0,1,0}]}

Show[Graphics3D[{{RGBColor[1,0,0],PointSize[0.06],pts1},{RGBColor[0,1,0],PointSize[0.06],pts2}}]]

grepts = %;

{euklidsphereplot3D[ev1],euklidsphereplot3D[eval2],euklidsphereplot3D[ev3,-1,1,-1,1,PlotStyle -> Opacity[.3], Mesh-> None]}

Show[%]

gresph = %;

ParametricPlot3D[{Cos[t], Sin[t],0},{t,0,2Pi},PlotStyle ->{Red,Thick}]

gcir = %;

Show[{grepts,gresph,gcir}]

gre1 = %;

Remark. The eigenvalue 1 has multiplicity 2. Therefore any vector pair

evv2[t_]:= eval2*Cos[t] + ev3*Sin[t]

evv3[t_]:= -eval2*Sin[t] + ev3*Cos[t]

is an orthonormal basis of the corresponding eigensphere plane. We obtain a bundle of the corresponding spheres:

Table[euklidsphereplot3D[evv2[Pi*(0.5+j/10)],0,1,-1,1,PlotStyle-> Opacity[.5],Mesh-> None],{j,-2,2}]

bdl2 = %;

that is the bundle of the spheres through the circle containing the four points. The sphere belonging to the eigenvalue 0 is the x,z-plane:

euklidsphereplot3D[ev1,-2,2,-2,2,PlotStyle-> {Green,Opacity[.4]},Mesh-> None]

sph1 = %;

it intersects orthogonally all the spheres of the bundle.

Show[{grepts,gcir,bdl2,sph1}]

gre2 = %;

5.3.3. Two Point Pairs on the Line. Another Approach

In this example  we consider the line as the Euclidean 1-space; we close it adding the point [{Infinity}] to a circle. Considering the first point pair as a “hypersphere” of the line we apply the method of section 3 to obtain the Möbius invariant and discuss the mutual position of the point pairs.

The isotropic vector representing the point {x} is

invstepro[{x}]

Simplify[pssp[%,%]]

invstepro[{Infinity}]

For x≠y the space orthogonal to the pseudo-Euclidean subspace spanned by {invstepro[{x}],invstepro[{y}]]} is 1-dimensional Euclidean, spanned by

Simplify[psCross[invstepro[{x}],invstepro[{y}]]]

Simplify[pssp[%,%]]

vv[x_,y_] =Simplify[%%/Sqrt[%]]

Simplify[pssp[%,%]]

?pp2space

Simplify[pp2space[{x},{y}]]

Table[Simplify[pssp[%[[i]],%[[j]]]],{i,2},{j,2}]//MatrixForm

The next and some of the following definitions make sense for the circle or line  only.

Clear[uu];uu[x_,y_] = Simplify[psCross[%%[[1]],%%[[2]]]]

This is a spacelike unit vector representing the oriented “hypersphere” {x,y}; we may define it directly:

vv[x_,y_]:= psCross[invstepro[{x}],invstepro[{y}]]/Sqrt[pssp[psCross[invstepro[{x}],invstepro[{y}]],psCross[invstepro[{x}],invstepro[{y}]]]]

Simplify[vv[x,y]]

Simplify[%== -uu[x,y]]

Simplify[pssp[vv[x,y],vv[x,y]]]

For two 0 - spheres {a, b}, {x, y}  within the circle we obtain a square root of the Möbius  invariant

?moebspp

Simplify[moebspp[vv[x,y],{x},{z}]]

Simplify[indicator[vv[x,y],{x},{y}]]

Simplify[indicator[vv[x,y],{x},{z}]]

Simplify[pssp[%,%]]

bb=Simplify[pssp[vv[a,b],vv[x,y]]]

Simplify[moebspp[vv[a,b],{x},{y}]]

%==bb^2

The points are represented by its coordinates whose cross ratio is the projective invariant

aa = dv[a,b,x,y]

The cross ratio aa  and the Möbius invariant  bb  are related by (see [O-S],  Example 2.7.4)

Simplify[bb == (1+aa)/(1-aa)]

or, vice versa:

Simplify[aa == (bb-1)/(bb+1)]

We define a new Module:

s0::usage = "If v is a spacelike vector of dimension 3, the function s0[v] yields the 0-sphere defined by v as a pair of two points of the real axis completed by the point {∞}.";

s0[v_] := Module[{xx, ma,sol },
If[pssp[v,v]≤ 0||Length[v]≠ 3, Print["Invalid argument!"]; Return[]];
xx = vec[x,3];
sol=Solve[{pssp[v,xx]== 0,pssp[xx,xx]== 0}, xx];
ma ={xx/.sol[[1]],xx/.sol[[2]]};
ma={ma[[1]]+ma[[2]],ma[[1]]-ma[[2]]};
ma = orthonorm[ma];
{stepro[ma[[2]]-ma[[1]]],stepro[ma[[2]]+ma[[1]]]}]

Some tests follow:

s0[stb[3,3]]

s0[stb[2,3]]

vs = randomv[3];Print[pssp[vs,vs]]; bs =s0[vs]

bs[[1]]

invstepro[bs[[2]]]

Chop[{pssp[vs,invstepro[bs[[1]]]],pssp[vs,invstepro[bs[[2]]]]}]

s0[vec[x]]

s0[{1,0,1}]

Symbolic calculations are carried out correctly :

bs =s0[vec[y,3]]

Of corse, vec[y,3] needs not to be spacelike. Assuming this we get the expected result:

Table[Assuming[pssp[vec[y,3],vec[y,3]]>0,Simplify[pssp[vec[y,3],invstepro[bs[[i]]]]]],{i,2}]

The vector indicator  of the  "hypersphere" defined by stb[3,3] and the points x,y is

?indicator

indicator[stb[3,3],{x},{y}]

vvv=vv[x,y];

Simplify[indicator[vvv,{x},{y}]]

Simplify[indicator[vvv,{x},{a}]]

Simplify[pssp[%,%]]

Simplify[indicator[vvv,{(x+y)/2},{x+3y/2}]]

Simplify[pssp[%,%]]

Reduce[{0<x<y,%>0},{x,y},Reals]

vvv = vv[0,1]

indicator[vvv,{x},{x}]

The error message appears because x = y.

ftest[x_] := pssp[indicator[vvv,{-1},{x}],indicator[vvv,{-1},{x}]]

Simplify[ftest[x]]

Clearly, for x<0 or x>1 the indicator is spacelike, the points - 1,x are not separated ny 0,1. For 0<x<1 they are separated, and the indicator is timelike. It is isotropic for x = 0 or x = 1:

Plot[ftest[x],{x,-2,2},PlotRange -> {-5,5}]

The corresponding Möbius invariant moebspp equals

Simplify[Together[moebspp[vvv,{-1},{x}]]]

Plot[%,{x,-5,5},PlotRange -> {0,50}]

For the circle, the Möbius 1-space,  a hypersphere is a 0-sphere; replacing vec[nn] by the only vector of

vspacepp[{x},{y}]

vp = Simplify[Flatten[%]]

Simplify[vv[x,y]]

The vectors coincide up to sign:

Simplify[Abs[%]== Abs[vp]]

Simplify[Together[pssp[vp,vp]]]

Specializing let vp define the 0-sphere S={{3},{5}}:

vp = vv[3,5]

indicator[vp,{3},{5}]

Simplify[moebspp[vp,{3},{x}],x∈ Reals]

The result shows that the two 0-spheres {3, 5}, {3, x} are Möbius-equivalent for any  x≠3.

Simplify[moebspp[vp,{3},{3}],x∈ Reals]

moebspp[vp,{1},{x}]

Plot[moebspp[vp,{1},{x}],{x,-9,9}]

Plot[moebspp[vp,{1},{x}],{x,0,5},PlotRange -> {0,5}]

moebspp[vp,{1},{3}]

FindMinimum yields a numeric solution only:

FindMinimum[moebspp[vp,{1},{x}],{x,3}]

Here is an exact solution:

Reduce[moebspp[vp,{1},{x}]<= 0,x,Reals]

Remove[vvv,vp,ftest]

6.  Geodesics in the Space of 0-Spheres

6.1.  Introduction

A 2-point curve is a curve in the 6-dimensional space of all 0-spheres. This space is pseudo-Riemannian symmetric of rank two. The geodesics of the space are orbits of certain 1-parameter subgroups of the Möbius group.   As in all reductive spaces, the geodesics through an element po are the orbits of certain  one-parameter subgroups exp(At)C, t ∈ Reals,  of the Möbius group, where in our case po is defined to be the point pair

{stepro[stb[1] - stb[5]],stepro[stb[1] + stb[5]]}

A denotes an element of the orthogonal complement of the isotropy algebra of po in the pseudo-orthogonal Lie algebra o(1,4); here orthogonality is defined by the Killing form  of the Lie algebra o(1,4). It would be interesting to investigate the relation between the pseudo-Riemannian geometry of the 0-sphere space and the point submanifolds more basically. But this may be the subject of another notebook. We emphasize that we do not give here a classification of all the geodesics with respect to the Möbius group. We only treat three simple cases of geodesics lying in a 2-sphere.

For the Killing form and some other constructs we import the package

<<liealgsh.m

This package is a shortened version of the package liealg.m contained in  MathSource, "Lie Algebras" [lie].

The pseudo-orthogonal Lie algebra for dim = 5 and ind = 1 is the set of all matrices of the shape

?psomatrix

psomatrix[a]//MatrixForm

Here is the Killing form of an arbitrary element of the pseudo-orthogonal Lie algebra o(1,4):

?psokilling

psokilling[psomatrix[a],psomatrix[a]]

6.1.1. The isotropy algebra and its orthogonal complement

The isotropy algebra of the point pair po = {o, ∝) is the four-dimensional Lie subalgebra of all matrices psomatrix[b] leaving the subspace spanned by {stb[1], stb[5]} fixed:

stepro[(stb[1]+stb[5])]

stepro[(stb[1]-stb[5])]

v1 =stb[1];v5=stb[5];

The isotropyalgebra is obtained as the solution of

Solve[{psomatrix[a].(v1+v5)==(v1+v5)*u+(v1-v5)*v,psomatrix[a].(v1-v5)==(v1+v5)*x+(v1-v5)*y},Join[vec[a,10],{u,v,x,y}]]

psomatrix[a]/.Flatten[%]

imatrix[a_] = {{0,0,0,0,a[10]},{0,0,-a[4],-a[5],0},{0,a[4],0,-a[7],0},{0,a[5],a[7],0,0},{a[10],0,0,0,0}}

%//MatrixForm

Indeed, we have

imatrix[b].(v1+v5)

imatrix[b].(v1-v5)

Its orthogonal complement with respect to the Killing form is the 6-dimensional subspace of all matrices matrix[c], where the complementary set of coefficients is free, and the coefficients appearing in imatrix[b] vanish:

cimatrix[c_]=psomatrix[c]-imatrix[c]

%//MatrixForm

Indeed, we have

psokilling[cimatrix[c],imatrix[b]]

The Killing form restricted to the subspace of these matrices is

psokilling[cimatrix[c],cimatrix[c]]

Thus it is a 6-dimensional pseudo-Euclidean vector space of index three.

6.2.  Spacelike geodesics

The following matrix function defines the 1-parameter subgroup exp[Uh*t], where Uh is an element of the Lie algebra o(4,1) orthogonal to the isotropy algebra of pp and spacelike with respect to the Killing form of o(4,1) :

Uh = cimatrix[c]/.{c[1]->1,c[2]->0,c[3]->0,c[6]->0,c[8]->0,c[9]->0}

Uh//MatrixForm

psokilling[Uh,Uh]

psokilling[Uh, imatrix[b]]

gUh[t_]  := MatrixExp[Uh t]

MatrixForm[gUh[t]]

Simplify[ExpToTrig[%]]//MatrixForm

stepro[(stb[1]-stb[5])]

vh1[t_]:= Evaluate[gUh[t].(stb[1]-stb[5])]

vh1[t]

Simplify[pssp[%,%]]

x1[t_] = stepro[vh1[t]]

stepro[(stb[1]+stb[5])]

vh2[t_]:= Evaluate[gUh[t].(stb[1]+stb[5])]

x2[t_] = stepro[vh2[t]]

Both points remain on the x-axis; the coordinate difference is

diffx[t_] =Together[(x2[t] - x1[t])[[1]]]

Plot[{x1[t][[1]],x2[t][[1]]} ,{t,0,10},PlotRange -> {-1,30}]

Plot[x1[t][[1]], {t,0,10},PlotRange -> All]

Plot[x2[t][[1]], {t,.1,5},PlotRange -> All]

Plot[diffx[t], {t,.1,10},PlotRange -> All]

Obviously, for t -> ∞, both points have the limit (1,0,0).

invstepro[{1,0,0}]

gUh[t].%

stepro[%]

Thus, {1, 0, 0} is a fixed point of this transformation.

The only fixed points on the x-axis are {1,0,0}, {-1,0,0}; here are the isotropic vectors corresponding to points of the x-axis:

invstepro[{x,0,0}]

The fixed points are the solutions of

Solve[Uh.{1,((2 x)/(1+(x^2))),0,0,((-1+(x^2))/(1+(x^2)))}== k{1,((2 x)/(1+(x^2))),0,0,((-1+(x^2))/(1+(x^2)))},{x,k}]

Uh.{1,((2 x)/(1+(x^2))),0,0,((-1+(x^2))/(1+(x^2)))}

Indeed, if we consider the action of the subgroup gUh[t] on the Möbius space (S^3), these are the only fixed points of the action:

invstepro[{x,y,z}]

Solve[Uh.{1,((2 x)/(1+(x^2)+(y^2)+(z^2))),((2 y)/(1+(x^2)+(y^2)+(z^2))),((2 z)/(1+(x^2)+(y^2)+(z^2))),((-1+(x^2)+(y^2)+(z^2))/(1+(x^2)+(y^2)+(z^2)))}== k*{1,((2 x)/(1+(x^2)+(y^2)+(z^2))),((2 y)/(1+(x^2)+(y^2)+(z^2))),((2 z)/(1+(x^2)+(y^2)+(z^2))),((-1+(x^2)+(y^2)+(z^2))/(1+(x^2)+(y^2)+(z^2)))},{x,y,z,k}]

We have the two solutions

Uh.{1,1,0,0,0}

stepro[%]

Uh.{1,-1,0,0,0}

stepro[%]

We are going now to calculate the Möbius invariants of two point pairs belonging to the orbit:

?ppptspp

spacelike[s_,t_]=ppptspp[{x1[s],x2[s]},{x1[t],x2[t]}]

FullSimplify[%, s>0&&t>0]//MatrixForm

The maximal eigenvalue is grater than 1, therefore the point pairs do not separate each other.

rk[x1[s],x2[s],x1[t],x2[t]]

rk[x1[s],x2[s],x1[s],x2[s]]

We consider thw pointa

x1[s]

x2[s]

on the x-axis of the x,y-plane

obr[s_]:=Graphics[{PointSize[.05],Red,Point[{((-1+(E^s))/(1+(E^s))),0}],Point[{((1+(E^s))/(-1+(E^s))),0}]}]

obg[s_]:=Graphics[{PointSize[.05],Green,Point[{((-1+(E^s))/(1+(E^s))),0}],Point[{((1+(E^s))/(-1+(E^s))),0}]}]

Show[{obg[2],obr[1]}]

ob[s_] := Show[{obg[s],obr[1]}]

Animate[ob[s], {s,-3,3}]

6.3.  Timelike geodesics

The following matrix function defines the 1-parameter subgroup exp[Ue*t], where Ue is an element of the Lie algebra o(n,1) orthogonal to the isotropy algebra of pp and timelike with respect to the Killing form of o(n,1):

Ue = cimatrix[c]/.{c[1]->0,c[2]->0,c[3]->0,c[6]->0,c[8]->0,c[9]->1}

%//MatrixForm

psokilling[Ue,Ue]

psokilling[Ue, imatrix[b]]

gUe[t_]:=MatrixExp[Ue t]

gUe[t]//MatrixForm

ve1[t_] := gUe[t].(stb[1]-stb[5])

ve1[t]

Simplify[pssp[%,%]]

y1[t_] := stepro[ve1[t]]

ve2[t_] := gUe[t].(stb[1]+stb[5])

ve2[t]

y2[t_]:= stepro[ve2[t]]

y1[t]

y2[t]

Plot[y1[t][[3]],{t, 0,10}]

Plot[{y1[t][[3]],y2[t][[3]]},{t, 0,Pi},PlotRange ->{-30,30}]

Wwe have two points running periodically over the z-axis (i.e. on the sphere: rotation on a meridian), with distance

distx2[t_] :=y1[t]-y2[t]

Plot[distx2[t][[3]], {t,0,10},PlotRange ->{-30,30}]

Clear[x]

Obviously, there do not exist fixed points on the z-axis:

invstepro[{0,0,z}]

Solve[Ue.{1,0,0,((2 z)/(1+(z^2))),((-1+(z^2))/(1+(z^2)))}== k{1,0,0,((2 z)/(1+(z^2))),((-1+(z^2))/(1+(z^2)))},{x,k}]

Ue.{1,0,0,((2 z)/(1+(z^2))),((-1+(z^2))/(1+(z^2)))}

Considered as a transformation group of the Möbius space, the fixed points are the points (x,y,z) with x=0 and y^2 + z^2 =1, i.e. the standard unit circle in the y,z-plane:

invstepro[{x,y,z}]

Solve[Ue.{1,((2 x)/(1+(x^2)+(y^2)+(z^2))),((2 y)/(1+(x^2)+(y^2)+(z^2))),((2 z)/(1+(x^2)+(y^2)+(z^2))),((-1+(x^2)+(y^2)+(z^2))/(1+(x^2)+(y^2)+(z^2)))}== k*{1,((2 x)/(1+(x^2)+(y^2)+(z^2))),((2 y)/(1+(x^2)+(y^2)+(z^2))),((2 z)/(1+(x^2)+(y^2)+(z^2))),((-1+(x^2)+(y^2)+(z^2))/(1+(x^2)+(y^2)+(z^2)))},{x,y,z,k}]

sol=%;

{x,y,z}/.sol[[1]]

{x,y,z}/.sol[[2]]

The points of the standard  unit circle are fixed points:

Ue.invstepro[{Cos[t],Sin[t],0}] ==null[]

We are going now to calculate the Möbius invariants of two point pairs belonging to the orbit:

timelike[s_,t_]:=ppptspp[{y1[s],y2[s]},{y1[t],y2[t]}]

timelike[s,t]

FullSimplify[%, s>0&&t>0]//MatrixForm

FullSimplify[((((1+Cot[s] Cot[t]))^2)/((Abs[Csc[s] Csc[t]])^2)),s>0&&t>0]

ftest[s_,t_]=%

Mathematica does not simplify the elementary identity

FullSimplify[ftest[s,t]==Cos[s-t]^2,s>0&&t>0]

FullSimplify[TrigToExp[ftest[s,t]-Cos[s-t]^2]]

Plot3D[ftest[s,t],{s,0,2*Pi},{t,0,2*Pi}]

Plot[ftest[s,-s],{s,0,2*Pi}]

The maximal eigenvalue for s≠t is less than 1, therefore the point pairs  separate each other.

rk[y1[s],y2[s],y1[t],y2[t]]

rk[y1[s],y2[s],y1[s],y2[s]]

y1[s]

y2[s]

yobr[s_]:=Graphics[{PointSize[.05],Red,Point[{0,Tan[(s/2)]}],Point[{0,-Cot[(s/2)]}]}]

yobg[s_]:=Graphics[{PointSize[.05],Green,Point[{0,Tan[(s/2)]}],Point[{0,-Cot[(s/2)]}]}]

For s≠t the point pairs separate each other as points on the z-axis:

Show[{yobg[2],yobr[1]}]

yob[s_] := Show[{yobg[s],yobr[1]}]

Animate[yob[s], {s,-3,3}]

6.4. Isotropic geodesics

The following matrix function defines the 1-parameter subgroup exp[U*t], where U is an element of the Lie algebra o(n,1) orthogonal to the isotropy algebra of pp and isotropic with respect to the Killing form of o(n,1) :

U =cimatrix[c]/.{c[1]->1,c[2]->0,c[3]->0,c[6]->0,c[8]->0,c[9]->1}

%//MatrixForm

psokilling[U, U]

psokilling[U,imatrix[b]]

isotropugr[t_]:= MatrixExp[U*t]

Simplify[ExpToTrig[isotropugr[t]]]//MatrixForm

gh[t_]= Simplify[ExpToTrig[isotropugr[t]]]

Simplify[Table[pssp[gh[t][[i]], gh[t][[j]]],{i,5},{j,5}]]//MatrixForm

v1c[t_] := gh[t].(stb[1]-stb[5])

v2c[t_] := gh[t].(stb[1] + stb[5])

v1c[t]

v2c[t]

z1[t_] :=stepro[v1c[t]]

z1[t]

The curve is a conformal image of a loxodrome:

ParametricPlot[{((Sinh[t])/(Cos[t]+Cosh[t])),((Sin[t])/(Cos[t]+Cosh[t]))},{t,-4*Pi,4*Pi},PlotRange -> All]

The orbit z2[t] is a conformal image of a loxodrome too:

z2[t_]:= stepro[v2c[t]]

z2[t]

ParametricPlot[{((Sinh[t])/(-Cos[t]+Cosh[t])),((Sin[t])/(Cos[t]-Cosh[t]))},{t,10,100},PlotRange -> All]

cu[t_] :=sphericalreflection[{((Sinh[t])/(-Cos[t]+Cosh[t])),((Sin[t])/(Cos[t]-Cosh[t]))},{-1,0},Sqrt[2]]

ParametricPlot[cu[t], {t,0,1},PlotRange-> All]

ParametricPlot[cu[t], {t,-1,10},PlotRange-> All]

Limit[cu[t], t-> 0]

Limit[cu[t], t-> Infinity]

Limit[cu[t], t-> -Infinity]

For the subgroup isotropugr{t] the only fixed points of its action on (S^3) are the unit points of the x-axes:

invstepro[{x,y,z}]

Solve[U.{1,((2 x)/(1+(x^2)+(y^2)+(z^2))),((2 y)/(1+(x^2)+(y^2)+(z^2))),((2 z)/(1+(x^2)+(y^2)+(z^2))),((-1+(x^2)+(y^2)+(z^2))/(1+(x^2)+(y^2)+(z^2)))}== null[],{x,y,z}]

Reduce[U.{1,((2 x)/(1+(x^2)+(y^2)+(z^2))),((2 y)/(1+(x^2)+(y^2)+(z^2))),((2 z)/(1+(x^2)+(y^2)+(z^2))),((-1+(x^2)+(y^2)+(z^2))/(1+(x^2)+(y^2)+(z^2)))}== null[],{x,y,z},Reals]

Reduce[U.{1,((2 x)/(1+(x^2)+(y^2)+(z^2))),((2 y)/(1+(x^2)+(y^2)+(z^2))),((2 z)/(1+(x^2)+(y^2)+(z^2))),((-1+(x^2)+(y^2)+(z^2))/(1+(x^2)+(y^2)+(z^2)))}== k*{1,((2 x)/(1+(x^2)+(y^2)+(z^2))),((2 y)/(1+(x^2)+(y^2)+(z^2))),((2 z)/(1+(x^2)+(y^2)+(z^2))),((-1+(x^2)+(y^2)+(z^2))/(1+(x^2)+(y^2)+(z^2)))},{x,y,z,k},Reals]

U.(stb[1]+stb[2])

U.(stb[1]-stb[2])

The only fixed points are

stepro[{1,1,0,0,0}]

stepro[{-1,1,0,0,0}]

stepro[gh[t].invstepro[{1,0,0}]]

stepro[gh[t].invstepro[{-1,0,0}]]

Eigensystem[U]

Also the infinite point is not fixed:

stepro[stb[1] + stb[5]]

U.(stb[1] + stb[5])

gh[t].(stb[1] + stb[5])

pssp[%,%]

Simplify[%]

The ppmatrix of two point pairs of the orbit are

isotrop[s_,t_]:=ppptspp[{z1[s],z2[s]},{z1[t],z2[t]}]

Simplify[isotrop[s,t]]//MatrixForm

FullSimplify[%, s>0&&t>0]

Simplify[((((1+Cot[s] Cot[t]))^2)/((Abs[Csc[s] Csc[t]])^2))-Cos[s-t]^2, s∈ Reals&&t∈ Reals]

Plot3D[Chop[%],{s,-4,4},{t,-3,3}]

TrigToExp[Cosh[s] Cosh[t]-Sinh[s] Sinh[t]== Cosh[s-t]]

Summarizing we redefine.

isotrop[s_, t_] := 
  {{Cos[s - t]^2, 0, 0}, 
   {0, 1, 0}, {0, 0, Cosh[s - t]^2}}

isotrop[s,t]//MatrixForm

References

[O-S] A. L. Oniscik, R. Sulanke.  Projective and Cayley-Klein Geometries. Springer-Verlag. Berlin,Heidelberg. 2006
(German version may be downloaded from my homepage). Projektive und Cayley-Kleinsche Geometrien.  2003.

[S1] Sulanke, Rolf. Spheres.  1999.  http://mathsource.com/Content/Enhancements/Geometry/0210-092 . Obsolete. Better use the new versions from my homepage.

[S4] R. Sulanke. Möbius invariants for pairs ((Subscript[S, 1]^m), (Subscript[S, 2]^l)) of spheres in the Möbius space (S^n). Beiträge zur Algebra und Geometrie.41 (2000), No.1, 233-246.  Preprint No. 373, SFB 288, Berlin 1999.  http://xxx.lanl.gov/abs/math.MG/9902131.

[lie] R. Sulanke. Lie Algebras. http://www.mathsource.com/cgi-bin/msitem?0210-845, or, on my homepage,
	http://www2.mathematik.hu-berlin.de/~sulanke/geo_alg.html# LA

[RS] R. Sulanke. The Riemannian Sphere. riemsph.nb. Mathematica notebook. 2004. On my homepage.
http://www2.mathematik.hu-berlin.de/~sulanke/sulanke-MuM.html# RS

[emg1] R. Sulanke. Elementary Möbius Geometry I. Points and Spheres. Mathematica Notebook emg.nb. 2011.  On my homepage.

[emg2] R. Sulanke. Elementary Möbius Geometry II. Circles. Mathematica Notebook emgII.nb. 2011.  On my homepage.

Homepage

http://www2.mathematik.hu-berlin.de/~sulanke