Skip to content

Common base class for FiniteRankFreeModule and TensorFreeModule #34424

@mkoeppe

Description

@mkoeppe

Currently TensorFreeModule (and similar classes) inherits many methods from FiniteRankFreeModule that actually only work with the base module.
Trying to use them leads to incomprehensible error messages. For example:

sage: M = FiniteRankFreeModule(ZZ, 3, name='M')
sage: M.tensor_module(2, 1).tensor_module(3, 3)
Free module of type-(3,3) tensors on the Free module of type-(2,1) tensors on the Rank-3 free module M over the Integer Ring
sage: _.an_element()
ValueError: the None has not been defined on the Free module of type-(2,1) tensors on the Rank-3 free module M over the Integer Ring

As discussed in #30229 comment:6, we introduce a common base class that only defines the methods that should be inherited by TensorFreeModule and other such classes.

Depends on #31276

CC: @egourgoulhon @tscrim

Component: linear algebra

Author: Matthias Koeppe

Branch/Commit: 451ebe5

Reviewer: Eric Gourgoulhon

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions