[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Axiom-developer] about Expression Integer

From: Bill Page
Subject: RE: [Axiom-developer] about Expression Integer
Date: Tue, 21 Feb 2006 18:41:37 -0500

On February 21, 2006 4:53 PM Ralf Hemmecke wrote:
> ... 
> > (4) -> differentiate(ex1,x)$S
> > This function seems to come from 'DifferentialExtension'
> No. I rather think it comes from 'PartialDifferentialRing(Symbol)'.
> Look at Hyperdoc. Browse SUP and view Operations->Origins (Filter 
> "differentiate").

I think Hyperdoc is confused.


SparseUnivariatePolynomial(R:Ring): UnivariatePolynomialCategory(R) with ...


UnivariatePolynomialCategory(R:Ring): Category ==
 Join(PolynomialCategory(R, NonNegativeInteger, SingletonAsOrderedSet),
      Eltable(R, R), Eltable(%, %), DifferentialRing,
      DifferentialExtension R) with ...


DifferentialExtension(R:Ring): Category == Ring with ...
    if R has PartialDifferentialRing(Symbol) then
  add ...

    if R has PartialDifferentialRing Symbol then
      differentiate(x:%, v:Symbol):% ==
        differentiate(x, differentiate(#1, v)$R)


> > So I am confused as to why
> > 'differentiate(univariate(p,v))' does not seem to yield this
> > same result. Can you help?

I think what we need really is:


but I am having a disagreement with SPAD about how to write this.

> Not really. I think there is a bug here, since x is sometimes 
> treated as the indeterminate of SUP and sometimes not.

This makes sense to me:

  'x' is an indeterminante (kernel?) of 'SUP(R:Ring)' if 'x' is
  an indeterminante of R,

i.e. by extension in the same sense in which differentiation
is extended to SUP, see ')sh SUP':

  differentiate : (%,Symbol) -> % if R has PDRING SYMBOL

But the list of indeterminantes of 'SUP' can be larger than the
list of variables (fixed at 1 and denoted '?' for 'SUP').

Maybe that is a bit confusing compared to common usage. :(

> > It seems to me that the interrelationship between all of these
> > polynomial categories, domains and packages is remarkably
> > convoluted.
> I don't really think so. The problematic thing is to take
> "Expression Integer" as an argument in the construction of SUP.
> Could you explain in which sense SUP(Expression Integer) should be 
> semantically different from Expression(Integer)?

SUP(Expression Integer) has an extra (but unspecified) variable:
the "polynomial variable".

> Isn't an element of SUP(Expression Integer) also an expression?

No, only the members of 'SUP(EXPR INT)' of degree 0. For example:

   monomial(x,1)$SUP EXPR INT

cannot be converted to 'EXPR INT'.

> It is obvious that Axiom can construct SUP(Expression Integer),
> but does this make sense?

Yes, I think so.

> I do not fully understand the "Expression" constructor, but
> I somehow consider it as a domain that contains every expression.

No. The 'Rep' of 'Expression x' is 'FRAC MPOLY x'. It cannot
possibly contain every expression.

> Therefore, I think constructing higher domains that are built on
> Expression should not yield a bigger class than Expression itself.

Unfortunately 'Expression' is not a "GeneralExpression" or even
Aldor's 'ExpressionTree'. But I agree that really Axiom needs a
'GeneralExpression' of this kind.

> What would be the relation between SUP(Expression Integer) and
> Expression(Integer) on a semantic level? Equality, subset, superset?

There is a sense in which 'EXPR INT' is a SubDomain of 'SUP EXPR INT'
in so much as it is always possible to coerce a member of 'EXPR INT'
to 'SUP EXPR INT' but the reverse conversion is only possible for
members of 'SUP EXPR INT' of degree 0.

Bill Page.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]