Skip to content

Implement the universal cyclotomic field, using Zumbroich basis #8327

@nthiery

Description

@nthiery

This patch provides the universal cyclotomic field

    sage: UCF.<E> = UniversalCyclotomicField(); UCF
    Universal Cyclotomic Field endowed with the Zumbroich basis

in sage. This field is the smallest field extension of QQ which contains all roots of unity.

    sage: E(3); E(3)^3
    E(3)
    1
    sage: E(6); E(6)^2; E(6)^3; E(6)^6
    -E(3)^2
    E(3)
    -1
    1

It comes equipped with a distinguished basis, called the Zumbroich
basis, which gives, for any n, A basis of QQ( E(n) ) over QQ, where (n,k) stands for E(n)^k.

    sage: UCF.zumbroich_basis(6)
    [(6, 2), (6, 4)]

As seen for E(6), every element in UCF is expressed in terms of the smallest cyclotomic field in which it is contained.

sage: E(6)*E(4)
-E(12)^11

It provides arithmetics on UCF as addition, multiplication, and inverses:

    sage: E(3)+E(4)
    E(12)^4 - E(12)^7 - E(12)^11
    sage: E(3)*E(4)
    E(12)^7
    sage: (E(3)+E(4)).inverse()
    E(12)^4 + E(12)^8 + E(12)^11
    sage: (E(3)+E(4))*(E(3)+E(4)).inverse()
    1

And also things like Galois conjugates.

    sage: (E(3)+E(4)).galois_conjugates()
    [E(12)^4 - E(12)^7 - E(12)^11, -E(12)^7 + E(12)^8 - E(12)^11, E(12)^4 + E(12)^7 + E(12)^11, E(12)^7 + E(12)^8 + E(12)^11]

The ticket does not use the gap interface.

Depends on #13765

CC: @sagetrac-sage-combinat @sagetrac-cwitty

Component: number fields

Keywords: Cyclotomic field, Zumbroich basis

Author: Christian Stump, Simon King

Reviewer: Frédéric Chapoton

Merged: sage-5.7.beta3

Issue created by migration from https://trac.sagemath.org/ticket/8327

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions