axiom-developer
[Top][All Lists]

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
PartialDifferentialRing(Symbol)

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