# Singular.jl: polynomial ring over a polynomial ring

**URL:** <https://discourse.julialang.org/t/singular-jl-polynomial-ring-over-a-polynomial-ring/110839>\
**Category:** General Usage\
**Tags:** nemo\
**Created:** [February 27, 2024, 11:36am UTC](https://discourse.julialang.org/t/singular-jl-polynomial-ring-over-a-polynomial-ring/110839 "2024-02-27T11:36:54Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![thofma](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thofma/32/1691_2.png) [@thofma](https://discourse.julialang.org/u/thofma)\
**Post date:** [February 27, 2024, 9:19pm UTC](https://discourse.julialang.org/t/singular-jl-polynomial-ring-over-a-polynomial-ring/110839/2 "2024-02-27T21:19:53Z")

</div>

I don’t think that it is possible what you want to do (which can be considered a bug in Singular.jl). But the good news is that I think you actually don’t need to do this. Here is the grobcov.lib example from [https://www.singular.uni-kl.de/Manual/4-0-2/sing\_957.htm#SEC1032](https://www.singular.uni-kl.de/Manual/4-0-2/sing_957.htm#SEC1032) in Singular.jl:

```julia-repl
julia> R, (a0, a1, a2, a3, a4) = FunctionField(QQ, ["a0", "a1", "a2", "a3", "a4"]);

julia> S, (x1, x2, x3) = polynomial_ring(R, ["x1", "x2", "x3"], ordering = :degrevlex);

julia> F = Ideal(S, [x1^4+(4*a3)*x1^3+(6*a2)*x1^2+(4*a1)*x1+(a0),
       x1^3+(3*a3)*x1^2+(3*a2)*x1+(a1),
       x2^4+(4*a3)*x2^3+(6*a2)*x2^2+(4*a1)*x2+(a0),
       x2^2+(2*a3)*x2+(a2),
       x3^4+(4*a3)*x3^3+(6*a2)*x3^2+(4*a1)*x3+(a0),
       x3+(a3)]);

julia> Singular.LibGrobcov.grobcov(F)
2-element Vector{Vector{Any}}:
 [Singular ideal over Singular polynomial ring (0,a0,a1,a2,a3,a4),(x1,x2,x3),(dp(3),C) with generators (1), Singular ideal over Singular polynomial ring (0,a0,a1,a2,a3,a4),(x1,x2,x3),(dp(3),C) with generators (1), Vector{Any}[[Singular ideal over Singular polynomial ring (0,a0,a1,a2,a3,a4),(x1,x2,x3),(dp(3),C) with generators (0), sideal{spoly{n_transExt}}[Singular ideal over Singular polynomial ring (0,a0,a1,a2,a3,a4),(x1,x2,x3),(dp(3),C) with generators (-a3^2 + a2, -a3^3 + a1, -a3^4 + a0)]]]]
 [Singular ideal over Singular polynomial ring (0,a0,a1,a2,a3,a4),(x1,x2,x3),(dp(3),C) with generators (x3, x2^2, x1^3), Singular ideal over Singular polynomial ring (0,a0,a1,a2,a3,a4),(x1,x2,x3),(dp(3),C) with generators (x3 + a3, x2^2 + 2*a3*x2 + a3^2, x1^3 + 3*a3*x1^2 + 3*a3^2*x1 + a3^3), Vector{Any}[[Singular ideal over Singular polynomial ring (0,a0,a1,a2,a3,a4),(x1,x2,x3),(dp(3),C) with generators (-a3^2 + a2, -a3^3 + a1, -a3^4 + a0), sideal{spoly{n_transExt}}[Singular ideal over Singular polynomial ring (0,a0,a1,a2,a3,a4),(x1,x2,x3),(dp(3),C) with generators (1)]]]]

```

The important piece of information is that the `ring r = (0,a0, ...), (x1, ...), ...` means that you want to do everything over a transcendental extension, which in Singular.jl lingo means function field.

---

_[View the full topic](https://discourse.julialang.org/t/singular-jl-polynomial-ring-over-a-polynomial-ring/110839)._
