Re: Doubt about IndexedExponents

Ralf Hemmecke <[email protected]> Sat, 09 Apr 2011 09:23:18 +0200
Newsgroups gmane.comp.mathematics.axiom.user
Message-ID <[email protected]>
> E := IndexedExponents(V)
> -- Well, I don't know how this works, but I need an
> -- OrderedAbelianMonoidSup to create a
> -- Residue Ring, this step is the one I'm trying to get
> -- help to understand
>
> P := NSMP(R,V)
> -- Defining the polynomial ring, of only one variable
>
> L := [x**2 - 1]
> -- Defining the Ideal which I'm going to use to
> -- get my Residue Ring
>
> S := ResidueRing(R, E, V, P, L)
>
> Then I can properly use S to calculate what I want in that Residue Ring, but
> I certainly wish to know more about the IndexedExponents, like what it does
> and why it is needed.

In fact, I find the construction of polynomials not really optimal. Look 
at polynomials, one actually doesn't need variables. A polynomial is a 
special instance of a monoid ring where in your case the coefficient 
ring is R and the monoid is E. Now, if you look deeper in the code then 
you find that internally, NSMP(R,V) constructs such a monoid ring by 
constructing the monoid via IndexedExponents(V).

In such a monoid ring you would not be able to do reduction, because 
there is need for an order on the power products. So one has to require 
not just monoid, but OrderedMonoid (the "Abelian" in the name just means 
that you basically deal with an additively written monoid).

Furthermore, you need this ...Sup, because you have to be able to divide 
power products in order to reduce polynomials.

Simply taking variables doesn't give you anything. In Fricas you must 
declare with which structures you actually work.

As you see with NSMP(R,V), FriCAS has some domains that cover the 
standard case. But internally, the Gröbner basis machinery is used and 
(as you might know), there is an additional parameter, namely the order 
of terms, that influences the speed in which the result is computed. The 
specific order is not important mathematically, any will do, but most 
people will claim that a degree reverse lexicographical order is better 
suited for Gröbner basis computations than a pure lexicographical one.

I hope that this gives you a hint of what is behind the need for 
IndexedExponents.

Oh yes, I've forgotten something. It's also a way to represent the power 
products. Maybe you know you use case better and rather want a more 
efficient implementation of power products. In FriCAS you can do this. 
Just invent (program) the respective domain of power products. It is not 
really necessary to use IndexedExponents, if you have more inside in how 
everything works.

Ralf