We now look at a certain class of arithmetic Fuchsian groups of particular interest. We assume that Γ(1) is a triangle group, i.e. Γ has signature (0;p, q, r) for p, q, r ∈Z_≥2. Hence there exists a presentation Γ(1) isomorphic to < γp, γq, γr | γpp=γqq=γrr=γp γq γr=1 >. Since g=0, there exists a map j from X(1)C to the projective line over C which is ramified only above the three elliptic points, the fixed points of γp, γq, γr, which we may take to be 0, 1, ∞.
There are only finitely many such triples (p, q, r), and we have implemented a constructor for these triples which yields the group Γ as well as the arithmetic data including the maximal order O and the quaternion algebra A. We also compute the analytic map j for each of these groups, which includes methods for evaluating the ()2 F1-hypergeometric series to extremely high precision at complex arguments.
We begin with the basic constructors.
Returns the arithmetic triangle group of signature (p, q, r).
Returns the list of arithmetic triangle groups currently implemented.
Returns true if and only if G was created as an arithmetic triangle group.
Returns points in the G-orbit of z which are nearest to the vertices of the fundamental domain for G a triangle group.
For triangle groups, we can compute CM points analytically. By work of Shimura, the curve X(1) has an interpretation as a moduli space for certain abelian varieties and has a canonical model defined over Q. Let K be a totally imaginary quadratic extension of F, and let OD ⊂K be a quadratic order. Suppose that K splits A, i.e. A tensor F K isomorphic to M2(K). Then there exists an embedding ιK:K -> A such that ιK(K) ∩O= OD, given by an element μ ∈O such that ZF[μ] is isomorphic to OD. The unique fixed point of ι_∞(μ) in Hh yields a CM point on X(1) that is defined over an abelian extension H of F, and there is a reciprocity law which describes the action of Gal(H/K).
We exhibit algorithms for computing with these objects. Explicitly, given the data of a quadratic order OD contained in a imaginary quadratic extension K of F, we compute the set of Gal(H/K)-conjugates of a CM-point for OD on X(1). Our algorithm first computes representatives for the ring class group in terms of the Artin map. It then applies the Shimura reciprocity law for each of these representatives, which uses our architecture for principalization of ideals of quaternionic orders, to compute the conjugates. Given these points to high enough precision, we can recognize the CM point as a putative algebraic number.
Returns the value of the 2F1-hypergeometric function with parameters (A, B; C) at the complex number z.
Although programmed for use by the hypergeometric reversion procedure, involved in the calculation of CM points, the HypergeometricSeries2F1 function can also be called independently to evaluate the series at any complex number at any precision.
> HypergeometricSeries2F1(1/2, 1/2, 1, 1); 0.318309886183790671537767526745 > CC<I> := ComplexField(100); > HypergeometricSeries2F1(1/2, 1/3, 1/4, 1+I); 0.18914889986718938009890989889270323251621296927695426144398500333164293730405 56591516921868997204819 + 1.351650001102608291803842169004281639952000005458282 770553462137814965580416670112464388872621926752*I
Returns the set of conjugates of the quaternion order element μ under the Shimura reciprocity law.
Bound: RngIntElt Default: 200
Precision: RngIntElt Default: 100
Returns the value of the map j:X(G) to P1 at z, for G an arithmetic triangle group.
> G := ArithmeticTriangleGroup(2,3,9); > O := BaseRing(G); > Z_F := BaseRing(O);
Next, we compute the CM point corresponding to the imaginary quadratic extension K/F of discriminant -7. First, we define the extension.
> Z_K := ext<Z_F | Polynomial([2,-1,1])>; > Discriminant(Z_K); Principal Ideal of Z_F Generator: [-7, 0, 0] > IsMaximal(Z_K); true > ClassNumber(AbsoluteOrder(Z_K)); 1
Since ZK has class number 1, the corresponding CM point will be a rational number. We now embed ZK into O.
> mu := Embed(Z_K, O); > MinimalPolynomial(mu); $.1^2 - $.1 + 2/1*Z_F.1
Finally, we compute the fixed point z of μ in the upper half-plane, and compute the value of the uniformizing parameter j(z).
> z := FixedPoints(G!mu, UpperHalfPlane())[1]; > j := jParameter(G, z); > j; -9594.7031249999999999999999999999999999999999999999999999999999999999999999999 99808271268634492545541 - 8.607499388211909042811249895070271789213361939086074 091584429508486426059712018492327398804638684615E-77*I > BestApproximation(Re(j), 10^50); -614061/64 > Factorization(Numerator($1)), Factorization(Denominator($1)); [ <3, 5>, <7, 1>, <19, 2> ] [ <2, 6> ]We recognize the value j(z)=(35 71 192 /26) as a smooth rational number.
Returns the minimal polynomial of the Galois conjugates of the CM points corresponding to μ and their complex values for G a triangle group. The element μ must be Galois-stable, i.e. F(μ) must be Galois over F, where F is the defining base field of G. The polynomial returned is the "best guess" rational approximation to the polynomial with the CM points as roots.
> G := ArithmeticTriangleGroup(2,3,9); > O := BaseRing(G); > Z_F := BaseRing(O); > Z_K := ext<Z_F | Polynomial([3,-1,1])>; > Discriminant(Z_K); Principal Ideal of Z_F Generator: [-11, 0, 0] > IsMaximal(Z_K); true > ClassNumber(AbsoluteOrder(Z_K)); 3 > mu := Embed(Z_K, O); > time f, js := CMPoints(G, mu); Time: 18.120 > f; -127332762814175510528*x^3 + 297798194745682427904*x^2 - 545543748833233386651*x + 443957770932571793051
The number field H=K(α), where α is a root of f, is the Hilbert class field of K, which we have computed analytically!
> D := Discriminant(f); > Denominator(D); 1 > Factorization(Numerator(D)); [ <2, 32>, <3, 18>, <11, 1>, <17, 6>, <19, 12>, <73, 2>, <107, 6>, <109, 2>, <197, 2>, <271, 2>, <431, 2>, <701, 2> ] > K := AbsoluteField(NumberField(Z_K)); > H := ext<K | f>; > Factorization(Discriminant(MaximalOrder(H))); [] > IsAbelian(GaloisGroup(H)); true