axiom-developer
[Top][All Lists]

## [Axiom-developer] 20090227.01.lxx.patch (Liu Xiaojun: Document Univariat

 From: daly Subject: [Axiom-developer] 20090227.01.lxx.patch (Liu Xiaojun: Document UnivariateSkewPolynomial) Date: Sat, 28 Feb 2009 00:18:15 -0600

Liu Xiaojun's documentation for UnivariateSkewPolynomial was added to:

Book Volume 0:    Jenks book

Book Volume 7.1:  Axiom Hyperdoc Pages

Book Volume 10.3: Axiom Domains

==========================================================================
diff --git a/books/bookvol0.pamphlet b/books/bookvol0.pamphlet
index b7f869d..cbe733b 100644
--- a/books/bookvol0.pamphlet
+++ b/books/bookvol0.pamphlet
@@ -48744,6 +48744,481 @@ page~\pageref{MultivariatePolynomialXmpPage}, and
\ref{DistributedMultivariatePolynomialXmpPage} on
page~\pageref{DistributedMultivariatePolynomialXmpPage}.

+\section{UnivariateSkewPolynomial}
+\label{UnivariateSkewPolynomial}
+Skew or Ore polynomial rings provide a unified framework to
+compute with differential and difference equations.
+
+In the following, let A be an integral domain, equipped with two
+endomorphisms $\sigma$ and $\delta$ where:
+\begin{itemize}
+\item $\sigma$: A $->$ A is an injective ring endomorphism
+\item $\delta$: A $->$ A, the pseudo-derivation with respect to $\sigma$,
+$$+ \delta(ab) = \sigma(a)\delta(b) + \delta(a)b +$$
+for all $a,b$ in A
+\end{itemize}
+
+The skew polynomial ring $[\Delta;\sigma,\delta]$ is the ring of
+polynomials in $\Delta$ with coefficients in A, with the usual addition,
+while the product is given by
+$$+ \Delta a = \sigma(a)\Delta + \delta(a)\quad{}{\rm\ for\ a\ in\ A} +$$
+The two most important examples of skew polynomial rings are:
+\begin{itemize}
+\item $K(x)[D,1,\delta]$, where 1 is the identity on $K$ and $\delta$ is
+the usual derviative, is the ring of differential polynomials
+\item $K_n [E,n,\mapsto n+1,0]$ is the ring of linear recurrence operators
+with polynomial coefficients
+\end{itemize}
+
+The UnivariateSkewPolynomialCategory (OREPCAT) provides a unified
+framework for polynomial rings in a non-central indeterminate over
+some coefficient ring R. The commutation relations between the
+indeterminate $x$ and the coefficient $t$ is given by
+$$+x r = \sigma(r) x + \delta(r) +$$
+where $\sigma$ is a ring endomorphism of R
+and $\delta$ is a $\sigma$-derivation of R
+which is an additive map from R to R such that
+$$+\delta(rs) = \sigma(r) \delta(s) + \delta(r) s +$$
+In case $\sigma$ is the identity map on R, a $\sigma$-derivation of R
+is just called a derivation. Here are some examples
+
+define the coefficient ring to be expressions in one variable $x$
+with fractional coefficients:
+
+
+Define Dx to be a derivative d/dx:
+
+
+Define a skew polynomial ring over F with identity endomorphism as
+$\sigma$ and derivation d/dx as $\delta$:
+
+
+$$+u +\left( +{x} +\right) +$$
+
+$$+d +$$
+
+$$+{{{u +\left( +{x} +\right)}^3} +\ {d^3}}+{{{u +\left( +{x} +\right)}^2} +\ {d^2}}+{{u +\left( +{x} +\right)} +\ d}+1 +$$
+
+$$+{{\left( {u +\left( +{x} +\right)}+1 +\right)} +\ {d^2}}+{2 \ d} +$$
+
+$$+\left[ +\begin{array}{c} +\displaystyle +{quotient={{{ \frac{{{u +\left( +{x} +\right)}^3}}{{{u +\left( +{x} +\right)}+1}}} +\ d}+{ \frac{{-{{{u +\left( +{x} +\right)}^3} +\ {{u \sb {{\ }} \sp {,}} +\left( +{x} +\right)}} +-{{u +\left( +{x} +\right)}^3}+{{u +\left( +{x} +\right)}^2}}}{{{{u +\left( +{x} +\right)}^2}+{2 +\ {u +\left( +{x} +\right)}}+1}}}}},\\ +\displaystyle +\: {remainder={{{ \frac{{{2 \ {{u +\left( +{x} +\right)}^3} +\ {{u \sb {{\ }} \sp {,}} +\left( +{x} +\right)}}+{3 +\ {{u +\left( +{x} +\right)}^3}}+{u +\left( +{x} +\right)}}}{{{{u +\left( +{x} +\right)}^2}+{2 +\ {u +\left( +{x} +\right)}}+1}}} +\ d}+1}} +\end{array} +\right] +$$
+
+$$+{{ \frac{{{u +\left( +{x} +\right)}^3}}{{{u +\left( +{x} +\right)}+1}}} +\ d}+{ \frac{{-{{{u +\left( +{x} +\right)}^3} +\ {{u \sb {{\ }} \sp {,}} +\left( +{x} +\right)}} +-{{u +\left( +{x} +\right)}^3}+{{u +\left( +{x} +\right)}^2}}}{{{{u +\left( +{x} +\right)}^2}+{2 +\ {u +\left( +{x} +\right)}}+1}}} +$$
+
+$$+{{ \frac{{{2 \ {{u +\left( +{x} +\right)}^3} +\ {{u \sb {{\ }} \sp {,}} +\left( +{x} +\right)}}+{3 +\ {{u +\left( +{x} +\right)}^3}}+{u +\left( +{x} +\right)}}}{{{{u +\left( +{x} +\right)}^2}+{2 +\ {u +\left( +{x} +\right)}}+1}}} +\ d}+1 +$$
+
+\subsection{A second example}
+)clear all
+
+As a second example, we consider the so-called Weyl algebra.
+
+Define the coefficient ring to be an ordinary polynomial over integers
+in one variable $t$
+\begin{verbatim}
+   R:=UP('t,INT)
+\end{verbatim}
+Define a skew polynomial ring over R with identity map as $\sigma$
+and derivation d/dt as $\delta$. The resulting algebra is then called
+a Weyl algebra. This is a simple ring over a division ring that is
+non-commutative, similar to the ring of matrices.
+
+
+
+$$+t +$$
+
+$$+x +$$
+
+Let
+
+$$+{{\left( t -1 +\right)} +\ {x^4}}+{{\left( {t^3}+{3 \ t}+1 +\right)} +\ {x^2}}+{2 \ t \ x}+{t^3} +$$
+
+$$+{{\left( {6 \ {t^4}}+{2 \ {t^2}} +\right)} +\ {x^3}}+{3 \ {t^2} \ {x^2}} +$$
+
+Then
+
+$$+\begin{array}{l} +{{\left( {6 \ {t^5}} -{6 \ {t^4}}+{2 \ {t^3}} -{2 \ {t^2}} +\right)} +\ {x^7}}+{{\left( {{96} \ {t^4}} -{{93} \ {t^3}}+{{13} \ {t^2}} -{{16} \ +t} +\right)} +\ {x^6}}+\\ +{{\left( {6 \ {t^7}}+{{20} \ {t^5}}+{6 \ {t^4}}+{{438} \ {t^3}} +-{{406} \ {t^2}} -{24} +\right)} +\ {x^5}}+\\ +{{\left( {{48} \ {t^6}}+{{15} \ {t^5}}+{{152} \ {t^4}}+{{61} \ +{t^3}}+{{603} \ {t^2}} -{{532} \ t} -{36} +\right)} +\ {x^4}}+\\ +{{\left( {6 \ {t^7}}+{{74} \ {t^5}}+{{60} \ {t^4}}+{{226} \ +{t^3}}+{{116} \ {t^2}}+{{168} \ t} -{140} +\right)} +\ {x^3}}+\\ +{{\left( {3 \ {t^5}}+{6 \ {t^3}}+{{12} \ {t^2}}+{{18} \ t}+6 +\right)} +\ {x^2}} +\end{array} +$$
+
+$$+\begin{array}{l} +{{\left( {t^3} -{3 \ {t^2}}+{3 \ t} -1 +\right)} +\ {x^{12}}}+{{\left( {3 \ {t^5}} -{6 \ {t^4}}+{{12} \ {t^3}} -{{15} \ +{t^2}}+{3 \ t}+3 +\right)} +\ {x^{10}}}+\\ +{{\left( {6 \ {t^3}} -{{12} \ {t^2}}+{6 \ t} +\right)} +\ {x^9}}+{{\left( {3 \ {t^7}} -{3 \ {t^6}}+{{21} \ {t^5}} -{{18} \ +{t^4}}+{{24} \ {t^3}} -{9 \ {t^2}} -{{15} \ t} -3 +\right)} +\ {x^8}}+\\ +{{\left( {{12} \ {t^5}} -{{12} \ {t^4}}+{{36} \ {t^3}} -{{24} \ +{t^2}} -{{12} \ t} +\right)} +\ {x^7}}+\\ +{{\left( {t^9}+{{15} \ {t^7}} -{3 \ {t^6}}+{{45} \ {t^5}}+{6 \ +{t^4}}+{{36} \ {t^3}}+{{15} \ {t^2}}+{9 \ t}+1 +\right)} +\ {x^6}}+\\ +{{\left( {6 \ {t^7}}+{{48} \ {t^5}}+{{54} \ {t^3}}+{{36} \ +{t^2}}+{6 \ t} +\right)} +\ {x^5}}+\\ +{{\left( {3 \ {t^9}}+{{21} \ {t^7}}+{3 \ {t^6}}+{{39} \ +{t^5}}+{{18} \ {t^4}}+{{39} \ {t^3}}+{{12} \ {t^2}} +\right)} +\ {x^4}}+\\ +{{\left( {{12} \ {t^7}}+{{36} \ {t^5}}+{{12} \ {t^4}}+{8 \ +{t^3}} +\right)} +\ {x^3}}+\\ +{{\left( {3 \ {t^9}}+{9 \ {t^7}}+{3 \ {t^6}}+{{12} \ {t^5}} +\right)} +\ {x^2}}+{6 \ {t^7} \ x}+{t^9} +\end{array} +$$
+
+
+\subsection{A third example}
+)clear all
+
+As a third example, we construct a difference operator algebra over
+the ring of EXPR(INT) by using an automorphism S defined by a
+shift'' operation S:EXPR(INT) $->$ EXPR(INT)
+$$+ s(e)(n) = e(n+1) +$$
+and an S-derivation defined by DF:EXPR(INT) $->$ EXPR(INT) as
+$$+ DF(e)(n) = e(n+1)-e(n) +$$
+Define S to be a shift'' operator, which acts on expressions with
+the discrete variable $n$:
+
+
+Define DF to be a difference'' operator, which acts on expressions
+with a discrete variable $n$:
+
+
+Then define the difference operator algebra D0:
+
+
+$$+u +\left( +{n} +\right) +$$
+
+$$+D+{u +\left( +{n} +\right)} +$$
+
+$$+{D^2}+{2 \ {u +\left( +{n} +\right)} +\ D}+{{u +\left( +{n} +\right)}^2} +$$
+
+\subsection{A fourth example}
+)clear all
+
+As a fourth example, we construct a skew polynomial ring by using an
+inner derivation $\delta$ induced by a fixed $y$ in R:
+$$+ \delta(r) = yr - ry +$$
+First we should expose the constructor SquareMatrix so it is visible
+in the interpreter:
+\begin{verbatim}
+\end{verbatim}
+
+Define R to be the square matrix with integer entries:
+
+$$+SquareMatrix(2,Integer) +$$
+
+$$+\left[ +\begin{array}{cc} +1 & 1 \\ +0 & 1 +\end{array} +\right] +$$
+
+Define the inner derivative $\delta$:
+
+
+Define S to be a skew polynomial determined by $\sigma = 1$
+and $\delta$ as an inner derivative:
+
+
+$$+x +$$
+
+$$+\left[ +\begin{array}{cc} +2 & 3 \\ +1 & 1 +\end{array} +\right] +$$
+
+$$+{{\left[ +\begin{array}{cc} +2 & 3 \\ +1 & 1 +\end{array} +\right]} +\ {x^2}}+{{\left[ +\begin{array}{cc} +2 & -2 \\ +0 & -2 +\end{array} +\right]} +\ x}+{\left[ +\begin{array}{cc} +0 & -2 \\ +0 & 0 +\end{array} +\right]} +$$
+
+
\section{UniversalSegment}
\label{UniversalSegmentXmpPage}

diff --git a/books/bookvol10.3.pamphlet b/books/bookvol10.3.pamphlet
index edfdf79..2972ab5 100644
--- a/books/bookvol10.3.pamphlet
+++ b/books/bookvol10.3.pamphlet
@@ -8219,83 +8219,32 @@ Automorphism(R:Ring): Join(Group, Eltable(R, R)) with
)clear all
--S 1
lm := [3,5,7,11]
---R
---R
---R   (1)  [3,5,7,11]
---R                                                   Type: List
PositiveInteger
--E 1

---S 2
-modTree(12,lm)
---R
---R
---R   (2)  [0,2,5,1]
---R                                                           Type: List
Integer
---E 2
-
--S 3
t := balancedBinaryTree(#lm, 0)
---R
---R
---R   (3)  [[0,0,0],0,[0,0,0]]
---R                                  Type: BalancedBinaryTree
NonNegativeInteger
--E 3

--S 4
setleaves!(t,lm)
---R
---R
---R   (4)  [[3,0,5],0,[7,0,11]]
---R                                  Type: BalancedBinaryTree
NonNegativeInteger
--E 4

--S 5
mapUp!(t,_*)
---R
---R
---R   (5)  1155
---R                                                        Type:
PositiveInteger
--E 5

--S 6
t
---R
---R
---R   (6)  [[3,15,5],1155,[7,77,11]]
---R                                  Type: BalancedBinaryTree
NonNegativeInteger
--E 6

--S 7
mapDown!(t,12,_rem)
---R
---R
---R   (7)  [[0,12,2],12,[5,12,1]]
---R                                  Type: BalancedBinaryTree
NonNegativeInteger
--E 7

--S 8
leaves %
---R
---R
---R   (8)  [0,2,5,1]
---R                                                Type: List
NonNegativeInteger
--E 8

---S 9
-squares := [x**2 rem m for x in % for m in lm]
---R
---R
---R   (9)  [0,4,4,1]
---R                                                Type: List
NonNegativeInteger
---E 9
-
---S 10
-chineseRemainder(%,lm)
---R
---R
---R   (10)  144
---R                                                        Type:
PositiveInteger
---E 10
)spool
)lisp (bye)
@
@@ -105537,6 +105486,683 @@
UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen):_
@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{domain OREUP UnivariateSkewPolynomial}
+<<UnivariateSkewPolynomial.input>>=
+)sys rm -f UnivariateSkewPolynomial.output
+)spool UnivariateSkewPolynomial.output
+)set message test on
+)set message auto off
+)set message type off
+)clear all
+
+--S 1 of 33
+F:=EXPR(FRAC(INT))
+--R
+--R
+--R   (1)  Expression Fraction Integer
+--E 1
+
+--S 2 of 33
+Dx:F->F:=f+->D(f,['x])
+--R
+--R
+--R   (2)  theMap(Closure)
+--E 2
+
+--S 3 of 33
+D0:=OREUP('d,F,1,Dx)
+--R
+--R
+--R   (3)
+--I  UnivariateSkewPolynomial(d,Expression Fraction Integer,R -> R,theMap
LAMBDA-C
List
+--I  Variable x,wrap LIST QUOTE x),QUOTE List Symbol,QUOTE
*1;anonymousFunction;2;
+--I  frame0;internal),ELT(*1;anonymousFunction;2;frame0;internal;MV,0))))
+--E 3
+
+--S 4 of 33
+u:D0:=(operator 'u)(x)
+--R
+--R
+--R   (4)  u(x)
+--E 4
+
+--S 5 of 33
+d:D0:='d
+--R
+--R
+--R   (5)  d
+--E 5
+
+--S 6 of 33
+a:D0:=u^3*d^3+u^2*d^2+u*d+1
+--R
+--R
+--R            3 3       2 2
+--R   (6)  u(x) d  + u(x) d  + u(x)d + 1
+--E 6
+
+--S 7 of 33
+b:D0:=(u+1)*d^2+2*d
+--R
+--R
+--R                   2
+--R   (7)  (u(x) + 1)d  + 2d
+--E 7
+
+--S 8 of 33
+r:=rightDivide(a,b)
+--R
+--R
+--R   (8)
+--R                                 3 ,          3       2
+--R                    3      - u(x) u (x) - u(x)  + u(x)
+--R                u(x)
+--R   [quotient= -------- d + ----------------------------,
+--R              u(x) + 1               2
+--R                                 u(x)  + 2u(x) + 1
+--R                    3 ,           3
+--R               2u(x) u (x) + 3u(x)  + u(x)
+--R
+--R    remainder= --------------------------- d + 1]
+--R                        2
+--R                    u(x)  + 2u(x) + 1
+--E 8
+
+--S 9 of 33
+r.quotient
+--R
+--R
+--R                           3 ,          3       2
+--R              3      - u(x) u (x) - u(x)  + u(x)
+--R          u(x)
+--R   (9)  -------- d + ----------------------------
+--R        u(x) + 1               2
+--R                           u(x)  + 2u(x) + 1
+--E 9
+
+--S 10 of 33
+r.remainder
+--R
+--R
+--R              3 ,           3
+--R         2u(x) u (x) + 3u(x)  + u(x)
+--R
+--R   (10)  --------------------------- d + 1
+--R                  2
+--R              u(x)  + 2u(x) + 1
+--E 10
+
+)clear all
+
+--S 11 of 33
+R:=UP('t,INT)
+--R
+--R
+--R   (1)  UnivariatePolynomial(t,Integer)
+--E 11
+
+--S 12 of 33
+W:=OREUP('x,R,1,D)
+--R
+--R
+--R   (2)
+--R  UnivariateSkewPolynomial(x,UnivariatePolynomial(t,Integer),R ->
R,theMap(DIFR
+--I  ING-;D;2S;1,411))
+--E 12
+
+--S 13 of 33
+t:W:='t
+--R
+--R
+--R   (3)  t
+--E 13
+
+--S 14 of 33
+x:W:='x
+--R
+--R
+--R   (4)  x
+--E 14
+
+--S 15 of 33
+a:W:=(t-1)*x^4+(t^3+3*t+1)*x^2+2*t*x+t^3
+--R
+--R
+--R                4     3           2           3
+--R   (5)  (t - 1)x  + (t  + 3t + 1)x  + 2t x + t
+--E 15
+
+--S 16 of 33
+b:W:=(6*t^4+2*t^2)*x^3+3*t^2*x^2
+--R
+--R
+--R           4     2  3     2 2
+--R   (6)  (6t  + 2t )x  + 3t x
+--E 16
+
+--S 17 of 33
+a*b
+--R
+--R
+--R   (7)
+--R        5     4     3     2  7       4      3      2        6
+--R     (6t  - 6t  + 2t  - 2t )x  + (96t  - 93t  + 13t  - 16t)x
+--R   +
+--R        7      5     4       3       2       5
+--R     (6t  + 20t  + 6t  + 438t  - 406t  - 24)x
+--R   +
+--R         6      5       4      3       2              4
+--R     (48t  + 15t  + 152t  + 61t  + 603t  - 532t - 36)x
+--R   +
+--R        7      5      4       3       2               3
+--R     (6t  + 74t  + 60t  + 226t  + 116t  + 168t - 140)x
+--R   +
+--R        5     3      2            2
+--R     (3t  + 6t  + 12t  + 18t + 6)x
+--E 17
+
+--S 18 of 33
+a^3
+--R
+--R
+--R   (8)
+--R       3     2           12      5     4      3      2           10
+--R     (t  - 3t  + 3t - 1)x   + (3t  - 6t  + 12t  - 15t  + 3t + 3)x
+--R   +
+--R        3      2       9      7     6      5      4      3     2
8
+--R     (6t  - 12t  + 6t)x  + (3t  - 3t  + 21t  - 18t  + 24t  - 9t  - 15t - 3)x
+--R   +
+--R         5      4      3      2        7
+--R     (12t  - 12t  + 36t  - 24t  - 12t)x
+--R   +
+--R       9      7     6      5     4      3      2           6
+--R     (t  + 15t  - 3t  + 45t  + 6t  + 36t  + 15t  + 9t + 1)x
+--R   +
+--R        7      5      3      2       5
+--R     (6t  + 48t  + 54t  + 36t  + 6t)x
+--R   +
+--R        9      7     6      5      4      3      2  4
+--R     (3t  + 21t  + 3t  + 39t  + 18t  + 39t  + 12t )x
+--R   +
+--R         7      5      4     3  3      9     7     6      5  2     7     9
+--R     (12t  + 36t  + 12t  + 8t )x  + (3t  + 9t  + 3t  + 12t )x  + 6t x + t
+--E 18
+
+)clear all
+
+--S 19 of 33
+S:EXPR(INT)->EXPR(INT):=e+->eval(e,[n],[n+1])
+--R
+--R
+--R   (1)  theMap(Closure)
+--E 19
+
+--S 20 of 33
+DF:EXPR(INT)->EXPR(INT):=e+->eval(e,[n],[n+1])-e
+--R
+--R
+--R   (2)  theMap(Closure)
+--E 20
+
+--S 21 of 33
+D0:=OREUP('D,EXPR(INT),morphism S,DF)
+--R
+--R
+--R   (3)
+--I  UnivariateSkewPolynomial(D,Expression Integer,R -> R,theMap
LAMBDA-CLOSURE(NI
List
+--I  Variable n,wrap LIST QUOTE n),QUOTE List Expression Integer,QUOTE
*1;anonymou
+--I  sFunction;9;frame0;internal),coerceOrCroak(CONS(QUOTE List Polynomial
Integer
+--I  ,wrap LIST SPADCALL(QUOTE 1(n,1 0),QUOTE
0,ELT(*1;anonymousFunction;9;frame0;
+--I  internal;MV,0))),QUOTE List Expression Integer,QUOTE
*1;anonymousFunction;9;f
+--I
rame0;internal),ELT(*1;anonymousFunction;9;frame0;internal;MV,1)),G9384,ELT(*
+--I  1;anonymousFunction;9;frame0;internal;MV,2))))
+--E 21
+
+--S 22 of 33
+u:=(operator 'u)[n]
+--R
+--R
+--R   (4)  u(n)
+--E 22
+
+--S 23 of 33
+L:D0:='D+u
+--R
+--R
+--R   (5)  D + u(n)
+--E 23
+
+--S 24 of 33
+L^2
+--R
+--R
+--R         2                2
+--R   (6)  D  + 2u(n)D + u(n)
+--E 24
+
+)clear all
+
+--S 25 of 33
+--R
+--I   SquareMatrix is now explicitly exposed in frame frame0
+--E 25
+
+--S 26 of 33
+R:=SQMATRIX(2,INT)
+--R
+--R
+--R   (1)  SquareMatrix(2,Integer)
+--E 26
+
+--S 27 of 33
+y:R:=matrix [[1,1],[0,1]]
+--R
+--R
+--R        +1  1+
+--R   (2)  |    |
+--R        +0  1+
+--E 27
+
+--S 28 of 33
+delta:R->R:=r+->y*r-r*y
+--R
+--R
+--R   (3)  theMap(Closure)
+--E 28
+
+--S 29 of 33
+S:=OREUP('x,R,1,delta)
+--R
+--R
+--R   (4)
+--I  UnivariateSkewPolynomial(x,SquareMatrix(2,Integer),R -> R,theMap
LAMBDA-CLOSU
+--I  RE(NIL,NIL,NIL,G9459
+--I  ,QUOTE
SquareMatrix(2,Integer)),G9459,ELT(*1;anonymousFunction;13;frame0;inte
SquareMatrix
+--I
(2,Integer)),ELT(*1;anonymousFunction;13;frame0;internal;MV,0)),ELT(*1;anonym
+--I  ousFunction;13;frame0;internal;MV,1))))
+--E 29
+
+--S 30 of 33
+x:S:='x
+--R
+--R
+--R   (5)  x
+--E 30
+
+--S 31 of 33
+a:S:=matrix [[2,3],[1,1]]
+--R
+--R
+--R        +2  3+
+--R   (6)  |    |
+--R        +1  1+
+--E 31
+
+--S 32 of 33
+x^2*a
+--R
+--R
+--R        +2  3+ 2   +2  - 2+    +0  - 2+
+--R   (7)  |    |x  + |      |x + |      |
+--R        +1  1+     +0  - 2+    +0   0 +
+--E 32
+
+--S 33 of 33
+)show UnivariateSkewPolynomial
+--R
+--R UnivariateSkewPolynomial(x: Symbol,R: Ring,sigma: Automorphism R,delta: (R
-> R))  is a domain constructor
+--R Abbreviation for UnivariateSkewPolynomial is OREUP
+--R This constructor is not exposed in this frame.
+--R Issue )edit bookvol10.3.spad.pamphlet to see algebra source code for OREUP
+--R
+--R------------------------------- Operations --------------------------------
+--R ?*? : (R,%) -> %                      ?*? : (%,R) -> %
+--R ?*? : (%,%) -> %                      ?*? : (Integer,%) -> %
+--R ?*? : (PositiveInteger,%) -> %        ?**? : (%,PositiveInteger) -> %
+--R ?+? : (%,%) -> %                      ?-? : (%,%) -> %
+--R -? : % -> %                           ?=? : (%,%) -> Boolean
+--R 1 : () -> %                           0 : () -> %
+--R ?^? : (%,PositiveInteger) -> %        apply : (%,R,R) -> R
+--R coefficients : % -> List R            coerce : Variable x -> %
+--R coerce : R -> %                       coerce : Integer -> %
+--R coerce : % -> OutputForm              degree : % -> NonNegativeInteger
+--R hash : % -> SingleInteger             latex : % -> String
+--R leadingCoefficient : % -> R           one? : % -> Boolean
+--R recip : % -> Union(%,"failed")        reductum : % -> %
+--R retract : % -> R                      sample : () -> %
+--R zero? : % -> Boolean                  ?~=? : (%,%) -> Boolean
+--R ?*? : (NonNegativeInteger,%) -> %
+--R ?**? : (%,NonNegativeInteger) -> %
+--R ?^? : (%,NonNegativeInteger) -> %
+--R characteristic : () -> NonNegativeInteger
+--R coefficient : (%,NonNegativeInteger) -> R
+--R coerce : Fraction Integer -> % if R has RETRACT FRAC INT
+--R content : % -> R if R has GCDDOM
+--R exquo : (%,R) -> Union(%,"failed") if R has INTDOM
+--R leftDivide : (%,%) -> Record(quotient: %,remainder: %) if R has FIELD
+--R leftExactQuotient : (%,%) -> Union(%,"failed") if R has FIELD
+--R leftExtendedGcd : (%,%) -> Record(coef1: %,coef2: %,generator: %) if R has
FIELD
+--R leftGcd : (%,%) -> % if R has FIELD
+--R leftLcm : (%,%) -> % if R has FIELD
+--R leftQuotient : (%,%) -> % if R has FIELD
+--R leftRemainder : (%,%) -> % if R has FIELD
+--R minimumDegree : % -> NonNegativeInteger
+--R monicLeftDivide : (%,%) -> Record(quotient: %,remainder: %) if R has INTDOM
+--R monicRightDivide : (%,%) -> Record(quotient: %,remainder: %) if R has
INTDOM
+--R monomial : (R,NonNegativeInteger) -> %
+--R primitivePart : % -> % if R has GCDDOM
+--R retract : % -> Fraction Integer if R has RETRACT FRAC INT
+--R retract : % -> Integer if R has RETRACT INT
+--R retractIfCan : % -> Union(R,"failed")
+--R retractIfCan : % -> Union(Fraction Integer,"failed") if R has RETRACT FRAC
INT
+--R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT INT
+--R rightDivide : (%,%) -> Record(quotient: %,remainder: %) if R has FIELD
+--R rightExactQuotient : (%,%) -> Union(%,"failed") if R has FIELD
+--R rightExtendedGcd : (%,%) -> Record(coef1: %,coef2: %,generator: %) if R
has FIELD
+--R rightGcd : (%,%) -> % if R has FIELD
+--R rightLcm : (%,%) -> % if R has FIELD
+--R rightQuotient : (%,%) -> % if R has FIELD
+--R rightRemainder : (%,%) -> % if R has FIELD
+--R subtractIfCan : (%,%) -> Union(%,"failed")
+--R
+--E 33
+)set expose drop constructor SquareMatrix
+
+)spool
+)lisp (bye)
+
+@
+<<UnivariateSkewPolynomial.help>>=
+====================================================================
+UnivariateSkewPolynomial examples
+====================================================================
+
+Skew or Ore polynomial rings provide a unified framework to
+compute with differential and difference equations.
+
+In the following, let A be an integral domain, equipped with two
+endomorphisms \sigma and \delta where:
+
+ \sigma: A -> A is an injective ring endomorphism
+ \delta: A -> A, the pseudo-derivation with respect to \sigma,
+         is an additive endomorphism with
+
+     \delta(ab) = \sigma(a)\delta(b) + \delta(a)b
+
+         for all a,b in A
+
+Note that in the domains and categories below, these properties are
+not checked.
+
+The skew polynomial ring [\Delta;\sigma,\delta] is the ring of
+polynomials in \Delta with coefficients in A, with the usual addition,
+while the product is given by
+
+ \Delta a = \sigma(a)\Delta + \delta(a) for a in A
+
+The two most important examples of skew polynomial rings are:
+
+  K(x)[D,1,\delta], where 1 is the identity on K and \delta is
+                    the usual derviative, is the ring of differential
+                    polynomials
+
+  K [E,n,\mapsto n+1,0] is the ring of linear recurrence operators
+   n                    with polynomial coefficients
+
+
+_____________________________________________________________________
+
+For example,
+
+The UnivariateSkewPolynomialCategory (OREPCAT) provides a unified
+framework for polynomial rings in a non-central indeterminate over
+some coefficient ring R. The commutation relations between the
+indeterminate x and the coefficient t is given by
+
+   x r = \sigma(r) x + \delta(r)
+
+where \sigma is a ring endomorphism of R
+and   \delta is a \sigma-derivation of R
+which is an additive map from R to R such that
+
+   \delta(rs) = \sigma(r) \delta(s) + \delta(r) s
+
+In case \sigma is the identity map on R, a \sigma-derivation of R
+is just called a derivation. Here are some examples
+
+define the coefficient ring to be expressions in one variable x
+with fractional coefficients:
+
+   F:=EXPR(FRAC(INT))
+
+Define Dx to be a derivative d/dx:
+
+   Dx:F->F:=f+->D(f,['x])
+
+Define a skew polynomial ring over F with identity endomorphism as
+\sigma and derivation d/dx as \delta:
+
+   D0:=OREUP('d,F,1,Dx)
+
+   u:D0:=(operator 'u)(x)
+
+   d:D0:='d
+
+   a:D0:=u^3*d^3+u^2*d^2+u*d+1
+
+            3 3       2 2
+        u(x) d  + u(x) d  + u(x)d + 1
+
+   b:D0:=(u+1)*d^2+2*d
+
+                   2
+        (u(x) + 1)d  + 2d
+
+   r:=rightDivide(a,b)
+
+                                 3 ,          3       2
+                    3      - u(x) u (x) - u(x)  + u(x)
+                u(x)
+   [quotient= -------- d + ----------------------------,
+              u(x) + 1               2
+                                 u(x)  + 2u(x) + 1
+                    3 ,           3
+               2u(x) u (x) + 3u(x)  + u(x)
+
+    remainder= --------------------------- d + 1]
+                        2
+                    u(x)  + 2u(x) + 1
+
+
+   r.quotient
+
+                           3 ,          3       2
+              3      - u(x) u (x) - u(x)  + u(x)
+          u(x)
+        -------- d + ----------------------------
+        u(x) + 1               2
+                           u(x)  + 2u(x) + 1
+
+
+   r.remainder
+
+              3 ,           3
+         2u(x) u (x) + 3u(x)  + u(x)
+
+         --------------------------- d + 1
+                  2
+              u(x)  + 2u(x) + 1
+
+
+_____________________________________________________________________
+
+   )clear all
+
+As a second example, we consider the so-called Weyl algebra.
+
+Define the coefficient ring to be an ordinary polynomial over integers
+in one variable t
+
+   R:=UP('t,INT)
+
+Define a skew polynomial ring over R with identity map as \sigma
+and derivation d/dt as \delta. The resulting algebra is then called
+a Weyl algebra. This is a simple ring over a division ring that is
+non-commutative, similar to the ring of matrices.
+
+   W:=OREUP('x,R,1,D)
+
+   t:W:='t
+
+   x:W:='x
+
+Let
+
+   a:W:=(t-1)*x^4+(t^3+3*t+1)*x^2+2*t*x+t^3
+
+                4     3           2           3
+        (t - 1)x  + (t  + 3t + 1)x  + 2t x + t
+
+   b:W:=(6*t^4+2*t^2)*x^3+3*t^2*x^2
+
+           4     2  3     2 2
+        (6t  + 2t )x  + 3t x
+
+Then
+
+   a*b
+           5     4     3     2  7       4      3      2        6
+        (6t  - 6t  + 2t  - 2t )x  + (96t  - 93t  + 13t  - 16t)x
+      +
+           7      5     4       3       2       5
+        (6t  + 20t  + 6t  + 438t  - 406t  - 24)x
+      +
+            6      5       4      3       2              4
+        (48t  + 15t  + 152t  + 61t  + 603t  - 532t - 36)x
+      +
+           7      5      4       3       2               3
+        (6t  + 74t  + 60t  + 226t  + 116t  + 168t - 140)x
+      +
+           5     3      2            2
+        (3t  + 6t  + 12t  + 18t + 6)x
+
+   a^3
+         3     2           12      5     4      3      2           10
+       (t  - 3t  + 3t - 1)x   + (3t  - 6t  + 12t  - 15t  + 3t + 3)x
+     +
+          3      2       9      7     6      5      4      3     2            8
+       (6t  - 12t  + 6t)x  + (3t  - 3t  + 21t  - 18t  + 24t  - 9t  - 15t - 3)x
+     +
+           5      4      3      2        7
+       (12t  - 12t  + 36t  - 24t  - 12t)x
+     +
+         9      7     6      5     4      3      2           6
+       (t  + 15t  - 3t  + 45t  + 6t  + 36t  + 15t  + 9t + 1)x
+     +
+          7      5      3      2       5
+       (6t  + 48t  + 54t  + 36t  + 6t)x
+     +
+          9      7     6      5      4      3      2  4
+       (3t  + 21t  + 3t  + 39t  + 18t  + 39t  + 12t )x
+     +
+           7      5      4     3  3      9     7     6      5  2     7     9
+       (12t  + 36t  + 12t  + 8t )x  + (3t  + 9t  + 3t  + 12t )x  + 6t x + t
+
+
+_____________________________________________________________________
+
+   )clear all
+
+As a third example, we construct a difference operator algebra over
+the ring of EXPR(INT) by using an automorphism S defined by a
+"shift" operation S:EXPR(INT) -> EXPR(INT)
+
+   s(e)(n) = e(n+1)
+
+and an S-derivation defined by DF:EXPR(INT) -> EXPR(INT) as
+
+   DF(e)(n) = e(n+1)-e(n)
+
+Define S to be a "shift" operator, which acts on expressions with
+the discrete variable n:
+
+   S:EXPR(INT)->EXPR(INT):=e+->eval(e,[n],[n+1])
+
+Define DF to be a "difference" operator, which acts on expressions
+with a discrete variable n:
+
+   DF:EXPR(INT)->EXPR(INT):=e+->eval(e,[n],[n+1])-e
+
+Then define the difference operator algebra D0:
+
+   D0:=OREUP('D,EXPR(INT),morphism S,DF)
+
+   u:=(operator 'u)[n]
+
+   L:D0:='D+u
+
+        D + u(n)
+
+   L^2
+
+         2                2
+        D  + 2u(n)D + u(n)
+
+_____________________________________________________________________
+
+   )clear all
+
+As a fourth example, we construct a skew polynomial ring by using an
+inner derivation \delta induced by a fixed y in R:
+
+   \delta(r) = yr - ry
+
+First we should expose the constructor SquareMatrix so it is visible
+in the interpreter:
+
+   )set expose add constructor SquareMatrix
+
+Define R to be the square matrix with integer entries:
+
+   R:=SQMATRIX(2,INT)
+
+   y:R:=matrix [[1,1],[0,1]]
+        +1  1+
+        |    |
+        +0  1+
+
+Define the inner derivative \delta:
+
+   delta:R->R:=r+->y*r-r*y
+
+Define S to be a skew polynomial determined by \sigma = 1
+and \delta as an inner derivative:
+
+   S:=OREUP('x,R,1,delta)
+
+   x:S:='x
+
+   a:S:=matrix [[2,3],[1,1]]
+        +2  3+
+        |    |
+        +1  1+
+
+   x^2*a
+        +2  3+ 2   +2  - 2+    +0  - 2+
+        |    |x  + |      |x + |      |
+        +1  1+     +0  - 2+    +0   0 +
+
+
+o )show UnivariateSkewPolynomial
+o )show UnivariateSkewPolynomialCategory
+o )show SquareMatrix
+
+@
\pagepic{ps/v103univariateskewpolynomial.ps}{OREUP}{1.00}
{\bf See}\\
@@ -105604,7 +106230,7 @@
UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen):_
++   This is the domain of univariate skew polynomials over an Ore
++   coefficient field in a named variable.
++   The multiplication is given by \spad{x a = \sigma(a) x + \delta a}.
-UnivariateSkewPolynomial(x:Symbol, R:Ring, sigma:Automorphism R, delta: R ->
R):
+UnivariateSkewPolynomial(x:Symbol,R:Ring,sigma:Automorphism R,delta: R -> R):
UnivariateSkewPolynomialCategory R with
coerce: Variable x -> %
++ coerce(x) returns x as a skew-polynomial.
diff --git a/books/bookvol7.1.pamphlet b/books/bookvol7.1.pamphlet
index e82869c..997c780 100644
--- a/books/bookvol7.1.pamphlet
+++ b/books/bookvol7.1.pamphlet
@@ -48292,6 +48292,10 @@ Multiple variable polynomials, recursive structure.
{DistributedMultivariatePolyXmpPage}
\newline
Multiple variable polynomials, non-recursive structure.
+{UnivariateSkewPolynomial}
+\newline
+Skew or Ore polynomials
\endscroll
\autobuttons
@@ -60140,6 +60144,315 @@ Type: UnivariatePolynomial(b1,Fraction Polynomial
Integer)
\end{paste}\end{patch}

@
+\section{oreup.ht}
+<<oreup.ht>>=
+\begin{page}{UnivariateSkewPolyXmpPage}{UnivariateSkewPolynomial}
+\beginscroll
+
+Skew or Ore polynomial rings provide a unified framework to
+compute with differential and difference equations.
+\newline
+In the following, let A be an integral domain, equipped with two
+endomorphisms \sigma and \delta where:
+\blankline
+\begin{items}
+\item \sigma: A -> A is an injective ring endomorphism
+\item \delta: A -> A, the pseudo-derivation with respect to
+\sigma, is an additive endomorphism with
+\blankline
+\delta(ab) = \sigma(a)\delta(b) + \delta(a)b
+\blankline
+for all a,b in A
+\end{items}
+\blankline
+The skew polynomial ring
+[\Delta;\sigma,\delta] is the ring of
+polynomials in \delta with coefficients in A, with the
+usual addition, while the product is given by
+\blankline
+\delta a = \sigma(a)\delta + \delta(a) for a in A
+\blankline
+The two most important examples of skew polynomial rings are:
+\blankline
+K(x)[D,1,\delta]
+\blankline
+where 1 is the identity on K and \texht{$\delta$}{delta} is
+the usual derviative, is the ring of differential polynomials
+\blankline
+  \subscriptIt{K}{n} [E,n,n->n+1,0]
+\blankline
+is the ring of linear recurrence operators with polynomial coefficients
+
+\horizontalline
+The UnivariateSkewPolynomialCategory (OREPCAT) provides a unified
+framework for polynomial rings in a non-central indeterminate over
+some coefficient ring R. The commutation relations between the
+indeterminate x and the coefficient t is given by
+\blankline
+   x r = \sigma(r) x + \delta(r)
+\blankline
+where \sigma is a ring endomorphism of R
+and   \delta is a \sigma-derivation of R
+which is an additive map from R to R such that
+\blankline
+   \delta(rs) = \sigma(r) \delta(s) + \delta(r) s
+\blankline
+In case \sigma is the identity map on R, a \sigma-derivation of R
+is just called a derivation.
+\blankline
+define the coefficient ring to be expressions in one variable x
+with fractional coefficients:
+\blankline
+   F := EXPR(FRAC(INT))
+\blankline
+Define Dx to be a derivative d/dx:
+\blankline
+   Dx: F->F := f+->D(f,['x])
+\blankline
+Define a skew polynomial ring over F with identity endomorphism as
+\sigma and derivation d/dx as \delta:
+\begin{verbatim}
+   D0 := OREUP('d,F,1,Dx)
+\end{verbatim}
+\begin{verbatim}
+   u:D0 := (operator 'u)(x)
+\end{verbatim}
+\begin{verbatim}
+   d:D0 := 'd
+\end{verbatim}
+\begin{verbatim}
+   a:D0:=u^3*d^3+u^2*d^2+u*d+1
+
+            3 3       2 2
+        u(x) d  + u(x) d  + u(x)d + 1
+\end{verbatim}
+\begin{verbatim}
+   b:D0:=(u+1)*d^2+2*d
+
+                   2
+        (u(x) + 1)d  + 2d
+\end{verbatim}
+\begin{verbatim}
+   r:=rightDivide(a,b)
+
+                                 3 ,          3       2
+                    3      - u(x) u (x) - u(x)  + u(x)
+                u(x)
+   [quotient= -------- d + ----------------------------,
+              u(x) + 1               2
+                                 u(x)  + 2u(x) + 1
+                    3 ,           3
+               2u(x) u (x) + 3u(x)  + u(x)
+
+    remainder= --------------------------- d + 1]
+                        2
+                    u(x)  + 2u(x) + 1
+
+\end{verbatim}
+\begin{verbatim}
+   r.quotient
+
+                           3 ,          3       2
+              3      - u(x) u (x) - u(x)  + u(x)
+          u(x)
+        -------- d + ----------------------------
+        u(x) + 1               2
+                           u(x)  + 2u(x) + 1
+
+\end{verbatim}
+\begin{verbatim}
+   r.remainder
+
+              3 ,           3
+         2u(x) u (x) + 3u(x)  + u(x)
+
+         --------------------------- d + 1
+                  2
+              u(x)  + 2u(x) + 1
+\end{verbatim}
+
+\horizontalline
+
+   )clear all
+\blankline
+As a second example, we consider the so-called Weyl algebra.
+\blankline
+Define the coefficient ring to be an ordinary polynomial over integers
+in one variable t
+\blankline
+\begin{verbatim}
+   R := UP('t,INT)
+\end{verbatim}
+\blankline
+Define a skew polynomial ring over R with identity map as
+\sigma
+and derivation d/dt as \delta.
+The resulting algebra is then called a Weyl algebra:
+\blankline
+\begin{verbatim}
+   W := OREUP('x,R,1,D)
+
+   t:W := 't
+
+   x:W := 'x
+\end{verbatim}
+\blankline
+Let
+\begin{verbatim}
+   a:W:=(t-1)*x^4+(t^3+3*t+1)*x^2+2*t*x+t^3
+
+                4     3           2           3
+        (t - 1)x  + (t  + 3t + 1)x  + 2t x + t
+\end{verbatim}
+\begin{verbatim}
+   b:W:=(6*t^4+2*t^2)*x^3+3*t^2*x^2
+
+           4     2  3     2 2
+        (6t  + 2t )x  + 3t x
+\end{verbatim}
+\blankline
+Then
+\begin{verbatim}
+   a*b
+           5     4     3     2  7       4      3      2        6
+        (6t  - 6t  + 2t  - 2t )x  + (96t  - 93t  + 13t  - 16t)x
+      +
+           7      5     4       3       2       5
+        (6t  + 20t  + 6t  + 438t  - 406t  - 24)x
+      +
+            6      5       4      3       2              4
+        (48t  + 15t  + 152t  + 61t  + 603t  - 532t - 36)x
+      +
+           7      5      4       3       2               3
+        (6t  + 74t  + 60t  + 226t  + 116t  + 168t - 140)x
+      +
+           5     3      2            2
+        (3t  + 6t  + 12t  + 18t + 6)x
+
+   a^3
+         3     2           12      5     4      3      2           10
+       (t  - 3t  + 3t - 1)x   + (3t  - 6t  + 12t  - 15t  + 3t + 3)x
+     +
+          3      2       9      7     6      5      4      3     2            8
+       (6t  - 12t  + 6t)x  + (3t  - 3t  + 21t  - 18t  + 24t  - 9t  - 15t - 3)x
+     +
+           5      4      3      2        7
+       (12t  - 12t  + 36t  - 24t  - 12t)x
+     +
+         9      7     6      5     4      3      2           6
+       (t  + 15t  - 3t  + 45t  + 6t  + 36t  + 15t  + 9t + 1)x
+     +
+          7      5      3      2       5
+       (6t  + 48t  + 54t  + 36t  + 6t)x
+     +
+          9      7     6      5      4      3      2  4
+       (3t  + 21t  + 3t  + 39t  + 18t  + 39t  + 12t )x
+     +
+           7      5      4     3  3      9     7     6      5  2     7     9
+       (12t  + 36t  + 12t  + 8t )x  + (3t  + 9t  + 3t  + 12t )x  + 6t x + t
+\end{verbatim}
+
+\horizontalline
+   )clear all
+\blankline
+As a third example, we construct a difference operator algebra over
+the ring of EXPR(INT) by using an automorphism S defined by a
+"shift" operation S:EXPR(INT) -> EXPR(INT)
+\blankline
+\begin{verbatim}
+   s(e)(n) = e(n+1)
+\end{verbatim}
+\blankline
+and an S-derivation defined by DF:EXPR(INT) -> EXPR(INT) as
+\blankline
+\begin{verbatim}
+   DF(e)(n) = e(n+1)-e(n)
+\end{verbatim}
+\blankline
+Define S to be a "shift" operator, which acts on expressions with
+the discrete variable n:
+\blankline
+\begin{verbatim}
+   S:EXPR(INT)->EXPR(INT):=e+->eval(e,[n],[n+1])
+\end{verbatim}
+\blankline
+Define DF to be a "difference" operator, which acts on expressions
+with a discrete variable n:
+\blankline
+\begin{verbatim}
+   DF:EXPR(INT)->EXPR(INT):=e+->eval(e,[n],[n+1])-e
+\end{verbatim}
+\blankline
+Then define the difference operator algebra D0:
+\blankline
+\begin{verbatim}
+   D0:=OREUP('D,EXPR(INT),morphism S,DF)
+
+   u:=(operator 'u)[n]
+
+   L:D0:='D+u
+
+        D + u(n)
+
+   L^2
+
+         2                2
+        D  + 2u(n)D + u(n)
+\end{verbatim}
+
+\horizontalline
+   )clear all
+\blankline
+As a fourth example, we construct a skew polynomial ring by using an
+inner derivation \delta induced by a fixed y in R:
+\blankline
+   \delta(r) = yr - ry
+\blankline
+First we should expose the constructor SquareMatrix so it is visible
+in the interpreter:
+\blankline
+   )set expose add constructor SquareMatrix
+\blankline
+Define R to be the square matrix with integer entries:
+\blankline
+\begin{verbatim}
+   R:=SQMATRIX(2,INT)
+
+   y:R:=matrix [[1,1],[0,1]]
+        +1  1+
+        |    |
+        +0  1+
+\end{verbatim}
+\blankline
+Define the inner derivative \delta:
+\blankline
+   delta:R->R:=r+->y*r-r*y
+\blankline
+Define S to be a skew polynomial determined by \sigma = 1
+and \delta as an inner derivative:
+\blankline
+\begin{verbatim}
+   S:=OREUP('x,R,1,delta)
+
+   x:S:='x
+
+   a:S:=matrix [[2,3],[1,1]]
+        +2  3+
+        |    |
+        +1  1+
+
+   x^2*a
+        +2  3+ 2   +2  - 2+    +0  - 2+
+        |    |x  + |      |x + |      |
+        +1  1+     +0  - 2+    +0   0 +
+\end{verbatim}
+\endscroll
+\autobuttons
+\end{page}
+
+@
\section{vector.ht}
\pageto{notitle}{OneDimensionalArrayXmpPage}
@@ -61071,6 +61384,7 @@ Type: List
WuWenTsunTriangularSet(Integer,IndexedExponents OrderedVariableList [
\pageto{TextFile}{TextFileXmpPage}
\pageto{TwoDimensionalArray}{TwoDimensionalArrayXmpPage}
\pageto{UnivariatePolynomial}{UnivariatePolyXmpPage}
+\pageto{UnivariateSkewPolynomial}{UnivariateSkewPolyXmpPage}
\pageto{UniversalSegment}{UniversalSegmentXmpPage}
\pageto{Vector}{VectorXmpPage}
\pageto{Void}{VoidXmpPage}
@@ -61177,6 +61491,7 @@ Click on any item below to see that section.
@@ -187623,6 +187938,7 @@ RootPage
PolynomialXmpPage
MultivariatePolyXmpPage
DistributedMultivariatePolyXmpPage
+      UnivariateSkewPolynomialPage
UniversalSegmentXmpPage
SegmentXmpPage
SegmentBindingXmpPage
diff --git a/changelog b/changelog
index eec4e31..cdca04a 100644
--- a/changelog
+++ b/changelog
@@ -1,4 +1,9 @@
-20090226 tpd src/axiom-website/patches.html 20090225.02.mxr.patch
+20090227 tpd src/axiom-website/patches.html 20090227.01.lxx.patch
+20090227 lxx src/algebra/Makefile document UnivariateSkewPolynomial
+20090227 lxx books/bookvol10.3 document UnivariateSkewPolynomial
+20090227 lxx books/bookvol7.1 document UnivariateSkewPolynomial
+20090226 tpd src/axiom-website/patches.html 20090226.01.mxr.patch
20090226 tpd src/input/bags.input removed. distributed into bookvol10.3
20090226 tpd src/input/Makefile remove bags.input
20090225 tpd src/axiom-website/patches.html 20090225.02.mxr.patch
diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet
index 2c80c0c..bd760c9 100644
--- a/src/algebra/Makefile.pamphlet
+++ b/src/algebra/Makefile.pamphlet
${HELP}/StringTable.help${HELP}/Symbol.help \
${HELP}/Table.help${HELP}/TextFile.help \
${HELP}/TwoDimensionalArray.help${HELP}/TwoDimensionalViewport.help \
+ ${HELP}/UnivariateSkewPolynomial.help \${HELP}/UnivariatePolynomial.help   ${HELP}/UniversalSegment.help \${HELP}/Vector.help                 ${HELP}/Void.help \${HELP}/WuWenTsunTriangularSet.help ${HELP}/XPBWPolynomial.help \ @@ -16557,7 +16558,7 @@ REGRESS=\ Stream.regress String.regress \ StringTable.regress Symbol.regress \ Table.regress TextFile.regress \ - TwoDimensionalArray.regress \ + TwoDimensionalArray.regress UnivariateSkewPolynomial.regress \ UnivariatePolynomial.regress UniversalSegment.regress \ Vector.regress Void.regress \ WuWenTsunTriangularSet.regress XPBWPolynomial.regress \ @@ -17569,6 +17570,18 @@${HELP}/UnivariatePolynomial.help:
${BOOKS}/bookvol10.3.pamphlet >${INPUT}/UnivariatePolynomial.input
@echo "UnivariatePolynomial (UP)" >>${HELPFILE} +${HELP}/UnivariateSkewPolynomial.help: ${BOOKS}/bookvol10.3.pamphlet + @echo 7095 create UnivariateSkewPolynomial.help from \ +${BOOKS}/bookvol10.3.pamphlet
+       @${TANGLE} -R"UnivariateSkewPolynomial.help" \ +${BOOKS}/bookvol10.3.pamphlet \
+           >${HELP}/UnivariateSkewPolynomial.help + @cp${HELP}/UnivariateSkewPolynomial.help ${HELP}/OREUP.help + @${TANGLE} -R"UnivariateSkewPolynomial.input" \
+           ${BOOKS}/bookvol10.3.pamphlet \ + >${INPUT}/UnivariateSkewPolynomial.input
+       @echo "UnivariateSkewPolynomial (OREUP)" >>${HELPFILE} +${HELP}/UniversalSegment.help: ${BOOKS}/bookvol10.3.pamphlet @echo 7096 create UniversalSegment.help from \${BOOKS}/bookvol10.3.pamphlet
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 9f1bebb..ef940f5 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -971,5 +971,7 @@ bookvol10.3 add regression, help, examples for Heap<br/>
bookvol10.3 add regression, help, examples for NottinghamGroup<br/>
<a href="patches/20090226.01.mxr.patch">20090226.01.mxr.patch</a>
input/Makefile remove bags.input<br/>
+<a href="patches/20090227.01.lxx.patch">20090227.01.lxx.patch</a>
+bookvol10.3 document UnivariateSkewPolynomial<br/>
</body>
</html>
diff --git a/src/input/bags.input.pamphlet b/src/input/bags.input.pamphlet
deleted file mode 100644
index f253093..0000000
--- a/src/input/bags.input.pamphlet
+++ /dev/null
@@ -1,383 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-\begin{document}
-\title{\$SPAD/src/input bags.input} -\author{Timothy Daly} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= ---Copyright The Numerical Algorithms Group Limited 1991. -@ -<<*>>= -)spool bags.output -)set message test on -)set message auto off -)clear all - ---S 1 of 44 -a:Stack INT:= stack [1,2,3,4,5] ---R ---R ---R (1) [1,2,3,4,5] ---R Type: Stack Integer ---E 1 - ---S 2 of 44 -pop! a ---R ---R ---R (2) 1 ---R Type: PositiveInteger ---E 2 - ---S 3 of 44 -a ---R ---R ---R (3) [2,3,4,5] ---R Type: Stack Integer ---E 3 - ---S 4 of 44 -push!(9,a) ---R ---R ---R (4) 9 ---R Type: PositiveInteger ---E 4 - ---S 5 of 44 -a ---R ---R ---R (5) [9,2,3,4,5] ---R Type: Stack Integer ---E 5 - ---S 6 of 44 -empty? a ---R ---R ---R (6) false ---R Type: Boolean ---E 6 - ---S 7 of 44 -b:=empty()$(Stack INT)
---R
---R
---R   (7)  []
---R                                                          Type: Stack
Integer
---E 7
-
---S 8 of 44
-empty? b
---R
---R
---R   (8)  true
---R                                                                Type:
Boolean
---E 8
-
---S 9 of 44
-c:ArrayStack INT:= arrayStack [1,2,3,4,5]
---R
---R
---R   (9)  [1,2,3,4,5]
---R                                                     Type: ArrayStack
Integer
---E 9
-
---S 10 of 44
-pop! c
---R
---R
---R   (10)  5
---R                                                        Type:
PositiveInteger
---E 10
-
---S 11 of 44
-c
---R
---R
---R   (11)  [1,2,3,4]
---R                                                     Type: ArrayStack
Integer
---E 11
-
---S 12 of 44
-push!(9,c)
---R
---R
---R   (12)  9
---R                                                        Type:
PositiveInteger
---E 12
-
---S 13 of 44
-c
---R
---R
---R   (13)  [9,1,2,3,4]
---R                                                     Type: ArrayStack
Integer
---E 13
-
---S 14 of 44
-empty? c
---R
---R
---R   (14)  false
---R                                                                Type:
Boolean
---E 14
-
---S 15 of 44
-d:=empty()$(ArrayStack INT) ---R ---R ---R (15) [] ---R Type: ArrayStack Integer ---E 15 - ---S 16 of 44 -empty? d ---R ---R ---R (16) true ---R Type: Boolean ---E 16 - ---S 17 of 44 -e:Queue INT:= queue [1,2,3,4,5] ---R ---R ---R (17) [1,2,3,4,5] ---R Type: Queue Integer ---E 17 - ---S 18 of 44 -dequeue! e ---R ---R ---R (18) 1 ---R Type: PositiveInteger ---E 18 - ---S 19 of 44 -e ---R ---R ---R (19) [2,3,4,5] ---R Type: Queue Integer ---E 19 - ---S 20 of 44 -enqueue!(9,e) ---R ---R ---R (20) 9 ---R Type: PositiveInteger ---E 20 - ---S 21 of 44 -e ---R ---R ---R (21) [2,3,4,5,9] ---R Type: Queue Integer ---E 21 - ---S 22 of 44 -empty? e ---R ---R ---R (22) false ---R Type: Boolean ---E 22 - ---S 23 of 44 -f:=empty()$(Queue INT)
---R
---R
---R   (23)  []
---R                                                          Type: Queue
Integer
---E 23
-
---S 24 of 44
-empty? f
---R
---R
---R   (24)  true
---R                                                                Type:
Boolean
---E 24
-
---S 25 of 44
-g:Dequeue INT:= dequeue [1,2,3,4,5]
---R
---R
---R   (25)  [1,2,3,4,5]
---R                                                        Type: Dequeue
Integer
---E 25
-
---S 26 of 44
-extractBottom! g
---R
---R
---R   (26)  5
---R                                                        Type:
PositiveInteger
---E 26
-
---S 27 of 44
-g
---R
---R
---R   (27)  [1,2,3,4]
---R                                                        Type: Dequeue
Integer
---E 27
-
---S 28 of 44
-insertBottom!(9,g)
---R
---R
---R   (28)  9
---R                                                        Type:
PositiveInteger
---E 28
-
---S 29 of 44
-g
---R
---R
---R   (29)  [1,2,3,4,9]
---R                                                        Type: Dequeue
Integer
---E 29
-
---S 30 of 44
-extractTop! g
---R
---R
---R   (30)  1
---R                                                        Type:
PositiveInteger
---E 30
-
---S 31 of 44
-g
---R
---R
---R   (31)  [2,3,4,9]
---R                                                        Type: Dequeue
Integer
---E 31
-
---S 32 of 44
-insertTop!(9,g)
---R
---R
---R   (32)  9
---R                                                        Type:
PositiveInteger
---E 32
-
---S 33 of 44
-g
---R
---R
---R   (33)  [9,2,3,4,9]
---R                                                        Type: Dequeue
Integer
---E 33
-
---S 34 of 44
-empty? g
---R
---R
---R   (34)  false
---R                                                                Type:
Boolean
---E 34
-
---S 35 of 44
-h:=empty()\$(Dequeue INT)
---R
---R
---R   (35)  []
---R                                                        Type: Dequeue
Integer
---E 35
-
---S 36 of 44
-empty? h
---R
---R
---R   (36)  true
---R                                                                Type:
Boolean
---E 36
-
---S 37 of 44
-i:Heap INT := bag [1,6,3,7,5,2,4]
---R
---R
---R   (37)  [7,6,4,1,5,2,3]
---R                                                           Type: Heap
Integer
---E 37
-
---S 38 of 44
-insert!(10,i)
---R
---R
---R   (38)  [10,7,4,6,5,2,3,1]
---R                                                           Type: Heap
Integer
---E 38
-
---S 39 of 44
-i
---R
---R
---R   (39)  [10,7,4,6,5,2,3,1]
---R                                                           Type: Heap
Integer
---E 39
-
---S 40 of 44
-max i
---R
---R
---R   (40)  10
---R                                                        Type:
PositiveInteger
---E 40
-
---S 41 of 44
-extract! i
---R
---R
---R   (41)  10
---R                                                        Type:
PositiveInteger
---E 41
-
---S 42 of 44
-i
---R
---R
---R   (42)  [7,6,4,1,5,2,3]
---R                                                           Type: Heap
Integer
---E 42
-
---S 43 of 44
-heapsort x ==
-       empty? x => []
-       cons(extract! x,heapsort x)
---R
---R                                                                   Type:
Void
---E 43
-
---S 44 of 44
-heapsort i
---R
---R   Compiling function heapsort with type Heap Integer -> List Integer
---R
---R   (44)  [7,6,5,4,3,2,1]
---R                                                           Type: List
Integer
---E 44
-)spool
-)lisp (bye)
-
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}
-