Tensors on free modules of finite rank

This is a pure algebraic subset of SageManifolds, devoted to tensors on free modules of finite rank over a commutative ring. This subset is self-consistent, i.e. it does not depend upon other SageManifolds parts. It has been integrated in SageManifolds from version 0.5. Since April 2015 (SageMath 6.6 release), it has been integrated in SageMath, i.e. it comes along with any SageMath installation. All the relevant Python files are in the subdirectory src/sage/tensor/modules of the SageMath root directory, after having installed SageManifolds.

In the context of differentiable manifolds, tensors on a free module \(M\) over a commutative ring \(R\) appear at two places (see also Sec. 4.4 of arXiv:1412.4765):

  • 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 Sage: