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

Forbid zero ring in polynomial ring/series constructions

Open thofma opened this issue 1 year ago • 0 comments

After looking at the code, we (@fingolfin and myself) came to the conclusion that it would be best to forbid zero rings in polynomial ring constructors (both univariate and multivariate) for now.

Why? Most of the code is wrong and it gives silently wrong results. This is because it heavily relies on is_zero(a), but this is not the right thing to check. In the presence of zero rings, one needs to replace this by is_zero(a) && !is_one(a).

  1. This is quite intrusive and we don't have the resources to change this consistently. One probably would need to check any is_zero call.
  2. We would need some optimized is_zero_and_not_one to not make this check twice as slow for most rings.

The next thing to do is to add an is_trivial(R) check to the various constructors and throw an "not implemented (yet)" error.

We can revisit this decision once the need for this construction arises.

thofma avatar Oct 10 '24 13:10 thofma