\begin{patch}{OctonionXmpPagePatch1}
\begin{paste}{OctonionXmpPageFull1}{OctonionXmpPageEmpty1}
\pastebutton{OctonionXmpPageFull1}{\hidepaste}
\tab{5}\spadcommand{oci1 := octon(1,2,3,4,5,6,7,8)\bound{oci1 }}
\indentrel{3}\begin{verbatim}
   (1)  1 + 2i + 3j + 4k + 5E + 6I + 7J + 8K
                                 Type: Octonion Integer
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{OctonionXmpPageEmpty1}
\begin{paste}{OctonionXmpPageEmpty1}{OctonionXmpPagePatch1}
\pastebutton{OctonionXmpPageEmpty1}{\showpaste}
\tab{5}\spadcommand{oci1 := octon(1,2,3,4,5,6,7,8)\bound{oci1 }}
\end{paste}\end{patch}

\begin{patch}{OctonionXmpPagePatch2}
\begin{paste}{OctonionXmpPageFull2}{OctonionXmpPageEmpty2}
\pastebutton{OctonionXmpPageFull2}{\hidepaste}
\tab{5}\spadcommand{oci2 := octon(7,2,3,-4,5,6,-7,0)\bound{oci2 }}
\indentrel{3}\begin{verbatim}
   (2)  7 + 2i + 3j - 4k + 5E + 6I - 7J
                                 Type: Octonion Integer
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{OctonionXmpPageEmpty2}
\begin{paste}{OctonionXmpPageEmpty2}{OctonionXmpPagePatch2}
\pastebutton{OctonionXmpPageEmpty2}{\showpaste}
\tab{5}\spadcommand{oci2 := octon(7,2,3,-4,5,6,-7,0)\bound{oci2 }}
\end{paste}\end{patch}

\begin{patch}{OctonionXmpPagePatch3}
\begin{paste}{OctonionXmpPageFull3}{OctonionXmpPageEmpty3}
\pastebutton{OctonionXmpPageFull3}{\hidepaste}
\tab{5}\spadcommand{oci3 := octon(quatern(-7,-12,3,-10), quatern(5,6,9,0))\bound{oci3 }}
\indentrel{3}\begin{verbatim}
   (3)  - 7 - 12i + 3j - 10k + 5E + 6I + 9J
                                 Type: Octonion Integer
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{OctonionXmpPageEmpty3}
\begin{paste}{OctonionXmpPageEmpty3}{OctonionXmpPagePatch3}
\pastebutton{OctonionXmpPageEmpty3}{\showpaste}
\tab{5}\spadcommand{oci3 := octon(quatern(-7,-12,3,-10), quatern(5,6,9,0))\bound{oci3 }}
\end{paste}\end{patch}

\begin{patch}{OctonionXmpPagePatch4}
\begin{paste}{OctonionXmpPageFull4}{OctonionXmpPageEmpty4}
\pastebutton{OctonionXmpPageFull4}{\hidepaste}
\tab{5}\spadcommand{(oci1 * oci2) * oci3 - oci1 * (oci2 * oci3)\free{oci1 oci2 oci3 }}
\indentrel{3}\begin{verbatim}
   (4)
   2696i - 2928j - 4072k + 16E - 1192I + 832J + 2616K
                                 Type: Octonion Integer
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{OctonionXmpPageEmpty4}
\begin{paste}{OctonionXmpPageEmpty4}{OctonionXmpPagePatch4}
\pastebutton{OctonionXmpPageEmpty4}{\showpaste}
\tab{5}\spadcommand{(oci1 * oci2) * oci3 - oci1 * (oci2 * oci3)\free{oci1 oci2 oci3 }}
\end{paste}\end{patch}

\begin{patch}{OctonionXmpPagePatch5}
\begin{paste}{OctonionXmpPageFull5}{OctonionXmpPageEmpty5}
\pastebutton{OctonionXmpPageFull5}{\hidepaste}
\tab{5}\spadcommand{[real oci1, imagi oci1, imagj oci1, imagk oci1, imagE oci1, imagI oci1, imagJ oci1, imagK oci1]\free{oci1 }}
\indentrel{3}\begin{verbatim}
   (5)  [1,2,3,4,5,6,7,8]
                             Type: List PositiveInteger
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{OctonionXmpPageEmpty5}
\begin{paste}{OctonionXmpPageEmpty5}{OctonionXmpPagePatch5}
\pastebutton{OctonionXmpPageEmpty5}{\showpaste}
\tab{5}\spadcommand{[real oci1, imagi oci1, imagj oci1, imagk oci1, imagE oci1, imagI oci1, imagJ oci1, imagK oci1]\free{oci1 }}
\end{paste}\end{patch}

\begin{patch}{OctonionXmpPagePatch6}
\begin{paste}{OctonionXmpPageFull6}{OctonionXmpPageEmpty6}
\pastebutton{OctonionXmpPageFull6}{\hidepaste}
\tab{5}\spadcommand{q : Quaternion Polynomial Integer := quatern(q1, qi, qj, qk)\bound{q }}
\indentrel{3}\begin{verbatim}
   (6)  q1 + qi i + qj j + qk k
                    Type: Quaternion Polynomial Integer
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{OctonionXmpPageEmpty6}
\begin{paste}{OctonionXmpPageEmpty6}{OctonionXmpPagePatch6}
\pastebutton{OctonionXmpPageEmpty6}{\showpaste}
\tab{5}\spadcommand{q : Quaternion Polynomial Integer := quatern(q1, qi, qj, qk)\bound{q }}
\end{paste}\end{patch}

\begin{patch}{OctonionXmpPagePatch7}
\begin{paste}{OctonionXmpPageFull7}{OctonionXmpPageEmpty7}
\pastebutton{OctonionXmpPageFull7}{\hidepaste}
\tab{5}\spadcommand{E : Octonion Polynomial Integer:= octon(0,0,0,0,1,0,0,0)\bound{E }}
\indentrel{3}\begin{verbatim}
   (7)  E
                      Type: Octonion Polynomial Integer
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{OctonionXmpPageEmpty7}
\begin{paste}{OctonionXmpPageEmpty7}{OctonionXmpPagePatch7}
\pastebutton{OctonionXmpPageEmpty7}{\showpaste}
\tab{5}\spadcommand{E : Octonion Polynomial Integer:= octon(0,0,0,0,1,0,0,0)\bound{E }}
\end{paste}\end{patch}

\begin{patch}{OctonionXmpPagePatch8}
\begin{paste}{OctonionXmpPageFull8}{OctonionXmpPageEmpty8}
\pastebutton{OctonionXmpPageFull8}{\hidepaste}
\tab{5}\spadcommand{q * E\free{q E }}
\indentrel{3}\begin{verbatim}
   (8)  q1 E + qi I + qj J + qk K
                      Type: Octonion Polynomial Integer
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{OctonionXmpPageEmpty8}
\begin{paste}{OctonionXmpPageEmpty8}{OctonionXmpPagePatch8}
\pastebutton{OctonionXmpPageEmpty8}{\showpaste}
\tab{5}\spadcommand{q * E\free{q E }}
\end{paste}\end{patch}

\begin{patch}{OctonionXmpPagePatch9}
\begin{paste}{OctonionXmpPageFull9}{OctonionXmpPageEmpty9}
\pastebutton{OctonionXmpPageFull9}{\hidepaste}
\tab{5}\spadcommand{E * q\free{E q }}
\indentrel{3}\begin{verbatim}
   (9)  q1 E - qi I - qj J - qk K
                      Type: Octonion Polynomial Integer
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{OctonionXmpPageEmpty9}
\begin{paste}{OctonionXmpPageEmpty9}{OctonionXmpPagePatch9}
\pastebutton{OctonionXmpPageEmpty9}{\showpaste}
\tab{5}\spadcommand{E * q\free{E q }}
\end{paste}\end{patch}

\begin{patch}{OctonionXmpPagePatch10}
\begin{paste}{OctonionXmpPageFull10}{OctonionXmpPageEmpty10}
\pastebutton{OctonionXmpPageFull10}{\hidepaste}
\tab{5}\spadcommand{q * 1$(Octonion Polynomial Integer)\free{q }}
\indentrel{3}\begin{verbatim}
   (10)  q1 + qi i + qj j + qk k
                      Type: Octonion Polynomial Integer
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{OctonionXmpPageEmpty10}
\begin{paste}{OctonionXmpPageEmpty10}{OctonionXmpPagePatch10}
\pastebutton{OctonionXmpPageEmpty10}{\showpaste}
\tab{5}\spadcommand{q * 1$(Octonion Polynomial Integer)\free{q }}
\end{paste}\end{patch}

\begin{patch}{OctonionXmpPagePatch11}
\begin{paste}{OctonionXmpPageFull11}{OctonionXmpPageEmpty11}
\pastebutton{OctonionXmpPageFull11}{\hidepaste}
\tab{5}\spadcommand{1$(Octonion Polynomial Integer) * q\free{q }}
\indentrel{3}\begin{verbatim}
   (11)  q1 + qi i + qj j + qk k
                      Type: Octonion Polynomial Integer
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{OctonionXmpPageEmpty11}
\begin{paste}{OctonionXmpPageEmpty11}{OctonionXmpPagePatch11}
\pastebutton{OctonionXmpPageEmpty11}{\showpaste}
\tab{5}\spadcommand{1$(Octonion Polynomial Integer) * q\free{q }}
\end{paste}\end{patch}

\begin{patch}{OctonionXmpPagePatch12}
\begin{paste}{OctonionXmpPageFull12}{OctonionXmpPageEmpty12}
\pastebutton{OctonionXmpPageFull12}{\hidepaste}
\tab{5}\spadcommand{o : Octonion Polynomial Integer := octon(o1, oi, oj, ok, oE, oI, oJ, oK)\bound{o }}
\indentrel{3}\begin{verbatim}
   (12)
   o1 + oi i + oj j + ok k + oE E + oI I + oJ J + oK K
                      Type: Octonion Polynomial Integer
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{OctonionXmpPageEmpty12}
\begin{paste}{OctonionXmpPageEmpty12}{OctonionXmpPagePatch12}
\pastebutton{OctonionXmpPageEmpty12}{\showpaste}
\tab{5}\spadcommand{o : Octonion Polynomial Integer := octon(o1, oi, oj, ok, oE, oI, oJ, oK)\bound{o }}
\end{paste}\end{patch}

\begin{patch}{OctonionXmpPagePatch13}
\begin{paste}{OctonionXmpPageFull13}{OctonionXmpPageEmpty13}
\pastebutton{OctonionXmpPageFull13}{\hidepaste}
\tab{5}\spadcommand{norm o\free{o }}
\indentrel{3}\begin{verbatim}
           2     2     2     2     2     2     2     2
   (13)  ok  + oj  + oi  + oK  + oJ  + oI  + oE  + o1
                               Type: Polynomial Integer
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{OctonionXmpPageEmpty13}
\begin{paste}{OctonionXmpPageEmpty13}{OctonionXmpPagePatch13}
\pastebutton{OctonionXmpPageEmpty13}{\showpaste}
\tab{5}\spadcommand{norm o\free{o }}
\end{paste}\end{patch}

\begin{patch}{OctonionXmpPagePatch14}
\begin{paste}{OctonionXmpPageFull14}{OctonionXmpPageEmpty14}
\pastebutton{OctonionXmpPageFull14}{\hidepaste}
\tab{5}\spadcommand{p : Octonion Polynomial Integer := octon(p1, pi, pj, pk, pE, pI, pJ, pK)\bound{p }}
\indentrel{3}\begin{verbatim}
   (14)
   p1 + pi i + pj j + pk k + pE E + pI I + pJ J + pK K
                      Type: Octonion Polynomial Integer
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{OctonionXmpPageEmpty14}
\begin{paste}{OctonionXmpPageEmpty14}{OctonionXmpPagePatch14}
\pastebutton{OctonionXmpPageEmpty14}{\showpaste}
\tab{5}\spadcommand{p : Octonion Polynomial Integer := octon(p1, pi, pj, pk, pE, pI, pJ, pK)\bound{p }}
\end{paste}\end{patch}

\begin{patch}{OctonionXmpPagePatch15}
\begin{paste}{OctonionXmpPageFull15}{OctonionXmpPageEmpty15}
\pastebutton{OctonionXmpPageFull15}{\hidepaste}
\tab{5}\spadcommand{norm(o*p)-norm(p)*norm(p)\free{o p }}
\indentrel{3}\begin{verbatim}
   (15)
         4
     - pk
   + 
              2      2      2      2      2      2      2
         - 2pj  - 2pi  - 2pK  - 2pJ  - 2pI  - 2pE  - 2p1
       + 
           2     2     2     2     2     2     2     2
         ok  + oj  + oi  + oK  + oJ  + oI  + oE  + o1
    *
         2
       pk
   + 
         4
     - pj
   + 
              2      2      2      2      2      2     2
         - 2pi  - 2pK  - 2pJ  - 2pI  - 2pE  - 2p1  + ok
       + 
           2     2     2     2     2     2     2
         oj  + oi  + oK  + oJ  + oI  + oE  + o1
    *
         2
       pj
   + 
         4
     - pi
   + 
              2      2      2      2      2     2     2
         - 2pK  - 2pJ  - 2pI  - 2pE  - 2p1  + ok  + oj
       + 
           2     2     2     2     2     2
         oi  + oK  + oJ  + oI  + oE  + o1
    *
         2
       pi
   + 
         4
     - pK
   + 
              2      2      2      2     2     2     2
         - 2pJ  - 2pI  - 2pE  - 2p1  + ok  + oj  + oi
       + 
           2     2     2     2     2
         oK  + oJ  + oI  + oE  + o1
    *
         2
       pK
   + 
         4
     - pJ
   + 
              2      2      2     2     2     2     2
         - 2pI  - 2pE  - 2p1  + ok  + oj  + oi  + oK
       + 
           2     2     2     2
         oJ  + oI  + oE  + o1
    *
         2
       pJ
   + 
         4
     - pI
   + 
              2      2     2     2     2     2     2     2
         - 2pE  - 2p1  + ok  + oj  + oi  + oK  + oJ  + oI
       + 
           2     2
         oE  + o1
    *
         2
       pI
   + 
         4
     - pE
   + 
              2     2     2     2     2     2     2     2
         - 2p1  + ok  + oj  + oi  + oK  + oJ  + oI  + oE
       + 
           2
         o1
    *
         2
       pE
   + 
         4
     - p1
   + 
        2     2     2     2     2     2     2     2   2
     (ok  + oj  + oi  + oK  + oJ  + oI  + oE  + o1 )p1
                               Type: Polynomial Integer
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{OctonionXmpPageEmpty15}
\begin{paste}{OctonionXmpPageEmpty15}{OctonionXmpPagePatch15}
\pastebutton{OctonionXmpPageEmpty15}{\showpaste}
\tab{5}\spadcommand{norm(o*p)-norm(p)*norm(p)\free{o p }}
\end{paste}\end{patch}