Oscar.jl
Oscar.jl copied to clipboard
Automated conversion for graded rings fails
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.
- We could try to make
S(x)
work. - 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?
- 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
- Ok, that would be good.
- 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.
- I think, I just confused the arguments here. Sorry.
I just stumbled upon this and have the impression it can be closed?
- Works by now.
- Cannot be done better as far as I understand @thofma's comment.
- Wasn't an issue.