axiom-developer
[Top][All Lists]

## [Axiom-developer] [DistributedMultivariatePolynomial]

 From: wyscc Subject: [Axiom-developer] [DistributedMultivariatePolynomial] Date: Tue, 28 Feb 2006 03:33:41 -0600

Changes http://wiki.axiom-developer.org/DistributedMultivariatePolynomial/diff
--
Bill Page wrote:

> I find your notation a little confusing. In Axiom notation I think you mean,
> for example:

There is nothing confusing about my notation in $R[x]$ where $R$ can be any
integral domain (or even ring). The $x$ is transcendental over $R$ by the
definition of polynomial ring. $R$ can be INT, or EXPR INT, POLY INT or what
have you. $x$ is NEVER going to be in the ground coefficient ring if you are
talking about polynomials in x (see PS below for a proof). You are confused
because you refuse to accept the definition of polynomial ring. You, confused
by the Interpreter, keep saying that an indeterminate $x$ can be an element of
the coefficient ring. That is a violation of a universally accepted
mathematical definition. On the opther hand, the Interpreter only errs in not
catching your mistake. It did NOT coerce something from $R[x]$ that involves
$x$ into $R$. There is simply no such coerce map in Axiom!

$Q(R[x])$ is the quotient field of the polynomial ring. It is the field of
rational functions in one indeterminate $x$ with coefficients in $R$. $R$ can
be any integral domain, including a field. That is why $Q(R[x]) = Q(Q(R)[x])$
(more precisely, isomorphic). In Axiom, this would be 'FRAC DMP([x], R)' is
isomorphic to 'FRAC (DMP([x], FRAC R)' (and Axiom provides facilities to
convert one into the other; I believe Aldor's compiler even knows about these
"tower rearrangements"). In the examples under discussion, $R$ would be 'POLY
INT', or 'FRAC POLY INT', but not 'INT'. But it is still true that the main
variable of 'DMP([x], R)' cannot belong to 'R = POLY INT'.

>It is only when we coerce $Q(R[x])[x]$ ...

Your notation $Q(R[x])[x]$ is either meaningless (in case you think of the last
$x$ as transcendental over the field $Q(R[x])$) or it is identical to $Q(R[x])$
as a mathematical object (in case you adjoin the *same* $x$ to the field of
rational functions over $R$.)  It cannot mean both and in any case, this is the
wrong way to notate what you meant. You should have used $Q(R[x])[y]$ where $y$
is another indeterminate independent over $Q(R[x])$.  We cannot *coerce*
$Q(R[x])[y]$ into $Q(R[x])$ no matter what $R$ is since $y$ is transcendental
over $Q(R[x])$. We can only *substitute* $x$ for $y$ so that any $f(x,y)$
evaluates to $f(x,x)$.  This is the substitution I was talking about and what
FRAC2 implements. Unfortunately, looking at the code will only give you a more
general "lifting" map. The substitution is actually given by the input 'A->B'
in 'map' and supplied by the Interpreter in its automatic "coercion" magic.
The function 'map(f:A->B, A, B)' in the example of $A =! R[x,y]$, $B = R[x]$ and $f(x)=x, f(y)=y$ will map $\frac{1}{y} \times x$ to
$1$. This is what you see done by the Interpreter. Unfortunately, the user
insists using $x$ instead of $y$ as in
'monomial(x,0)$DMP([x], POLY INT)'. The correct way this: \begin{axiom} f:=monomial(y,0)$DMP([x], POLY INT)
subst(1/f*x, y=x)
\end{axiom}

William

PS. Let me define a univariate polynomial over a unitary ring $R$ where $0 \neq 1$, as an infinite sequence (function with finite support) from $N$ (the
natural numbers) to $R$ and the polynomial ring as the totality of all
polynomials. Then the indeterminate, let us call it $x$, will be the sequence
represented by the function $f_x: N \rightarrow R$ where $f_x(1) = 1$ and
$f_x(n) = 0$ for $n \neq 1$. An element $a \in R$ is identified as the function
$f_a$ where $f_a(0)= a$ and $f_a(n)=0$ for $n \neq 0$. From this we see that
$f_x \neq f_a$ for any $a \in R$ since $f_a(1) \neq f_x(1)$. So, there is no
way one can *coerce* $f_x$ to $R$, no matter what $R$ is. We don't even need to
know that $f_x$ is transcendental over $R$. We can only make a substitution to
replace $f_x$ by some $f_a$ (or evaluation at $a$).

--