Oscar.jl icon indicating copy to clipboard operation
Oscar.jl copied to clipboard

Automated conversion for graded rings fails

Open HechtiDerLachs opened this issue 3 years ago • 2 comments

R, (x,y) = QQ["x", "y"]
R_ext, _ = PolynomialRing(R, ["u", "v"])
S, (u,v) = grade(R_ext, [1,1])
S(x)

fails, whereas

S(R_ext(x))

returns the desired result. In my opinion, the direct conversion should also work, correct?

Two other issues come with the current implementation of denest and renest. Firstly, the denest routine does not preserve the structure as graded rings:

denest(S)

returns an ordinary MPolyRing, but nothing decorated anymore.

Second, the denest routine seems to have a bug:

denest(R_ext, R_ext(x))

gives an error. The same applies, when I use the ring S instead.

HechtiDerLachs avatar Jan 17 '22 17:01 HechtiDerLachs

  1. We could try to make S(x) work.
  2. There is no canonical grading/filtering on the denested ring. It gets quite annoying if there are rings with different groups underlying the grading or even filterings defined by functions. I am not sure we can or will support this. @tthsqe12?
  3. Can you describe what denest(R_ext, R_ext(x)) should do? As far as I understand the following should work and is working as expected?
julia> Rdenest = denest(R_ext)
Multivariate Polynomial Ring in x1, x2, x3, x4 over Rational Field

julia> denest(Rdenest, R_ext(x))
x3

thofma avatar Jan 17 '22 18:01 thofma

  1. Ok, that would be good.
  2. At least if the ring of coefficients is not graded itself, but merely a polynomial ring, then all elements of the former coefficient ring should simply have degree zero. I have to admit that I'm not sure how generally solvable this is.
  3. I think, I just confused the arguments here. Sorry.

HechtiDerLachs avatar Jan 17 '22 18:01 HechtiDerLachs

I just stumbled upon this and have the impression it can be closed?

  1. Works by now.
  2. Cannot be done better as far as I understand @thofma's comment.
  3. Wasn't an issue.

joschmitt avatar Jul 25 '23 13:07 joschmitt