The following is the answer due to @Nicolas-M-Thiéry
sage: Groups?
The category of (multiplicative) groups, i.e. monoids with
inverses.
Mind the multiplicative!
What you want is:
sage: V = FreeModule(CC,2)
sage: V in CommutativeAdditiveGroups()
True
or (better, but not imported by
default):
sage: from sage.categories.additive_groups import AdditiveGroups
sage: V in AdditiveGroups()
True
Now you can construct the group
algebra:
sage: C = V.algebra(QQ)
sage: C.category()
Category of commutative additive group algebras over Rational Field
sage: x = C.an_element()
sage: x
B[(1.00000000000000, 0.000000000000000)]
sage: 3 * x + 1
B[(0.000000000000000, 0.000000000000000)] + 3*B[(1.00000000000000, 0.000000000000000)]
Ah, but this is disappointing::
sage: (x+1)^2
TypeError: mutable vectors are unhashable
One would need to have a variant of
FreeModule that would guarantee that
vectors remain immutable upon
arithmetic.
In the mean time, you can use:
sage: V = CombinatorialFreeModule(CC, [0,1])
sage: C = V.algebra(QQ)
sage: x = C.an_element()
sage: x
B[2.00000000000000*B[0] + 2.00000000000000*B[1]]
sage: (x+1)^2
B[0] + 2*B[2.00000000000000*B[0] + 2.00000000000000*B[1]] + B[4.00000000000000*B[0] + 4.00000000000000*B[1]]