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.

>From http://wiki.axiom-developer.org/axiom--test--1/src/algebra/PolySpad

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

>From http://wiki.axiom-developer.org/axiom--test--1/src/algebra/PolycatSpad

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

>From http://wiki.axiom-developer.org/axiom--test--1/src/algebra/CatdefSpad

DifferentialExtension(R:Ring): Category == Ring with ...
    if R has PartialDifferentialRing(Symbol) then
             PartialDifferentialRing(Symbol)
  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:

  differentiate(univariate(p),v)

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

http://wiki.axiom-developer.org/SandBoxPolynomial

> 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.

Regards,
Bill Page.




_______________________________________________
Axiom-developer mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/axiom-developer

Reply via email to