Skip to content

Polyhedra coercion of base rings fails for number fields #28770

@kliem

Description

@kliem

Currently coercion of polyhedra with number fields does not work. The following results in a type error:

sage: z = QQ['z'].0                                          
sage: K = NumberField(z^2 - 2,'s')
sage: K.gen()*polytopes.simplex(backend='field')

But the backend can surely handle it, as the following does work:

sage: z = QQ['z'].0                                          
sage: K = NumberField(z^2 - 2,'s')
sage: K.gen()*polytopes.simplex(backend='field', base_ring=K)
A 3-dimensional polyhedron in (Number Field in s with defining polynomial z^2 - 2)^4 defined as the convex hull of 4 vertices

The underlying error:

sage: z = QQ['z'].0                                          
sage: K = NumberField(z^2 - 2,'s')
sage: parent = polytopes.simplex().parent()
sage: parent._coerce_base_ring(K)
Rational Field

But it should be K.

The problem is that _coerce_base_ring of Polyhedra_base just takes the base ring of K, which are the rationals.

We fix this, by not taking the base ring, if the object is already a ring.

CC: @jplab @LaisRast

Component: geometry

Author: Jonathan Kliem

Branch/Commit: a0068cc

Reviewer: Léo Brunswic

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions