-- -*- M2-comint -*- hash: 11613924850471530268

i1 : M = monoid[a,b,c, Degrees => {2,3,4}]

o1 = M

o1 : GeneralOrderedMonoid

i2 : degrees M

o2 = {{2}, {3}, {4}}

o2 : List

i3 : M_0 * M_1^6

        6
o3 = a*b

o3 : M

i4 : monoid[x,y,z]

o4 = monoid[x..z, Degrees => {3:1}, Heft => {1}]

o4 : GeneralOrderedMonoid

i5 : x

o5 = x

o5 : Symbol

i6 : use ooo

o6 = monoid[x..z, Degrees => {3:1}, Heft => {1}]

o6 : GeneralOrderedMonoid

i7 : x * y^6

        6
o7 = x*y

o7 : monoid[x..z, Degrees => {3:1}, Heft => {1}]

i8 : options M

o8 = OptionTable{Constants => false                     }
                                  1
                 DegreeGroup => ZZ
                 DegreeLift => null
                 DegreeMap => null
                 DegreeRank => 1
                 Degrees => {{2}, {3}, {4}}
                 Global => true
                 Heft => {1}
                 Inverses => false
                 Join => null
                 Local => false
                 MonomialOrder => {MonomialSize => 32  }
                                  {GRevLex => {2, 3, 4}}
                                  {Position => Up      }
                 SkewCommutative => {}
                 Variables => {a, b, c}
                 WeylAlgebra => {}

o8 : OptionTable

i9 : describe M

o9 = monoid[a..c, Degrees => {2..4}, Heft => {1}, MonomialOrder => {MonomialSize => 32}]
                                                                   {GRevLex => {2..4} }
                                                                   {Position => Up    }

i10 : toExternalString M

o10 = monoid[a..c, Degrees => {2..4}, Heft => {1}, MonomialOrder =>
      VerticalList{MonomialSize => 32, GRevLex => {2..4}, Position => Up}]

i11 : R = ZZ[x,y, Degrees => {-1,-2}, Heft => {-1}]

o11 = R

o11 : PolynomialRing

i12 : degree \ gens R

o12 = {{-1}, {-2}}

o12 : List

i13 : transpose vars R

o13 = {1} | x |
      {2} | y |

              2      1
o13 : Matrix R  <-- R

i14 : QQ[x][y]

o14 = QQ[x][y]

o14 : PolynomialRing

i15 : oo.FlatMonoid

o15 = monoid[y, x, Degrees => {{1}, {0}}, Heft => {2:1}, MonomialOrder => {MonomialSize => 32}]
                               {0}  {1}                                   {GRevLex => {1}    }
                                                                          {Position => Up    }
                                                                          {GRevLex => {1}    }

o15 : GeneralOrderedMonoid

i16 : QQ[x][y][z]

o16 = QQ[x][y][z]

o16 : PolynomialRing

i17 : oo.FlatMonoid

o17 = monoid[z, y, x, Degrees => {{1}, {0}, {0}}, Heft => {3:1}, MonomialOrder => {MonomialSize => 32}]
                                  {0}  {1}  {0}                                   {GRevLex => {1}    }
                                  {0}  {0}  {1}                                   {Position => Up    }
                                                                                  {2:(GRevLex => {1})}

o17 : GeneralOrderedMonoid

i18 : QQ[x][y, Join => false]

o18 = QQ[x][y]

o18 : PolynomialRing

i19 : oo.FlatMonoid

o19 = monoid[y, x, Degrees => {2:1}, Heft => {1}, Join => false, MonomialOrder => {MonomialSize => 32}]
                                                                                  {GRevLex => {1}    }
                                                                                  {Position => Up    }
                                                                                  {GRevLex => {1}    }

o19 : GeneralOrderedMonoid

i20 : 
