## 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).

### Documentation

- Tutorial [pdf] [ipynb]
- Reference manual [pdf]

### Integration in Sage:

- Commit page at git.sagemath.org
- Submitted ticket (#15916) at trac.sagemath.org