Hi Michael,

On Sep 8, 3:33 pm, Michael Brickenstein <brickenst...@mfo.de> wrote:
> Am 08.09.2009 um 15:25 schrieb Oleksandr:
> > On Sep 7, 3:17 pm, Michael Brickenstein <brickenst...@mfo.de> wrote:
> >> Am 07.09.2009 um 14:34 schrieb Oleksandr:
> >>> What about Sage implementation for
>
> >>> 1. weighting vector(s) "a(w1, w2...wn)",
> >>> 2. free module orderings (e.g. c/C) mixed somewhere in between? Does
> >>> Sage have such a concept?
>
> >> I suppose, that the answer is no.
> >>> In Sage i'd imagine something like:
> >>> {{{
> >>> TermOrder = WeightVector(2,5) + ModuleOrder('c') + WeightVector
> >>> (-1,-2)
> >>> + MatrixOrder(1,1,0,-1)
> >>> }}}
> >> I suppose, the best thing is to separate that into a ModuleOrder,
> >> which builds on a TermOrder.
>
> > I am not sure what do you mean by that?
> > Note that one can mixin a ModuleOrder somewhere in between TermOrder-
> > s.
>
> I am referring to the fact, that it is sensible to assume, that for each 
> component the ordering on the component is
> the same as on the polynomial ring.
>
> SchreyerOrdering(exponents=[(list of integers)], term_order=TermOrder(..))

I'd add that in general one starts with a ModuleOrder (instead of
TermOrder) here.

> ComponentFirst(term_order=..., ascending=True)# (c, dp)
> ComponentLast(...)

I would not want to restrict us to "(c/C, >)" and "(>, c/C)" from the
very beginning...
How do you propose to mix in "c" in between? e.g. as in 'a(1,2), M(3),
c, dp'?

Please let me suggest the following "additive _block_ structure":

(e.g. WeightVector(1,2) + MatrixOrder(3) + ComponentOrder
(ascending=True) + SingularOrder('dp') for the above example)

. There should be at least ModuleOrder, WeightVector and TermOrder (3
different classes)
(ModuleOrder and WeightVector are _not_ TermOrder-s)

. TermOrder + WeightVector, WeightVector  + TermOrder, TermOrder +
TermOrder  give TermOrder-s

. TermOrder + ModuleOrder and ModuleOrder + TermOrder give ModuleOrder-
s

. ModuleOrder + ModuleOrder is _not_ defined

. MatrixOrder is a TermOrder

. ComponentOrder, SyzygyOrder, SchreyerOrder are ModuleOrder-s

Besided, i would suggest to have an option to supply an arbitrary
string to Singular (e.g. SingularOrder('a(1,2), M(3), c, dp') )

There may be a compatibility problem: some Orders may not be
compatible with each other or with the ring (due to the number of
variables). Therefore one might need an optional _length_ attribute.
e.g. WeightVector(1,2) has the length 2, MatrixOrder(1) - 1 and thus
they don't sum up together.

> I agree with you, that Schreyer orderings should be exposed to the  surface.

That would be nice! Additionally one might need (at least i do) to add
more reference module-terms in run-time without changing the ring:
e.g. in Schreyer or LaScala resolution.
I guess it's a way toooo CAS specific. AFAIK M2 can somehow endowe
_just_ a matrix with a Schreyer ordering...


Cheers,
Oleksandr
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to