Exterior algebra error

asked 7 years ago

Nat Mayer gravatar image

Hi,

I'm new to Sage, and I've been having a lot of trouble constructing a particular algebra. I want to construct the exterior algebra (over Q) on generators wi,j=wj,i where 1i<jn for some n (for concreteness, say n=6). I want this particular generating set so that I can define an Sn action, but that's the next challenge. I've been attempting the following rough outline:

  1. Construct a vector space VQn, with basis vi.
  2. Take a tensor product VV, with basis wi,j=vivj.
  3. Take a quotient to impose relations wi,i=0 and wi,j=wj,i.
  4. Take the exterior algebra on the quotient.

Several possible data structures for V (FiniteRankFreeModule, VectorSpace, FreeModule) seem to fail at step 2. Are tensor products implemented for these? The most promising structure, CombinatorialFreeModule, fails at step 4 for an unknown reason. I get an error "base must be a ring or a subcategory of Rings()", even though the base is Q.

Here's the specific code I've tried.

indices = range(1,7)
V = CombinatorialFreeModule(QQ, indices)
V2 = tensor((V,V))
w = V2.basis()
relations = []
for i in indices:
    relations.append(w[i,i])
    for j in range(i+1,7)
        relations.append(w[i,j] - w[j,i])
R = V2.submodule(relations)
V3 = V2.quotient_module(R)
A = ExteriorAlgebra(V3)

The last line gives an error, "base must be a ring or a subcategory of Rings()". The command V2.base() in Rings() returns true, but I can't get around the error.

Any help would be appreciated, either in fixing this error or approaching the construction in a different way.

Preview: (hide)

Comments

Look at the doc and code of exterior algebra

sage: V3 in Rings()
False
sage: ExteriorAlgebra??
FrédéricC gravatar imageFrédéricC ( 7 years ago )

Thanks for the response FredericC. The documentation says that ExteriorAlgebra can take as input R a free module over a base ring. Can I get sage to treat V3 as a free module (vector space)? It knows that V3 lies in the category of vector spaces with basis over Q.

If not, can you think of any other way to create an exterior algebra with bi-indexed basis, such that wi,j=wj,i?

Nat Mayer gravatar imageNat Mayer ( 7 years ago )

Indeed, I was wrong. Try this maybe:

sage: n = 4
sage: E=ExteriorAlgebra(QQ,['w{}{}'.format(i,j) for j in range(n) for i in range(j)])
sage: E.gens()
(w01, w02, w12, w03, w13, w23)
FrédéricC gravatar imageFrédéricC ( 7 years ago )