Shimura Connecting Homomorphism

Shimura’s Connecting Homomorphism

Let \(K\) be an imaginary quadratic number field, let \(\theta\) be a generator of its ring of integers. View the ring \(\hat{K}\) of profinite \(K\)-numbers as a \(\hat{\QQ}\)-vector space with basis \((\theta, 1)\). Then Shimura’s connecting homomorphism is the map \(g_\theta: \hat{K}^* \to GL_2(\hat{\QQ})\) that sends \(x \in \hat{K}^*\) to the transpose of the matrix that represents the \(\hat{\QQ}\)-linear map \(\hat{K} \to \hat{K}\) given by multiplication by \(x\).

This file implements Shimura’s connecting homomorphism in the function shimura_connecting_homomorphism().

Moreover the function factored_shimura_connecting_homomorphism() evaluations Shimura’s connecting homomorphism and factors the resulting \(GL_2(\hat{\QQ})\)-matrix into a product of a matrix \(B \in GL_2(\hat{\ZZ})\) and a matrix \(A \in GL_2^+(\QQ)\), using factor_GLQhat().

REFERENCES:

[Her2021] Mathé Hertogh, Computing with adèles and idèles, master’s thesis, Leiden University, 2021.

For context on the utility of these function, see Chapter 9 of [Her2021]. This file is in particular based on Sections 9.3.2 and 9.3.3 of [Her2021].

AUTHORS:

  • Mathé Hertogh (2021-07): initial version based on [Her2021]

adeles.shimura.factored_shimura_connecting_homomorphism(u, output_prec)

Evaluate Shimura’s connecting homomorphism at the idèle u and factor the result into a matrix in \(GL_2(\hat{\ZZ})\) and a matrix in \(GL_2^+(\QQ)\)

INPUT:

  • u – a \(K\)-idèle for some imaginary quadratic number field \(K\) whose ring of integers is generated by K.gen(); the point to evaluate the homomorphism in

  • output_prec – a positive integer; the desired output precision

OUTPUT:

A pair \((B, A)\) where \(B\) is an integral \(2 \times 2\)-matrix over the ring of profinite \(\QQ\)-numbers with precision (i.e. modulus) divisible by output_prec and \(A \in GL_2^+(\QQ)\) such that for some \(x \in \hat{K}^*\) that u represents \(g(x)A^{-1}\) is represented by \(B\).

ALGORITHM:

We perform Algorithm 9.2 of [Her2021]

EXAMPLES:

We create an imaginary quadratic number field whose generator also generates the ring of integers.

sage: K.<a> = QuadraticField(-10)
sage: K.integral_basis()
[1, a]
sage: J = Ideles(K)
sage: p2, p5 = K.ideal(2, a), K.ideal(5, a)

We evaluate the corresponding Shimura homomorphism at some idèles.

sage: u = J(-1, {p2: (a+1, 3), 3: (3, 0), p5: (-1, 4)}); u
Idèle with values:
  infinity_0:   -1
  (2, a):       (a + 1) * U(3)
  (3):          3 * U(0)
  (5, a):       -1 * U(4)
  other primes: 1 * U(0)
sage: factored_shimura_connecting_homomorphism(u, 10)
(
[133 mod 150 150 mod 300]  [3 0]
[  15 mod 30 133 mod 150], [0 3]
)
sage: factored_shimura_connecting_homomorphism(u, 300)
(
[ 583 mod 1500 2250 mod 3000]  [3 0]
[   75 mod 300  583 mod 1500], [0 3]
)
sage: v = J(3*I, {p2: (a/7, 2), p5: (a/5, 3)}); v
Idèle with values:
  infinity_0:   3*I
  (2, a):       1/7*a * U(2)
  (5, a):       1/5*a * U(3)
  other primes: 1 * U(0)
sage: factored_shimura_connecting_homomorphism(v, 1)
(
[0 mod 250 49 mod 50]  [1/5   0]
[ 1 mod 50  0 mod 25], [  0   2]
)
sage: factored_shimura_connecting_homomorphism(v, 18)
(
[500 mod 4500  549 mod 900]  [1/5   0]
[ 351 mod 900   50 mod 450], [  0   2]
)
adeles.shimura.shimura_connecting_homomorphism(u, output_prec=None)

Evaluate Shimura’s connecting homomorphism at the idele u

INPUT:

  • u – a \(K\)-idèle for some imaginary quadratic number field \(K\) whose ring of integers is generated by K.gen(); the point to evaluate the homomorphism in

  • output_prec – a positive integer; the desired output precision

OUTPUT:

A pair \((v, M)\) where \(v\) is a \(K\)-idèle whose represented subset is contained in that of \(u\) and \(M\) is a pair \(M = (E, \Delta)\) with \(M\) a \(2 \times 2\)-matrix over the ring of profinite \(\QQ\)-numbers with integral precision (i.e. modulus) divisible by output_prec and \(\Delta\) a positive rational number such that every \(x \in \hat{K}^*\) that \(v\) represents satisfies \(g(x)\hat{\ZZ} = \Delta\hat{\ZZ}\) and \(E\) represents \(g(x)\). Here \(g: \hat{K}^* \to GL_2(\hat{\QQ})\) denotes Shimura’s connecting homomorphism with respect to the basis (K.gen(), 1).

If output_prec is not specified, then \(v\) equals \(u\) and no guarantees are made about the precision of \(E\). In this case we only return \(M\) (not \(v\)).

ALGORITHM:

We perform Algorithm 9.1 of [Her2021].

EXAMPLES:

First we create an appropriate number field and check that its generator generates the ring of integers.

sage: K.<a> = NumberField(x^2 - x + 2)
sage: K.integral_basis()
[1, a]
sage: J = Ideles(K)

Let’s try to evaluate Shimura’s connecting homomorphism without specifying an output precision.

sage: u = J(1, {a: (a, 3), 3: (-1, 1), 5: (1/5, 0)}); u
Idèle with values:
  infinity_0:   1
  (2, a):       a * U(3)
  (3):          -1 * U(1)
  (5):          1/5 * U(0)
  other primes: 1 * U(0)
sage: shimura_connecting_homomorphism(u)
(
[ 1/5 mod 6/5 6/5 mod 12/5]
[ 3/5 mod 6/5  4/5 mod 6/5], 2/25
)

And now let’s get an output precision of at least \(12\):

sage: v, M = shimura_connecting_homomorphism(u, 12)
sage: v
Idèle with values:
  infinity_0:   1
  (2, a):       a * U(5)
  (2, a + 1):   a * U(2)
  (3):          -1 * U(1)
  (5):          1/5 * U(1)
  other primes: 1 * U(0)
sage: M
(
[ 1/5 mod 12    6 mod 24]
[   9 mod 12 16/5 mod 12], 2/25
)

Or output precision \(1000\):

sage: v, M = shimura_connecting_homomorphism(u, 1000)
sage: v
Idèle with values:
  infinity_0:   1
  (2, a):       a * U(6)
  (2, a + 1):   a * U(3)
  (3):          -1 * U(1)
  (5):          1/5 * U(4)
  other primes: 1 * U(0)
sage: M
(
[7501/5 mod 3000    750 mod 6000]
[  2625 mod 3000 9376/5 mod 3000], 2/25
)