-
-
Notifications
You must be signed in to change notification settings - Fork 655
Closed
Milestone
Description
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