Tensors on free modules of finite rank

This is a pure algebraic subpart of the SageManifolds project, devoted to tensors on free modules of finite rank over a commutative ring. This subpart is self-consistent, i.e. it does not depend upon other SageManifolds parts. It has been integrated in SageMath since April 2015 (SageMath 6.6 release). All the relevant Python files are in the subdirectory src/sage/tensor/modules of the SageMath root directory.

In the context of differentiable manifolds, tensors on a free module \(M\) over a commutative ring \(R\) appear at two places (see also Secs. 3.2 and 3.3 in Chap. 3 of arXiv:1804.07346):

  • tensors on tangent spaces:
    • ring \(R\) : real field \(\mathbb{R}\)
    • free module \(M\) : tangent vector space to the manifold at a given point
  • tensor fields on a manifold:
    • ring \(R\) : algebra \( C^\infty(U) \) of smooth functions \( U\rightarrow \mathbb{R} \), where \(U\) is a parallelizable open set of the manifold
    • free module \(M\) : \(\mathfrak{X}(U)\), the set of smooth vector fields on \(U\) (since \(U\) is parallelizable, this is a free module; its rank is the manifold's dimension)

It turns out that, before this project, only free modules with a distinguished basis were implemented in SageMath. This means that, given a free module \(M\) of rank \(n\), all calculations were referring to a single basis of \(M\). This amounts to identifying \(M\) with \(R^n\), where \(R\) is the ring over which \(M\) is defined. This is unfortunately not sufficient for dealing with differentiable manifolds in a coordinate-independent way. For instance, considering the tangent space \(T_p\mathcal{M}\) to a manifold \(\mathcal{M}\) at a point \(p\), there is no canonical isomorphism between \(T_p\mathcal{M}\) and \(\mathbb{R}^n\) when no coordinate system is privileged in the neighborhood of \(p\). Hence it has been necessary to implement generic free modules of finite rank, with an arbitrary number of bases, none of them being distinguished. See here for details (in particular for a comparison with previous implementations of free modules in SageMath).


Integration in SageMath: