Skip to content

Polynomials over inexact rings should not truncate inexact leading zeroes #5075

@kedlaya

Description

@kedlaya

The generic polynomial class truncates leading zeroes, and this can cause problems when working over an inexact ring in which is_zero can return True even for an inexact zero (e.g., see #2943). Here is a simple example:

sage: C.<t> = PowerSeriesRing(Integers())
sage: D.<s> = PolynomialRing(C)
sage: y = O(t)
sage: y
O(t^1)
sage: z = y*s
sage: z
0
sage: z.list()
[]

This was recognized earlier for p-adics and fixed (I'm not sure which ticket this was):

sage: C = pAdicField(11)
sage: D.<s> = PolynomialRing(C)
sage: y = O(11)
sage: y
O(11)
sage: z = y*s
sage: z
(O(11))*s

The other main class of inexact rings are interval fields, but I believe for those is_zero returns False for an inexact zero, so this doesn't come up.

CC: @sagetrac-dmharvey @nilesjohnson @categorie

Component: algebra

Keywords: polynomials, power series, inexact rings

Stopgaps: todo

Issue created by migration from https://trac.sagemath.org/ticket/5075

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions