axiom-developer
[Top][All Lists]

## Re: [Axiom-developer] about Expression Integer

 From: Martin Rubey Subject: Re: [Axiom-developer] about Expression Integer Date: 22 Feb 2006 09:54:21 +0100 User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.4

```Dear Bill, Ralf, *

I'm currently out of time. But I'm a little afraid of the direction the
discussion takes currently.

I believe that the intension of a constructor like DMP is to cover
*polynomials*.

If we allow (2*x+1/x)::DMP([x], EXPR INT), i.e., allowing 1/x as a coefficient,
then it must be clear that the "x" in 1/x is something different than the "x"
in 2*x. Otherwise we don't get a polynomial, obviously.

So, I think that

> > P := DMP([x,y], EXPR INT)
> > a :P := x
> > b := a/x
> >
> > differentiate(b,x)                    -- 1/x
>
> (4) -> differentiate(b,x)
>
>         1
>    (4)  -
>         x
>    Type: DistributedMultivariatePolynomial([x,y],Expression Integer)
>
> I think this result should be classed a bug. The 'differentiate'
> operation apparently makes some incorrect assumptions about the
> coefficient domain. I think the result should be the same as:

is not a bug. If you want to have axiom output 0, then I imagine that you will
get into trouble with writing packages, variable capture might well occur.

I'd rather say that b::EXPR INT giving one is troublesome. I wouldn't really
classify it as a bug though, given the nature of EXPR INT. Note that b::UP([x],
INT) or b::POLY INT give errors!

PLEASE don't change the behaviour of DMP and company. What should be documented
(and I think Ralf did, but I hadn't time) is that domains like POLY EXPR INT
and friends can lead to "surprising" results. This should go into the section
"types" of the axiom book.

Martin

```