occur exactly once, and thus making them separate linearly bound
variables is natural. One can think of it as the contraction creating a wire,
with each end of the wire bound to a separate name.
Nonetheless, the convention to use the same
variable name in different positions is a convenient one. We
recover it in this paper by a typographical trick: we use the same Latin letter
for both indices, and make the position as sub- or superscript
integral to variable names. (This is purely a matter of convention and users of
Albert are free to use whichever variable names they prefer.)
Therefore, for instance, in Albert the composition of two linear transformations
\(\mathsf{t}\) and \(\mathsf{u}\), as shown in <ref>, is realised as

*Addition and zero
In Einstein notation, one can use the addition operator as if it were the point-wise
addition of each of the components, for instance \(tᵢʲ + uᵢʲ\). Note that the
live indices are used in each of the operands of the sum, thus repeated in
the whole expression.
This means that the following linear type for the sum operator would be incorrect:

*  This is because in the expression \(\mathsf{plus}_{wrong}\mskip 3.0mu\allowbreak{}\mathnormal{(}\mskip 0.0mu\mathsf{t}\mskip 3.0mu_{\mathsf{i}}\mskip 3.0mu^{\mathsf{j}}\mskip 0.0mu\mathnormal{)}\allowbreak{}\mskip 3.0mu\allowbreak{}\mathnormal{(}\mskip 0.0mu\mathsf{u}\mskip 3.0mu_{\mathsf{i}}\mskip 3.0mu^{\mathsf{j}}\mskip 0.0mu\mathnormal{)}\allowbreak{}\), both
\(\mathsf{i}\) and \(\mathsf{j}\) occur twice, while the type would require indices to be split between the left and right operand.
Thus we must use another type. We settle on the following one:

*  This type allows to code \(tᵢʲ + uᵢʲ\) as follows:

The above is well typed. Indeed 1. the argument of \(\mathsf{plus}\) is
type-linear, so any use of indices in its body is considered
type-linear. 2. only one branch of a \(\mathbf{case}\) is considered to be run,
and therefore the same indices can (and must) be used in all the
branches. The fact that only one branch is run is counter-intuitive, since
the semantics depends on both of them. We explain our solution to this
apparent contradiction in <ref>.

Conversely, there is a zero tensor of every possible order. Thus
we have a zero combinator with an index argument ranging over an arbitrary
The scaling operator \(\allowbreak{}\mathnormal{(}\mskip 0.0mu\smalltriangleleft \mskip 0.0mu\mathnormal{)}\allowbreak{}\) underpins non-zero constants, with no
particular difficulty.

With the primitives of additive categories, one can construct the
tensor \(\mathsf{antisym}\mskip 3.0mu\mathnormal{=}\) \(\mathsf{id}\mskip 3.0mu\mathnormal{-}\mskip 3.0muσ\) :: \(\mathsf{T}\mskip 3.0mu\mathnormal{⊗}\mskip 3.0mu\mathsf{T}\mskip 1.0mu\overset{z}{\leadsto }\mskip 1.0mu\mathsf{T}\mskip 3.0mu\mathnormal{⊗}\mskip 3.0mu\mathsf{T}\).  This tensor can be rendered graphically as the
difference \({\begin{tikzpicture}[baseline=(current bounding box.center)]\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,0pt)--(1pt,0pt);
\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-7.4184pt)--(1pt,-7.4184pt);
\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7pt,0pt)--(8pt,0pt);
\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7pt,-7.4184pt)--(8pt,-7.4184pt);
\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](1pt,0pt)--(7pt,0pt);
\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](1pt,-7.4184pt)--(7pt,-7.4184pt);
\path[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-4.6316pt,2.3396pt)--(-2pt,2.3396pt)--(-2pt,-2.3396pt)--(-4.6316pt,-2.3396pt)--cycle;
\node[anchor=north west,inner sep=0] at (-4.6316pt,2.3396pt){\savebox{\marxupbox}{{\({\scriptstyle i}\)}}\immediate\write\boxesfile{110}\immediate\write\boxesfile{\number\wd\marxupbox}\immediate\write\boxesfile{\number\ht\marxupbox}\immediate\write\boxesfile{\number\dp\marxupbox}\box\marxupbox};
\path[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-6.6316pt,4.3396pt)--(0pt,4.3396pt)--(0pt,-4.3396pt)--(-6.6316pt,-4.3396pt)--cycle;
\path[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-5.8617pt,-4.3396pt)--(-2pt,-4.3396pt)--(-2pt,-10.4972pt)--(-5.8617pt,-10.4972pt)--cycle;
\node[anchor=north west,inner sep=0] at (-5.8617pt,-4.3396pt){\savebox{\marxupbox}{{\({\scriptstyle j}\)}}\immediate\write\boxesfile{111}\immediate\write\boxesfile{\number\wd\marxupbox}\immediate\write\boxesfile{\number\ht\marxupbox}\immediate\write\boxesfile{\number\dp\marxupbox}\box\marxupbox};
\path[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.8617pt,-2.3396pt)--(0pt,-2.3396pt)--(0pt,-12.4972pt)--(-7.8617pt,-12.4972pt)--cycle;
\path[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](10pt,2.4911pt)--(14.3398pt,2.4911pt)--(14.3398pt,-2.4911pt)--(10pt,-2.4911pt)--cycle;
\node[anchor=north west,inner sep=0] at (10pt,2.4911pt){\savebox{\marxupbox}{{\({\scriptstyle k}\)}}\immediate\write\boxesfile{112}\immediate\write\boxesfile{\number\wd\marxupbox}\immediate\write\boxesfile{\number\ht\marxupbox}\immediate\write\boxesfile{\number\dp\marxupbox}\box\marxupbox};
\path[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](8pt,4.4911pt)--(16.3398pt,4.4911pt)--(16.3398pt,-4.4911pt)--(8pt,-4.4911pt)--cycle;
\path[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](10pt,-4.8926pt)--(12.5769pt,-4.8926pt)--(12.5769pt,-9.9442pt)--(10pt,-9.9442pt)--cycle;
\node[anchor=north west,inner sep=0] at (10pt,-4.8926pt){\savebox{\marxupbox}{{\({\scriptstyle l}\)}}\immediate\write\boxesfile{113}\immediate\write\boxesfile{\number\wd\marxupbox}\immediate\write\boxesfile{\number\ht\marxupbox}\immediate\write\boxesfile{\number\dp\marxupbox}\box\marxupbox};
\path[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](8pt,-2.8926pt)--(14.5769pt,-2.8926pt)--(14.5769pt,-11.9442pt)--(8pt,-11.9442pt)--cycle;
\end{tikzpicture}}-{\begin{tikzpicture}[baseline=(current bounding box.center)]\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-1pt,7.2177pt)--(0pt,7.2177pt);
\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-1pt,-0.2008pt)--(0pt,-0.2008pt);
\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](6pt,7.0169pt)--(7pt,7.0169pt);
\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](6pt,0pt)--(7pt,0pt);
\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,7.2177pt)..controls(4pt,7.2177pt)and(2pt,0pt)..(6pt,0pt);
\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-0.2008pt)..controls(4pt,-0.2008pt)and(2pt,7.0169pt)..(6pt,7.0169pt);
\path[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-5.6316pt,9.5573pt)--(-3pt,9.5573pt)--(-3pt,4.878pt)--(-5.6316pt,4.878pt)--cycle;
\node[anchor=north west,inner sep=0] at (-5.6316pt,9.5573pt){\savebox{\marxupbox}{{\({\scriptstyle i}\)}}\immediate\write\boxesfile{114}\immediate\write\boxesfile{\number\wd\marxupbox}\immediate\write\boxesfile{\number\ht\marxupbox}\immediate\write\boxesfile{\number\dp\marxupbox}\box\marxupbox};
\path[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.6316pt,11.5573pt)--(-1pt,11.5573pt)--(-1pt,2.878pt)--(-7.6316pt,2.878pt)--cycle;
\path[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-6.8617pt,2.878pt)--(-3pt,2.878pt)--(-3pt,-3.2795pt)--(-6.8617pt,-3.2795pt)--cycle;
\node[anchor=north west,inner sep=0] at (-6.8617pt,2.878pt){\savebox{\marxupbox}{{\({\scriptstyle j}\)}}\immediate\write\boxesfile{115}\immediate\write\boxesfile{\number\wd\marxupbox}\immediate\write\boxesfile{\number\ht\marxupbox}\immediate\write\boxesfile{\number\dp\marxupbox}\box\marxupbox};
\path[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-8.8617pt,4.878pt)--(-1pt,4.878pt)--(-1pt,-5.2795pt)--(-8.8617pt,-5.2795pt)--cycle;
\path[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](9pt,9.508pt)--(13.3398pt,9.508pt)--(13.3398pt,4.5258pt)--(9pt,4.5258pt)--cycle;
\node[anchor=north west,inner sep=0] at (9pt,9.508pt){\savebox{\marxupbox}{{\({\scriptstyle k}\)}}\immediate\write\boxesfile{116}\immediate\write\boxesfile{\number\wd\marxupbox}\immediate\write\boxesfile{\number\ht\marxupbox}\immediate\write\boxesfile{\number\dp\marxupbox}\box\marxupbox};
\path[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7pt,11.508pt)--(15.3398pt,11.508pt)--(15.3398pt,2.5258pt)--(7pt,2.5258pt)--cycle;
\path[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](9pt,2.5258pt)--(11.5769pt,2.5258pt)--(11.5769pt,-2.5258pt)--(9pt,-2.5258pt)--cycle;
\node[anchor=north west,inner sep=0] at (9pt,2.5258pt){\savebox{\marxupbox}{{\({\scriptstyle l}\)}}\immediate\write\boxesfile{117}\immediate\write\boxesfile{\number\wd\marxupbox}\immediate\write\boxesfile{\number\ht\marxupbox}\immediate\write\boxesfile{\number\dp\marxupbox}\box\marxupbox};
\path[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7pt,4.5258pt)--(13.5769pt,4.5258pt)--(13.5769pt,-4.5258pt)--(7pt,-4.5258pt)--cycle;
\end{tikzpicture}}\), but it is useful enough to
receive the special notation [baseline=([yshift=-0.8ex]current bounding box.center)][-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,0pt)–(1pt,0pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-7.4184pt)–(1pt,-7.4184pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7pt,0pt)–(8pt,0pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7pt,-7.4184pt)–(8pt,-7.4184pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](1pt,0pt)–(7pt,0pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](1pt,-7.4184pt)–(7pt,-7.4184pt);
[-,draw=black,line width=1.2pt,line cap=butt,line join=miter,dash pattern=](4pt,1pt)–(4pt,-8.4184pt)–cycle;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-4.6316pt,2.3396pt)–(-2pt,2.3396pt)–(-2pt,-2.3396pt)–(-4.6316pt,-2.3396pt)–cycle;
[anchor=north west,inner sep=0] at (-4.6316pt,2.3396pt)\({\scriptstyle i}\)118;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-6.6316pt,4.3396pt)–(0pt,4.3396pt)–(0pt,-4.3396pt)–(-6.6316pt,-4.3396pt)–cycle;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-5.8617pt,-4.3396pt)–(-2pt,-4.3396pt)–(-2pt,-10.4972pt)–(-5.8617pt,-10.4972pt)–cycle;
[anchor=north west,inner sep=0] at (-5.8617pt,-4.3396pt)\({\scriptstyle j}\)119;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.8617pt,-2.3396pt)–(0pt,-2.3396pt)–(0pt,-12.4972pt)–(-7.8617pt,-12.4972pt)–cycle;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](10pt,2.4911pt)–(14.3398pt,2.4911pt)–(14.3398pt,-2.4911pt)–(10pt,-2.4911pt)–cycle;
[anchor=north west,inner sep=0] at (10pt,2.4911pt)\({\scriptstyle k}\)120;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](8pt,4.4911pt)–(16.3398pt,4.4911pt)–(16.3398pt,-4.4911pt)–(8pt,-4.4911pt)–cycle;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](10pt,-4.8926pt)–(12.5769pt,-4.8926pt)–(12.5769pt,-9.9442pt)–(10pt,-9.9442pt)–cycle;
[anchor=north west,inner sep=0] at (10pt,-4.8926pt)\({\scriptstyle l}\)121;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](8pt,-2.8926pt)–(14.5769pt,-2.8926pt)–(14.5769pt,-11.9442pt)–(8pt,-11.9442pt)–cycle;
Indeed, composing it with an arbitrary tensor gives its antisymmetric
part with respect to the two connected indices.[Consider the
case of a matrix \(M\). Let \(A_{ij} = M_{ij} - M_{ji}\) and
\(S_{ij} = M_{ij} + M_{ji}\).  It is easy to see that \(S\) is
symmetric and that \(A\) is antisymmetric, and \(A\) is the
composition of \(\mathsf{antisym}\) with \(M\). Furthermore, \(M\) is
the average of \(A\) and \(S\): \(M = (A + S) / 2\). This is
why \(A\) is called the antisymmetric part of \(M\).]

§ TENSOR CALCULUS: FIELDS AND THEIR DERIVATIVES

We have up to now worked with tensor algebra, but to further illustrate
the capabilities of Albert, we apply it to tensor calculus,
starting with the notion of fields.

§.§ Tensor Fields

In this context a field means that a different value is associated
with every position on a given manifold.[A manifold is a
topological space the looks like Euclidean space near each point.]  We
denote the position parameter by \(\mathbf R\). Hence, the scalars
(from <ref>) are no longer just real numbers, but rather
real-valued expressions depending on \(\mathbf R\).[We
support such expressions in our implementation, but this
generalisation being orthogonal to the rest of the development, we
won't discuss it further.]  For instance, \(\mathbf R\) could be a
position on the surface of the earth, and a scalar field could be the
temperature at each such point.

A vector field associates a vector with every
position; for instance, the wind
direction.  The perhaps surprising aspect is that each of these vectors
may inhabit a different, local, vector space, which can be
thought of as tangent to the manifold at the considered point.
So in our example, we assumed that the wind is parallel to the earth surface.
Hereafter we
associate such a local space for each category \(z\), and call it \(T_{z}\),
leaving the dependency on position \(\mathbf R\) implicit.
Even though in the typical case the
local vector space is different at each position, it keeps the same
dimensionality. Therefore, as an object, it is independent of \(\mathbf R\).

When dealing with matrix representations, we then have to deal both
with a global coordinate system to identify the position \(\bf R\), and a local
basis at each point, which gives a meaning to the entries in a tensor
matrix representation (local coordinates).  Furthermore, different
choices of coordinate system are possible for the same manifold.

[baseline=0pt][-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,-37.5pt)–(-32.5pt,-37.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,-37.5pt)–(-37.5pt,-32.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,-30pt)–(-32.5pt,-30pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,-30pt)–(-37.5pt,-25pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,-22.5pt)–(-32.5pt,-22.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,-22.5pt)–(-37.5pt,-17.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,-15pt)–(-32.5pt,-15pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,-15pt)–(-37.5pt,-10pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,-7.5pt)–(-32.5pt,-7.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,-7.5pt)–(-37.5pt,-2.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,0pt)–(-32.5pt,0pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,0pt)–(-37.5pt,5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,7.5pt)–(-32.5pt,7.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,7.5pt)–(-37.5pt,12.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,15pt)–(-32.5pt,15pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,15pt)–(-37.5pt,20pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,22.5pt)–(-32.5pt,22.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,22.5pt)–(-37.5pt,27.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,30pt)–(-32.5pt,30pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,30pt)–(-37.5pt,35pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,37.5pt)–(-32.5pt,37.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,37.5pt)–(-37.5pt,42.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,-37.5pt)–(-25pt,-37.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,-37.5pt)–(-30pt,-32.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,-30pt)–(-25pt,-30pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,-30pt)–(-30pt,-25pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,-22.5pt)–(-25pt,-22.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,-22.5pt)–(-30pt,-17.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,-15pt)–(-25pt,-15pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,-15pt)–(-30pt,-10pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,-7.5pt)–(-25pt,-7.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,-7.5pt)–(-30pt,-2.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,0pt)–(-25pt,0pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,0pt)–(-30pt,5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,7.5pt)–(-25pt,7.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,7.5pt)–(-30pt,12.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,15pt)–(-25pt,15pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,15pt)–(-30pt,20pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,22.5pt)–(-25pt,22.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,22.5pt)–(-30pt,27.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,30pt)–(-25pt,30pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,30pt)–(-30pt,35pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,37.5pt)–(-25pt,37.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,37.5pt)–(-30pt,42.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,-37.5pt)–(-17.5pt,-37.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,-37.5pt)–(-22.5pt,-32.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,-30pt)–(-17.5pt,-30pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,-30pt)–(-22.5pt,-25pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,-22.5pt)–(-17.5pt,-22.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,-22.5pt)–(-22.5pt,-17.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,-15pt)–(-17.5pt,-15pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,-15pt)–(-22.5pt,-10pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,-7.5pt)–(-17.5pt,-7.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,-7.5pt)–(-22.5pt,-2.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,0pt)–(-17.5pt,0pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,0pt)–(-22.5pt,5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,7.5pt)–(-17.5pt,7.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,7.5pt)–(-22.5pt,12.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,15pt)–(-17.5pt,15pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,15pt)–(-22.5pt,20pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,22.5pt)–(-17.5pt,22.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,22.5pt)–(-22.5pt,27.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,30pt)–(-17.5pt,30pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,30pt)–(-22.5pt,35pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,37.5pt)–(-17.5pt,37.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,37.5pt)–(-22.5pt,42.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,-37.5pt)–(-10pt,-37.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,-37.5pt)–(-15pt,-32.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,-30pt)–(-10pt,-30pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,-30pt)–(-15pt,-25pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,-22.5pt)–(-10pt,-22.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,-22.5pt)–(-15pt,-17.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,-15pt)–(-10pt,-15pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,-15pt)–(-15pt,-10pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,-7.5pt)–(-10pt,-7.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,-7.5pt)–(-15pt,-2.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,0pt)–(-10pt,0pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,0pt)–(-15pt,5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,7.5pt)–(-10pt,7.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,7.5pt)–(-15pt,12.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,15pt)–(-10pt,15pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,15pt)–(-15pt,20pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,22.5pt)–(-10pt,22.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,22.5pt)–(-15pt,27.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,30pt)–(-10pt,30pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,30pt)–(-15pt,35pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,37.5pt)–(-10pt,37.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,37.5pt)–(-15pt,42.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,-37.5pt)–(-2.5pt,-37.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,-37.5pt)–(-7.5pt,-32.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,-30pt)–(-2.5pt,-30pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,-30pt)–(-7.5pt,-25pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,-22.5pt)–(-2.5pt,-22.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,-22.5pt)–(-7.5pt,-17.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,-15pt)–(-2.5pt,-15pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,-15pt)–(-7.5pt,-10pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,-7.5pt)–(-2.5pt,-7.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,-7.5pt)–(-7.5pt,-2.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,0pt)–(-2.5pt,0pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,0pt)–(-7.5pt,5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,7.5pt)–(-2.5pt,7.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,7.5pt)–(-7.5pt,12.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,15pt)–(-2.5pt,15pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,15pt)–(-7.5pt,20pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,22.5pt)–(-2.5pt,22.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,22.5pt)–(-7.5pt,27.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,30pt)–(-2.5pt,30pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,30pt)–(-7.5pt,35pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,37.5pt)–(-2.5pt,37.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,37.5pt)–(-7.5pt,42.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-37.5pt)–(5pt,-37.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-37.5pt)–(0pt,-32.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-30pt)–(5pt,-30pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-30pt)–(0pt,-25pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-22.5pt)–(5pt,-22.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-22.5pt)–(0pt,-17.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-15pt)–(5pt,-15pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-15pt)–(0pt,-10pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-7.5pt)–(5pt,-7.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-7.5pt)–(0pt,-2.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,0pt)–(5pt,0pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,0pt)–(0pt,5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,7.5pt)–(5pt,7.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,7.5pt)–(0pt,12.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,15pt)–(5pt,15pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,15pt)–(0pt,20pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,22.5pt)–(5pt,22.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,22.5pt)–(0pt,27.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,30pt)–(5pt,30pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,30pt)–(0pt,35pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,37.5pt)–(5pt,37.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,37.5pt)–(0pt,42.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,-37.5pt)–(12.5pt,-37.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,-37.5pt)–(7.5pt,-32.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,-30pt)–(12.5pt,-30pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,-30pt)–(7.5pt,-25pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,-22.5pt)–(12.5pt,-22.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,-22.5pt)–(7.5pt,-17.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,-15pt)–(12.5pt,-15pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,-15pt)–(7.5pt,-10pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,-7.5pt)–(12.5pt,-7.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,-7.5pt)–(7.5pt,-2.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,0pt)–(12.5pt,0pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,0pt)–(7.5pt,5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,7.5pt)–(12.5pt,7.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,7.5pt)–(7.5pt,12.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,15pt)–(12.5pt,15pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,15pt)–(7.5pt,20pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,22.5pt)–(12.5pt,22.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,22.5pt)–(7.5pt,27.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,30pt)–(12.5pt,30pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,30pt)–(7.5pt,35pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,37.5pt)–(12.5pt,37.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,37.5pt)–(7.5pt,42.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,-37.5pt)–(20pt,-37.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,-37.5pt)–(15pt,-32.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,-30pt)–(20pt,-30pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,-30pt)–(15pt,-25pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,-22.5pt)–(20pt,-22.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,-22.5pt)–(15pt,-17.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,-15pt)–(20pt,-15pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,-15pt)–(15pt,-10pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,-7.5pt)–(20pt,-7.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,-7.5pt)–(15pt,-2.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,0pt)–(20pt,0pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,0pt)–(15pt,5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,7.5pt)–(20pt,7.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,7.5pt)–(15pt,12.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,15pt)–(20pt,15pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,15pt)–(15pt,20pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,22.5pt)–(20pt,22.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,22.5pt)–(15pt,27.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,30pt)–(20pt,30pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,30pt)–(15pt,35pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,37.5pt)–(20pt,37.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,37.5pt)–(15pt,42.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,-37.5pt)–(27.5pt,-37.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,-37.5pt)–(22.5pt,-32.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,-30pt)–(27.5pt,-30pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,-30pt)–(22.5pt,-25pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,-22.5pt)–(27.5pt,-22.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,-22.5pt)–(22.5pt,-17.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,-15pt)–(27.5pt,-15pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,-15pt)–(22.5pt,-10pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,-7.5pt)–(27.5pt,-7.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,-7.5pt)–(22.5pt,-2.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,0pt)–(27.5pt,0pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,0pt)–(22.5pt,5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,7.5pt)–(27.5pt,7.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,7.5pt)–(22.5pt,12.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,15pt)–(27.5pt,15pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,15pt)–(22.5pt,20pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,22.5pt)–(27.5pt,22.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,22.5pt)–(22.5pt,27.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,30pt)–(27.5pt,30pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,30pt)–(22.5pt,35pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,37.5pt)–(27.5pt,37.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,37.5pt)–(22.5pt,42.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,-37.5pt)–(35pt,-37.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,-37.5pt)–(30pt,-32.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,-30pt)–(35pt,-30pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,-30pt)–(30pt,-25pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,-22.5pt)–(35pt,-22.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,-22.5pt)–(30pt,-17.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,-15pt)–(35pt,-15pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,-15pt)–(30pt,-10pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,-7.5pt)–(35pt,-7.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,-7.5pt)–(30pt,-2.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,0pt)–(35pt,0pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,0pt)–(30pt,5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,7.5pt)–(35pt,7.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,7.5pt)–(30pt,12.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,15pt)–(35pt,15pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,15pt)–(30pt,20pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,22.5pt)–(35pt,22.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,22.5pt)–(30pt,27.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,30pt)–(35pt,30pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,30pt)–(30pt,35pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,37.5pt)–(35pt,37.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,37.5pt)–(30pt,42.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,-37.5pt)–(42.5pt,-37.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,-37.5pt)–(37.5pt,-32.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,-30pt)–(42.5pt,-30pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,-30pt)–(37.5pt,-25pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,-22.5pt)–(42.5pt,-22.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,-22.5pt)–(37.5pt,-17.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,-15pt)–(42.5pt,-15pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,-15pt)–(37.5pt,-10pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,-7.5pt)–(42.5pt,-7.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,-7.5pt)–(37.5pt,-2.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,0pt)–(42.5pt,0pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,0pt)–(37.5pt,5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,7.5pt)–(42.5pt,7.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,7.5pt)–(37.5pt,12.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,15pt)–(42.5pt,15pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,15pt)–(37.5pt,20pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,22.5pt)–(42.5pt,22.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,22.5pt)–(37.5pt,27.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,30pt)–(42.5pt,30pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,30pt)–(37.5pt,35pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,37.5pt)–(42.5pt,37.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,37.5pt)–(37.5pt,42.5pt);

Cartesian  [t]0.5
[baseline=0pt][-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,-37.5pt)–(-41.0355pt,-41.0355pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,-37.5pt)–(-25pt,-50pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,-30pt)–(-41.4043pt,-33.1235pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,-30pt)–(-27.5pt,-42.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,-22.5pt)–(-41.7875pt,-25.0725pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,-22.5pt)–(-30pt,-35pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,-15pt)–(-42.1424pt,-16.857pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,-15pt)–(-32.5pt,-27.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,-7.5pt)–(-42.4029pt,-8.4806pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,-7.5pt)–(-35pt,-20pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,0pt)–(-42.5pt,0pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,0pt)–(-37.5pt,-12.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,7.5pt)–(-42.4029pt,8.4806pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,7.5pt)–(-40pt,-5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,15pt)–(-42.1424pt,16.857pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,15pt)–(-42.5pt,2.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,22.5pt)–(-41.7875pt,25.0725pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,22.5pt)–(-45pt,10pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,30pt)–(-41.4043pt,33.1235pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,30pt)–(-47.5pt,17.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,37.5pt)–(-41.0355pt,41.0355pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37.5pt,37.5pt)–(-50pt,25pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,-37.5pt)–(-33.1235pt,-41.4043pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,-37.5pt)–(-17.5pt,-47.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,-30pt)–(-33.5355pt,-33.5355pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,-30pt)–(-20pt,-40pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,-22.5pt)–(-34pt,-25.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,-22.5pt)–(-22.5pt,-32.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,-15pt)–(-34.4721pt,-17.2361pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,-15pt)–(-25pt,-25pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,-7.5pt)–(-34.8507pt,-8.7127pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,-7.5pt)–(-27.5pt,-17.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,0pt)–(-35pt,0pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,0pt)–(-30pt,-10pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,7.5pt)–(-34.8507pt,8.7127pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,7.5pt)–(-32.5pt,-2.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,15pt)–(-34.4721pt,17.2361pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,15pt)–(-35pt,5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,22.5pt)–(-34pt,25.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,22.5pt)–(-37.5pt,12.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,30pt)–(-33.5355pt,33.5355pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,30pt)–(-40pt,20pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,37.5pt)–(-33.1235pt,41.4043pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30pt,37.5pt)–(-42.5pt,27.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,-37.5pt)–(-25.0725pt,-41.7875pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,-37.5pt)–(-10pt,-45pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,-30pt)–(-25.5pt,-34pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,-30pt)–(-12.5pt,-37.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,-22.5pt)–(-26.0355pt,-26.0355pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,-22.5pt)–(-15pt,-30pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,-15pt)–(-26.6603pt,-17.7735pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,-15pt)–(-17.5pt,-22.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,-7.5pt)–(-27.2434pt,-9.0811pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,-7.5pt)–(-20pt,-15pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,0pt)–(-27.5pt,0pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,0pt)–(-22.5pt,-7.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,7.5pt)–(-27.2434pt,9.0811pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,7.5pt)–(-25pt,0pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,15pt)–(-26.6603pt,17.7735pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,15pt)–(-27.5pt,7.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,22.5pt)–(-26.0355pt,26.0355pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,22.5pt)–(-30pt,15pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,30pt)–(-25.5pt,34pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,30pt)–(-32.5pt,22.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,37.5pt)–(-25.0725pt,41.7875pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.5pt,37.5pt)–(-35pt,30pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,-37.5pt)–(-16.857pt,-42.1424pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,-37.5pt)–(-2.5pt,-42.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,-30pt)–(-17.2361pt,-34.4721pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,-30pt)–(-5pt,-35pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,-22.5pt)–(-17.7735pt,-26.6603pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,-22.5pt)–(-7.5pt,-27.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,-15pt)–(-18.5355pt,-18.5355pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,-15pt)–(-10pt,-20pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,-7.5pt)–(-19.4721pt,-9.7361pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,-7.5pt)–(-12.5pt,-12.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,0pt)–(-20pt,0pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,0pt)–(-15pt,-5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,7.5pt)–(-19.4721pt,9.7361pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,7.5pt)–(-17.5pt,2.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,15pt)–(-18.5355pt,18.5355pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,15pt)–(-20pt,10pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,22.5pt)–(-17.7735pt,26.6603pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,22.5pt)–(-22.5pt,17.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,30pt)–(-17.2361pt,34.4721pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,30pt)–(-25pt,25pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,37.5pt)–(-16.857pt,42.1424pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15pt,37.5pt)–(-27.5pt,32.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,-37.5pt)–(-8.4806pt,-42.4029pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,-37.5pt)–(5pt,-40pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,-30pt)–(-8.7127pt,-34.8507pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,-30pt)–(2.5pt,-32.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,-22.5pt)–(-9.0811pt,-27.2434pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,-22.5pt)–(0pt,-25pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,-15pt)–(-9.7361pt,-19.4721pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,-15pt)–(-2.5pt,-17.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,-7.5pt)–(-11.0355pt,-11.0355pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,-7.5pt)–(-5pt,-10pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,0pt)–(-12.5pt,0pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,0pt)–(-7.5pt,-2.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,7.5pt)–(-11.0355pt,11.0355pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,7.5pt)–(-10pt,5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,15pt)–(-9.7361pt,19.4721pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,15pt)–(-12.5pt,12.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,22.5pt)–(-9.0811pt,27.2434pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,22.5pt)–(-15pt,20pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,30pt)–(-8.7127pt,34.8507pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,30pt)–(-17.5pt,27.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,37.5pt)–(-8.4806pt,42.4029pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7.5pt,37.5pt)–(-20pt,35pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-37.5pt)–(0pt,-42.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-37.5pt)–(12.5pt,-37.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-30pt)–(0pt,-35pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-30pt)–(10pt,-30pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-22.5pt)–(0pt,-27.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-22.5pt)–(7.5pt,-22.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-15pt)–(0pt,-20pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-15pt)–(5pt,-15pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-7.5pt)–(0pt,-12.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-7.5pt)–(2.5pt,-7.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,7.5pt)–(0pt,12.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,7.5pt)–(-2.5pt,7.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,15pt)–(0pt,20pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,15pt)–(-5pt,15pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,22.5pt)–(0pt,27.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,22.5pt)–(-7.5pt,22.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,30pt)–(0pt,35pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,30pt)–(-10pt,30pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,37.5pt)–(0pt,42.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,37.5pt)–(-12.5pt,37.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,-37.5pt)–(8.4806pt,-42.4029pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,-37.5pt)–(20pt,-35pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,-30pt)–(8.7127pt,-34.8507pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,-30pt)–(17.5pt,-27.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,-22.5pt)–(9.0811pt,-27.2434pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,-22.5pt)–(15pt,-20pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,-15pt)–(9.7361pt,-19.4721pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,-15pt)–(12.5pt,-12.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,-7.5pt)–(11.0355pt,-11.0355pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,-7.5pt)–(10pt,-5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,0pt)–(12.5pt,0pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,0pt)–(7.5pt,2.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,7.5pt)–(11.0355pt,11.0355pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,7.5pt)–(5pt,10pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,15pt)–(9.7361pt,19.4721pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,15pt)–(2.5pt,17.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,22.5pt)–(9.0811pt,27.2434pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,22.5pt)–(0pt,25pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,30pt)–(8.7127pt,34.8507pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,30pt)–(-2.5pt,32.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,37.5pt)–(8.4806pt,42.4029pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7.5pt,37.5pt)–(-5pt,40pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,-37.5pt)–(16.857pt,-42.1424pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,-37.5pt)–(27.5pt,-32.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,-30pt)–(17.2361pt,-34.4721pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,-30pt)–(25pt,-25pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,-22.5pt)–(17.7735pt,-26.6603pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,-22.5pt)–(22.5pt,-17.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,-15pt)–(18.5355pt,-18.5355pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,-15pt)–(20pt,-10pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,-7.5pt)–(19.4721pt,-9.7361pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,-7.5pt)–(17.5pt,-2.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,0pt)–(20pt,0pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,0pt)–(15pt,5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,7.5pt)–(19.4721pt,9.7361pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,7.5pt)–(12.5pt,12.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,15pt)–(18.5355pt,18.5355pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,15pt)–(10pt,20pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,22.5pt)–(17.7735pt,26.6603pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,22.5pt)–(7.5pt,27.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,30pt)–(17.2361pt,34.4721pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,30pt)–(5pt,35pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,37.5pt)–(16.857pt,42.1424pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,37.5pt)–(2.5pt,42.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,-37.5pt)–(25.0725pt,-41.7875pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,-37.5pt)–(35pt,-30pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,-30pt)–(25.5pt,-34pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,-30pt)–(32.5pt,-22.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,-22.5pt)–(26.0355pt,-26.0355pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,-22.5pt)–(30pt,-15pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,-15pt)–(26.6603pt,-17.7735pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,-15pt)–(27.5pt,-7.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,-7.5pt)–(27.2434pt,-9.0811pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,-7.5pt)–(25pt,0pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,0pt)–(27.5pt,0pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,0pt)–(22.5pt,7.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,7.5pt)–(27.2434pt,9.0811pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,7.5pt)–(20pt,15pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,15pt)–(26.6603pt,17.7735pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,15pt)–(17.5pt,22.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,22.5pt)–(26.0355pt,26.0355pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,22.5pt)–(15pt,30pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,30pt)–(25.5pt,34pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,30pt)–(12.5pt,37.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,37.5pt)–(25.0725pt,41.7875pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.5pt,37.5pt)–(10pt,45pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,-37.5pt)–(33.1235pt,-41.4043pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,-37.5pt)–(42.5pt,-27.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,-30pt)–(33.5355pt,-33.5355pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,-30pt)–(40pt,-20pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,-22.5pt)–(34pt,-25.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,-22.5pt)–(37.5pt,-12.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,-15pt)–(34.4721pt,-17.2361pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,-15pt)–(35pt,-5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,-7.5pt)–(34.8507pt,-8.7127pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,-7.5pt)–(32.5pt,2.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,0pt)–(35pt,0pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,0pt)–(30pt,10pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,7.5pt)–(34.8507pt,8.7127pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,7.5pt)–(27.5pt,17.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,15pt)–(34.4721pt,17.2361pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,15pt)–(25pt,25pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,22.5pt)–(34pt,25.5pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,22.5pt)–(22.5pt,32.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,30pt)–(33.5355pt,33.5355pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,30pt)–(20pt,40pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,37.5pt)–(33.1235pt,41.4043pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](30pt,37.5pt)–(17.5pt,47.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,-37.5pt)–(41.0355pt,-41.0355pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,-37.5pt)–(50pt,-25pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,-30pt)–(41.4043pt,-33.1235pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,-30pt)–(47.5pt,-17.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,-22.5pt)–(41.7875pt,-25.0725pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,-22.5pt)–(45pt,-10pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,-15pt)–(42.1424pt,-16.857pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,-15pt)–(42.5pt,-2.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,-7.5pt)–(42.4029pt,-8.4806pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,-7.5pt)–(40pt,5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,0pt)–(42.5pt,0pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,0pt)–(37.5pt,12.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,7.5pt)–(42.4029pt,8.4806pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,7.5pt)–(35pt,20pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,15pt)–(42.1424pt,16.857pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,15pt)–(32.5pt,27.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,22.5pt)–(41.7875pt,25.0725pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,22.5pt)–(30pt,35pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,30pt)–(41.4043pt,33.1235pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,30pt)–(27.5pt,42.5pt);
[-to,draw=blue,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,37.5pt)–(41.0355pt,41.0355pt);
[-to,draw=red,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](37.5pt,37.5pt)–(25pt,50pt);

PolarPossible fields of bases for a local space
field covering the Euclidean plane. In both examples, basis vectors
are tangent to coordinate lines; either Cartesian or
polar coordinates.  In the second instance the basis vectors are
undefined at the origin.
While the choice of basis field is arbitrary from an algebraic
perspective, some choices of basis will make certain computations
easier than others. Given a system of coordinates to identify
positions in the manifold, there is a canonical way to define the
local basis field. It is to let the base vectors be the partial
derivatives of the position \(\bf R\) with respect to each
global coordinate.  This yields base vectors which are tangent to coordinate
lines in the manifold.  In <ref>, one example follows Cartesian
coordinate lines, and the other polar coordinate lines. In the polar
case, we have the base vector fields \((\mathbf e_ρ, \mathbf
e_θ)\)[When used as indices \(ρ\) and \(θ\) act as
symbols which the index variables range over. Essentially, \(ρ=1\) and \(θ=2\). They are not index variables themselves.] as basis for
\(T_{M_{\mathsf{p}}}\), with \(\mathbf e_ρ = \partial \mathbf R / \partial ρ\) and \(\mathbf e_θ = \partial \mathbf R / \partial θ\). In the literature one also
encounters expressions which mention directly the infinitesimal variations themselves
\((dρ,dθ)\). However we refrain from using this kind of language.

§.§ Metrics and Index Juggling

An important characteristic of a vector space is its
metric.  The (covariant) metric, noted \(g\), is what defines
the inner product of (local) vectors.
It is a tensor field that takes
two vectors as input and returns a scalar, their inner product.
One defines the contravariant metric \(g'\) as the inverse of the
covariant metric.[In the literature, both metrics are written using the same symbol (typically \(g\)), relying on the context to disambiguate.] This can be specified as
\(g{_i}{_k}g'{^k}{^j}\) = \(δᵢʲ\).
We capture the algebraic structure using the following class, where we make the local vector space an associated type.
The various notations for metrics are shown in <ref>.

*  Then we can embed the metric morphism in Albert as follows:

The metric tensor is symmetric— a fact which can be expressed as its antisymmetric part ([baseline=([yshift=-0.8ex]current bounding box.center)][-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7pt,7.4184pt)–(-6pt,7.4184pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7pt,0pt)–(-6pt,0pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](6pt,3.7092pt)–(13pt,3.7092pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,7.4184pt)–(0pt,7.4184pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,0pt)–(0pt,0pt);
[-,fill=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7pt,3.7092pt)..controls(7pt,4.2615pt)and(6.5523pt,4.7092pt)..(6pt,4.7092pt)..controls(5.4477pt,4.7092pt)and(5pt,4.2615pt)..(5pt,3.7092pt)..controls(5pt,3.1569pt)and(5.4477pt,2.7092pt)..(6pt,2.7092pt)..controls(6.5523pt,2.7092pt)and(7pt,3.1569pt)..(7pt,3.7092pt)–cycle;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](3.06pt,7.0897pt)..controls(5.02pt,6.5767pt)and(6pt,5.4592pt)..(6pt,3.7092pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,7.4184pt)..controls(1.2pt,7.4184pt)and(2.22pt,7.3096pt)..(3.06pt,7.0897pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](3.06pt,0.3287pt)..controls(5.02pt,0.8417pt)and(6pt,1.9592pt)..(6pt,3.7092pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,0pt)..controls(1.2pt,0pt)and(2.22pt,0.1088pt)..(3.06pt,0.3287pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-6pt,7.4184pt)–(0pt,7.4184pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-6pt,0pt)–(0pt,0pt);
[-,draw=black,line width=1.2pt,line cap=butt,line join=miter,dash pattern=](-3pt,8.4184pt)–(-3pt,-1pt)–cycle;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-11.6316pt,9.758pt)–(-9pt,9.758pt)–(-9pt,5.0788pt)–(-11.6316pt,5.0788pt)–cycle;
[anchor=north west,inner sep=0] at (-11.6316pt,9.758pt)\({\scriptstyle i}\)128;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-13.6316pt,11.758pt)–(-7pt,11.758pt)–(-7pt,3.0788pt)–(-13.6316pt,3.0788pt)–cycle;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-12.8617pt,3.0788pt)–(-9pt,3.0788pt)–(-9pt,-3.0788pt)–(-12.8617pt,-3.0788pt)–cycle;
[anchor=north west,inner sep=0] at (-12.8617pt,3.0788pt)\({\scriptstyle j}\)129;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-14.8617pt,5.0788pt)–(-7pt,5.0788pt)–(-7pt,-5.0788pt)–(-14.8617pt,-5.0788pt)–cycle;
) being zero.
The coefficients of the matrix representation of the metric is given by the
inner product of the basis vectors.
For the basis \((\mathbf e_ρ, \mathbf e_θ)\) defined above, the matrix representation of the metric is:
g_𝖯𝗈𝗅𝖺𝗋 =[ρ^2   0
0   1] With this knowledge, we can define an instance for coordinate representations of the \(\mathsf{MetricCategory}\) class:

*  The scalars associated with this additive category are expressions
where the variables ρ and θ occur, and the \(\mathsf{variable}\) function embeds a coordinate name into such expression types:

*  Thus the \(\mathsf{Polar}\) data type
serves triple duty. First, it is the set of variables
used in such expressions. Second it serves to identify the meaning of
coordinates as a parameter in the  type. Third, it is used to construct
a representation of the atomic vector space. For the matrix category, an
object is a set indexing the base vectors, so \(\mathsf{Atom}\) is a simple wrapper around
the coordinate type:

One can contrast the type of metrics with that of \(η\) and
\(ϵ\). First, only the tangent space \(T_{z}\) has a metric, while
every object has a dual.  Indeed, \(η\) and \(ϵ\) are
both realised as \(δ\) in the tensor instance, and are an identity
operation in Einstein notation. They have no geometric significance
and thus can be defined generically. In contrast, metrics are tightly
associated with the geometric properties of the space that they
operate upon. Second, the metrics do not dualise objects, whereas
\(η\) and \(ϵ\) do.  Accordingly, our diagrammatic
notation does not make any special mark on the input/output wires of
Yet, metrics satisfy a variant of the snake laws: [baseline=([yshift=-0.8ex]current bounding box.center)][-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-19pt,0pt)–(-12pt,0pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-19pt,-12.5pt)–(-12pt,-12.5pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](6pt,-2.5pt)–(13pt,-2.5pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](6pt,-15pt)–(13pt,-15pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-6pt,0pt)–(-6pt,0pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-6pt,-10pt)–(-6pt,-10pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-6pt,-15pt)–(-6pt,-15pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,0pt)–(0pt,0pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-5pt)–(0pt,-5pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-15pt)–(0pt,-15pt);
[-,fill=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7pt,-2.5pt)..controls(7pt,-1.9477pt)and(6.5523pt,-1.5pt)..(6pt,-1.5pt)..controls(5.4477pt,-1.5pt)and(5pt,-1.9477pt)..(5pt,-2.5pt)..controls(5pt,-3.0523pt)and(5.4477pt,-3.5pt)..(6pt,-3.5pt)..controls(6.5523pt,-3.5pt)and(7pt,-3.0523pt)..(7pt,-2.5pt)–cycle;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](3.06pt,-0.0675pt)..controls(5.02pt,-0.225pt)and(6pt,-0.75pt)..(6pt,-2.5pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,0pt)..controls(1.2pt,0pt)and(2.22pt,0pt)..(3.06pt,-0.0675pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](3.06pt,-4.9325pt)..controls(5.02pt,-4.775pt)and(6pt,-4.25pt)..(6pt,-2.5pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-5pt)..controls(1.2pt,-5pt)and(2.22pt,-5pt)..(3.06pt,-4.9325pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-15pt)–(6pt,-15pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-6pt,0pt)–(0pt,0pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-6pt,-10pt)..controls(-2pt,-10pt)and(-4pt,-5pt)..(0pt,-5pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-6pt,-15pt)–(0pt,-15pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-12pt,0pt)–(-6pt,0pt);
[-,fill=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-11pt,-12.5pt)..controls(-11pt,-11.9477pt)and(-11.4477pt,-11.5pt)..(-12pt,-11.5pt)..controls(-12.5523pt,-11.5pt)and(-13pt,-11.9477pt)..(-13pt,-12.5pt)..controls(-13pt,-13.0523pt)and(-12.5523pt,-13.5pt)..(-12pt,-13.5pt)..controls(-11.4477pt,-13.5pt)and(-11pt,-13.0523pt)..(-11pt,-12.5pt)–cycle;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-9.06pt,-10.0675pt)..controls(-8.22pt,-10pt)and(-7.2pt,-10pt)..(-6pt,-10pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-12pt,-12.5pt)..controls(-12pt,-10.75pt)and(-11.02pt,-10.225pt)..(-9.06pt,-10.0675pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-9.06pt,-14.9325pt)..controls(-8.22pt,-15pt)and(-7.2pt,-15pt)..(-6pt,-15pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-12pt,-12.5pt)..controls(-12pt,-14.25pt)and(-11.02pt,-14.775pt)..(-9.06pt,-14.9325pt);
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-23.6316pt,2.3396pt)–(-21pt,2.3396pt)–(-21pt,-2.3396pt)–(-23.6316pt,-2.3396pt)–cycle;
[anchor=north west,inner sep=0] at (-23.6316pt,2.3396pt)\({\scriptstyle i}\)130;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-25.6316pt,4.3396pt)–(-19pt,4.3396pt)–(-19pt,-4.3396pt)–(-25.6316pt,-4.3396pt)–cycle;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15pt,-11.9212pt)–(18.8617pt,-11.9212pt)–(18.8617pt,-18.0788pt)–(15pt,-18.0788pt)–cycle;
[anchor=north west,inner sep=0] at (15pt,-11.9212pt)\({\scriptstyle j}\)131;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](13pt,-9.9212pt)–(20.8617pt,-9.9212pt)–(20.8617pt,-20.0788pt)–(13pt,-20.0788pt)–cycle;
is equal to [baseline=([yshift=-0.8ex]current bounding box.center)][-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-14pt,5pt)–(-7pt,5pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-14pt,0pt)–(-7pt,0pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7pt,5pt)–(8pt,5pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7pt,0pt)–(8pt,0pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7pt,5pt)–(0pt,5pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,5pt)–(1pt,5pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,0pt)–(1pt,0pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](1pt,5pt)..controls(5pt,5pt)and(3pt,0pt)..(7pt,0pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](1pt,0pt)..controls(5pt,0pt)and(3pt,5pt)..(7pt,5pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,5pt)–(0pt,5pt);
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=on 0.4pt off 1pt](0pt,5pt)–(0pt,5pt)–(0pt,0pt)–(0pt,0pt)–cycle;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=on 0.4pt off 1pt](-3pt,8pt)–(3pt,8pt)–(3pt,-3pt)–(-3pt,-3pt)–cycle;
[-,fill=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](1pt,0pt)..controls(1pt,0.5523pt)and(0.5523pt,1pt)..(0pt,1pt)..controls(-0.5523pt,1pt)and(-1pt,0.5523pt)..(-1pt,0pt)..controls(-1pt,-0.5523pt)and(-0.5523pt,-1pt)..(0pt,-1pt)..controls(0.5523pt,-1pt)and(1pt,-0.5523pt)..(1pt,0pt)–cycle;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7pt,5pt)–(-7pt,5pt);
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=on 0.4pt off 1pt](-7pt,5pt)–(-7pt,5pt)–(-7pt,0pt)–(-7pt,0pt)–cycle;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=on 0.4pt off 1pt](-10pt,8pt)–(-4pt,8pt)–(-4pt,-3pt)–(-10pt,-3pt)–cycle;
[-,fill=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-6pt,0pt)..controls(-6pt,0.5523pt)and(-6.4477pt,1pt)..(-7pt,1pt)..controls(-7.5523pt,1pt)and(-8pt,0.5523pt)..(-8pt,0pt)..controls(-8pt,-0.5523pt)and(-7.5523pt,-1pt)..(-7pt,-1pt)..controls(-6.4477pt,-1pt)and(-6pt,-0.5523pt)..(-6pt,0pt)–cycle;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-18.6316pt,7.3396pt)–(-16pt,7.3396pt)–(-16pt,2.6604pt)–(-18.6316pt,2.6604pt)–cycle;
[anchor=north west,inner sep=0] at (-18.6316pt,7.3396pt)\({\scriptstyle i}\)132;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-20.6316pt,9.3396pt)–(-14pt,9.3396pt)–(-14pt,0.6604pt)–(-20.6316pt,0.6604pt)–cycle;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](10pt,3.0788pt)–(13.8617pt,3.0788pt)–(13.8617pt,-3.0788pt)–(10pt,-3.0788pt)–cycle;
[anchor=north west,inner sep=0] at (10pt,3.0788pt)\({\scriptstyle j}\)133;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](8pt,5.0788pt)–(15.8617pt,5.0788pt)–(15.8617pt,-5.0788pt)–(8pt,-5.0788pt)–cycle;

By combining the compact closed categorical structure with metrics,
one can construct the following two morphisms:

*  (In diagram form \(\mathsf{juggleUp}\) is [baseline=([yshift=-0.8ex]current bounding box.center)][-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-51pt,0pt)–(-44pt,0pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,0pt)–(7pt,0pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-44pt,0pt)–(-37pt,0pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-44pt,-12.5pt)–(-37pt,-12.5pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-31pt,0pt)–(-31pt,0pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-31pt,-10pt)–(-31pt,-10pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-31pt,-15pt)–(-31pt,-15pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-25pt,0pt)–(-25pt,0pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-25pt,-5pt)–(-25pt,-5pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-25pt,-15pt)–(-25pt,-15pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-19pt,0pt)–(-19pt,0pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-19pt,-5pt)–(-19pt,-5pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-19pt,-15pt)–(-19pt,-15pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-13pt,0pt)–(-13pt,0pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-13pt,-10pt)–(-13pt,-10pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-13pt,-15pt)–(-13pt,-15pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7pt,0pt)–(0pt,0pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7pt,-12.5pt)–(0pt,-12.5pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,0pt)–(0pt,0pt);
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=on 0.4pt off 1pt](0pt,0pt)–(0pt,0pt)–(0pt,-12.5pt)–(0pt,-12.5pt)–cycle;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=on 0.4pt off 1pt](-3pt,3pt)–(3pt,3pt)–(3pt,-15.5pt)–(-3pt,-15.5pt)–cycle;
[-,fill=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](1pt,-12.5pt)..controls(1pt,-11.9477pt)and(0.5523pt,-11.5pt)..(0pt,-11.5pt)..controls(-0.5523pt,-11.5pt)and(-1pt,-11.9477pt)..(-1pt,-12.5pt)..controls(-1pt,-13.0523pt)and(-0.5523pt,-13.5pt)..(0pt,-13.5pt)..controls(0.5523pt,-13.5pt)and(1pt,-13.0523pt)..(1pt,-12.5pt)–cycle;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-13pt,0pt)–(-7pt,0pt);
[-,fill=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-6pt,-12.5pt)..controls(-6pt,-11.9477pt)and(-6.4477pt,-11.5pt)..(-7pt,-11.5pt)..controls(-7.5523pt,-11.5pt)and(-8pt,-11.9477pt)..(-8pt,-12.5pt)..controls(-8pt,-13.0523pt)and(-7.5523pt,-13.5pt)..(-7pt,-13.5pt)..controls(-6.4477pt,-13.5pt)and(-6pt,-13.0523pt)..(-6pt,-12.5pt)–cycle;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-9.94pt,-10.0675pt)..controls(-7.98pt,-10.225pt)and(-7pt,-10.75pt)..(-7pt,-12.5pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-13pt,-10pt)..controls(-11.8pt,-10pt)and(-10.78pt,-10pt)..(-9.94pt,-10.0675pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-9.94pt,-14.9325pt)..controls(-7.98pt,-14.775pt)and(-7pt,-14.25pt)..(-7pt,-12.5pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-13pt,-15pt)..controls(-11.8pt,-15pt)and(-10.78pt,-15pt)..(-9.94pt,-14.9325pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-19pt,0pt)–(-13pt,0pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-19pt,-5pt)..controls(-15pt,-5pt)and(-17pt,-10pt)..(-13pt,-10pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-19pt,-15pt)–(-13pt,-15pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-25pt,0pt)..controls(-21pt,0pt)and(-23pt,-5pt)..(-19pt,-5pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-25pt,-5pt)..controls(-21pt,-5pt)and(-23pt,0pt)..(-19pt,0pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-25pt,-15pt)–(-19pt,-15pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-31pt,0pt)–(-25pt,0pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-31pt,-10pt)..controls(-27pt,-10pt)and(-29pt,-5pt)..(-25pt,-5pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-31pt,-15pt)–(-25pt,-15pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37pt,0pt)–(-31pt,0pt);
[to-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-34.06pt,-10.0675pt)..controls(-33.22pt,-10pt)and(-32.2pt,-10pt)..(-31pt,-10pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37pt,-12.5pt)..controls(-37pt,-10.75pt)and(-36.02pt,-10.225pt)..(-34.06pt,-10.0675pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-34.06pt,-14.9325pt)..controls(-33.22pt,-15pt)and(-32.2pt,-15pt)..(-31pt,-15pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-37pt,-12.5pt)..controls(-37pt,-14.25pt)and(-36.02pt,-14.775pt)..(-34.06pt,-14.9325pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-44pt,0pt)–(-44pt,0pt);
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=on 0.4pt off 1pt](-44pt,0pt)–(-44pt,0pt)–(-44pt,-12.5pt)–(-44pt,-12.5pt)–cycle;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=on 0.4pt off 1pt](-47pt,3pt)–(-41pt,3pt)–(-41pt,-15.5pt)–(-47pt,-15.5pt)–cycle;
[-,fill=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-43pt,-12.5pt)..controls(-43pt,-11.9477pt)and(-43.4477pt,-11.5pt)..(-44pt,-11.5pt)..controls(-44.5523pt,-11.5pt)and(-45pt,-11.9477pt)..(-45pt,-12.5pt)..controls(-45pt,-13.0523pt)and(-44.5523pt,-13.5pt)..(-44pt,-13.5pt)..controls(-43.4477pt,-13.5pt)and(-43pt,-13.0523pt)..(-43pt,-12.5pt)–cycle;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-55.6316pt,2.3396pt)–(-53pt,2.3396pt)–(-53pt,-2.3396pt)–(-55.6316pt,-2.3396pt)–cycle;
[anchor=north west,inner sep=0] at (-55.6316pt,2.3396pt)\({\scriptstyle i}\)134;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-57.6316pt,4.3396pt)–(-51pt,4.3396pt)–(-51pt,-4.3396pt)–(-57.6316pt,-4.3396pt)–cycle;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](9pt,3.0788pt)–(12.8617pt,3.0788pt)–(12.8617pt,-3.0788pt)–(9pt,-3.0788pt)–cycle;
[anchor=north west,inner sep=0] at (9pt,3.0788pt)\({\scriptstyle j}\)135;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7pt,5.0788pt)–(14.8617pt,5.0788pt)–(14.8617pt,-5.0788pt)–(7pt,-5.0788pt)–cycle;
The existence of such morphisms have a direct consequence
on Einstein notation: any subscript index \(\mathsf{P}\mskip 3.0muz\mskip 3.0mu\mathsf{r}\mskip 3.0mu\mathsf{a}\) can be
raised into \(\mathsf{P}\mskip 3.0muz\mskip 3.0mu\mathsf{r}\mskip 3.0mu\dual{\mathsf{a}}\), and vice versa. In other
words, any index can be used as super or sub-script as needed. As a
first example, given a vector \(v^{i}\), the
covector \(v_i\) is a shorthand for \(v^k
g_{ki}\). It is important to note that the position of the indices
really changes the semantics: the actual numbers (the components) of a
vector \(v^{i}\) are very different from those of the corresponding
covector \(v_i\) unless the metric is trivial (as in global Cartesian
coordinates). As another example, assuming a tensor \(\mathsf{t}\mskip 3.0mu\mathnormal{:}\mskip 3.0muT_{z}\mskip 3.0mu\mathnormal{⊗}\mskip 3.0muT_{z}\mskip 1.0mu\overset{z}{\leadsto }\mskip 1.0muT_{z}\), the expression \(t_{ijl}\) is a shorthand for
\(t_{ij}^{k} g_{kl}\).

In the mathematical praxis, raising and lowering indices is also
referred to as index juggling.  In Albert, index juggling is
realised explicitly: our recent example can be written
\(\mathsf{t}\mskip 3.0mu_{\mathsf{i}}\mskip 3.0mu_{\mathsf{j}}\mskip 3.0mu\allowbreak{}\mathnormal{(}\mskip 0.0mu\mathsf{raise}\mskip 3.0mu_{\mathsf{l}}\mskip 0.0mu\mathnormal{)}\allowbreak{}\).  The raising and lowering
functions have the following types:

§.§ Change of global coordinate system
As we have seen, Einstein
notation is carefully set up to work without reference to the system
of coordinates used to identify positions in the manifold. In
practice, this means that one can reason about tensors, their
derivatives (<ref>), etc. without worrying about the choice
of coordinates. It is only at the very last stage that one chooses a
system of global coordinates where the data of the problem is easy to express
and calculate with. We have seen that one can convert between bases by
applying the appropriate transformations on the representation matrices (see <ref>).
For canonical bases (defined as partial derivatives of the positions), the
\(\mathsf{transform}\) function is obtained by composing with
In our running example, we have at our disposal the Jacobian \(J(T)\) and its inverse \(J(\dual T)\) to convert between polar and Cartesian
global coordinates with \(J(\dual T) = \) \(\left[\begin{array}{cc}\cos{θ}&\sin{θ}\\ρ^{-1}\sin{θ}&-ρ^{-1}\cos{θ}\end{array}\right]\).

As an illustration, let \(\tilde v_{\mathsf{Polar}}\) =
\(\left[\begin{array}{cc}-ρ^{-1}&0\end{array}\right]\) be the local coordinates of a co-vector field in the polar tangent basis
\(\tilde v_{\mathsf{Polar}}\)\(\mathnormal{:}\mskip 3.0muT_{M_{\mathsf{Polar}}}\mskip 1.0mu\overset{M_{\mathsf{Polar}}}{\leadsto }\mskip 1.0mu\mathbf{1}\).
Then the local coordinates of the co-vector field in the Cartesian tangent
basis are given by \({v_{\mathsf{Cartesian}}}_i = J(T)_i^j {v_{\mathsf{Polar}}}_j\), and we have: \(\tilde v_{\mathsf{Cartesian}}\) = \(\left[\begin{array}{cc}-ρ^{-1}\cos{θ}&-ρ^{-1}\sin{θ}\end{array}\right]\).

[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.32pt,13.1709pt)–(-19.32pt,13.1709pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.32pt,5.7525pt)–(-19.32pt,5.7525pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](4pt,5.7525pt)–(7pt,5.7525pt);
[-,draw=black,line width=0.8pt,line cap=butt,line join=miter,dash pattern=](-15.32pt,14.1709pt)..controls(-15.32pt,15.8277pt)and(-13.9768pt,17.1709pt)..(-12.32pt,17.1709pt)–(-3pt,17.1709pt)..controls(-1.3431pt,17.1709pt)and(0pt,15.8277pt)..(0pt,14.1709pt)–(0pt,0pt)..controls(0pt,-1.6569pt)and(-1.3431pt,-3pt)..(-3pt,-3pt)–(-12.32pt,-3pt)..controls(-13.9768pt,-3pt)and(-15.32pt,-1.6569pt)..(-15.32pt,0pt)–cycle;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15.32pt,5.7525pt)–(-12.32pt,5.7525pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15.32pt,13.1709pt)–(-15.32pt,13.1709pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-3pt,5.7525pt)–(0pt,5.7525pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-19.32pt,13.1709pt)–(-15.32pt,13.1709pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-19.32pt,5.7525pt)–(-15.32pt,5.7525pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,5.7525pt)–(4pt,5.7525pt);
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-9.32pt,8.505pt)–(-6pt,8.505pt)–(-6pt,3pt)–(-9.32pt,3pt)–cycle;
[anchor=north west,inner sep=0] at (-9.32pt,8.505pt)\(t\)137;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-12.32pt,9.005pt)..controls(-12.32pt,10.3857pt)and(-11.2007pt,11.505pt)..(-9.82pt,11.505pt)–(-5.5pt,11.505pt)..controls(-4.1193pt,11.505pt)and(-3pt,10.3857pt)..(-3pt,9.005pt)–(-3pt,2.5pt)..controls(-3pt,1.1193pt)and(-4.1193pt,0pt)..(-5.5pt,0pt)–(-9.82pt,0pt)..controls(-11.2007pt,0pt)and(-12.32pt,1.1193pt)..(-12.32pt,2.5pt)–cycle;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-3pt,5.7525pt)–(-3pt,5.7525pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-12.32pt,5.7525pt)–(-12.32pt,5.7525pt);
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-26.9516pt,15.5105pt)–(-24.32pt,15.5105pt)–(-24.32pt,10.8313pt)–(-26.9516pt,10.8313pt)–cycle;
[anchor=north west,inner sep=0] at (-26.9516pt,15.5105pt)\({\scriptstyle i}\)138;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-28.9516pt,17.5105pt)–(-22.32pt,17.5105pt)–(-22.32pt,8.8313pt)–(-28.9516pt,8.8313pt)–cycle;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-28.1817pt,8.8313pt)–(-24.32pt,8.8313pt)–(-24.32pt,2.6737pt)–(-28.1817pt,2.6737pt)–cycle;
[anchor=north west,inner sep=0] at (-28.1817pt,8.8313pt)\({\scriptstyle j}\)139;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30.1817pt,10.8313pt)–(-22.32pt,10.8313pt)–(-22.32pt,0.6737pt)–(-30.1817pt,0.6737pt)–cycle;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](9pt,8.2436pt)–(13.3398pt,8.2436pt)–(13.3398pt,3.2614pt)–(9pt,3.2614pt)–cycle;
[anchor=north west,inner sep=0] at (9pt,8.2436pt)\({\scriptstyle k}\)140;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7pt,10.2436pt)–(15.3398pt,10.2436pt)–(15.3398pt,1.2614pt)–(7pt,1.2614pt)–cycle;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.32pt,13.1709pt)–(-19.32pt,13.1709pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.32pt,5.7525pt)–(-19.32pt,5.7525pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](4pt,5.7525pt)–(7pt,5.7525pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15.32pt,17.1709pt)–(0pt,17.1709pt)–(0pt,-3pt)–(-15.32pt,-3pt)–cycle;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15.32pt,5.7525pt)–(-12.32pt,5.7525pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15.32pt,13.1709pt)–(-15.32pt,13.1709pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-3pt,5.7525pt)–(0pt,5.7525pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-19.32pt,13.1709pt)–(-15.32pt,13.1709pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-19.32pt,5.7525pt)–(-15.32pt,5.7525pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,5.7525pt)–(4pt,5.7525pt);
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-9.32pt,8.505pt)–(-6pt,8.505pt)–(-6pt,3pt)–(-9.32pt,3pt)–cycle;
[anchor=north west,inner sep=0] at (-9.32pt,8.505pt)\(t\)141;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-12.32pt,9.005pt)..controls(-12.32pt,10.3857pt)and(-11.2007pt,11.505pt)..(-9.82pt,11.505pt)–(-5.5pt,11.505pt)..controls(-4.1193pt,11.505pt)and(-3pt,10.3857pt)..(-3pt,9.005pt)–(-3pt,2.5pt)..controls(-3pt,1.1193pt)and(-4.1193pt,0pt)..(-5.5pt,0pt)–(-9.82pt,0pt)..controls(-11.2007pt,0pt)and(-12.32pt,1.1193pt)..(-12.32pt,2.5pt)–cycle;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-3pt,5.7525pt)–(-3pt,5.7525pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-12.32pt,5.7525pt)–(-12.32pt,5.7525pt);
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-26.9516pt,15.5105pt)–(-24.32pt,15.5105pt)–(-24.32pt,10.8313pt)–(-26.9516pt,10.8313pt)–cycle;
[anchor=north west,inner sep=0] at (-26.9516pt,15.5105pt)\({\scriptstyle i}\)142;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-28.9516pt,17.5105pt)–(-22.32pt,17.5105pt)–(-22.32pt,8.8313pt)–(-28.9516pt,8.8313pt)–cycle;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-28.1817pt,8.8313pt)–(-24.32pt,8.8313pt)–(-24.32pt,2.6737pt)–(-28.1817pt,2.6737pt)–cycle;
[anchor=north west,inner sep=0] at (-28.1817pt,8.8313pt)\({\scriptstyle j}\)143;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30.1817pt,10.8313pt)–(-22.32pt,10.8313pt)–(-22.32pt,0.6737pt)–(-30.1817pt,0.6737pt)–cycle;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](9pt,8.2436pt)–(13.3398pt,8.2436pt)–(13.3398pt,3.2614pt)–(9pt,3.2614pt)–cycle;
[anchor=north west,inner sep=0] at (9pt,8.2436pt)\({\scriptstyle k}\)144;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7pt,10.2436pt)–(15.3398pt,10.2436pt)–(15.3398pt,1.2614pt)–(7pt,1.2614pt)–cycle;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-13pt,0pt)–(-6pt,0pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-13pt,-7.4184pt)–(-6pt,-7.4184pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-3.7092pt)–(7pt,-3.7092pt);
[-,draw=black,fill= gray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-6pt,1pt)..controls(-2pt,1pt)and(0pt,-1.7092pt)..(0pt,-3.7092pt)..controls(0pt,-5.7092pt)and(-2pt,-8.4184pt)..(-6pt,-8.4184pt)–cycle;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-17.6316pt,2.3396pt)–(-15pt,2.3396pt)–(-15pt,-2.3396pt)–(-17.6316pt,-2.3396pt)–cycle;
[anchor=north west,inner sep=0] at (-17.6316pt,2.3396pt)\({\scriptstyle i}\)145;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-19.6316pt,4.3396pt)–(-13pt,4.3396pt)–(-13pt,-4.3396pt)–(-19.6316pt,-4.3396pt)–cycle;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-18.8617pt,-4.3396pt)–(-15pt,-4.3396pt)–(-15pt,-10.4972pt)–(-18.8617pt,-10.4972pt)–cycle;
[anchor=north west,inner sep=0] at (-18.8617pt,-4.3396pt)\({\scriptstyle j}\)146;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-20.8617pt,-2.3396pt)–(-13pt,-2.3396pt)–(-13pt,-12.4972pt)–(-20.8617pt,-12.4972pt)–cycle;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](9pt,-1.2181pt)–(13.3398pt,-1.2181pt)–(13.3398pt,-6.2003pt)–(9pt,-6.2003pt)–cycle;
[anchor=north west,inner sep=0] at (9pt,-1.2181pt)\({\scriptstyle k}\)147;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7pt,0.7819pt)–(15.3398pt,0.7819pt)–(15.3398pt,-8.2003pt)–(7pt,-8.2003pt)–cycle;
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-13pt,-3.7092pt)–(-6pt,-3.7092pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,0pt)–(1pt,0pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-7.4184pt)–(1pt,-7.4184pt);
[-,fill=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-5pt,-3.7092pt)..controls(-5pt,-3.1569pt)and(-5.4477pt,-2.7092pt)..(-6pt,-2.7092pt)..controls(-6.5523pt,-2.7092pt)and(-7pt,-3.1569pt)..(-7pt,-3.7092pt)..controls(-7pt,-4.2615pt)and(-6.5523pt,-4.7092pt)..(-6pt,-4.7092pt)..controls(-5.4477pt,-4.7092pt)and(-5pt,-4.2615pt)..(-5pt,-3.7092pt)–cycle;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-3.06pt,-0.3287pt)..controls(-2.22pt,-0.1088pt)and(-1.2pt,0pt)..(0pt,0pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-6pt,-3.7092pt)..controls(-6pt,-1.9592pt)and(-5.02pt,-0.8417pt)..(-3.06pt,-0.3287pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-3.06pt,-7.0897pt)..controls(-2.22pt,-7.3096pt)and(-1.2pt,-7.4184pt)..(0pt,-7.4184pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-6pt,-3.7092pt)..controls(-6pt,-5.4592pt)and(-5.02pt,-6.5767pt)..(-3.06pt,-7.0897pt);
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](3pt,2.3396pt)–(5.6316pt,2.3396pt)–(5.6316pt,-2.3396pt)–(3pt,-2.3396pt)–cycle;
[anchor=north west,inner sep=0] at (3pt,2.3396pt)\({\scriptstyle i}\)148;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](1pt,4.3396pt)–(7.6316pt,4.3396pt)–(7.6316pt,-4.3396pt)–(1pt,-4.3396pt)–cycle;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](3pt,-4.3396pt)–(6.8617pt,-4.3396pt)–(6.8617pt,-10.4972pt)–(3pt,-10.4972pt)–cycle;
[anchor=north west,inner sep=0] at (3pt,-4.3396pt)\({\scriptstyle j}\)149;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](1pt,-2.3396pt)–(8.8617pt,-2.3396pt)–(8.8617pt,-12.4972pt)–(1pt,-12.4972pt)–cycle;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7pt,0pt)–(-6pt,0pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7pt,-7.4184pt)–(-6pt,-7.4184pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-3.7092pt)–(7pt,-3.7092pt);
[-,fill=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](1pt,-3.7092pt)..controls(1pt,-3.1569pt)and(0.5523pt,-2.7092pt)..(0pt,-2.7092pt)..controls(-0.5523pt,-2.7092pt)and(-1pt,-3.1569pt)..(-1pt,-3.7092pt)..controls(-1pt,-4.2615pt)and(-0.5523pt,-4.7092pt)..(0pt,-4.7092pt)..controls(0.5523pt,-4.7092pt)and(1pt,-4.2615pt)..(1pt,-3.7092pt)–cycle;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-2.94pt,-0.3287pt)..controls(-0.98pt,-0.8417pt)and(-0pt,-1.9592pt)..(0pt,-3.7092pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-6pt,0pt)..controls(-4.8pt,0pt)and(-3.78pt,-0.1088pt)..(-2.94pt,-0.3287pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-2.94pt,-7.0897pt)..controls(-0.98pt,-6.5767pt)and(-0pt,-5.4592pt)..(0pt,-3.7092pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-6pt,-7.4184pt)..controls(-4.8pt,-7.4184pt)and(-3.78pt,-7.3096pt)..(-2.94pt,-7.0897pt);
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-11.6316pt,2.3396pt)–(-9pt,2.3396pt)–(-9pt,-2.3396pt)–(-11.6316pt,-2.3396pt)–cycle;
[anchor=north west,inner sep=0] at (-11.6316pt,2.3396pt)\({\scriptstyle i}\)150;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-13.6316pt,4.3396pt)–(-7pt,4.3396pt)–(-7pt,-4.3396pt)–(-13.6316pt,-4.3396pt)–cycle;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-12.8617pt,-4.3396pt)–(-9pt,-4.3396pt)–(-9pt,-10.4972pt)–(-12.8617pt,-10.4972pt)–cycle;
[anchor=north west,inner sep=0] at (-12.8617pt,-4.3396pt)\({\scriptstyle j}\)151;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-14.8617pt,-2.3396pt)–(-7pt,-2.3396pt)–(-7pt,-12.4972pt)–(-14.8617pt,-12.4972pt)–cycle;

\(\mathnormal{∇}\mskip 3.0mu\mathsf{t}\)   \(\mathnormal{∂}\mskip 3.0mu\mathsf{t}\)   \(Γ\)   \(\mathsf{g'}\)   \(\mathsf{g}\)
\(∇{_i}t{_j}{^k}\)   \(∂{_i}t{_j}{^k}\)   \(Γ{_i}{_j}{^k}\)   \(g'{^i}{^j}\)   \(g{_i}{_j}\)
\(T_{z}\mskip 3.0mu\mathnormal{⊗}\mskip 3.0muT_{z}\mskip 1.0mu\overset{z}{\leadsto }\mskip 1.0muT_{z}\)   \(T_{z}\mskip 3.0mu\mathnormal{⊗}\mskip 3.0muT_{z}\mskip 1.0mu\overset{z}{\leadsto }\mskip 1.0muT_{z}\)   \(T_{z}\mskip 3.0mu\mathnormal{⊗}\mskip 3.0muT_{z}\mskip 1.0mu\overset{z}{\leadsto }\mskip 1.0muT_{z}\)   \(\mathbf{1}\mskip 1.0mu\overset{z}{\leadsto }\mskip 1.0muT_{z}\mskip 3.0mu\mathnormal{⊗}\mskip 3.0muT_{z}\)   \(T_{z}\mskip 3.0mu\mathnormal{⊗}\mskip 3.0muT_{z}\mskip 1.0mu\overset{z}{\leadsto }\mskip 1.0mu\mathbf{1}\)
Tensor field primitives in various notations, and their types.

§.§ Spatial Derivatives

The local vector space can change from position to position,
but it is assumed to vary smoothly. One says that a connection is defined between neighbouring spaces.
This means that we can take the
derivative of tensor fields with respect to position.  Considering the
simplest case, the derivative of a scalar field \(\mathsf{s}\) is a covector field: its
gradient. That is, given a direction vector \(\vec v\), the gradient will return the slope of
\(\mathsf{s}\) in the \(\vec v\) direction.
In general, the spatial derivative of a tensor takes a
vector argument and returns the variation in this direction.
So the derivative of a tensor field is itself a tensor field, whose
(covariant) order is one more than its
argument, and for this reason the spatial derivative of tensors is
called the covariant derivative.
We capture
this in the following class, which signals the presence of a connection (and spatial derivative) in a category.

*  Accordingly, in Einstein notation, the covariant
derivative uses an additional (lower) index.

*  The actual implementation is too involved to present just yet, and deferred to <ref>.
In the diagrammatic notation we represent the covariant derivative as a thick
box around the tensor whose derivative is taken.
This box adds an input wire for the additional input vector, and propagates the wires of the tensor
which it encloses, reflecting the propagation of the types \(\mathsf{a}\) and \(\mathsf{b}\) in the type of \(∇\).
In <ref> we illustrate with a derivative
applied to a tensor of order (1,1), but it can be applied to
any morphism, with arbitrary domain and codomain—
and hence to tensors of arbitrary order.
For instance, the covariant derivative of a tensor \(\mathsf{t}\) of order (2,2)
is written \(∇{_i}t{_j}{_k}{^l}{^m}\) or
[baseline=([yshift=-0.8ex]current bounding box.center)][-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.32pt,16.8517pt)–(-19.32pt,16.8517pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.32pt,6.8517pt)–(-19.32pt,6.8517pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-22.32pt,-0.7181pt)–(-19.32pt,-0.7181pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](4pt,6.1336pt)–(7pt,6.1336pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](4pt,0pt)–(7pt,0pt);
[-,draw=black,line width=0.8pt,line cap=butt,line join=miter,dash pattern=](-15.32pt,17.8517pt)..controls(-15.32pt,19.5086pt)and(-13.9768pt,20.8517pt)..(-12.32pt,20.8517pt)–(-3pt,20.8517pt)..controls(-1.3431pt,20.8517pt)and(0pt,19.5086pt)..(0pt,17.8517pt)–(0pt,-4.7181pt)..controls(0pt,-6.375pt)and(-1.3431pt,-7.7181pt)..(-3pt,-7.7181pt)–(-12.32pt,-7.7181pt)..controls(-13.9768pt,-7.7181pt)and(-15.32pt,-6.375pt)..(-15.32pt,-4.7181pt)–cycle;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15.32pt,6.8517pt)–(-12.32pt,6.8517pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15.32pt,-0.7181pt)–(-12.32pt,-0.7181pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-15.32pt,16.8517pt)–(-15.32pt,16.8517pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-3pt,6.1336pt)–(0pt,6.1336pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-3pt,0pt)–(0pt,0pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-19.32pt,16.8517pt)–(-15.32pt,16.8517pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-19.32pt,6.8517pt)–(-15.32pt,6.8517pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-19.32pt,-0.7181pt)–(-15.32pt,-0.7181pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,6.1336pt)–(4pt,6.1336pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,0pt)–(4pt,0pt);
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-9.32pt,5.8193pt)–(-6pt,5.8193pt)–(-6pt,0.3143pt)–(-9.32pt,0.3143pt)–cycle;
[anchor=north west,inner sep=0] at (-9.32pt,5.8193pt)\(t\)154;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-12.32pt,8.3517pt)..controls(-12.32pt,9.7324pt)and(-11.2007pt,10.8517pt)..(-9.82pt,10.8517pt)–(-5.5pt,10.8517pt)..controls(-4.1193pt,10.8517pt)and(-3pt,9.7324pt)..(-3pt,8.3517pt)–(-3pt,-2.2181pt)..controls(-3pt,-3.5989pt)and(-4.1193pt,-4.7181pt)..(-5.5pt,-4.7181pt)–(-9.82pt,-4.7181pt)..controls(-11.2007pt,-4.7181pt)and(-12.32pt,-3.5989pt)..(-12.32pt,-2.2181pt)–cycle;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-3pt,6.1336pt)–(-3pt,6.1336pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-3pt,0pt)–(-3pt,0pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-12.32pt,6.8517pt)–(-12.32pt,6.8517pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-12.32pt,-0.7181pt)–(-12.32pt,-0.7181pt);
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-26.9516pt,19.1914pt)–(-24.32pt,19.1914pt)–(-24.32pt,14.5121pt)–(-26.9516pt,14.5121pt)–cycle;
[anchor=north west,inner sep=0] at (-26.9516pt,19.1914pt)\({\scriptstyle i}\)155;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-28.9516pt,21.1914pt)–(-22.32pt,21.1914pt)–(-22.32pt,12.5121pt)–(-28.9516pt,12.5121pt)–cycle;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-28.1817pt,9.9305pt)–(-24.32pt,9.9305pt)–(-24.32pt,3.773pt)–(-28.1817pt,3.773pt)–cycle;
[anchor=north west,inner sep=0] at (-28.1817pt,9.9305pt)\({\scriptstyle j}\)156;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30.1817pt,11.9305pt)–(-22.32pt,11.9305pt)–(-22.32pt,1.773pt)–(-30.1817pt,1.773pt)–cycle;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-28.6598pt,1.773pt)–(-24.32pt,1.773pt)–(-24.32pt,-3.2093pt)–(-28.6598pt,-3.2093pt)–cycle;
[anchor=north west,inner sep=0] at (-28.6598pt,1.773pt)\({\scriptstyle k}\)157;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-30.6598pt,3.773pt)–(-22.32pt,3.773pt)–(-22.32pt,-5.2093pt)–(-30.6598pt,-5.2093pt)–cycle;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](9pt,8.6594pt)–(11.5769pt,8.6594pt)–(11.5769pt,3.6078pt)–(9pt,3.6078pt)–cycle;
[anchor=north west,inner sep=0] at (9pt,8.6594pt)\({\scriptstyle l}\)158;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7pt,10.6594pt)–(13.5769pt,10.6594pt)–(13.5769pt,1.6078pt)–(7pt,1.6078pt)–cycle;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](9pt,1.6078pt)–(15.1685pt,1.6078pt)–(15.1685pt,-1.6078pt)–(9pt,-1.6078pt)–cycle;
[anchor=north west,inner sep=0] at (9pt,1.6078pt)\({\scriptstyle m}\)159;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7pt,3.6078pt)–(17.1685pt,3.6078pt)–(17.1685pt,-3.6078pt)–(7pt,-3.6078pt)–cycle;
, but (still) \(\mathnormal{∇}\mskip 3.0mu\mathsf{t}\) in

*Example: divergence. As a simple example we express the
divergence of a given scalar field \(P\).  Its physical meaning has
no bearing on our development; but if \(P\) is an  energy potential, its gradient is the corresponding force field, and
its divergence the density of an associated charge or mass. We write \(P\) for the potential field, or [baseline=([yshift=-0.8ex]current bounding box.center)][-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-19.66pt,6.2675pt)–(-12.66pt,6.2675pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,6.2675pt)–(7pt,6.2675pt);
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-9.66pt,9.535pt)–(-3pt,9.535pt)–(-3pt,3pt)–(-9.66pt,3pt)–cycle;
[anchor=north west,inner sep=0] at (-9.66pt,9.535pt)\(P\)161;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-12.66pt,10.035pt)..controls(-12.66pt,11.4157pt)and(-11.5407pt,12.535pt)..(-10.16pt,12.535pt)–(-2.5pt,12.535pt)..controls(-1.1193pt,12.535pt)and(0pt,11.4157pt)..(0pt,10.035pt)–(0pt,2.5pt)..controls(0pt,1.1193pt)and(-1.1193pt,0pt)..(-2.5pt,0pt)–(-10.16pt,0pt)..controls(-11.5407pt,0pt)and(-12.66pt,1.1193pt)..(-12.66pt,2.5pt)–cycle;
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,6.2675pt)–(0pt,6.2675pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-12.66pt,6.2675pt)–(-12.66pt,6.2675pt);
as a diagram. The
scalar character of this field is represented by the lack of indices,
or the use of the unit object for its domain and codomain.  Its
gradient is denoted \(∇{_i}P\), or [baseline=([yshift=-0.8ex]current bounding box.center)][-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7pt,11.2675pt)–(-4pt,11.2675pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7pt,6.2675pt)–(-4pt,6.2675pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.66pt,6.2675pt)–(25.66pt,6.2675pt);
[-,draw=black,line width=0.8pt,line cap=butt,line join=miter,dash pattern=](0pt,12.535pt)..controls(0pt,14.1918pt)and(1.3431pt,15.535pt)..(3pt,15.535pt)–(15.66pt,15.535pt)..controls(17.3168pt,15.535pt)and(18.66pt,14.1918pt)..(18.66pt,12.535pt)–(18.66pt,0pt)..controls(18.66pt,-1.6569pt)and(17.3168pt,-3pt)..(15.66pt,-3pt)–(3pt,-3pt)..controls(1.3431pt,-3pt)and(0pt,-1.6569pt)..(0pt,0pt)–cycle;
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,6.2675pt)–(3pt,6.2675pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,11.2675pt)–(0pt,11.2675pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15.66pt,6.2675pt)–(18.66pt,6.2675pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-4pt,11.2675pt)–(0pt,11.2675pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-4pt,6.2675pt)–(0pt,6.2675pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](18.66pt,6.2675pt)–(22.66pt,6.2675pt);
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](6pt,9.535pt)–(12.66pt,9.535pt)–(12.66pt,3pt)–(6pt,3pt)–cycle;
[anchor=north west,inner sep=0] at (6pt,9.535pt)\(P\)162;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](3pt,10.035pt)..controls(3pt,11.4157pt)and(4.1193pt,12.535pt)..(5.5pt,12.535pt)–(13.16pt,12.535pt)..controls(14.5407pt,12.535pt)and(15.66pt,11.4157pt)..(15.66pt,10.035pt)–(15.66pt,2.5pt)..controls(15.66pt,1.1193pt)and(14.5407pt,0pt)..(13.16pt,0pt)–(5.5pt,0pt)..controls(4.1193pt,0pt)and(3pt,1.1193pt)..(3pt,2.5pt)–cycle;
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](15.66pt,6.2675pt)–(15.66pt,6.2675pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](3pt,6.2675pt)–(3pt,6.2675pt);
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-11.6316pt,13.6071pt)–(-9pt,13.6071pt)–(-9pt,8.9279pt)–(-11.6316pt,8.9279pt)–cycle;
[anchor=north west,inner sep=0] at (-11.6316pt,13.6071pt)\({\scriptstyle i}\)163;
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-13.6316pt,15.6071pt)–(-7pt,15.6071pt)–(-7pt,6.9279pt)–(-13.6316pt,6.9279pt)–cycle;
. Again, indices or objects indicate that we have an order (1,0)
(covector) field. At each point the local covector is a linear
function that takes a direction (vector) into the slope in that

The divergence is a linear combination of second order derivatives. To
compute the linear combination we need to apply contraction, which
always expects an upper and a lower index, but we have two covariant (lower)
indices, so we must raise one index by multiplying with the
contravariant metric.  The Einstein notation is \(g'{^i}{^j}∇{_i}∇{_j}P\), the corresponding diagram is [baseline=([yshift=-0.8ex]current bounding box.center)][-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-20pt,13.7675pt)–(-13pt,13.7675pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](33.66pt,6.2675pt)–(36.66pt,6.2675pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7pt,16.2675pt)–(-7pt,16.2675pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7pt,11.2675pt)–(-7pt,11.2675pt);
[-,draw=black,line width=0.8pt,line cap=butt,line join=miter,dash pattern=](-3pt,17.2675pt)..controls(-3pt,18.9243pt)and(-1.6569pt,20.2675pt)..(0pt,20.2675pt)–(26.66pt,20.2675pt)..controls(28.3168pt,20.2675pt)and(29.66pt,18.9243pt)..(29.66pt,17.2675pt)–(29.66pt,-3pt)..controls(29.66pt,-4.6569pt)and(28.3168pt,-6pt)..(26.66pt,-6pt)–(0pt,-6pt)..controls(-1.6569pt,-6pt)and(-3pt,-4.6569pt)..(-3pt,-3pt)–cycle;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-3pt,11.2675pt)–(0pt,11.2675pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-3pt,16.2675pt)–(-3pt,16.2675pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](29.66pt,6.2675pt)–(29.66pt,6.2675pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7pt,16.2675pt)–(-3pt,16.2675pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-7pt,11.2675pt)–(-3pt,11.2675pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](29.66pt,6.2675pt)–(33.66pt,6.2675pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,11.2675pt)–(3pt,11.2675pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,6.2675pt)–(3pt,6.2675pt);
[-,draw=black,line width=0.8pt,line cap=butt,line join=miter,dash pattern=](7pt,12.535pt)..controls(7pt,14.1918pt)and(8.3431pt,15.535pt)..(10pt,15.535pt)–(22.66pt,15.535pt)..controls(24.3168pt,15.535pt)and(25.66pt,14.1918pt)..(25.66pt,12.535pt)–(25.66pt,0pt)..controls(25.66pt,-1.6569pt)and(24.3168pt,-3pt)..(22.66pt,-3pt)–(10pt,-3pt)..controls(8.3431pt,-3pt)and(7pt,-1.6569pt)..(7pt,0pt)–cycle;
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7pt,6.2675pt)–(10pt,6.2675pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7pt,11.2675pt)–(7pt,11.2675pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.66pt,6.2675pt)–(25.66pt,6.2675pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](3pt,11.2675pt)–(7pt,11.2675pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](3pt,6.2675pt)–(7pt,6.2675pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](25.66pt,6.2675pt)–(29.66pt,6.2675pt);
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](13pt,9.535pt)–(19.66pt,9.535pt)–(19.66pt,3pt)–(13pt,3pt)–cycle;
[anchor=north west,inner sep=0] at (13pt,9.535pt)\(P\)164;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](10pt,10.035pt)..controls(10pt,11.4157pt)and(11.1193pt,12.535pt)..(12.5pt,12.535pt)–(20.16pt,12.535pt)..controls(21.5407pt,12.535pt)and(22.66pt,11.4157pt)..(22.66pt,10.035pt)–(22.66pt,2.5pt)..controls(22.66pt,1.1193pt)and(21.5407pt,0pt)..(20.16pt,0pt)–(12.5pt,0pt)..controls(11.1193pt,0pt)and(10pt,1.1193pt)..(10pt,2.5pt)–cycle;
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](22.66pt,6.2675pt)–(22.66pt,6.2675pt);
[-,draw=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](10pt,6.2675pt)–(10pt,6.2675pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,11.2675pt)–(0pt,11.2675pt);
[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=on 0.4pt off 1pt](0pt,11.2675pt)–(0pt,11.2675pt)–(0pt,6.2675pt)–(0pt,6.2675pt)–cycle;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=on 0.4pt off 1pt](-3pt,14.2675pt)–(3pt,14.2675pt)–(3pt,3.2675pt)–(-3pt,3.2675pt)–cycle;
[-,fill=lightgray,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](1pt,6.2675pt)..controls(1pt,6.8198pt)and(0.5523pt,7.2675pt)..(0pt,7.2675pt)..controls(-0.5523pt,7.2675pt)and(-1pt,6.8198pt)..(-1pt,6.2675pt)..controls(-1pt,5.7152pt)and(-0.5523pt,5.2675pt)..(0pt,5.2675pt)..controls(0.5523pt,5.2675pt)and(1pt,5.7152pt)..(1pt,6.2675pt)–cycle;
[-,fill=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-12pt,13.7675pt)..controls(-12pt,14.3198pt)and(-12.4477pt,14.7675pt)..(-13pt,14.7675pt)..controls(-13.5523pt,14.7675pt)and(-14pt,14.3198pt)..(-14pt,13.7675pt)..controls(-14pt,13.2152pt)and(-13.5523pt,12.7675pt)..(-13pt,12.7675pt)..controls(-12.4477pt,12.7675pt)and(-12pt,13.2152pt)..(-12pt,13.7675pt)–cycle;
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-10.06pt,16.2pt)..controls(-9.22pt,16.2675pt)and(-8.2pt,16.2675pt)..(-7pt,16.2675pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-13pt,13.7675pt)..controls(-13pt,15.5175pt)and(-12.02pt,16.0425pt)..(-10.06pt,16.2pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-10.06pt,11.335pt)..controls(-9.22pt,11.2675pt)and(-8.2pt,11.2675pt)..(-7pt,11.2675pt);
[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-13pt,13.7675pt)..controls(-13pt,12.0175pt)and(-12.02pt,11.4925pt)..(-10.06pt,11.335pt);
, and in Roger it is
\(\allowbreak{}\mathnormal{(}\mskip 0.0mu\mathnormal{∇}\mskip 3.0mu\allowbreak{}\mathnormal{(}\mskip 0.0mu\mathnormal{∇}\mskip 3.0mu\mathsf{P}\mskip 0.0mu\mathnormal{)}\allowbreak{}\mskip 3.0mu\allowbreak{}\mathnormal{∘}\allowbreak{}\mskip 3.0muρ\mskip 0.0mu\mathnormal{)}\allowbreak{}\mskip 3.0mu\allowbreak{}\mathnormal{∘}\allowbreak{}\mskip 3.0mu\mathsf{g'}\).  The Einstein notation, while already
economical, can be made even more concise by using the index juggling
convention: \(∇ᵢ∇ⁱP\).  In Albert, the same thing would
be written
* \(\mathsf{contract}\mskip 3.0mu\allowbreak{}\mathnormal{(}\mskip 0.0muλ\mskip 3.0mu^{\mathsf{i}}\mskip 3.0mu_{\mathsf{i}}\mskip 3.0mu\mathnormal{\rightarrow }\mskip 3.0mu\mathsf{deriv}\mskip 3.0mu_{\mathsf{i}}\mskip 3.0mu\allowbreak{}\mathnormal{(}\mskip 0.0mu\mathsf{deriv}\mskip 3.0mu\allowbreak{}\mathnormal{(}\mskip 0.0mu\mathsf{lower}\mskip 3.0mu^{\mathsf{i}}\mskip 0.0mu\mathnormal{)}\allowbreak{}\mskip 3.0mu\mathsf{potential}\mskip 0.0mu\mathnormal{)}\allowbreak{}\mskip 0.0mu\mathnormal{)}\allowbreak{}\) Here the high index from the contraction must be lowered
because \(\mathsf{deriv}\) can only take a low index as its first

§.§.§ Laws of covariant derivatives

As one might expect, the covariant derivative satisfies the product law for derivatives:

\begin{equation}∇ᵢ (t u) = (∇ᵢ t)  u + t  (∇ᵢ u)\label{166}\end{equation}

The above formulation is concise, but using it as basis for implementation
can be tedious, because one needs to track free and bound
variables. A pitfall is that \(t\) and \(u\) stand for arbitrary expressions,
and index variables may occur free in them. Therefore a specific implementation difficulty is that one needs to preserve the linearity of index
variables at the level of the host language.[In a draft
version of this work, we attempted doing this and found the result
inscrutable.]  Thus we find that the morphism edsl Roger is a better
implementation vehicle in this case. The laws become noticeably more
verbose, but not horribly so, and dispense of tracking free
variables. In this notation, the product law is expressed as two cases, one for each of the
\(\allowbreak{}\mathnormal{(}\mskip 0.0mu\allowbreak{}\mathnormal{∘}\allowbreak{}\mskip 0.0mu\mathnormal{)}\allowbreak{}\) and \(\allowbreak{}\mathnormal{(}\mskip 0.0mu{⊗}\mskip 0.0mu\mathnormal{)}\allowbreak{}\) operators:

\begin{align*}\mathnormal{∇}\mskip 3.0mu\mathsf{t}\mskip 3.0mu\allowbreak{}\mathnormal{∘}\allowbreak{}\mskip 3.0mu\mathsf{u}&=\mathsf{t}\mskip 3.0mu\allowbreak{}\mathnormal{∘}\allowbreak{}\mskip 3.0mu\allowbreak{}\mathnormal{(}\mskip 0.0mu\mathnormal{∇}\mskip 3.0mu\mathsf{u}\mskip 0.0mu\mathnormal{)}\allowbreak{}\mskip 3.0mu\mathnormal{+}\mskip 3.0mu\allowbreak{}\mathnormal{(}\mskip 0.0mu\mathnormal{∇}\mskip 3.0mu\mathsf{t}\mskip 0.0mu\mathnormal{)}\allowbreak{}\mskip 3.0mu\allowbreak{}\mathnormal{∘}\allowbreak{}\mskip 3.0mu\allowbreak{}\mathnormal{(}\mskip 0.0mu\mathsf{id}\mskip 3.0mu{⊗}\mskip 3.0mu\mathsf{u}\mskip 0.0mu\mathnormal{)}\allowbreak{}\\\mathnormal{∇}\mskip 3.0mu\allowbreak{}\mathnormal{(}\mskip 0.0mu\mathsf{t}\mskip 3.0mu{⊗}\mskip 3.0mu\mathsf{u}\mskip 0.0mu\mathnormal{)}\allowbreak{}&=\allowbreak{}\mathnormal{(}\mskip 0.0mu\mathnormal{∇}\mskip 3.0mu\mathsf{t}\mskip 3.0mu{⊗}\mskip 3.0mu\mathsf{u}\mskip 0.0mu\mathnormal{)}\allowbreak{}\mskip 3.0mu\allowbreak{}\mathnormal{∘}\allowbreak{}\mskip 3.0mu\bar{α}\mskip 3.0mu\mathnormal{+}\mskip 3.0mu\allowbreak{}\mathnormal{(}\mskip 0.0mu\mathsf{t}\mskip 3.0mu{⊗}\mskip 3.0mu\mathnormal{∇}\mskip 3.0mu\mathsf{u}\mskip 0.0mu\mathnormal{)}\allowbreak{}\mskip 3.0mu\allowbreak{}\mathnormal{∘}\allowbreak{}\mskip 3.0muα\mskip 3.0mu\allowbreak{}\mathnormal{∘}\allowbreak{}\mskip 3.0mu\allowbreak{}\mathnormal{(}\mskip 0.0muσ\mskip 3.0mu{⊗}\mskip 3.0mu\mathsf{id}\mskip 0.0mu\mathnormal{)}\allowbreak{}\mskip 3.0mu\allowbreak{}\mathnormal{∘}\allowbreak{}\mskip 3.0mu\bar{α}\end{align*}
As usual, the corresponding diagrams are more readable:

\begin{equation}{\begin{tikzpicture}[baseline=(current bounding box.center)]\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-21.31pt,-4pt)--(-18.31pt,-4pt);
\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-21.31pt,-11.4184pt)--(-18.31pt,-11.4184pt);
\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](23.32pt,-11.4184pt)--(26.32pt,-11.4184pt);
\path[-,draw=black,line width=0.8pt,line cap=butt,line join=miter,dash pattern=](-14.31pt,-3pt)..controls(-14.31pt,-1.3431pt)and(-12.9669pt,0pt)..(-11.31pt,0pt)--(16.32pt,0pt)..controls(17.9768pt,0pt)and(19.32pt,-1.3431pt)..(19.32pt,-3pt)--(19.32pt,-17.1709pt)..controls(19.32pt,-18.8277pt)and(17.9768pt,-20.1709pt)..(16.32pt,-20.1709pt)--(-11.31pt,-20.1709pt)..controls(-12.9669pt,-20.1709pt)and(-14.31pt,-18.8277pt)..(-14.31pt,-17.1709pt)--cycle;
\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-14.31pt,-11.4184pt)--(-11.31pt,-11.4184pt);
\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-14.31pt,-4pt)--(-14.31pt,-4pt);
\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](16.32pt,-11.4184pt)--(19.32pt,-11.4184pt);
\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-18.31pt,-4pt)--(-14.31pt,-4pt);
\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-18.31pt,-11.4184pt)--(-14.31pt,-11.4184pt);
\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](19.32pt,-11.4184pt)--(23.32pt,-11.4184pt);
\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](0pt,-11.4184pt)--(7pt,-11.4184pt);
\path[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](10pt,-8.6659pt)--(13.32pt,-8.6659pt)--(13.32pt,-14.1709pt)--(10pt,-14.1709pt)--cycle;
\node[anchor=north west,inner sep=0] at (10pt,-8.6659pt){\savebox{\marxupbox}{{\(t\)}}\immediate\write\boxesfile{167}\immediate\write\boxesfile{\number\wd\marxupbox}\immediate\write\boxesfile{\number\ht\marxupbox}\immediate\write\boxesfile{\number\dp\marxupbox}\box\marxupbox};
\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7pt,-8.1659pt)..controls(7pt,-6.7852pt)and(8.1193pt,-5.6659pt)..(9.5pt,-5.6659pt)--(13.82pt,-5.6659pt)..controls(15.2007pt,-5.6659pt)and(16.32pt,-6.7852pt)..(16.32pt,-8.1659pt)--(16.32pt,-14.6709pt)..controls(16.32pt,-16.0516pt)and(15.2007pt,-17.1709pt)..(13.82pt,-17.1709pt)--(9.5pt,-17.1709pt)..controls(8.1193pt,-17.1709pt)and(7pt,-16.0516pt)..(7pt,-14.6709pt)--cycle;
\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](16.32pt,-11.4184pt)--(16.32pt,-11.4184pt);
\path[-,draw=black,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](7pt,-11.4184pt)--(7pt,-11.4184pt);
\path[-,line width=0.4pt,line cap=butt,line join=miter,dash pattern=](-8.31pt,-9.2034pt)--(-3pt,-9.2034pt)--(-3pt,-13.6334pt)--(-8.31pt,-13.6334pt)--cycle;
\node[anchor=north west,inner sep=0] at (-8.31pt,-9.2034pt){\savebox{\marxupbox}{{\(u\)}}\immediate\write\boxesfile{168}\immediate\write\boxesfile{\number\wd\marxupbox}\immediate\write\boxesfile{\number\ht\marxupbox}\immediate\write\boxesfile{\number\dp\marxupbox}\box\marxupbox};