\begin{patch}{RegularTriangularSetXmpPagePatch1}
\begin{paste}{RegularTriangularSetXmpPageFull1}{RegularTriangularSetXmpPageEmpty1}
\pastebutton{RegularTriangularSetXmpPageFull1}{\hidepaste}
\tab{5}\spadcommand{R := Integer\bound{R }}
\indentrel{3}\begin{verbatim}
   (1)  Integer
                                             Type: Type
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty1}
\begin{paste}{RegularTriangularSetXmpPageEmpty1}{RegularTriangularSetXmpPagePatch1}
\pastebutton{RegularTriangularSetXmpPageEmpty1}{\showpaste}
\tab{5}\spadcommand{R := Integer\bound{R }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch2}
\begin{paste}{RegularTriangularSetXmpPageFull2}{RegularTriangularSetXmpPageEmpty2}
\pastebutton{RegularTriangularSetXmpPageFull2}{\hidepaste}
\tab{5}\spadcommand{ls : List Symbol := [x,y,z,t]\bound{ls }}
\indentrel{3}\begin{verbatim}
   (2)  [x, y, z, t]
                                     Type: List(Symbol)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty2}
\begin{paste}{RegularTriangularSetXmpPageEmpty2}{RegularTriangularSetXmpPagePatch2}
\pastebutton{RegularTriangularSetXmpPageEmpty2}{\showpaste}
\tab{5}\spadcommand{ls : List Symbol := [x,y,z,t]\bound{ls }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch3}
\begin{paste}{RegularTriangularSetXmpPageFull3}{RegularTriangularSetXmpPageEmpty3}
\pastebutton{RegularTriangularSetXmpPageFull3}{\hidepaste}
\tab{5}\spadcommand{V := OVAR(ls)\free{ls }\bound{V }}
\indentrel{3}\begin{verbatim}
   (3)  OrderedVariableList([x, y, z, t])
                                             Type: Type
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty3}
\begin{paste}{RegularTriangularSetXmpPageEmpty3}{RegularTriangularSetXmpPagePatch3}
\pastebutton{RegularTriangularSetXmpPageEmpty3}{\showpaste}
\tab{5}\spadcommand{V := OVAR(ls)\free{ls }\bound{V }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch4}
\begin{paste}{RegularTriangularSetXmpPageFull4}{RegularTriangularSetXmpPageEmpty4}
\pastebutton{RegularTriangularSetXmpPageFull4}{\hidepaste}
\tab{5}\spadcommand{E := IndexedExponents V\free{V }\bound{E }}
\indentrel{3}\begin{verbatim}
   (4)
   IndexedExponents(OrderedVariableList([x, y, z, t]))
                                             Type: Type
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty4}
\begin{paste}{RegularTriangularSetXmpPageEmpty4}{RegularTriangularSetXmpPagePatch4}
\pastebutton{RegularTriangularSetXmpPageEmpty4}{\showpaste}
\tab{5}\spadcommand{E := IndexedExponents V\free{V }\bound{E }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch5}
\begin{paste}{RegularTriangularSetXmpPageFull5}{RegularTriangularSetXmpPageEmpty5}
\pastebutton{RegularTriangularSetXmpPageFull5}{\hidepaste}
\tab{5}\spadcommand{P := NSMP(R, V)\free{R }\free{V }\bound{P }}
\indentrel{3}\begin{verbatim}
   (5)
   NewSparseMultivariatePolynomial
      Integer
  ,
      OrderedVariableList([x, y, z, t])
                                             Type: Type
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty5}
\begin{paste}{RegularTriangularSetXmpPageEmpty5}{RegularTriangularSetXmpPagePatch5}
\pastebutton{RegularTriangularSetXmpPageEmpty5}{\showpaste}
\tab{5}\spadcommand{P := NSMP(R, V)\free{R }\free{V }\bound{P }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch6}
\begin{paste}{RegularTriangularSetXmpPageFull6}{RegularTriangularSetXmpPageEmpty6}
\pastebutton{RegularTriangularSetXmpPageFull6}{\hidepaste}
\tab{5}\spadcommand{x: P := 'x\free{P }\bound{x }}
\indentrel{3}\begin{verbatim}
   (6)  x
Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty6}
\begin{paste}{RegularTriangularSetXmpPageEmpty6}{RegularTriangularSetXmpPagePatch6}
\pastebutton{RegularTriangularSetXmpPageEmpty6}{\showpaste}
\tab{5}\spadcommand{x: P := 'x\free{P }\bound{x }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch7}
\begin{paste}{RegularTriangularSetXmpPageFull7}{RegularTriangularSetXmpPageEmpty7}
\pastebutton{RegularTriangularSetXmpPageFull7}{\hidepaste}
\tab{5}\spadcommand{y: P := 'y\free{P }\bound{y }}
\indentrel{3}\begin{verbatim}
   (7)  y
Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty7}
\begin{paste}{RegularTriangularSetXmpPageEmpty7}{RegularTriangularSetXmpPagePatch7}
\pastebutton{RegularTriangularSetXmpPageEmpty7}{\showpaste}
\tab{5}\spadcommand{y: P := 'y\free{P }\bound{y }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch8}
\begin{paste}{RegularTriangularSetXmpPageFull8}{RegularTriangularSetXmpPageEmpty8}
\pastebutton{RegularTriangularSetXmpPageFull8}{\hidepaste}
\tab{5}\spadcommand{z: P := 'z\free{P }\bound{z }}
\indentrel{3}\begin{verbatim}
   (8)  z
Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty8}
\begin{paste}{RegularTriangularSetXmpPageEmpty8}{RegularTriangularSetXmpPagePatch8}
\pastebutton{RegularTriangularSetXmpPageEmpty8}{\showpaste}
\tab{5}\spadcommand{z: P := 'z\free{P }\bound{z }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch9}
\begin{paste}{RegularTriangularSetXmpPageFull9}{RegularTriangularSetXmpPageEmpty9}
\pastebutton{RegularTriangularSetXmpPageFull9}{\hidepaste}
\tab{5}\spadcommand{t: P := 't\free{P }\bound{t }}
\indentrel{3}\begin{verbatim}
   (9)  t
Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty9}
\begin{paste}{RegularTriangularSetXmpPageEmpty9}{RegularTriangularSetXmpPagePatch9}
\pastebutton{RegularTriangularSetXmpPageEmpty9}{\showpaste}
\tab{5}\spadcommand{t: P := 't\free{P }\bound{t }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch10}
\begin{paste}{RegularTriangularSetXmpPageFull10}{RegularTriangularSetXmpPageEmpty10}
\pastebutton{RegularTriangularSetXmpPageFull10}{\hidepaste}
\tab{5}\spadcommand{T := REGSET(R,E,V,P)\free{R }\free{E }\free{V }\free{P }\bound{T }}
\indentrel{3}\begin{verbatim}
   (10)
   RegularTriangularSet
      Integer
  ,
      IndexedExponents(OrderedVariableList([x, y, z, t]))
  ,
      OrderedVariableList([x, y, z, t])
  ,
      NewSparseMultivariatePolynomial
         Integer
     ,
         OrderedVariableList([x, y, z, t])
                                             Type: Type
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty10}
\begin{paste}{RegularTriangularSetXmpPageEmpty10}{RegularTriangularSetXmpPagePatch10}
\pastebutton{RegularTriangularSetXmpPageEmpty10}{\showpaste}
\tab{5}\spadcommand{T := REGSET(R,E,V,P)\free{R }\free{E }\free{V }\free{P }\bound{T }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch11}
\begin{paste}{RegularTriangularSetXmpPageFull11}{RegularTriangularSetXmpPageEmpty11}
\pastebutton{RegularTriangularSetXmpPageFull11}{\hidepaste}
\tab{5}\spadcommand{p1 := x ^ 31 - x ^ 6 - x - y\free{x }\free{y }\bound{p1 }}
\indentrel{3}\begin{verbatim}
          31    6
   (11)  x   - x  - x - y
Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty11}
\begin{paste}{RegularTriangularSetXmpPageEmpty11}{RegularTriangularSetXmpPagePatch11}
\pastebutton{RegularTriangularSetXmpPageEmpty11}{\showpaste}
\tab{5}\spadcommand{p1 := x ^ 31 - x ^ 6 - x - y\free{x }\free{y }\bound{p1 }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch12}
\begin{paste}{RegularTriangularSetXmpPageFull12}{RegularTriangularSetXmpPageEmpty12}
\pastebutton{RegularTriangularSetXmpPageFull12}{\hidepaste}
\tab{5}\spadcommand{p2 := x ^ 8 - z\free{x }\free{z }\bound{p2 }}
\indentrel{3}\begin{verbatim}
          8
   (12)  x  - z
Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty12}
\begin{paste}{RegularTriangularSetXmpPageEmpty12}{RegularTriangularSetXmpPagePatch12}
\pastebutton{RegularTriangularSetXmpPageEmpty12}{\showpaste}
\tab{5}\spadcommand{p2 := x ^ 8 - z\free{x }\free{z }\bound{p2 }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch13}
\begin{paste}{RegularTriangularSetXmpPageFull13}{RegularTriangularSetXmpPageEmpty13}
\pastebutton{RegularTriangularSetXmpPageFull13}{\hidepaste}
\tab{5}\spadcommand{p3 := x ^ 10 - t\free{x }\free{t }\bound{p3 }}
\indentrel{3}\begin{verbatim}
          10
   (13)  x   - t
Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty13}
\begin{paste}{RegularTriangularSetXmpPageEmpty13}{RegularTriangularSetXmpPagePatch13}
\pastebutton{RegularTriangularSetXmpPageEmpty13}{\showpaste}
\tab{5}\spadcommand{p3 := x ^ 10 - t\free{x }\free{t }\bound{p3 }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch14}
\begin{paste}{RegularTriangularSetXmpPageFull14}{RegularTriangularSetXmpPageEmpty14}
\pastebutton{RegularTriangularSetXmpPageFull14}{\hidepaste}
\tab{5}\spadcommand{lp := [p1, p2, p3]\free{p1 }\free{p2 }\free{p3 }\bound{lp }}
\indentrel{3}\begin{verbatim}
           31    6           8       10
   (14)  [x   - x  - x - y, x  - z, x   - t]
Type: List(NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t])))
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty14}
\begin{paste}{RegularTriangularSetXmpPageEmpty14}{RegularTriangularSetXmpPagePatch14}
\pastebutton{RegularTriangularSetXmpPageEmpty14}{\showpaste}
\tab{5}\spadcommand{lp := [p1, p2, p3]\free{p1 }\free{p2 }\free{p3 }\bound{lp }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch15}
\begin{paste}{RegularTriangularSetXmpPageFull15}{RegularTriangularSetXmpPageEmpty15}
\pastebutton{RegularTriangularSetXmpPageFull15}{\hidepaste}
\tab{5}\spadcommand{zeroSetSplit(lp)$T\free{lp }\free{T }}
\indentrel{3}\begin{verbatim}
   (15)
   [
       5    4       2      3     8      5    3    2
     {z  - t , t z y  + 2 z y - t  + 2 t  + t  - t ,
        4                2
      (t  - t)x - t y - z }
     ]
Type: List(RegularTriangularSet(Integer,IndexedExponents(OrderedVariableList([x,y,z,t])),OrderedVariableList([x,y,z,t]),NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))))
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty15}
\begin{paste}{RegularTriangularSetXmpPageEmpty15}{RegularTriangularSetXmpPagePatch15}
\pastebutton{RegularTriangularSetXmpPageEmpty15}{\showpaste}
\tab{5}\spadcommand{zeroSetSplit(lp)$T\free{lp }\free{T }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch16}
\begin{paste}{RegularTriangularSetXmpPageFull16}{RegularTriangularSetXmpPageEmpty16}
\pastebutton{RegularTriangularSetXmpPageFull16}{\hidepaste}
\tab{5}\spadcommand{lts := zeroSetSplit(lp,false)$T\free{lp }\free{T }\bound{lts }}
\indentrel{3}\begin{verbatim}
   (16)
   [
       5    4       2      3     8      5    3    2
     {z  - t , t z y  + 2 z y - t  + 2 t  + t  - t ,
        4                2
      (t  - t)x - t y - z }
     ,
      3       5           2      3          2
    {t  - 1, z  - t, t z y  + 2 z y + 1, z x  - t},
    {t, z, y, x}]
Type: List(RegularTriangularSet(Integer,IndexedExponents(OrderedVariableList([x,y,z,t])),OrderedVariableList([x,y,z,t]),NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))))
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty16}
\begin{paste}{RegularTriangularSetXmpPageEmpty16}{RegularTriangularSetXmpPagePatch16}
\pastebutton{RegularTriangularSetXmpPageEmpty16}{\showpaste}
\tab{5}\spadcommand{lts := zeroSetSplit(lp,false)$T\free{lp }\free{T }\bound{lts }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch17}
\begin{paste}{RegularTriangularSetXmpPageFull17}{RegularTriangularSetXmpPageEmpty17}
\pastebutton{RegularTriangularSetXmpPageFull17}{\hidepaste}
\tab{5}\spadcommand{[coHeight(ts) for ts in lts]\free{lts }}
\indentrel{3}\begin{verbatim}
   (17)  [1, 0, 0]
                         Type: List(NonNegativeInteger)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty17}
\begin{paste}{RegularTriangularSetXmpPageEmpty17}{RegularTriangularSetXmpPagePatch17}
\pastebutton{RegularTriangularSetXmpPageEmpty17}{\showpaste}
\tab{5}\spadcommand{[coHeight(ts) for ts in lts]\free{lts }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch18}
\begin{paste}{RegularTriangularSetXmpPageFull18}{RegularTriangularSetXmpPageEmpty18}
\pastebutton{RegularTriangularSetXmpPageFull18}{\hidepaste}
\tab{5}\spadcommand{f1 := y^2*z+2*x*y*t-2*x-z\free{z }\free{x }\free{y }\free{t }\bound{f1 }}
\indentrel{3}\begin{verbatim}
                           2
   (18)  (2 t y - 2)x + z y  - z
Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty18}
\begin{paste}{RegularTriangularSetXmpPageEmpty18}{RegularTriangularSetXmpPagePatch18}
\pastebutton{RegularTriangularSetXmpPageEmpty18}{\showpaste}
\tab{5}\spadcommand{f1 := y^2*z+2*x*y*t-2*x-z\free{z }\free{x }\free{y }\free{t }\bound{f1 }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch19}
\begin{paste}{RegularTriangularSetXmpPageFull19}{RegularTriangularSetXmpPageEmpty19}
\pastebutton{RegularTriangularSetXmpPageFull19}{\hidepaste}
\tab{5}\spadcommand{f2 := -x^3*z+ 4*x*y^2*z+ 4*x^2*y*t+ 2*y^3*t+ 4*x^2- 10*y^2+ 4*x*z- 10*y*t+ 2\free{z }\free{x }\free{y }\free{t }\bound{f2 }}
\indentrel{3}\begin{verbatim}
   (19)
          3               2         2                3
     - z x  + (4 t y + 4)x  + (4 z y  + 4 z)x + 2 t y
   + 
           2
     - 10 y  - 10 t y + 2
Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty19}
\begin{paste}{RegularTriangularSetXmpPageEmpty19}{RegularTriangularSetXmpPagePatch19}
\pastebutton{RegularTriangularSetXmpPageEmpty19}{\showpaste}
\tab{5}\spadcommand{f2 := -x^3*z+ 4*x*y^2*z+ 4*x^2*y*t+ 2*y^3*t+ 4*x^2- 10*y^2+ 4*x*z- 10*y*t+ 2\free{z }\free{x }\free{y }\free{t }\bound{f2 }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch20}
\begin{paste}{RegularTriangularSetXmpPageFull20}{RegularTriangularSetXmpPageEmpty20}
\pastebutton{RegularTriangularSetXmpPageFull20}{\hidepaste}
\tab{5}\spadcommand{f3 := 2*y*z*t+x*t^2-x-2*z\free{z }\free{x }\free{y }\free{t }\bound{f3 }}
\indentrel{3}\begin{verbatim}
           2
   (20)  (t  - 1)x + 2 t z y - 2 z
Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty20}
\begin{paste}{RegularTriangularSetXmpPageEmpty20}{RegularTriangularSetXmpPagePatch20}
\pastebutton{RegularTriangularSetXmpPageEmpty20}{\showpaste}
\tab{5}\spadcommand{f3 := 2*y*z*t+x*t^2-x-2*z\free{z }\free{x }\free{y }\free{t }\bound{f3 }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch21}
\begin{paste}{RegularTriangularSetXmpPageFull21}{RegularTriangularSetXmpPageEmpty21}
\pastebutton{RegularTriangularSetXmpPageFull21}{\hidepaste}
\tab{5}\spadcommand{f4 := -x*z^3+ 4*y*z^2*t+ 4*x*z*t^2+ 2*y*t^3+ 4*x*z+ 4*z^2-10*y*t- 10*t^2+2\free{z }\free{x }\free{y }\free{t }\bound{f4 }}
\indentrel{3}\begin{verbatim}
   (21)
         3       2                 2      3
     (- z  + (4 t  + 4)z)x + (4 t z  + 2 t  - 10 t)y
   + 
        2       2
     4 z  - 10 t  + 2
Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty21}
\begin{paste}{RegularTriangularSetXmpPageEmpty21}{RegularTriangularSetXmpPagePatch21}
\pastebutton{RegularTriangularSetXmpPageEmpty21}{\showpaste}
\tab{5}\spadcommand{f4 := -x*z^3+ 4*y*z^2*t+ 4*x*z*t^2+ 2*y*t^3+ 4*x*z+ 4*z^2-10*y*t- 10*t^2+2\free{z }\free{x }\free{y }\free{t }\bound{f4 }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch22}
\begin{paste}{RegularTriangularSetXmpPageFull22}{RegularTriangularSetXmpPageEmpty22}
\pastebutton{RegularTriangularSetXmpPageFull22}{\hidepaste}
\tab{5}\spadcommand{lf := [f1, f2, f3, f4]\free{f1 }\free{f2 }\free{f3 }\free{f4 }\bound{lf }}
\indentrel{3}\begin{verbatim}
   (22)
                      2
   [(2 t y - 2)x + z y  - z,

            3               2         2                3
       - z x  + (4 t y + 4)x  + (4 z y  + 4 z)x + 2 t y
     + 
             2
       - 10 y  - 10 t y + 2
     ,
      2
    (t  - 1)x + 2 t z y - 2 z,

           3       2                 2      3
       (- z  + (4 t  + 4)z)x + (4 t z  + 2 t  - 10 t)y
     + 
          2       2
       4 z  - 10 t  + 2
     ]
Type: List(NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t])))
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty22}
\begin{paste}{RegularTriangularSetXmpPageEmpty22}{RegularTriangularSetXmpPagePatch22}
\pastebutton{RegularTriangularSetXmpPageEmpty22}{\showpaste}
\tab{5}\spadcommand{lf := [f1, f2, f3, f4]\free{f1 }\free{f2 }\free{f3 }\free{f4 }\bound{lf }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch23}
\begin{paste}{RegularTriangularSetXmpPageFull23}{RegularTriangularSetXmpPageEmpty23}
\pastebutton{RegularTriangularSetXmpPageFull23}{\hidepaste}
\tab{5}\spadcommand{zeroSetSplit(lf)$T\free{lf }\free{T }}
\indentrel{3}\begin{verbatim}
   (23)
   [
       2       8       6        2
     {t  - 1, z  - 16 z  + 256 z  - 256, t y - 1,
        3              2
      (z  - 8 z)x - 8 z  + 16}
     ,
        2       2      2
    {3 t  + 1, z  - 7 t  - 1, y + t, x + z},
      8       6       2           3              2
    {t  - 10 t  + 10 t  - 1, z, (t  - 5 t)y - 5 t  + 1, x}
     ,
      2       2
    {t  + 3, z  - 4, y + t, x - z}]
Type: List(RegularTriangularSet(Integer,IndexedExponents(OrderedVariableList([x,y,z,t])),OrderedVariableList([x,y,z,t]),NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))))
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty23}
\begin{paste}{RegularTriangularSetXmpPageEmpty23}{RegularTriangularSetXmpPagePatch23}
\pastebutton{RegularTriangularSetXmpPageEmpty23}{\showpaste}
\tab{5}\spadcommand{zeroSetSplit(lf)$T\free{lf }\free{T }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch24}
\begin{paste}{RegularTriangularSetXmpPageFull24}{RegularTriangularSetXmpPageEmpty24}
\pastebutton{RegularTriangularSetXmpPageFull24}{\hidepaste}
\tab{5}\spadcommand{lts2 := zeroSetSplit(lf,false)$T\free{lf }\free{T }\bound{lts2 }}
\indentrel{3}\begin{verbatim}
   (24)
      8       6       2           3              2
   [{t  - 10 t  + 10 t  - 1, z, (t  - 5 t)y - 5 t  + 1, x}
     ,

       2       8       6        2
     {t  - 1, z  - 16 z  + 256 z  - 256, t y - 1,
        3              2
      (z  - 8 z)x - 8 z  + 16}
     ,
        2       2      2
    {3 t  + 1, z  - 7 t  - 1, y + t, x + z},
      2       2
    {t  + 3, z  - 4, y + t, x - z}]
Type: List(RegularTriangularSet(Integer,IndexedExponents(OrderedVariableList([x,y,z,t])),OrderedVariableList([x,y,z,t]),NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))))
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty24}
\begin{paste}{RegularTriangularSetXmpPageEmpty24}{RegularTriangularSetXmpPagePatch24}
\pastebutton{RegularTriangularSetXmpPageEmpty24}{\showpaste}
\tab{5}\spadcommand{lts2 := zeroSetSplit(lf,false)$T\free{lf }\free{T }\bound{lts2 }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch25}
\begin{paste}{RegularTriangularSetXmpPageFull25}{RegularTriangularSetXmpPageEmpty25}
\pastebutton{RegularTriangularSetXmpPageFull25}{\hidepaste}
\tab{5}\spadcommand{[coHeight(ts) for ts in lts2]\free{lts2 }}
\indentrel{3}\begin{verbatim}
   (25)  [0, 0, 0, 0]
                         Type: List(NonNegativeInteger)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty25}
\begin{paste}{RegularTriangularSetXmpPageEmpty25}{RegularTriangularSetXmpPagePatch25}
\pastebutton{RegularTriangularSetXmpPageEmpty25}{\showpaste}
\tab{5}\spadcommand{[coHeight(ts) for ts in lts2]\free{lts2 }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch26}
\begin{paste}{RegularTriangularSetXmpPageFull26}{RegularTriangularSetXmpPageEmpty26}
\pastebutton{RegularTriangularSetXmpPageFull26}{\hidepaste}
\tab{5}\spadcommand{degrees := [degree(ts) for ts in lts2]\free{lts2 }\bound{degrees }}
\indentrel{3}\begin{verbatim}
   (26)  [8, 16, 4, 4]
                         Type: List(NonNegativeInteger)
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty26}
\begin{paste}{RegularTriangularSetXmpPageEmpty26}{RegularTriangularSetXmpPagePatch26}
\pastebutton{RegularTriangularSetXmpPageEmpty26}{\showpaste}
\tab{5}\spadcommand{degrees := [degree(ts) for ts in lts2]\free{lts2 }\bound{degrees }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch27}
\begin{paste}{RegularTriangularSetXmpPageFull27}{RegularTriangularSetXmpPageEmpty27}
\pastebutton{RegularTriangularSetXmpPageFull27}{\hidepaste}
\tab{5}\spadcommand{reduce(+,degrees)\free{degrees }}
\indentrel{3}\begin{verbatim}
   (27)  32
                                  Type: PositiveInteger
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty27}
\begin{paste}{RegularTriangularSetXmpPageEmpty27}{RegularTriangularSetXmpPagePatch27}
\pastebutton{RegularTriangularSetXmpPageEmpty27}{\showpaste}
\tab{5}\spadcommand{reduce(+,degrees)\free{degrees }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch28}
\begin{paste}{RegularTriangularSetXmpPageFull28}{RegularTriangularSetXmpPageEmpty28}
\pastebutton{RegularTriangularSetXmpPageFull28}{\hidepaste}
\tab{5}\spadcommand{u : R := 2\free{R }\bound{u }}
\indentrel{3}\begin{verbatim}
   (28)  2
                                          Type: Integer
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty28}
\begin{paste}{RegularTriangularSetXmpPageEmpty28}{RegularTriangularSetXmpPagePatch28}
\pastebutton{RegularTriangularSetXmpPageEmpty28}{\showpaste}
\tab{5}\spadcommand{u : R := 2\free{R }\bound{u }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch29}
\begin{paste}{RegularTriangularSetXmpPageFull29}{RegularTriangularSetXmpPageEmpty29}
\pastebutton{RegularTriangularSetXmpPageFull29}{\hidepaste}
\tab{5}\spadcommand{q1 := 2*(u-1)^2+ 2*(x-z*x+z^2)+ y^2*(x-1)^2- 2*u*x+ 2*y*t*(1-x)*(x-z)+ 2*u*z*t*(t-y)+ u^2*t^2*(1-2*z)+ 2*u*t^2*(z-x)+ 2*u*t*y*(z-1)+ 2*u*z*x*(y+1)+ (u^2-2*u)*z^2*t^2+ 2*u^2*z^2+ 4*u*(1-u)*z+ t^2*(z-x)^2\free{z }\free{x }\free{y }\free{t }\free{u }\bound{q1 }}
\indentrel{3}\begin{verbatim}
   (29)
       2            2  2
     (y  - 2 t y + t )x
   + 
              2                               2
         - 2 y  + ((2 t + 4)z + 2 t)y + (- 2 t  + 2)z
       + 
              2
         - 4 t  - 2
    *
       x
   + 
      2                        2       2            2
     y  + (- 2 t z - 4 t)y + (t  + 10)z  - 8 z + 4 t  + 2
Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty29}
\begin{paste}{RegularTriangularSetXmpPageEmpty29}{RegularTriangularSetXmpPagePatch29}
\pastebutton{RegularTriangularSetXmpPageEmpty29}{\showpaste}
\tab{5}\spadcommand{q1 := 2*(u-1)^2+ 2*(x-z*x+z^2)+ y^2*(x-1)^2- 2*u*x+ 2*y*t*(1-x)*(x-z)+ 2*u*z*t*(t-y)+ u^2*t^2*(1-2*z)+ 2*u*t^2*(z-x)+ 2*u*t*y*(z-1)+ 2*u*z*x*(y+1)+ (u^2-2*u)*z^2*t^2+ 2*u^2*z^2+ 4*u*(1-u)*z+ t^2*(z-x)^2\free{z }\free{x }\free{y }\free{t }\free{u }\bound{q1 }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch30}
\begin{paste}{RegularTriangularSetXmpPageFull30}{RegularTriangularSetXmpPageEmpty30}
\pastebutton{RegularTriangularSetXmpPageFull30}{\hidepaste}
\tab{5}\spadcommand{q2 := t*(2*z+1)*(x-z)+ y*(z+2)*(1-x)+ u*(u-2)*t+ u*(1-2*u)*z*t+ u*y*(x+u-z*x-1)+ u*(u+1)*z^2*t\free{z }\free{x }\free{y }\free{t }\free{u }\bound{q2 }}
\indentrel{3}\begin{verbatim}
   (30)
                                            2
   (- 3 z y + 2 t z + t)x + (z + 4)y + 4 t z  - 7 t z
Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty30}
\begin{paste}{RegularTriangularSetXmpPageEmpty30}{RegularTriangularSetXmpPagePatch30}
\pastebutton{RegularTriangularSetXmpPageEmpty30}{\showpaste}
\tab{5}\spadcommand{q2 := t*(2*z+1)*(x-z)+ y*(z+2)*(1-x)+ u*(u-2)*t+ u*(1-2*u)*z*t+ u*y*(x+u-z*x-1)+ u*(u+1)*z^2*t\free{z }\free{x }\free{y }\free{t }\free{u }\bound{q2 }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch31}
\begin{paste}{RegularTriangularSetXmpPageFull31}{RegularTriangularSetXmpPageEmpty31}
\pastebutton{RegularTriangularSetXmpPageFull31}{\hidepaste}
\tab{5}\spadcommand{q3 := -u^2*(z-1)^2+ 2*z*(z-x)-2*(x-1)\free{z }\free{x }\free{y }\free{t }\free{u }\bound{q3 }}
\indentrel{3}\begin{verbatim}
                           2
   (31)  (- 2 z - 2)x - 2 z  + 8 z - 2
Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty31}
\begin{paste}{RegularTriangularSetXmpPageEmpty31}{RegularTriangularSetXmpPagePatch31}
\pastebutton{RegularTriangularSetXmpPageEmpty31}{\showpaste}
\tab{5}\spadcommand{q3 := -u^2*(z-1)^2+ 2*z*(z-x)-2*(x-1)\free{z }\free{x }\free{y }\free{t }\free{u }\bound{q3 }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch32}
\begin{paste}{RegularTriangularSetXmpPageFull32}{RegularTriangularSetXmpPageEmpty32}
\pastebutton{RegularTriangularSetXmpPageFull32}{\hidepaste}
\tab{5}\spadcommand{q4 := u^2+4*(z-x^2)+3*y^2*(x-1)^2- 3*t^2*(z-x)^2 +3*u^2*t^2*(z-1)^2+u^2*z*(z-2)+6*u*t*y*(z+x+z*x-1)\free{z }\free{x }\free{y }\free{t }\free{u }\bound{q4 }}
\indentrel{3}\begin{verbatim}
   (32)
         2      2      2
     (3 y  - 3 t  - 4)x
   + 
           2                         2         2
     (- 6 y  + (12 t z + 12 t)y + 6 t z)x + 3 y
   + 
                            2      2          2
     (12 t z - 12 t)y + (9 t  + 4)z  + (- 24 t  - 4)z
   + 
         2
     12 t  + 4
Type: NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty32}
\begin{paste}{RegularTriangularSetXmpPageEmpty32}{RegularTriangularSetXmpPagePatch32}
\pastebutton{RegularTriangularSetXmpPageEmpty32}{\showpaste}
\tab{5}\spadcommand{q4 := u^2+4*(z-x^2)+3*y^2*(x-1)^2- 3*t^2*(z-x)^2 +3*u^2*t^2*(z-1)^2+u^2*z*(z-2)+6*u*t*y*(z+x+z*x-1)\free{z }\free{x }\free{y }\free{t }\free{u }\bound{q4 }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch33}
\begin{paste}{RegularTriangularSetXmpPageFull33}{RegularTriangularSetXmpPageEmpty33}
\pastebutton{RegularTriangularSetXmpPageFull33}{\hidepaste}
\tab{5}\spadcommand{lq := [q1, q2, q3, q4]\free{q1 }\free{q2 }\free{q3 }\free{q4 }\bound{lq }}
\indentrel{3}\begin{verbatim}
   (33)
   [
         2            2  2
       (y  - 2 t y + t )x
     + 
                2                               2
           - 2 y  + ((2 t + 4)z + 2 t)y + (- 2 t  + 2)z
         + 
                2
           - 4 t  - 2
      *
         x
     + 
      2                        2       2            2
     y  + (- 2 t z - 4 t)y + (t  + 10)z  - 8 z + 4 t  + 2
     ,
                                             2
    (- 3 z y + 2 t z + t)x + (z + 4)y + 4 t z  - 7 t z,
                      2
    (- 2 z - 2)x - 2 z  + 8 z - 2,

           2      2      2
       (3 y  - 3 t  - 4)x
     + 
             2                         2         2
       (- 6 y  + (12 t z + 12 t)y + 6 t z)x + 3 y
     + 
                              2      2          2
       (12 t z - 12 t)y + (9 t  + 4)z  + (- 24 t  - 4)z
     + 
           2
       12 t  + 4
     ]
Type: List(NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t])))
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty33}
\begin{paste}{RegularTriangularSetXmpPageEmpty33}{RegularTriangularSetXmpPagePatch33}
\pastebutton{RegularTriangularSetXmpPageEmpty33}{\showpaste}
\tab{5}\spadcommand{lq := [q1, q2, q3, q4]\free{q1 }\free{q2 }\free{q3 }\free{q4 }\bound{lq }}
\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPagePatch34}
\begin{paste}{RegularTriangularSetXmpPageFull34}{RegularTriangularSetXmpPageEmpty34}
\pastebutton{RegularTriangularSetXmpPageFull34}{\hidepaste}
\tab{5}\spadcommand{zeroSetSplit(lq,true,true)$T;\free{lq }\free{T }}
\indentrel{3}\begin{verbatim}

   *** QCMPACK Statistics ***
      Table     size:  36
      Entries reused:  255

   *** REGSETGCD: Gcd Statistics ***
      Table     size:  125
      Entries reused:  0

   *** REGSETGCD: Inv Set Statistics ***
      Table     size:  30
      Entries reused:  0
Type: List(RegularTriangularSet(Integer,IndexedExponents(OrderedVariableList([x,y,z,t])),OrderedVariableList([x,y,z,t]),NewSparseMultivariatePolynomial(Integer,OrderedVariableList([x,y,z,t]))))
\end{verbatim}
\indentrel{-3}\end{paste}\end{patch}

\begin{patch}{RegularTriangularSetXmpPageEmpty34}
\begin{paste}{RegularTriangularSetXmpPageEmpty34}{RegularTriangularSetXmpPagePatch34}
\pastebutton{RegularTriangularSetXmpPageEmpty34}{\showpaste}
\tab{5}\spadcommand{zeroSetSplit(lq,true,true)$T;\free{lq }\free{T }}
\end{paste}\end{patch}

