cyclic algebras

25 views
Skip to first unread message

Pierre

unread,
Jul 10, 2017, 9:23:15 AM7/10/17
to sage-support
Hi all !

I wanted to know whether Sagemath had any support for cyclic algebras. From the manual, I strongly suspect the answer is "no", but you never know.

Let me be more concrete. For a prime p, let K be QQ with the p-th roots of unity adjoined. For a, b in K, there is a cyclic algebra (a,b) over K (technically, this depends on a choice of primitive root in K); for p=2, this is the quaternion algebra (a, b) over QQ.

I would like to be able to answer questions such as: is (a,b) trivial? For p=2, Sage does this, essentially with hilbert_conductor(a,b).

Also, (a,b) is trivial if and only if b is a norm from K[a^(1/p)]. Finding explicitly an element from this field whose norm is b would be awesome. When p=2 and so K=QQ, it's a matter of finding x, y in QQ such that x^2 - ay^2 = b, and trying random values for x and y (essentially...) works fine. Over more complicated fields, PARI has functions accessible through sage to find points on conics.

If any of the above can be facilitated by Sage for p odd, it would be great.

Thanks!
Pierre

John Cremona

unread,
Jul 10, 2017, 9:38:27 AM7/10/17
to SAGE support
Sage does have a function is_norm() for number field elements so the
underlying algebraic problem should be solvable.

Example (p=3):

sage: Q3.<z> = CyclotomicField(3)
sage: a=2+3*z
sage: b=3+4*z
sage: x=polygen(Q3)
sage: L.<a3>=Q3.extension(x^3-a)
sage: b.is_norm(L)
False
> --
> You received this message because you are subscribed to the Google Groups
> "sage-support" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-support...@googlegroups.com.
> To post to this group, send email to sage-s...@googlegroups.com.
> Visit this group at https://groups.google.com/group/sage-support.
> For more options, visit https://groups.google.com/d/optout.

Nils Bruin

unread,
Jul 10, 2017, 9:56:40 AM7/10/17
to sage-support
On Monday, July 10, 2017 at 3:38:27 PM UTC+2, John Cremona wrote:
Sage does have a function is_norm() for number field elements so the
underlying algebraic problem should be solvable.

It looks like the implementation of this routine requires a galois extension:

sage: K.<a>=NumberField(x^3-2)
sage: 7.is_norm(K)
NotImplementedError: is_norm is not implemented unconditionally for norms from non-Galois number fields

gp/pari does seem to be able to compute these things via s-unit equations, though:

sage: len([i for i in range(100) if gp.bnfisnorm(K,i)[1].norm() == i])
68

John Cremona

unread,
Jul 10, 2017, 10:54:55 AM7/10/17
to SAGE support
On 10 July 2017 at 14:56, Nils Bruin <nbr...@sfu.ca> wrote:
> On Monday, July 10, 2017 at 3:38:27 PM UTC+2, John Cremona wrote:
>>
>> Sage does have a function is_norm() for number field elements so the
>> underlying algebraic problem should be solvable.
>
>
> It looks like the implementation of this routine requires a galois
> extension:

True but in the given context the base field has the p'th roots of
unity and the extensions are just Kummer extensions, Galois with
cyclic group of order p.

>
> sage: K.<a>=NumberField(x^3-2)
> sage: 7.is_norm(K)
> NotImplementedError: is_norm is not implemented unconditionally for norms
> from non-Galois number fields
>
> gp/pari does seem to be able to compute these things via s-unit equations,
> though:
>
> sage: len([i for i in range(100) if gp.bnfisnorm(K,i)[1].norm() == i])
> 68
>

Pierre

unread,
Jul 10, 2017, 10:55:57 AM7/10/17
to sage-support
Awesome! I'll explore that. Thanks!


On Monday, July 10, 2017 at 3:38:27 PM UTC+2, John Cremona wrote:
Reply all
Reply to author
Forward
0 new messages