open-axiom repository from github
\begin{patch}{CartesianTensorXmpPagePatch1}
\begin{paste}{CartesianTensorXmpPageFull1}{CartesianTensorXmpPageEmpty1}
\pastebutton{CartesianTensorXmpPageFull1}{\hidepaste}
\tab{5}\spadcommand{CT := CARTEN(i0 := 1, 2, Integer)\bound{CT i0 }}
\indentrel{3}\begin{verbatim}
(1) CartesianTensor(1,2,Integer)
Type: Domain
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty1}
\begin{paste}{CartesianTensorXmpPageEmpty1}{CartesianTensorXmpPagePatch1}
\pastebutton{CartesianTensorXmpPageEmpty1}{\showpaste}
\tab{5}\spadcommand{CT := CARTEN(i0 := 1, 2, Integer)\bound{CT i0 }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch2}
\begin{paste}{CartesianTensorXmpPageFull2}{CartesianTensorXmpPageEmpty2}
\pastebutton{CartesianTensorXmpPageFull2}{\hidepaste}
\tab{5}\spadcommand{t0: CT := 8\free{CT }\bound{t0 }}
\indentrel{3}\begin{verbatim}
(2) 8
Type: CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty2}
\begin{paste}{CartesianTensorXmpPageEmpty2}{CartesianTensorXmpPagePatch2}
\pastebutton{CartesianTensorXmpPageEmpty2}{\showpaste}
\tab{5}\spadcommand{t0: CT := 8\free{CT }\bound{t0 }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch3}
\begin{paste}{CartesianTensorXmpPageFull3}{CartesianTensorXmpPageEmpty3}
\pastebutton{CartesianTensorXmpPageFull3}{\hidepaste}
\tab{5}\spadcommand{rank t0\free{t0 }}
\indentrel{3}\begin{verbatim}
(3) 0
Type: NonNegativeInteger
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty3}
\begin{paste}{CartesianTensorXmpPageEmpty3}{CartesianTensorXmpPagePatch3}
\pastebutton{CartesianTensorXmpPageEmpty3}{\showpaste}
\tab{5}\spadcommand{rank t0\free{t0 }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch4}
\begin{paste}{CartesianTensorXmpPageFull4}{CartesianTensorXmpPageEmpty4}
\pastebutton{CartesianTensorXmpPageFull4}{\hidepaste}
\tab{5}\spadcommand{v: DirectProduct(2, Integer) := directProduct [3,4]\bound{v }}
\indentrel{3}\begin{verbatim}
(4) [3,4]
Type: DirectProduct(2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty4}
\begin{paste}{CartesianTensorXmpPageEmpty4}{CartesianTensorXmpPagePatch4}
\pastebutton{CartesianTensorXmpPageEmpty4}{\showpaste}
\tab{5}\spadcommand{v: DirectProduct(2, Integer) := directProduct [3,4]\bound{v }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch5}
\begin{paste}{CartesianTensorXmpPageFull5}{CartesianTensorXmpPageEmpty5}
\pastebutton{CartesianTensorXmpPageFull5}{\hidepaste}
\tab{5}\spadcommand{Tv: CT := v\free{v CT }\bound{Tv }}
\indentrel{3}\begin{verbatim}
(5) [3,4]
Type: CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty5}
\begin{paste}{CartesianTensorXmpPageEmpty5}{CartesianTensorXmpPagePatch5}
\pastebutton{CartesianTensorXmpPageEmpty5}{\showpaste}
\tab{5}\spadcommand{Tv: CT := v\free{v CT }\bound{Tv }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch6}
\begin{paste}{CartesianTensorXmpPageFull6}{CartesianTensorXmpPageEmpty6}
\pastebutton{CartesianTensorXmpPageFull6}{\hidepaste}
\tab{5}\spadcommand{m: SquareMatrix(2, Integer) := matrix [[1,2],[4,5]]\bound{m }}
\indentrel{3}\begin{verbatim}
�1 2�
(6) � �
�4 5�
Type: SquareMatrix(2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty6}
\begin{paste}{CartesianTensorXmpPageEmpty6}{CartesianTensorXmpPagePatch6}
\pastebutton{CartesianTensorXmpPageEmpty6}{\showpaste}
\tab{5}\spadcommand{m: SquareMatrix(2, Integer) := matrix [[1,2],[4,5]]\bound{m }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch7}
\begin{paste}{CartesianTensorXmpPageFull7}{CartesianTensorXmpPageEmpty7}
\pastebutton{CartesianTensorXmpPageFull7}{\hidepaste}
\tab{5}\spadcommand{Tm: CT := m\bound{Tm }\free{CT m }}
\indentrel{3}\begin{verbatim}
�1 2�
(7) � �
�4 5�
Type: CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty7}
\begin{paste}{CartesianTensorXmpPageEmpty7}{CartesianTensorXmpPagePatch7}
\pastebutton{CartesianTensorXmpPageEmpty7}{\showpaste}
\tab{5}\spadcommand{Tm: CT := m\bound{Tm }\free{CT m }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch8}
\begin{paste}{CartesianTensorXmpPageFull8}{CartesianTensorXmpPageEmpty8}
\pastebutton{CartesianTensorXmpPageFull8}{\hidepaste}
\tab{5}\spadcommand{n: SquareMatrix(2, Integer) := matrix [[2,3],[0,1]]\bound{n }}
\indentrel{3}\begin{verbatim}
�2 3�
(8) � �
�0 1�
Type: SquareMatrix(2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty8}
\begin{paste}{CartesianTensorXmpPageEmpty8}{CartesianTensorXmpPagePatch8}
\pastebutton{CartesianTensorXmpPageEmpty8}{\showpaste}
\tab{5}\spadcommand{n: SquareMatrix(2, Integer) := matrix [[2,3],[0,1]]\bound{n }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch9}
\begin{paste}{CartesianTensorXmpPageFull9}{CartesianTensorXmpPageEmpty9}
\pastebutton{CartesianTensorXmpPageFull9}{\hidepaste}
\tab{5}\spadcommand{Tn: CT := n\bound{Tn }\free{CT n }}
\indentrel{3}\begin{verbatim}
�2 3�
(9) � �
�0 1�
Type: CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty9}
\begin{paste}{CartesianTensorXmpPageEmpty9}{CartesianTensorXmpPagePatch9}
\pastebutton{CartesianTensorXmpPageEmpty9}{\showpaste}
\tab{5}\spadcommand{Tn: CT := n\bound{Tn }\free{CT n }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch10}
\begin{paste}{CartesianTensorXmpPageFull10}{CartesianTensorXmpPageEmpty10}
\pastebutton{CartesianTensorXmpPageFull10}{\hidepaste}
\tab{5}\spadcommand{t1: CT := [2, 3]\free{CT }\bound{t1 }}
\indentrel{3}\begin{verbatim}
(10) [2,3]
Type: CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty10}
\begin{paste}{CartesianTensorXmpPageEmpty10}{CartesianTensorXmpPagePatch10}
\pastebutton{CartesianTensorXmpPageEmpty10}{\showpaste}
\tab{5}\spadcommand{t1: CT := [2, 3]\free{CT }\bound{t1 }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch11}
\begin{paste}{CartesianTensorXmpPageFull11}{CartesianTensorXmpPageEmpty11}
\pastebutton{CartesianTensorXmpPageFull11}{\hidepaste}
\tab{5}\spadcommand{rank t1\free{t1 }}
\indentrel{3}\begin{verbatim}
(11) 1
Type: PositiveInteger
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty11}
\begin{paste}{CartesianTensorXmpPageEmpty11}{CartesianTensorXmpPagePatch11}
\pastebutton{CartesianTensorXmpPageEmpty11}{\showpaste}
\tab{5}\spadcommand{rank t1\free{t1 }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch12}
\begin{paste}{CartesianTensorXmpPageFull12}{CartesianTensorXmpPageEmpty12}
\pastebutton{CartesianTensorXmpPageFull12}{\hidepaste}
\tab{5}\spadcommand{t2: CT := [t1, t1]\free{CT t1 }\bound{t2 }}
\indentrel{3}\begin{verbatim}
�2 3�
(12) � �
�2 3�
Type: CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty12}
\begin{paste}{CartesianTensorXmpPageEmpty12}{CartesianTensorXmpPagePatch12}
\pastebutton{CartesianTensorXmpPageEmpty12}{\showpaste}
\tab{5}\spadcommand{t2: CT := [t1, t1]\free{CT t1 }\bound{t2 }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch13}
\begin{paste}{CartesianTensorXmpPageFull13}{CartesianTensorXmpPageEmpty13}
\pastebutton{CartesianTensorXmpPageFull13}{\hidepaste}
\tab{5}\spadcommand{t3: CT := [t2, t2]\free{CT t2 }\bound{t3 }}
\indentrel{3}\begin{verbatim}
�2 3� �2 3�
(13) [� �,� �]
�2 3� �2 3�
Type: CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty13}
\begin{paste}{CartesianTensorXmpPageEmpty13}{CartesianTensorXmpPagePatch13}
\pastebutton{CartesianTensorXmpPageEmpty13}{\showpaste}
\tab{5}\spadcommand{t3: CT := [t2, t2]\free{CT t2 }\bound{t3 }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch14}
\begin{paste}{CartesianTensorXmpPageFull14}{CartesianTensorXmpPageEmpty14}
\pastebutton{CartesianTensorXmpPageFull14}{\hidepaste}
\tab{5}\spadcommand{tt: CT := [t3, t3]; tt := [tt, tt]\free{CT t3 }\bound{tt }}
\indentrel{3}\begin{verbatim}
��2 3� �2 3�� ��2 3� �2 3��
�� � � �� �� � � ��
��2 3� �2 3ٳ ��2 3� �2 3ٳ
(14) [� �,� �]
��2 3� �2 3�� ��2 3� �2 3��
�� � � �� �� � � ��
��2 3� �2 3�� ��2 3� �2 3��
Type: CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty14}
\begin{paste}{CartesianTensorXmpPageEmpty14}{CartesianTensorXmpPagePatch14}
\pastebutton{CartesianTensorXmpPageEmpty14}{\showpaste}
\tab{5}\spadcommand{tt: CT := [t3, t3]; tt := [tt, tt]\free{CT t3 }\bound{tt }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch15}
\begin{paste}{CartesianTensorXmpPageFull15}{CartesianTensorXmpPageEmpty15}
\pastebutton{CartesianTensorXmpPageFull15}{\hidepaste}
\tab{5}\spadcommand{rank tt\free{tt }}
\indentrel{3}\begin{verbatim}
(15) 5
Type: PositiveInteger
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty15}
\begin{paste}{CartesianTensorXmpPageEmpty15}{CartesianTensorXmpPagePatch15}
\pastebutton{CartesianTensorXmpPageEmpty15}{\showpaste}
\tab{5}\spadcommand{rank tt\free{tt }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch16}
\begin{paste}{CartesianTensorXmpPageFull16}{CartesianTensorXmpPageEmpty16}
\pastebutton{CartesianTensorXmpPageFull16}{\hidepaste}
\tab{5}\spadcommand{Tmn := product(Tm, Tn)\free{Tm Tn }\bound{Tmn }}
\indentrel{3}\begin{verbatim}
��2 3� �4 6� �
�� � � � �
��0 1� �0 2� �
(16) � �
��8 12� �10 15��
�� � � ��
��0 4 � �0 5 ��
Type: CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty16}
\begin{paste}{CartesianTensorXmpPageEmpty16}{CartesianTensorXmpPagePatch16}
\pastebutton{CartesianTensorXmpPageEmpty16}{\showpaste}
\tab{5}\spadcommand{Tmn := product(Tm, Tn)\free{Tm Tn }\bound{Tmn }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch17}
\begin{paste}{CartesianTensorXmpPageFull17}{CartesianTensorXmpPageEmpty17}
\pastebutton{CartesianTensorXmpPageFull17}{\hidepaste}
\tab{5}\spadcommand{Tmv := contract(Tm,2,Tv,1)\free{Tm Tv }\bound{Tmv }}
\indentrel{3}\begin{verbatim}
(17) [11,32]
Type: CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty17}
\begin{paste}{CartesianTensorXmpPageEmpty17}{CartesianTensorXmpPagePatch17}
\pastebutton{CartesianTensorXmpPageEmpty17}{\showpaste}
\tab{5}\spadcommand{Tmv := contract(Tm,2,Tv,1)\free{Tm Tv }\bound{Tmv }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch18}
\begin{paste}{CartesianTensorXmpPageFull18}{CartesianTensorXmpPageEmpty18}
\pastebutton{CartesianTensorXmpPageFull18}{\hidepaste}
\tab{5}\spadcommand{Tm*Tv\free{Tm Tv }}
\indentrel{3}\begin{verbatim}
(18) [11,32]
Type: CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty18}
\begin{paste}{CartesianTensorXmpPageEmpty18}{CartesianTensorXmpPagePatch18}
\pastebutton{CartesianTensorXmpPageEmpty18}{\showpaste}
\tab{5}\spadcommand{Tm*Tv\free{Tm Tv }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch19}
\begin{paste}{CartesianTensorXmpPageFull19}{CartesianTensorXmpPageEmpty19}
\pastebutton{CartesianTensorXmpPageFull19}{\hidepaste}
\tab{5}\spadcommand{Tmv = m * v\free{Tmv m v }}
\indentrel{3}\begin{verbatim}
(19) [11,32]= [11,32]
Type: Equation CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty19}
\begin{paste}{CartesianTensorXmpPageEmpty19}{CartesianTensorXmpPagePatch19}
\pastebutton{CartesianTensorXmpPageEmpty19}{\showpaste}
\tab{5}\spadcommand{Tmv = m * v\free{Tmv m v }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch20}
\begin{paste}{CartesianTensorXmpPageFull20}{CartesianTensorXmpPageEmpty20}
\pastebutton{CartesianTensorXmpPageFull20}{\hidepaste}
\tab{5}\spadcommand{t0()\free{t0 }}
\indentrel{3}\begin{verbatim}
(20) 8
Type: PositiveInteger
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty20}
\begin{paste}{CartesianTensorXmpPageEmpty20}{CartesianTensorXmpPagePatch20}
\pastebutton{CartesianTensorXmpPageEmpty20}{\showpaste}
\tab{5}\spadcommand{t0()\free{t0 }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch21}
\begin{paste}{CartesianTensorXmpPageFull21}{CartesianTensorXmpPageEmpty21}
\pastebutton{CartesianTensorXmpPageFull21}{\hidepaste}
\tab{5}\spadcommand{t1(1+1)\free{t1 }}
\indentrel{3}\begin{verbatim}
(21) 3
Type: PositiveInteger
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty21}
\begin{paste}{CartesianTensorXmpPageEmpty21}{CartesianTensorXmpPagePatch21}
\pastebutton{CartesianTensorXmpPageEmpty21}{\showpaste}
\tab{5}\spadcommand{t1(1+1)\free{t1 }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch22}
\begin{paste}{CartesianTensorXmpPageFull22}{CartesianTensorXmpPageEmpty22}
\pastebutton{CartesianTensorXmpPageFull22}{\hidepaste}
\tab{5}\spadcommand{t2(2,1)\free{t2 }}
\indentrel{3}\begin{verbatim}
(22) 2
Type: PositiveInteger
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty22}
\begin{paste}{CartesianTensorXmpPageEmpty22}{CartesianTensorXmpPagePatch22}
\pastebutton{CartesianTensorXmpPageEmpty22}{\showpaste}
\tab{5}\spadcommand{t2(2,1)\free{t2 }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch23}
\begin{paste}{CartesianTensorXmpPageFull23}{CartesianTensorXmpPageEmpty23}
\pastebutton{CartesianTensorXmpPageFull23}{\hidepaste}
\tab{5}\spadcommand{t3(2,1,2)\free{t3 }}
\indentrel{3}\begin{verbatim}
(23) 3
Type: PositiveInteger
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty23}
\begin{paste}{CartesianTensorXmpPageEmpty23}{CartesianTensorXmpPagePatch23}
\pastebutton{CartesianTensorXmpPageEmpty23}{\showpaste}
\tab{5}\spadcommand{t3(2,1,2)\free{t3 }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch24}
\begin{paste}{CartesianTensorXmpPageFull24}{CartesianTensorXmpPageEmpty24}
\pastebutton{CartesianTensorXmpPageFull24}{\hidepaste}
\tab{5}\spadcommand{Tmn(2,1,2,1)\free{Tmn }}
\indentrel{3}\begin{verbatim}
(24) 0
Type: NonNegativeInteger
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty24}
\begin{paste}{CartesianTensorXmpPageEmpty24}{CartesianTensorXmpPagePatch24}
\pastebutton{CartesianTensorXmpPageEmpty24}{\showpaste}
\tab{5}\spadcommand{Tmn(2,1,2,1)\free{Tmn }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch25}
\begin{paste}{CartesianTensorXmpPageFull25}{CartesianTensorXmpPageEmpty25}
\pastebutton{CartesianTensorXmpPageFull25}{\hidepaste}
\tab{5}\spadcommand{t0[]\free{t0 }}
\indentrel{3}\begin{verbatim}
(25) 8
Type: PositiveInteger
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty25}
\begin{paste}{CartesianTensorXmpPageEmpty25}{CartesianTensorXmpPagePatch25}
\pastebutton{CartesianTensorXmpPageEmpty25}{\showpaste}
\tab{5}\spadcommand{t0[]\free{t0 }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch26}
\begin{paste}{CartesianTensorXmpPageFull26}{CartesianTensorXmpPageEmpty26}
\pastebutton{CartesianTensorXmpPageFull26}{\hidepaste}
\tab{5}\spadcommand{t1[2]\free{t1 }}
\indentrel{3}\begin{verbatim}
(26) 3
Type: PositiveInteger
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty26}
\begin{paste}{CartesianTensorXmpPageEmpty26}{CartesianTensorXmpPagePatch26}
\pastebutton{CartesianTensorXmpPageEmpty26}{\showpaste}
\tab{5}\spadcommand{t1[2]\free{t1 }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch27}
\begin{paste}{CartesianTensorXmpPageFull27}{CartesianTensorXmpPageEmpty27}
\pastebutton{CartesianTensorXmpPageFull27}{\hidepaste}
\tab{5}\spadcommand{t2[2,1]\free{t2 }}
\indentrel{3}\begin{verbatim}
(27) 2
Type: PositiveInteger
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty27}
\begin{paste}{CartesianTensorXmpPageEmpty27}{CartesianTensorXmpPagePatch27}
\pastebutton{CartesianTensorXmpPageEmpty27}{\showpaste}
\tab{5}\spadcommand{t2[2,1]\free{t2 }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch28}
\begin{paste}{CartesianTensorXmpPageFull28}{CartesianTensorXmpPageEmpty28}
\pastebutton{CartesianTensorXmpPageFull28}{\hidepaste}
\tab{5}\spadcommand{t3[2,1,2]\free{t3 }}
\indentrel{3}\begin{verbatim}
(28) 3
Type: PositiveInteger
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty28}
\begin{paste}{CartesianTensorXmpPageEmpty28}{CartesianTensorXmpPagePatch28}
\pastebutton{CartesianTensorXmpPageEmpty28}{\showpaste}
\tab{5}\spadcommand{t3[2,1,2]\free{t3 }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch29}
\begin{paste}{CartesianTensorXmpPageFull29}{CartesianTensorXmpPageEmpty29}
\pastebutton{CartesianTensorXmpPageFull29}{\hidepaste}
\tab{5}\spadcommand{Tmn[2,1,2,1]\free{Tmn }}
\indentrel{3}\begin{verbatim}
(29) 0
Type: NonNegativeInteger
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty29}
\begin{paste}{CartesianTensorXmpPageEmpty29}{CartesianTensorXmpPagePatch29}
\pastebutton{CartesianTensorXmpPageEmpty29}{\showpaste}
\tab{5}\spadcommand{Tmn[2,1,2,1]\free{Tmn }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch30}
\begin{paste}{CartesianTensorXmpPageFull30}{CartesianTensorXmpPageEmpty30}
\pastebutton{CartesianTensorXmpPageFull30}{\hidepaste}
\tab{5}\spadcommand{cTmn := contract(Tmn,1,2)\free{Tmn }\bound{cTmn }}
\indentrel{3}\begin{verbatim}
�12 18�
(30) � �
�0 6 �
Type: CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty30}
\begin{paste}{CartesianTensorXmpPageEmpty30}{CartesianTensorXmpPagePatch30}
\pastebutton{CartesianTensorXmpPageEmpty30}{\showpaste}
\tab{5}\spadcommand{cTmn := contract(Tmn,1,2)\free{Tmn }\bound{cTmn }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch31}
\begin{paste}{CartesianTensorXmpPageFull31}{CartesianTensorXmpPageEmpty31}
\pastebutton{CartesianTensorXmpPageFull31}{\hidepaste}
\tab{5}\spadcommand{trace(m) * n\free{m n }}
\indentrel{3}\begin{verbatim}
�12 18�
(31) � �
�0 6 �
Type: SquareMatrix(2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty31}
\begin{paste}{CartesianTensorXmpPageEmpty31}{CartesianTensorXmpPagePatch31}
\pastebutton{CartesianTensorXmpPageEmpty31}{\showpaste}
\tab{5}\spadcommand{trace(m) * n\free{m n }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch32}
\begin{paste}{CartesianTensorXmpPageFull32}{CartesianTensorXmpPageEmpty32}
\pastebutton{CartesianTensorXmpPageFull32}{\hidepaste}
\tab{5}\spadcommand{contract(Tmn,1,2) = trace(m) * n\free{Tmn m n }}
\indentrel{3}\begin{verbatim}
�12 18� �12 18�
(32) � �= � �
�0 6 � �0 6 �
Type: Equation CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty32}
\begin{paste}{CartesianTensorXmpPageEmpty32}{CartesianTensorXmpPagePatch32}
\pastebutton{CartesianTensorXmpPageEmpty32}{\showpaste}
\tab{5}\spadcommand{contract(Tmn,1,2) = trace(m) * n\free{Tmn m n }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch33}
\begin{paste}{CartesianTensorXmpPageFull33}{CartesianTensorXmpPageEmpty33}
\pastebutton{CartesianTensorXmpPageFull33}{\hidepaste}
\tab{5}\spadcommand{contract(Tmn,1,3) = transpose(m) * n\free{Tmn m n }}
\indentrel{3}\begin{verbatim}
�2 7 � �2 7 �
(33) � �= � �
�4 11� �4 11�
Type: Equation CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty33}
\begin{paste}{CartesianTensorXmpPageEmpty33}{CartesianTensorXmpPagePatch33}
\pastebutton{CartesianTensorXmpPageEmpty33}{\showpaste}
\tab{5}\spadcommand{contract(Tmn,1,3) = transpose(m) * n\free{Tmn m n }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch34}
\begin{paste}{CartesianTensorXmpPageFull34}{CartesianTensorXmpPageEmpty34}
\pastebutton{CartesianTensorXmpPageFull34}{\hidepaste}
\tab{5}\spadcommand{contract(Tmn,1,4) = transpose(m) * transpose(n)\free{Tmn m n }}
\indentrel{3}\begin{verbatim}
�14 4� �14 4�
(34) � �= � �
�19 5� �19 5�
Type: Equation CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty34}
\begin{paste}{CartesianTensorXmpPageEmpty34}{CartesianTensorXmpPagePatch34}
\pastebutton{CartesianTensorXmpPageEmpty34}{\showpaste}
\tab{5}\spadcommand{contract(Tmn,1,4) = transpose(m) * transpose(n)\free{Tmn m n }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch35}
\begin{paste}{CartesianTensorXmpPageFull35}{CartesianTensorXmpPageEmpty35}
\pastebutton{CartesianTensorXmpPageFull35}{\hidepaste}
\tab{5}\spadcommand{contract(Tmn,2,3) = m * n\free{Tmn m n }}
\indentrel{3}\begin{verbatim}
�2 5 � �2 5 �
(35) � �= � �
�8 17� �8 17�
Type: Equation CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty35}
\begin{paste}{CartesianTensorXmpPageEmpty35}{CartesianTensorXmpPagePatch35}
\pastebutton{CartesianTensorXmpPageEmpty35}{\showpaste}
\tab{5}\spadcommand{contract(Tmn,2,3) = m * n\free{Tmn m n }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch36}
\begin{paste}{CartesianTensorXmpPageFull36}{CartesianTensorXmpPageEmpty36}
\pastebutton{CartesianTensorXmpPageFull36}{\hidepaste}
\tab{5}\spadcommand{contract(Tmn,2,4) = m * transpose(n)\free{Tmn m n }}
\indentrel{3}\begin{verbatim}
�8 2� �8 2�
(36) � �= � �
�23 5� �23 5�
Type: Equation CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty36}
\begin{paste}{CartesianTensorXmpPageEmpty36}{CartesianTensorXmpPagePatch36}
\pastebutton{CartesianTensorXmpPageEmpty36}{\showpaste}
\tab{5}\spadcommand{contract(Tmn,2,4) = m * transpose(n)\free{Tmn m n }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch37}
\begin{paste}{CartesianTensorXmpPageFull37}{CartesianTensorXmpPageEmpty37}
\pastebutton{CartesianTensorXmpPageFull37}{\hidepaste}
\tab{5}\spadcommand{contract(Tmn,3,4) = trace(n) * m\free{Tmn m n }}
\indentrel{3}\begin{verbatim}
�3 6 � �3 6 �
(37) � �= � �
�12 15� �12 15�
Type: Equation CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty37}
\begin{paste}{CartesianTensorXmpPageEmpty37}{CartesianTensorXmpPagePatch37}
\pastebutton{CartesianTensorXmpPageEmpty37}{\showpaste}
\tab{5}\spadcommand{contract(Tmn,3,4) = trace(n) * m\free{Tmn m n }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch38}
\begin{paste}{CartesianTensorXmpPageFull38}{CartesianTensorXmpPageEmpty38}
\pastebutton{CartesianTensorXmpPageFull38}{\hidepaste}
\tab{5}\spadcommand{tTmn := transpose(Tmn,1,3)\free{tTmn }}
\indentrel{3}\begin{verbatim}
��2 3 � �4 6 ��
�� � � ��
��8 12� �10 15ٳ
(38) � �
��0 1� �0 2� �
�� � � � �
��0 4� �0 5� �
Type: CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty38}
\begin{paste}{CartesianTensorXmpPageEmpty38}{CartesianTensorXmpPagePatch38}
\pastebutton{CartesianTensorXmpPageEmpty38}{\showpaste}
\tab{5}\spadcommand{tTmn := transpose(Tmn,1,3)\free{tTmn }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch39}
\begin{paste}{CartesianTensorXmpPageFull39}{CartesianTensorXmpPageEmpty39}
\pastebutton{CartesianTensorXmpPageFull39}{\hidepaste}
\tab{5}\spadcommand{transpose Tmn\free{Tmn }}
\indentrel{3}\begin{verbatim}
��2 8� �4 10��
�� � � ��
��0 0� �0 0 ٳ
(39) � �
��3 12� �6 15��
�� � � ��
��1 4 � �2 5 ��
Type: CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty39}
\begin{paste}{CartesianTensorXmpPageEmpty39}{CartesianTensorXmpPagePatch39}
\pastebutton{CartesianTensorXmpPageEmpty39}{\showpaste}
\tab{5}\spadcommand{transpose Tmn\free{Tmn }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch40}
\begin{paste}{CartesianTensorXmpPageFull40}{CartesianTensorXmpPageEmpty40}
\pastebutton{CartesianTensorXmpPageFull40}{\hidepaste}
\tab{5}\spadcommand{transpose Tm = transpose m\free{Tm m }}
\indentrel{3}\begin{verbatim}
�1 4� �1 4�
(40) � �= � �
�2 5� �2 5�
Type: Equation CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty40}
\begin{paste}{CartesianTensorXmpPageEmpty40}{CartesianTensorXmpPagePatch40}
\pastebutton{CartesianTensorXmpPageEmpty40}{\showpaste}
\tab{5}\spadcommand{transpose Tm = transpose m\free{Tm m }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch41}
\begin{paste}{CartesianTensorXmpPageFull41}{CartesianTensorXmpPageEmpty41}
\pastebutton{CartesianTensorXmpPageFull41}{\hidepaste}
\tab{5}\spadcommand{rTmn := reindex(Tmn, [1,4,2,3])\free{Tmn }\bound{rTmn }}
\indentrel{3}\begin{verbatim}
��2 0� �3 1� �
�� � � � �
��4 0� �6 2� �
(41) � �
��8 0� �12 4��
�� � � ��
��10 0� �15 5��
Type: CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty41}
\begin{paste}{CartesianTensorXmpPageEmpty41}{CartesianTensorXmpPagePatch41}
\pastebutton{CartesianTensorXmpPageEmpty41}{\showpaste}
\tab{5}\spadcommand{rTmn := reindex(Tmn, [1,4,2,3])\free{Tmn }\bound{rTmn }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch42}
\begin{paste}{CartesianTensorXmpPageFull42}{CartesianTensorXmpPageEmpty42}
\pastebutton{CartesianTensorXmpPageFull42}{\hidepaste}
\tab{5}\spadcommand{tt := transpose(Tm)*Tn - Tn*transpose(Tm)\free{Tm Tn }\bound{tt2 }}
\indentrel{3}\begin{verbatim}
�- 6 - 16�
(42) � �
� 2 6 �
Type: CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty42}
\begin{paste}{CartesianTensorXmpPageEmpty42}{CartesianTensorXmpPagePatch42}
\pastebutton{CartesianTensorXmpPageEmpty42}{\showpaste}
\tab{5}\spadcommand{tt := transpose(Tm)*Tn - Tn*transpose(Tm)\free{Tm Tn }\bound{tt2 }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch43}
\begin{paste}{CartesianTensorXmpPageFull43}{CartesianTensorXmpPageEmpty43}
\pastebutton{CartesianTensorXmpPageFull43}{\hidepaste}
\tab{5}\spadcommand{Tv*(tt+Tn)\free{tt2 Tv Tn }}
\indentrel{3}\begin{verbatim}
(43) [- 4,- 11]
Type: CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty43}
\begin{paste}{CartesianTensorXmpPageEmpty43}{CartesianTensorXmpPagePatch43}
\pastebutton{CartesianTensorXmpPageEmpty43}{\showpaste}
\tab{5}\spadcommand{Tv*(tt+Tn)\free{tt2 Tv Tn }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch44}
\begin{paste}{CartesianTensorXmpPageFull44}{CartesianTensorXmpPageEmpty44}
\pastebutton{CartesianTensorXmpPageFull44}{\hidepaste}
\tab{5}\spadcommand{reindex(product(Tn,Tn),[4,3,2,1])+3*Tn*product(Tm,Tm)\free{Tm Tn }}
\indentrel{3}\begin{verbatim}
��46 84 � �57 114��
�� � � ��
��174 212� �228 285ٳ
(44) � �
� �18 24� �17 30� �
� � � � � �
� �57 63� �63 76� �
Type: CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty44}
\begin{paste}{CartesianTensorXmpPageEmpty44}{CartesianTensorXmpPagePatch44}
\pastebutton{CartesianTensorXmpPageEmpty44}{\showpaste}
\tab{5}\spadcommand{reindex(product(Tn,Tn),[4,3,2,1])+3*Tn*product(Tm,Tm)\free{Tm Tn }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch45}
\begin{paste}{CartesianTensorXmpPageFull45}{CartesianTensorXmpPageEmpty45}
\pastebutton{CartesianTensorXmpPageFull45}{\hidepaste}
\tab{5}\spadcommand{delta: CT := kroneckerDelta()\free{CT }\bound{delta }}
\indentrel{3}\begin{verbatim}
�1 0�
(45) � �
�0 1�
Type: CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty45}
\begin{paste}{CartesianTensorXmpPageEmpty45}{CartesianTensorXmpPagePatch45}
\pastebutton{CartesianTensorXmpPageEmpty45}{\showpaste}
\tab{5}\spadcommand{delta: CT := kroneckerDelta()\free{CT }\bound{delta }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch46}
\begin{paste}{CartesianTensorXmpPageFull46}{CartesianTensorXmpPageEmpty46}
\pastebutton{CartesianTensorXmpPageFull46}{\hidepaste}
\tab{5}\spadcommand{contract(Tmn, 2, delta, 1) = reindex(Tmn, [1,3,4,2])\free{Tmn delta }}
\indentrel{3}\begin{verbatim}
� �2 4� �0 0�� � �2 4� �0 0��
� � � � �� � � � � ��
� �3 6� �1 2ٳ � �3 6� �1 2ٳ
(46) � �= � �
��8 10� �0 0�� ��8 10� �0 0��
�� � � �� �� � � ��
��12 15� �4 5�� ��12 15� �4 5��
Type: Equation CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty46}
\begin{paste}{CartesianTensorXmpPageEmpty46}{CartesianTensorXmpPagePatch46}
\pastebutton{CartesianTensorXmpPageEmpty46}{\showpaste}
\tab{5}\spadcommand{contract(Tmn, 2, delta, 1) = reindex(Tmn, [1,3,4,2])\free{Tmn delta }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch47}
\begin{paste}{CartesianTensorXmpPageFull47}{CartesianTensorXmpPageEmpty47}
\pastebutton{CartesianTensorXmpPageFull47}{\hidepaste}
\tab{5}\spadcommand{epsilon:CT := leviCivitaSymbol()\free{CT }\bound{epsilon }}
\indentrel{3}\begin{verbatim}
� 0 1�
(47) � �
�- 1 0�
Type: CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty47}
\begin{paste}{CartesianTensorXmpPageEmpty47}{CartesianTensorXmpPagePatch47}
\pastebutton{CartesianTensorXmpPageEmpty47}{\showpaste}
\tab{5}\spadcommand{epsilon:CT := leviCivitaSymbol()\free{CT }\bound{epsilon }}
\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPagePatch48}
\begin{paste}{CartesianTensorXmpPageFull48}{CartesianTensorXmpPageEmpty48}
\pastebutton{CartesianTensorXmpPageFull48}{\hidepaste}
\tab{5}\spadcommand{contract(epsilon*Tm*epsilon, 1,2) = 2 * determinant m\free{epsilon Tm m }}
\indentrel{3}\begin{verbatim}
(48) - 6= - 6
Type: Equation CartesianTensor(1,2,Integer)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}
\begin{patch}{CartesianTensorXmpPageEmpty48}
\begin{paste}{CartesianTensorXmpPageEmpty48}{CartesianTensorXmpPagePatch48}
\pastebutton{CartesianTensorXmpPageEmpty48}{\showpaste}
\tab{5}\spadcommand{contract(epsilon*Tm*epsilon, 1,2) = 2 * determinant m\free{epsilon Tm m }}
\end{paste}\end{patch}