Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  chap14_mj.html   Sprache: HTML

 
 products/Sources/formale Sprachen/GAP/pkg/hap/tutorial/chap14_mj.html


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<script type="text/javascript"
  src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<title>GAP (HAP commands) - Chapter 14: Fundamental domains for Bianchi groups</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="generator" content="GAPDoc2HTML" />
<link rel="stylesheet" type="text/css" href="manual.css" />
<script src="manual.js" type="text/javascript"></script>
<script type="text/javascript">overwriteStyle();</script>
</head>
<body class="chap14"  onload="jscontent()">


<div class="chlinktop"><span class="chlink1">Goto Chapter: </span><a href="chap0_mj.html">Top</a>  <a href="chap1_mj.html">1</a>  <a href="chap2_mj.html">2</a>  <a href="chap3_mj.html">3</a>  <a href="chap4_mj.html">4</a>  <a href="chap5_mj.html">5</a>  <a href="chap6_mj.html">6</a>  <a href="chap7_mj.html">7</a>  <a href="chap8_mj.html">8</a>  <a href="chap9_mj.html">9</a>  <a href="chap10_mj.html">10</a>  <a href="chap11_mj.html">11</a>  <a href="chap12_mj.html">12</a>  <a href="chap13_mj.html">13</a>  <a href="chap14_mj.html">14</a>  <a href="chap15_mj.html">15</a>  <a href="chap16_mj.html">16</a>  <a href="chapBib_mj.html">Bib</a>  <a href="chapInd_mj.html">Ind</a>  </div>

<div class="chlinkprevnexttop"> <a href="chap0_mj.html">[Top of Book]</a>   <a href="chap0_mj.html#contents">[Contents]</a>    <a href="chap13_mj.html">[Previous Chapter]</a>    <a href="chap15_mj.html">[Next Chapter]</a>   </div>

<p id="mathjaxlink" class="pcenter"><a href="chap14.html">[MathJax off]</a></p>
<p><a id="X805848868005D528" name="X805848868005D528"></a></p>
<div class="ChapSects"><a href="chap14_mj.html#X805848868005D528">14 <span class="Heading">Fundamental domains for Bianchi groups</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap14_mj.html#X858B1B5D8506FE81">14.1 <span class="Heading">Bianchi groups</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap14_mj.html#X872D22507F797001">14.2 <span class="Heading">Swan's description of a fundamental domain

</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap14_mj.html#X7B9DE54F7ECB7E44">14.3 <span class="Heading">Computing a fundamental domain</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap14_mj.html#X7A489A5D79DA9E5C">14.4 <span class="Heading">Examples</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap14_mj.html#X86CD59CB7A04EE5A">14.5 <span class="Heading">Establishing correctness of a fundamental domain</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap14_mj.html#X78476F127B73BBD1">14.6 <span class="Heading">Computing a free resolution for <span class="SimpleMath">\(SL_2({\mathcal O}_{-d})\)</span></span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap14_mj.html#X784B2156823AEB15">14.7 <span class="Heading">Some sanity checks</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap14_mj.html#X7E5A36D47F9D4A47">14.7-1 <span class="Heading">Equivariant Euler characteristic</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap14_mj.html#X852CDAFF84C5DF01">14.7-2 <span class="Heading">Boundary squares to zero</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap14_mj.html#X7E64819A7C058EDD">14.7-3 <span class="Heading">Compare different algorithms or implementations</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap14_mj.html#X8223864085412705">14.7-4 <span class="Heading">Compare geometry to algebra</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap14_mj.html#X78BC9D077956089A">14.8 <span class="Heading">Group presentations</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap14_mj.html#X786CFAA17C0A6E7A">14.9 <span class="Heading">Finite index subgroups</span></a>
</span>
</div>
</div>

<h3>14 <span class="Heading">Fundamental domains for Bianchi groups</span></h3>

<p><a id="X858B1B5D8506FE81" name="X858B1B5D8506FE81"></a></p>

<h4>14.1 <span class="Heading">Bianchi groups</span></h4>

<p>The <em>Bianchi groups</em> are the groups <span class="SimpleMath">\(G_{-d}=PSL_2({\cal O}_{-d})\)</span> where <span class="SimpleMath">\(d\)</span> is a square free positive integer and <span class="SimpleMath">\({\cal O}_{-d}\)</span> is the ring of integers of the imaginary quadratic field <span class="SimpleMath">\(\mathbb Q(\sqrt{-d})\)</span>. These groups act on <em>upper-half space</em></p>

<p class="center">\[{\frak h}^3 =\{(z,t) \in \mathbb C\times \mathbb R\ |\ t > 0\}  \]</p>

<p>by the formula</p>

<p class="center">\[\left(\begin{array}{ll}a&b\\ c &d \end{array}\right)\cdot (z+tj) \ = \ \left(a(z+tj)+b\right)\left(c(z+tj)+d\right)^{-1}\ \]</p>

<p>where we use the symbol <span class="SimpleMath">\(j\)</span> satisfying <span class="SimpleMath">\(j^2=-1\)</span>, <span class="SimpleMath">\(ij=-ji\)</span> and write <span class="SimpleMath">\(z+tj\)</span> instead of <span class="SimpleMath">\((z,t)\)</span>. Alternatively, the action is given by</p>

<p class="center">\[\left(\begin{array}{ll}a&b\\ c &d \end{array}\right)\cdot (z+tj) \ = \
\frac{(az+b)\overline{(cz+d) } + a\overline c t^2}{|cz +d|^2 + |c|^2t^2} \ +\
\frac{t}{|cz+d|^2+|c|^2t^2}\, j
      \ .\]</p>

<p>We take the boundary <span class="SimpleMath">\(\partial {\frak h}^3\)</span> to be the Riemann sphere <span class="SimpleMath">\(\mathbb C \cup \infty\)</span> and let <span class="SimpleMath">\(\overline{\frak h}^3\)</span> denote the union of <span class="SimpleMath">\({\frak h}^3\)</span> and its boundary. The action of <span class="SimpleMath">\(G_{-d}\)</span> extends to the boundary. The element <span class="SimpleMath">\(\infty\)</span> and each element of the number field <span class="SimpleMath">\(\mathbb Q(\sqrt{-d})\)</span> are thought of as lying in the boundary <span class="SimpleMath">\(\partial {\frak h}^3\)</span> and are referred to as <em>cusps</em>. Let <span class="SimpleMath">\(X\)</span> denote the union of <span class="SimpleMath">\({\frak h}^3\)</span> with the set of cusps, <span class="SimpleMath">\(X={\frak h}^3 \cup \{\infty\} \cup \mathbb Q(\sqrt{-d})\)</span>. It follows from work of Bianchi and Humbert that the space <span class="SimpleMath">\(X\)</span> admits the structure of a regular CW-complex (depending on <span class="SimpleMath">\(d\)</span>) for which the action of <span class="SimpleMath">\(G_{-d}\)</span> on <span class="SimpleMath">\({\frak h}^3\)</span> extends to a cellular action on <span class="SimpleMath">\(X\)</span> which permutes cells. Moreover, <span class="SimpleMath">\(G_{-d}\)</span> acts transitively on the <span class="SimpleMath">\(3\)</span>-cells of <span class="SimpleMath">\(X\)</span> and each <span class="SimpleMath">\(3\)</span>-cell has trivial stabilizer in <span class="SimpleMath">\(G_{-d}\)</span>. Details are provided in Richard Swan's paper [Swa71b].



<p>We refer to the closure in <span class="SimpleMath">\(X\)</span> of any one of these <span class="SimpleMath">\(3\)</span>-cells as a <em>fundamental domain</em> for the action <span class="SimpleMath">\(G_{-d}\)</span>. Cohomology of <span class="SimpleMath">\(G_{-d}\)</span> can be computed from a knowledge of the combinatorial structure of this fundamental domain together with a knowledge of the stabilizer groups of the cells of dimension <span class="SimpleMath">\(\le 2\)</span>.</p>

<p><a id="X872D22507F797001" name="X872D22507F797001"></a></p>

<h4>14.2 <span class="Heading">Swan's description of a fundamental domain

<p>A pair <span class="SimpleMath">\((a,b)\)</span> of elements in <span class="SimpleMath">\({\cal O}_{-d}\)</span> is said to be <em>unimodular</em> if the ideal generated by <span class="SimpleMath">\(a,b\)</span> is the whole ring <span class="SimpleMath">\({\cal O}_{-d}\)</span> and <span class="SimpleMath">\(a\ne 0\)</span>. A unimodular pair can be represented by a hemisphere in <span class="SimpleMath">\(\overline{\frak h}^3\)</span> with base centred at the point <span class="SimpleMath">\(b/a \in \mathbb C\)</span> and of radius <span class="SimpleMath">\(|1/a|\)</span>. The radius is <span class="SimpleMath">\(\le 1\)</span>. Think of the points in <span class="SimpleMath">\({\frak h}^3\)</span> as lying strictly above <span class="SimpleMath">\(\mathbb C\)</span>. Let <span class="SimpleMath">\(B\)</span> denote the space obtained by removing all such hemispheres from <span class="SimpleMath">\({\frak h}^3\)</span>.</p>

<p>When <span class="SimpleMath">\(d \equiv 3 {\rm \ mod\ } 4\)</span> let <span class="SimpleMath">\(F\)</span> be the subspace of <span class="SimpleMath">\(\overline{\frak h}^3\)</span> consisting of the points <span class="SimpleMath">\(x+iy+jt\)</span> with <span class="SimpleMath">\(-1/2 \le x \le 1/2\)</span>, <span class="SimpleMath">\(-1/4 \le y \le 1/4\)</span>, <span class="SimpleMath">\(t \ge 0\)</span>. Otherwise, let <span class="SimpleMath">\(F\)</span> be the subspace of <span class="SimpleMath">\(\overline{\frak h}^3\)</span> consisting of the points <span class="SimpleMath">\(x+iy+jt\)</span> with <span class="SimpleMath">\(-1/2 \le x \le 1/2\)</span>, <span class="SimpleMath">\(-1/2 \le y \le 1/2\)</span>, <span class="SimpleMath">\(t \ge 0\)</span>.</p>

<p>It is explained in <a href="chapBib_mj.html#biBswanB">[Swa71b]</a> that <span class="SimpleMath">\(F\cap B\)</span> is a <span class="SimpleMath">\(3\)</span>-cell in the above mentioned regular CW-complex structure on <span class="SimpleMath">\(X\)</span>.</p>

<p><a id="X7B9DE54F7ECB7E44" name="X7B9DE54F7ECB7E44"></a></p>

<h4>14.3 <span class="Heading">Computing a fundamental domain</span></h4>

<p>Explicit fundamental domains for certain values of <span class="SimpleMath">\(d\)</span> were calculated by Bianchi in the 1890s and further calculations were made by Swan in 1971 <a href="chapBib_mj.html#biBswanB">[Swa71b]</a>. In the 1970s, building on Swan's work, Robert Riley developed a computer program for computing fundamental domains of certain Kleinian groups (including Bianchi groups). In their 2010 PhD theses Alexander Rahm and M.T. Aranes independently developed Pari/GP and Sage software based on Swan's ideas. In 2011 <span class="URL"><a href="https://mathstats.uncg.edu/sites/yasaki/publications/bianchipolytope.pdf">Dan Yasaki</a></span> used a different approach based on Voronoi's theory of perfect forms in his Magma software for fundamental domains of Bianchi groups. Aurel Page developed software for fundamental domains of Kleinian groups in his 2010 masters thesis. In 2018 Sebastian Schoennenbeck used a more general approach based on perfect forms in his Magma software for computing fundamental domains of Bianchi and other groups. Output from the code of Alexander Rahm and Sebastian Schoennenbeck for certain Bianchi groups has been stored iin HAP for use in constructing free resolutions.



<p>More recently a <strong class="button">GAP</strong> implementation of Swan's algorithm has been included in HAP. The implementation uses exact computations in \(\mathbb Q(\sqrt{-d})\) and in \(\mathbb Q(\sqrt{d})\). A bespoke implementation of these two fields is part of the implementation so as to avoid making apparently slower computations with cyclotomic numbers. The account of Swan's algorithm in the thesis of Alexander Rahm was the main reference during the implementation.</p>

<p><a id="X7A489A5D79DA9E5C" name="X7A489A5D79DA9E5C"></a></p>

<h4>14.4 <span class="Heading">Examples</span></h4>

<p>The fundamental domain <span class="SimpleMath">\(D=\overline{F \cap B}\)</span> (where the overline denotes closure) has boundary <span class="SimpleMath">\(\partial D\)</span> involving the four vertical quadrilateral <span class="SimpleMath">\(2\)</span>-cells contained in the four vertical quadrilateral <span class="SimpleMath">\(2\)</span>-cells of <span class="SimpleMath">\(\partial F\)</span>. We refer to these as the <em>vertical <span class="SimpleMath">\(2\)</span>-cells</em> of <span class="SimpleMath">\(D\)</span>. When visualizing <span class="SimpleMath">\(D\)</span> we ignore the <span class="SimpleMath">\(3\)</span>-cell and the four vertical <span class="SimpleMath">\(2\)</span>-cells entirely and visualize only the remaining <span class="SimpleMath">\(2\)</span>-cells. These <span class="SimpleMath">\(2\)</span>-cells can be viewed as a <span class="SimpleMath">\(2\)</span>-dimensional image by projecting them onto the complex plane, or they can be viewed as an interactive <span class="SimpleMath">\(3\)</span>-dimensional image.</p>

<p>A fundamental domain for <span class="SimpleMath">\(G_{-39}\)</span> can be visualized using the following commands.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">D:=BianchiPolyhedron(-39);</span>
3-dimensional Bianchi polyhedron over OQ( Sqrt(-39) ) 
involving hemispheres of minimum squared radius 1/39 
and non-cuspidal vertices of minimum squared height 1/49 . 

<span class="GAPprompt">gap></span> <span class="GAPinput">Display3D(D);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display2D(D);;</span>

</pre></div>

<p><img src="images/bianchi3D39.png" align="center" height="550" alt="Fundamental domain for a Bianchi group"/> <img src="images/bianchi2D39.png" align="center" width="350" alt="Fundamental domain for a Bianchi group"/></p>

<p>A <em>cusp vertex</em> of <span class="SimpleMath">\(D\)</span> is any vertex of <span class="SimpleMath">\(D\)</span> lying in <span class="SimpleMath">\(\mathbb C \cup \infty\)</span>. In the above visualizations for <span class="SimpleMath">\(G_{-39}\)</span> several cusp vertices in <span class="SimpleMath">\(\mathbb C\)</span> are : in the 2-dimensional visualization they are represented by red dots. Computer calculations show that these cusps lie in precisely three orbits under the action of <span class="SimpleMath">\(G_{-d}\)</span>. Thus, together with the orbit of <span class="SimpleMath">\(\infty\)</span> there are four distinct orbits of cusps. By the well-known correspondence between cusp orbits and elements of the class group it follows that the class group of <span class="SimpleMath">\(\mathbb Q(\sqrt{-39})\)</span> is of order <span class="SimpleMath">\(4\)</span>.</p>

<p>The following additional commands comvert the Bianchi polyhedron <span class="SimpleMath">\(D\)</span> to a regular CW-complex and then display its <span class="SimpleMath">\(1\)</span>-skeleton.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">D:=BianchiPolyhedron(-39);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Y:=RegularCWComplex(D);</span>
Regular CW-complex of dimension 2

<span class="GAPprompt">gap></span> <span class="GAPinput">Display(GraphOfRegularCWComplex(Y));</span>

</pre></div>

<p><img src="images/bianchi1skeleton.gif" align="center" height="350" alt="Fundamental domain for a Bianchi group"/></p>

<p>A fundamental domain for <span class="SimpleMath">\(G_{-22}\)</span> can be visualized using the following commands.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">D:=BianchiPolyhedron(-22);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display3D(OQ,D);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display2D(OQ,D);;</span>

</pre></div>

<p><img src="images/bianchi3D22.png" align="center" height="550" alt="Fundamental domain for a Bianchi group"/> <img src="images/bianchi2D22.png" align="center" width="350" alt="Fundamental domain for a Bianchi group"/></p>

<p>Two cusps are visible in the visualizations for <span class="SimpleMath">\(G_{-22}\)</span>. They lie in a single orbit. Thus, together with the orbit of <span class="SimpleMath">\(\infty\)</span>, there are two orbits of cusps for this group.</p>

<p>A fundamental domain for <span class="SimpleMath">\(G_{-163}\)</span> can be visualized using the following commands.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">D:=BianchiPolyhedron(-163);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display3D(OQ,D);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display2D(OQ,D);;</span>

</pre></div>

<p><img src="images/bianchi3D163.png" align="center" height="550" alt="Fundamental domain for a Bianchi group"/> <img src="images/bianchi2D163.png" align="center" width="350" alt="Fundamental domain for a Bianchi group"/></p>

<p>There is just a single orbit of cusps in this example, the orbit containing <span class="SimpleMath">\(\infty\)</span>, since <span class="SimpleMath">\(\mathbb Q(\sqrt{-163})\)</span> is a principal ideal domain and hence has trivial class group.</p>

<p>A fundamental domain for <span class="SimpleMath">\(G_{-33}\)</span> is visualized using the following commands.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">D:=BianchiPolyhedron(-33);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display3D(OQ,D);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display2D(OQ,D);;</span>

</pre></div>

<p><img src="images/bianchi3D33.png" align="center" height="550" alt="Fundamental domain for a Bianchi group"/> <img src="images/bianchi2D33.png" align="center" width="350" alt="Fundamental domain for a Bianchi group"/></p>

<p><a id="X86CD59CB7A04EE5A" name="X86CD59CB7A04EE5A"></a></p>

<h4>14.5 <span class="Heading">Establishing correctness of a fundamental domain</span></h4>

<p>The cusps of a fundamental domain can be calculated independently of the domain computation. The remaining vertices of the domain will have positive heights. To prove that the computation is correct we need to establish that no non-cuspidal vertex lies below any hemishpere centered on the complex plane at <span class="SimpleMath">\(b/a\in \mathbb C\)</span> with <span class="SimpleMath">\((a,b)\)</span> a unimodular pair. As these hemispheres have increasingly smaller radius we only need to check those finitely many hemispheres with radius smaller than the height of the lowest non-cuspidal vertex.</p>

<p>For a few values of <span class="SimpleMath">\(d\)</span> the smallest radius <span class="SimpleMath">\(r\)</span> of a hemisphere contributing to the fundamental domain boundary has been stored. For cases where this smallest radius is not stored a very slow method for finding <span class="SimpleMath">\(r\)</span> is implemented and the user is advised to speed things up by guessiing a value <span class="SimpleMath">\(N=1/r^2\)</span> and then test that this value of <span class="SimpleMath">\(N\)</span> is indeed large enough. The following commands illustrate this for <span class="SimpleMath">\(d=-46\)</span> with a guess of <span class="SimpleMath">\(N=600\)</span>. Once the test is done we can see that in fact a smaller guess of <span class="SimpleMath">\(N=441\)</span> would have sufficed.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">P:=BianchiPolyhedron(-46);</span>
Try 
  P:=BianchiPolyhedron(OQ,N);
for some guessed positive integer value of N and then try
  SwanBianchiCriterion(P);
to test if the value of N was large enough. If the test returns false then you\
'll need to try a larger value of N.

A successful value of N can be stored as a pair [d,N] in the list HAPRECORD wh\
ich can be edited manually in the file hap/lib/Congruence/bianchi.gi .


<span class="GAPprompt">gap></span> <span class="GAPinput">P:=BianchiPolyhedron(-46,600);</span>
3-dimensional Bianchi polyhedron over OQ( Sqrt(
-46) ) involving hemispheres of minimum squared radius 1/
441 and non-cuspidal vertices of minimum squared height 1/8280 . 

<span class="GAPprompt">gap></span> <span class="GAPinput">SwanBianchiCriterion(P);</span>
true

</pre></div>

<p><a id="X78476F127B73BBD1" name="X78476F127B73BBD1"></a></p>

<h4>14.6 <span class="Heading">Computing a free resolution for <span class="SimpleMath">\(SL_2({\mathcal O}_{-d})\)</span></span></h4>

<p>The above fundamental domains can be used to construct free resolutions for <span class="SimpleMath">\(SL_2({\mathcal O}_{-d})\)</span> and <span class="SimpleMath">\(PSL_2({\mathcal O}_{-d})\)</span>. The following commands illustrate the computation of free resolutions for <span class="SimpleMath">\(SL_2({\mathcal O}_{-43})\)</span> and <span class="SimpleMath">\(SL_2({\mathcal O}_{-10})\)</span> and <span class="SimpleMath">\(SL_2({\mathcal O}_{-14})\)</span> and their integral homology (which in each case is periodic of period dividing <span class="SimpleMath">\(4\)</span> in degrees <span class="SimpleMath">\(\ge 3\)</span>). The computation of fundamental domains uses exact arithmetic in the two field extensions <span class="SimpleMath">\(\mathbb Q(\sqrt{d})\)</span> and <span class="SimpleMath">\( \mathbb Q(\sqrt{-d})\)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">K:=BianchiGcomplex(-43);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=FreeGResolution(K,11);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">C:=TensorWithIntegers(R);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">List([0..10],n->Homology(C,n));</span>
[ [ 0 ], [ 0, 0 ], [ 2, 2, 12, 0 ], [ 2, 2, 24 ], [ 2, 2 ], [ 2 ], 
  [ 2, 2, 12 ], [ 2, 2, 24 ], [ 2, 2 ], [ 2 ], [ 2, 2, 12 ] ]

<span class="GAPprompt">gap></span> <span class="GAPinput">K:=BianchiGcomplex(-10);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=FreeGResolution(K,11);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">List([0..10],k->Homology(TensorWithIntegers(R),k));</span>
[ [ 0 ], [ 2, 2, 0, 0, 0 ], [ 2, 2, 2, 12, 0, 0 ], [ 2, 2, 2, 24 ], 
  [ 2, 4, 12 ], [ 2, 2, 2, 6 ], [ 2, 2, 2, 12 ], [ 2, 2, 2, 24 ], 
  [ 2, 4, 12 ], [ 2, 2, 2, 6 ], [ 2, 2, 2, 12 ] ]

<span class="GAPprompt">gap></span> <span class="GAPinput">K:=BianchiGcomplex(-14);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=FreeGResolution(K,11);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">List([0..10],k->Homology(TensorWithIntegers(R),k));</span>
[ [ 0 ], [ 6, 0, 0, 0, 0, 0 ], [ 2, 2, 2, 4, 12, 0, 0, 0, 0 ], 
  [ 2, 2, 2, 2, 24 ], [ 2, 2, 2, 4, 12 ], [ 2, 2, 2, 2, 24 ], 
  [ 2, 2, 2, 4, 12 ], [ 2, 2, 2, 2, 24 ], [ 2, 2, 2, 4, 12 ], 
  [ 2, 2, 2, 2, 24 ], [ 2, 2, 2, 4, 12 ] ]

</pre></div>

<p>The following commands count the number of orbits of cusps (in addition to the orbit of <span class="SimpleMath">\(\infty\)</span>). They determine that there is precisely one element in the ideal class group of <span class="SimpleMath">\({\mathcal O}_{-43}\)</span> (i.e it is a principal ideal domain) and that there are precisely two elements in the ideal class group of <span class="SimpleMath">\({\mathcal O}_{-10}\)</span> and precisely four elements in the ideal class group of <span class="SimpleMath">\({\mathcal O}_{-14}\)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">K:=BianchiGcomplex(-43);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">List([1..K!.dimension(0)],k->Order(K!.stabilizer(0,k)));</span>
[ 24, 24, 6, 6, 4, 4, 12, 12 ]

<span class="GAPprompt">gap></span> <span class="GAPinput">K:=BianchiGcomplex(-10);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">List([1..K!.dimension(0)],k->Order(K!.stabilizer(0,k)));</span>
[ 6, 6, 4, 4, 6, infinity ]

<span class="GAPprompt">gap></span> <span class="GAPinput">K:=BianchiGcomplex(-14);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">List([1..K!.dimension(0)],k->Order(K!.stabilizer(0,k)));</span>
[ 6, 6, 2, 2, 2, infinity, infinity, 2, infinity, 6, 4 ]

</pre></div>

<p><a id="X784B2156823AEB15" name="X784B2156823AEB15"></a></p>

<h4>14.7 <span class="Heading">Some sanity checks</span></h4>

<p>There is ample scope for bugs in the implementation of the above method for computing resolutions of Bianchi groups. The following sanity checks lend confidence to the implementation.</p>

<p><a id="X7E5A36D47F9D4A47" name="X7E5A36D47F9D4A47"></a></p>

<h5>14.7-1 <span class="Heading">Equivariant Euler characteristic</span></h5>

<p>Let <span class="SimpleMath">\(X\)</span> be any cell complex with an action of a group <span class="SimpleMath">\(G\)</span> such that (i) <span class="SimpleMath">\(X\)</span> has finitely many <span class="SimpleMath">\(G\)</span>-orbits of cells, and (ii) the stabilizer subgroup in <span class="SimpleMath">\(G\)</span> for each cell is either finite or free abelian. One defines the <em>equivariant Euler characteristic</em> $$\chi_G(X) = \sum_e (-1)^{dim~ e} / |Stab_G(e)|$$ where <span class="SimpleMath">\(e\)</span> ranges over a set of representatives of the orbits of those cells with finite stabilizers. If <span class="SimpleMath">\(G\)</span> has a finite index torsion free subgroup and if the complex <span class="SimpleMath">\(X\)</span> is contractible then one can define the Euler characteristic of the group to be <span class="SimpleMath">\(\chi(G) = \chi_G(X)\)</span>. It is known that <span class="SimpleMath">\(\chi (SL_n({\mathcal O})) = \chi(GL_n({\mathcal O})) =0\)</span> for <span class="SimpleMath">\(\mathcal O\)</span> the ring of integers of a number field <a href="chapBib_mj.html#biBGangl">[DSGG+16]</a>.</p>

<p>One easy test to make in our computations is to check that the equivariant Euler characteristic of the <span class="SimpleMath">\(2\)</span>-complex is indeed zero. The following commands perform this test for the group <span class="SimpleMath">\(SL_2({\mathcal O}_{-23})\)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">K:=BianchiGcomplex(-23);;</span>

<span class="GAPprompt">gap></span> <span class="GAPinput">chi:=0;;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">for n in [0..2] do</span>
<span class="GAPprompt">></span> <span class="GAPinput">for k in [1..K!.dimension(n)] do</span>
<span class="GAPprompt">></span> <span class="GAPinput">g:=Order(K!.stabilizer(n,k));</span>
<span class="GAPprompt">></span> <span class="GAPinput">if g < infinity then chi:=chi + (-1)^n/g; fi;</span>
<span class="GAPprompt">></span> <span class="GAPinput">od;od;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">chi;</span>
0

</pre></div>

<p><a id="X852CDAFF84C5DF01" name="X852CDAFF84C5DF01"></a></p>

<h5>14.7-2 <span class="Heading">Boundary squares to zero</span></h5>

<p>The signs in the boundary maps of the free resolution are delicate. Another easy test is to check that the boundary in the resolution squares to zero. The following commands perform this check for the group <span class="SimpleMath">\(SL_2({\mathcal O}_{-23})\)</span>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">K:=BianchiGcomplex(-23);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=FreeGResolution(K,10);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">n:=2;;List([1..R!.dimension(n)],k->ResolutionBoundaryOfWord(R,n-1,R!.boundary(n,k)));</span>
[ [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], 
  [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], 
  [  ], [  ], [  ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">n:=3;;List([1..R!.dimension(n)],k->ResolutionBoundaryOfWord(R,n-1,R!.boundary(n,k)));</span>
[ [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], 
  [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], 
  [  ], [  ], [  ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">n:=4;;List([1..R!.dimension(n)],k->ResolutionBoundaryOfWord(R,n-1,R!.boundary(n,k)));</span>
[ [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], 
  [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], 
  [  ], [  ], [  ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">n:=5;;List([1..R!.dimension(n)],k->ResolutionBoundaryOfWord(R,n-1,R!.boundary(n,k)));</span>
[ [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], 
  [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], 
  [  ], [  ], [  ] ]

</pre></div>

<p><a id="X7E64819A7C058EDD" name="X7E64819A7C058EDD"></a></p>

<h5>14.7-3 <span class="Heading">Compare different algorithms or implementations</span></h5>

<p>Sebastian Schoennenbeck in his thesis work computed some contractible <span class="SimpleMath">\(2\)</span>-complexes on which Bianchi groups act with finite stabilizers (even when the ideal class is greater than <span class="SimpleMath">\(1\)</span>) using a different approach to that of Swan. These computed complexes are stored in <strong class="button">HAP</strong> and provide an alternative way of computing cohomology for the stored groups. Alexander Rahm in his thesis work implemented Swan's approach and has provided some \(2\)-complexes that are also stored in HAP in cases where the ideal class is equal to \(1\).



<p>The following commands test that Sebastian Schoennenbeck's \(2\)-complex for \(SL_2({\mathcal O}_{-23})\) yields the same integral homology as the above HAP implementation. Both computations use HAP's implementation of Wall's perturbation technique for computing the resolution from the \(2\)-complex.




<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">K:=ContractibleGcomplex("SL(2,O-23)");;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=FreeGResolution(K,10);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">List([0..9],n->Homology(TensorWithIntegers(R),n));</span>
[ [ 0 ], [ 12, 0, 0, 0 ], [ 2, 2, 12, 0, 0 ], [ 2, 2, 12 ], [ 2, 2, 12 ], 
  [ 2, 2, 12 ], [ 2, 2, 12 ], [ 2, 2, 12 ], [ 2, 2, 12 ], [ 2, 2, 12 ] ]

<span class="GAPprompt">gap></span> <span class="GAPinput">K:=BianchiGcomplex(-23);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=FreeGResolution(K,10);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">List([0..9],n->Homology(TensorWithIntegers(R),n));</span>
[ [ 0 ], [ 12, 0, 0, 0 ], [ 2, 2, 12, 0, 0 ], [ 2, 2, 12 ], [ 2, 2, 12 ], 
  [ 2, 2, 12 ], [ 2, 2, 12 ], [ 2, 2, 12 ], [ 2, 2, 12 ], [ 2, 2, 12 ] ]

</pre></div>

<p><a id="X8223864085412705" name="X8223864085412705"></a></p>

<h5>14.7-4 <span class="Heading">Compare geometry to algebra</span></h5>

<p>The number of cusps (i.e. the number of orbits of vertices with infinite stabilizer subgroup) must be precisely one less than the number of elements in the ideal class group of <span class="SimpleMath">\({\mathcal O}_{-d}\)</span>. The following commands check this for <span class="SimpleMath">\(SL_2({\mathcal O}_{-23})\)</span> where <span class="SimpleMath">\({\mathcal O}_{-23}\)</span> is known to have class number 3. (This class number is easily computed from a formula in Swan's paper.)




<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">K:=BianchiGcomplex(-23);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">List([1..K!.dimension(0)],k->Order(K!.stabilizer(0,k)));</span>
[ 6, 2, 2, 4, infinity, infinity ]

</pre></div>

<p>A visualization of the fundamental domain tells us a certain amount about the algebra. In the case of <span class="SimpleMath">\(SL_2({\mathcal O}_{-23})\)</span></p>

<p><img src="images/sl2O-23.png" align="center" height="300" alt="Fundamental domain for a Bianchi group"/></p>

<p>a fundamental domain for the action on <span class="SimpleMath">\(\mathbb C\)</span> by the translation subgroup generated by the matrices $$ \left(\begin{array}{ll} 1 &1\\ 0 &1\end{array}\right), \left(\begin{array}{ll} 1 &\omega\\ 0 &1\end{array}\right) $$ <span class="SimpleMath">\(\omega = (1+\sqrt{-23})/2\)</span> is indicated by the white rectangle. From this we see that under the action of <span class="SimpleMath">\(SL_2({\mathcal O}_{-23})\)</span> there are at most <span class="SimpleMath">\(11\)</span> orbits of <span class="SimpleMath">\(2\)</span>-cells, the central decagon and ten quadrilaterals. However, the matrix $$ \left(\begin{array}{rr} 0 &-1\\ 1 &0\end{array}\right) $$ maps <span class="SimpleMath">\((z,0)\)</span> to <span class="SimpleMath">\((-1/z,0)\)</span> and fixes <span class="SimpleMath">\((0,1)\)</span>. This isometry identifies points on the boundary of the decagon pairwise. These observations are consistent with the above listing of the six orbit stabilizers and the following algebraic information on the boundaries of the <span class="SimpleMath">\(2\)</span>-cells in the Bianchi <span class="SimpleMath">\(2\)</span>-complex.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">K:=BianchiGcomplex(-23);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">List([1..K!.dimension(2)],k->Length(K!.boundary(2,k)));</span>
[ 10, 4, 4, 4, 4, 4 ]

</pre></div>

<p><a id="X78BC9D077956089A" name="X78BC9D077956089A"></a></p>

<h4>14.8 <span class="Heading">Group presentations</span></h4>

<p>Swan's reason for studying fundamental domains was to obtain explicit group presentations for \(SL_2({\mathcal O}_{-d})\) for various values of \(d\). The following commands obtain a presentation for \(SL_2({\mathcal O}_{-23})\).




<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">K:=BianchiGcomplex(-23);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=FreeGResolution(K,2);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">P:=PresentationOfResolution(R);</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=SimplifiedFpGroup(P!.freeGroup/P!.relators);</span>
<fp group on the generators [ k, r, s, w, x ]>
<span class="GAPprompt">gap></span> <span class="GAPinput">RelatorsOfFpGroup(G);</span>
[ w^-1*k*w*k^-1, s^-1*r*s*r^-1, k^6, x^-1*k^-3*x*k^-3, s^-1*k^-3*s*k^-3, 
  r^-1*w*x^-1*s*r*w^-1*x*s^-1, r^-1*k^-3*r*k^-3, 
  x*k^-2*r^-1*x*r^-1*s^-1*k^-1*s^-1, x^-1*k^3*s*r*x^-1*s*r ]

<span class="GAPprompt">gap></span> <span class="GAPinput">#Next we identify the generators as matrices</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">GeneratorsOfGroup(P!.freeGroup);</span>
[ k, m, n, p, q, r, s, t, u, v, w, x, y, z ]
<span class="GAPprompt">gap></span> <span class="GAPinput">P!.gens;</span>
[ 19, 6, 6, 20, 6, 21, 22, 6, 52, 53, 2, 50, 1, 4 ]

<span class="GAPprompt">gap></span> <span class="GAPinput">k:=R!.elts[19];</span>
[ [ 1, 1 ], 
  [ -1, 0 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">r:=R!.elts[21];</span>
[ [ 3, 3 + -1 Sqrt(-23) ], 
  [ -3/2 + -1/2 Sqrt(-23), -5 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">s:=R!.elts[22];</span>
[ [ 2 + 1 Sqrt(-23), 13/2 + 1/2 Sqrt(-23) ], 
  [ 5/2 + -1/2 Sqrt(-23), -1 Sqrt(-23) ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">w:=R!.elts[2];</span>
[ [ 3/2 + 1/2 Sqrt(-23), -3/2 + 1/2 Sqrt(-23) ], 
  [ 3/2 + -1/2 Sqrt(-23), 3 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">x:=R!.elts[50];</span>
[ [ 11/2 + 1/2 Sqrt(-23), 15/2 + -1/2 Sqrt(-23) ], 
  [ -1 Sqrt(-23), -4 + -1 Sqrt(-23) ] ]

</pre></div>

<p><a id="X786CFAA17C0A6E7A" name="X786CFAA17C0A6E7A"></a></p>

<h4>14.9 <span class="Heading">Finite index subgroups</span></h4>

<p>The following commands compute the integral homology of a congruence subgroup <span class="SimpleMath">\(G\)</span> of index 24 in <span class="SimpleMath">\(SL_2({\mathcal O}_{-23})\)</span>. They also compute a presentation for <span class="SimpleMath">\(G\)</span> with 13 generators and 24 relators.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">OQ:=RingOfIntegers(QuadraticNumberField(-23));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">I:=QuadraticIdeal(OQ,[Sqrt(-23)]);</span>
ideal of norm 23 in O(Q(Sqrt(-23)))
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=HAP_CongruenceSubgroupGamma0(I);</span>
<group of 2x2 matrices in characteristic 0>
<span class="GAPprompt">gap></span> <span class="GAPinput">IndexInSL2O(G);</span>
24

<span class="GAPprompt">gap></span> <span class="GAPinput">K:=BianchiGcomplex(-23);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=FreeGResolution(K,11);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">R:=QuadraticToCyclotomicCoefficients(R);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">S:=ResolutionFiniteSubgroup(R,G);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">List([0..10],n->Homology(TensorWithIntegers(S),n));</span>
[ [ 0 ], [ 2, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0 ], [ 2, 2, 2, 2, 2, 2, 2, 2 ],
  [ 2, 2, 2, 2, 2, 2, 2, 2 ], [ 2, 2, 2, 2, 2, 2, 2, 2 ], 
  [ 2, 2, 2, 2, 2, 2, 2, 2 ], [ 2, 2, 2, 2, 2, 2, 2, 2 ], 
  [ 2, 2, 2, 2, 2, 2, 2, 2 ], [ 2, 2, 2, 2, 2, 2, 2, 2 ], 
  [ 2, 2, 2, 2, 2, 2, 2, 2 ] ]

<span class="GAPprompt">gap></span> <span class="GAPinput">P:=PresentationOfResolution(S);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">H:=SimplifiedFpGroup(P!.freeGroup/P!.relators);</span>
<fp group on the generators [ f8, f10, f15, f70, f86, f125, f132, f138, f182, 
  f187, f191, f273, f279 ]>
<span class="GAPprompt">gap></span> <span class="GAPinput">Length(RelatorsOfFpGroup(H));</span>
24

</pre></div>


<div class="chlinkprevnextbot"> <a href="chap0_mj.html">[Top of Book]</a>   <a href="chap0_mj.html#contents">[Contents]</a>    <a href="chap13_mj.html">[Previous Chapter]</a>    <a href="chap15_mj.html">[Next Chapter]</a>   </div>


<div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a href="chap0_mj.html">Top</a>  <a href="chap1_mj.html">1</a>  <a href="chap2_mj.html">2</a>  <a href="chap3_mj.html">3</a>  <a href="chap4_mj.html">4</a>  <a href="chap5_mj.html">5</a>  <a href="chap6_mj.html">6</a>  <a href="chap7_mj.html">7</a>  <a href="chap8_mj.html">8</a>  <a href="chap9_mj.html">9</a>  <a href="chap10_mj.html">10</a>  <a href="chap11_mj.html">11</a>  <a href="chap12_mj.html">12</a>  <a href="chap13_mj.html">13</a>  <a href="chap14_mj.html">14</a>  <a href="chap15_mj.html">15</a>  <a href="chap16_mj.html">16</a>  <a href="chapBib_mj.html">Bib</a>  <a href="chapInd_mj.html">Ind</a>  </div>

<hr />
<p class="foot">generated by <a href="https://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc">GAPDoc2HTML</a></p>
</body>
</html>

98%


¤ Dauer der Verarbeitung: 0.20 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge