Skip to content

Fix coercions and pushout for Laurent series #24431

@videlec

Description

@videlec

There should be an automatic extension of scalars in the following situation

sage: R.<x> = LaurentSeriesRing(QQ)
sage: QQbar.gen() * x
Traceback (most recent call last):
...
TypeError: unsupported operand parent(s) for *: 'Algebraic Field' and
'Laurent Series Ring in x over Rational Field'

To be compared with

sage: R.<x> = PowerSeriesRing(QQ)
sage: QQbar.gen() * x
I*x
sage: parent(_)
Power Series Ring in x over Algebraic Field

Currently, these pushouts are allowed:

sage: x = LaurentSeriesRing(QQ, 'x').gen()
sage: y = PolynomialRing(QQ, 'y').gen()
sage: x * y
x*y
sage: parent(x * y)
Univariate Polynomial Ring in y over
Laurent Series Ring in x over Rational Field

This is inconsistent with PowerSeriesRing.

By fixing these problems, we had to adapt some code in sage/schemes/hyperelliptic_curves/hyperelliptic_generic.py that was using the aforementioned pushout.

Depends on #24420

Component: algebra

Author: Vincent Delecroix

Branch/Commit: 8abc33b

Reviewer: Travis Scrimshaw

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions