thofma / Hecke.jl

Computational algebraic number theory
Other
227 stars 64 forks source link

No GB possible over rings created by Hecke #124

Open mohamed-barakat opened 3 years ago

mohamed-barakat commented 3 years ago
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.5.1 (2020-08-25)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

julia> using Hecke

Welcome to

    _    _           _
   | |  | |         | |
   | |__| | ___  ___| | _____
   |  __  |/ _ \/ __| |/ / _ \
   | |  | |  __/ (__|   <  __/
   |_|  |_|\___|\___|_|\_\___|

Version 0.9.0 ...
 ... which comes with absolutely no warranty whatsoever
(c) 2015-2020 by Claus Fieker, Tommy Hofmann and Carlo Sircana

julia> C, a = CyclotomicField(1)
(Cyclotomic field of order 1, 1)

julia> R = maximal_order(C);

julia> using Singular
Singular.jl, based on
                     SINGULAR                                 /
 A Computer Algebra System for Polynomial Computations       /  Singular.jl: 0.4.3
                                                           0<   Singular   : 4.2.0
 by: W. Decker, G.-M. Greuel, G. Pfister, H. Schoenemann     \
FB Mathematik der Universitaet, D-67653 Kaiserslautern        \

julia> S, (x,y,z) = Singular.PolynomialRing( R, [ "x", "y", "z" ] )
(Singular Polynomial Ring (Coeffs(17)),(x,y,z),(dp(3),C), spoly{Singular.n_unknown{NfAbsOrdElem{AnticNumberField,nf_elem}}}[x, y, z])

julia> I = Ideal(S, x,y,z)
Singular Ideal over Singular Polynomial Ring (Coeffs(17)),(x,y,z),(dp(3),C) with generators (x, y, z)

julia> Singular.std(I)
ERROR: MethodError: no method matching gcd(::NfAbsOrdElem{AnticNumberField,nf_elem}, ::NfAbsOrdElem{AnticNumberField,nf_elem})
Stacktrace:
 [1] nemoRingGcd(::Ptr{Nothing}, ::Ptr{Nothing}, ::Ptr{Nothing}) at /Users/mo/.julia/dev/Singular/src/libsingular/nemo/Rings.jl:173
 [2] id_Std at /Users/mo/.julia/packages/CxxWrap/68Y7I/src/CxxWrap.jl:596 [inlined]
 [3] std(::sideal{spoly{Singular.n_unknown{NfAbsOrdElem{AnticNumberField,nf_elem}}}}; complete_reduction::Bool) at /Users/mo/.julia/dev/Singular/src/ideal/ideal.jl:381
 [4] std(::sideal{spoly{Singular.n_unknown{NfAbsOrdElem{AnticNumberField,nf_elem}}}}) at /Users/mo/.julia/dev/Singular/src/ideal/ideal.jl:380
 [5] top-level scope at REPL[10]:1

julia>
mohamed-barakat commented 3 years ago

This example is just a place holder. I would like to see Singular supporting GB with Dedekind domains as coefficients rings.

Motivation: Affine rings like

Z[a,b,x,y,z]/( a^2-a+1, 2*b-1 )

appear in applications (e.g., moduli spaces of matroids). GB computations will have to deal with a residue class ring (qring) with 5 indeterminates. With GB over Dedekind domains, one would have a GB in 3 indeterminates over the (free) polynomial ring R[x,y,z], where the coefficients ring R is the Dedekind domain Z[a,b]/( a^2-a+1, 2*b-1 ) = Z[zeta][1/2].

fieker commented 3 years ago

On Fri, Jan 08, 2021 at 05:49:57AM -0800, Mohamed Barakat wrote:

This example is just a place holder. I would like to see Singular supporting GB with Dedekind domains as coefficients rings.

Motivation: Affine rings like

Z[a,b,x,y,z]/( a^2-a+1, 2*b-1 )

appear in applications (e.g., moduli spaces of matroids). GB computations will have to deal with a residue class ring (qring) with 5 indeterminates. With GB over Dedekind domains, one would have a GB in 3 indeterminates over the (free) polynomial ring R[x,y,z], where the coefficients ring R is the Dedekind domain Z[a,b]/( a^2-a+1, 2*b-1 ) = Z[zeta][1/2].

Tommy has special code (in Magma?) and special theory for this. This cannot be done (efficiently) with the Singular generic.

The current chance would be to realize R as an affine algebra (a Singualr quotient ring)...

-- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/thofma/Hecke.jl/issues/124#issuecomment-756764788

fieker commented 3 years ago

On Fri, Jan 08, 2021 at 05:49:57AM -0800, Mohamed Barakat wrote:

This example is just a place holder. I would like to see Singular supporting GB with Dedekind domains as coefficients rings.

Motivation: Affine rings like

Z[a,b,x,y,z]/( a^2-a+1, 2*b-1 )

appear in applications (e.g., moduli spaces of matroids). GB computations will have to deal with a residue class ring (qring) with 5 indeterminates. With GB over Dedekind domains, one would have a GB in 3 indeterminates over the (free) polynomial ring R[x,y,z], where the coefficients ring R is the Dedekind domain Z[a,b]/( a^2-a+1, 2*b-1 ) = Z[zeta][1/2].

I thin offshot:

mohamed-barakat commented 3 years ago

The current chance would be to realize R as an affine algebra (a Singualr quotient ring)...

This is what I (almost) do currently, but it is not efficient enough.