axiom-developer
[Top][All Lists]
Advanced

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

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






reply via email to

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