Part of a series on Exterior Algebra:

  1. (This post)
  2. Star Indices

This is the first of a few posts on Exterior Algebra. It will explore some ways of doing the index notation succinctly and serve as a reference for later posts.


Wedge Products of Vectors

We start by considering the wedge product of k vectors in RN. I will adopt one convention immediately and write this as:

v1k=v1v2vk

We can use this to write the N-volume Ω=e1N (I prefer the upper case) or the products of columns of a matrix A1N. but obviously this doesn’t work for a set of differently-named vectors uvw, say. I’ll also write the wedge products of a specific vectors as v123, say, which is most useful for basis multivectors. For example the 3-vector basis elements in 4D are

{e123,e124,e234,e134}

We’ll do the same for tensor products, and write:

v1k=v1v2vk

I will be using the “alternating construction” of the wedge product, which means that v1k is equivalent to the following tensor product:

v1k=(v1v2vk)(v2v1vk)+=σsgn(σ)vσ(1)vσ(k)=Kϵ1kKvK=ϵKvK

In the first line I’ve sketched the full alternating sum. The second writes this as a sum over signed permutations, and the third with an antisymmetric Levi-Civita symbol and a multi-index K, which ranges over all orders of the indices 1k (which itself is a specific multi-index of length |K|=k.) The one-index Levi-Civita represents the sign of the permutation of K with respect to the ordered sequence 1|K|, and is therefore an alias for the two-index symbol ϵ1|K|K. The final line simplifies this expression with Einstein notation, so that the sum over all values of K is implied, which I’ll do whenever possible.

That example indicates my general preference in notation towards extremely succinct expressions. I will tend to omit explicitly stating the range of sums when it’s obvious from the context, and will prefer a Levi-Civita symbol over an explicit sum over permutations. I’ll use Einstein notation, but won’t distinguish the left/right positions of indices because they won’t matter as long as I’m only working with vectors and square (1, 1) matrices. If I want to specify the length of the multi-index in a sum, I will write something like |K|=k.


Wedge Products in Index Notation, Three Ways

Let’s now consider the component representation of a wedge product like v1k=v1v2vk, given a basis ei on the underlying vector space RN. I’ll specifically consider the example of just two vectors in 2D to demonstrate the notation

uv=uvvu

We can expand this in component in three different ways, which I have given names to, as they can otherwise be hard to distinguish. They are:

Tensor Product Basis. The basis of k-tensor-products of like ei1ik, which with a multi-index is eI with |I|=k. I’ll call this the “tensor product basis”. There are kN basis elements in general, but v1k is antisymmetric, so only those where all of the i1,,ik are distinct will survive; there are N!(Nk)! of these, which is the “number of distinct sequences of k out of N elements.”

The wedge product of two vectors in the tensor product basis looks like

uv=(u1e1+u2e2)(v1e1+v2e2)(v1e1+v2e2)(u1e1+u2e2)=(u1v2v1u2)(e1e2)+(u2v1v2u1)(e2e1)

Permutation Basis. The basis of eI, i.e. as (1) but with wedge products in the place of tensor products. The indices still range over all Nk values, but only those without any duplicates survive, for a total of N!(Nk)! components. Such an expression is manifestly antisymmetric as a tensor, although its coefficients are not necessarily antisymmetric in their indices. I’ll call this the “permutation basis”, because all permutations of each possible set of indices are included in it.

There are two variants of this; the second has antisymmetrized coefficients but therefore has to divide by 1k! to avoid double-counting:

uv=u1v2(e1e2)+u2v1(e2e1)=12((u1v2v2u1)(e1e2)+(u2v1u1v2)(e2e1))

Combination Basis, i.e.the basis of distinct eI with the indices taken only over the (Nk) distinct combinations of basis elements. This is 1k! smaller than the “permutation” basis. Sometimes the indices are chosen such that i1<i2<<ik, but this isn’t necessary as long as all the i are chosen distinctly and the sign of the overall basis element is consistent in some sense. I will generally refer to this by writing a sum over the wedge products themselves I rather than I, which indicates that only distinct wedge products are to be considered.

Our example can be written in two equivalent ways:

uv=(u1v2u2v1)(e1e2)=(u2v1u1v2)(e2e1)

In total we have three “indexing schemes” to consider: the permutations, the combinations, and the full tensor product. For the case of 2-vectors in 3D the basis elements are:

I(...)eII(...)eII(...)eI(111213212223313233)Nk tensor products(121321233132)N!(Nk)! permutations(122331)(Nk) combinations

In general the “tensor product basis” will easiest to write down, but is not necessarily antisymmetric. The permutation basis is manifestly antisymmetric but either has to avoid overcounting or has to have coefficients which are not antisymmetric. The combination basis is the most “natural”, but it can be hard to work out what the component representation ought to be—so my aim here is to arrive at the combination basis expressions in particular, as well as to give examples of my preferred notation.

What are the expansions of v1k in these three bases?

For the tensor product basis, we can either:

  • Expand v1k in components first, then expand the wedge product as tensor products:
v1k=(v1i1ei1)(v2i2ei2)(vkikeik)=v1ki1,,ikei1,,ik=v1kIeI=v1kKϵKIeI
  • Write v1k as a tensor product ϵKvK first, and then expand the tensor product in components:
v1k=ϵKvK=ϵKvKIeI

Here I’ve adopted another notation: vKI stands for the product of the elements of v with the two indices “zipped” together:

vKI=(vk1i1)(vk2i2)(vkkik)

These two tensor-basis expression are equivalent; we apparently have a choice as to whether we’d rather antisymmetrize the upper or lower index of v1kI. The lower index is perhaps preferable because it is very easy to write down—it just looks like the “components of v1k”, but lets us read 1k as the “antisymmetrization of 1k” as we considered earlier:

v1k=ϵKvKIeI=?v1kIeI

The permutation basis appeared as an intermediate step to the second form of the tensor product:

v1k=v1kIeI

This expression is the simplest way to represent your typical wedge product. Just write:

uvw=uivjwkeijk

This is a sum over all I, but there is nothing in the coefficient which indicates that this object is antisymmetric. Each of the k! sequences with the same set of indices all contribute to the eI term. If wanted to have an antisymmetric coefficient also, we’d be summing two antisymmetric things and would overcount by k!, so we can get an equivalent expression by antisymmetrizing either index and dividing:

v1kIeI=1k!ϵKvKIeI=1k!v1kKϵKIeI

These expressions appear a lot in books but I find them unappealing.

For the combination basis, we want to write v1k as a sum over distinct wedge products. We can get here in two ways:

  • starting from the permutation basis with the antisymmetric coefficient, but only summing over one of the k! basis elements, thereby removing the overcounting. We get (with the sum over K still implied by the Einstein notation):
v1k=1k!ϵKvKIeIIϵKvKIeI
  • or by starting from the tensor basis and gathering up all the terms belonging to the same wedge-basis element eJ. This merely requires replacing eJeJ, since the coefficients are already antisymmetric:
v1k=v1kKϵKIeIIv1kKϵKIeI

In all we have the following equivalent notations:

v1k=ϵKvK(tensor product)=v1kKϵKIeI=ϵKvKIeI(tensor basis)=v1kIeI=1k!v1kKϵKIeI=1k!ϵKvKIeI(permutation basis)=Iv1kKϵKIeI=IϵKvKIeI(combination basis)

Note that the combination-basis components:

  • are the same as the tensor-basis components, as long as an object is antisymmetric
  • are k! times the permutation-basis components The first rule is more interesting: it implies that we generally don’t have to think about which basis we’re using. We can in fact write Einstein-notation expressions in the tensor basis and then read them as being in the combination basis, which is what we’ll do.

The 2D examples side-by-side are:

uv=uvvu(tensor product)=(u1e1+u2e2)(v1e1+v2e2)(v1e1+v2e2)(u1e1+u2e2)=(u1v2v1u2)(e1e2)+(u2v1v2u1)(e2e1)(tensor)=u1v2(e1e2)+u2v1(e2e1)(permutation)=12((u1v2v1u2)(e1e2)+(u2v1v2u1)(e2e1))(anti-symm perm.)=(u1v2v1u2)(e1e2)(combination basis)=(u2v1v2u1)(e2e1)(alt.)

I personally find it easiest to think in the combination basis because it makes the antisymmetry manifest while avoiding any duplicated basis elements. I would generally like to be able to work entirely within it, if not for that that it can be hard to calculate wedge-product formulas without dropping to one of the other bases. The ideal would be able to write antisymmetric tensors in an Einstein notation like:

ψ=ψ12e12+ψIeI

This would let us do calculations with k-volumes like

ψ,ϕ=ψ12ϕ12+=ψIϕIψ=ψ,ψ=ψIψI

Or to write the matrix elements of a wedge power of a matrix as

Ak=(Ak)IJ(eIeJ)

and

Akψ=(Ak)IJψI

We’ll do all of this, but a question arises: is there any way we can also use the I symbol as an antisymmetrizer on indices, to perhaps avoid all those annoying Levi-Civitas in the component representations? This is the subject of the next section.


The Wedge Symbol as Antisymmetrizer?

The idea of using to antisymmetrize originally came up as a potential way to shorten the tensor basis expression:

v1k=ϵKvKIeI=?v1kIeI

which gives this expression the appearance of being a “matrix element of v1k in the I basis”. But note that this actual stands for the antisymmetrized-sum-of-products-of-elements-of-v:

v1kI=((v1i1)(v2i2)(vkik))((v2i2)(v1i1)(vkik))+

Does this generalize? The cases to consider are:

  • The two antisymmetrized permutation-basis expressions:
    • 1k!ϵKvKIeI=?1k!v1KIeI
    • 1k!v1kKϵKIeI=?1k!v1kIeI
  • The two combination-basis expressions
    • IϵKvKIeI=?Iv1kIeI
    • Iv1kKϵKIeI=?v1kIeI

In the first of each pairthe index doesn’t add much. The second two appears to support an Einstein notation with I in the superscript doing double duty both as an index-we-sum-over and as an antisymmetrizer. But we can’t support both at once! We’d get the wrong answer for the permutation-basis sum if we read it as a combination-basis expression and v.v.

So we could make it work if it only represented a combination-basis sum with antisymmetrization. But I’m still skeptical, because we would not want the same rule to apply—I don’t think—to either the matrix basis elements or the general antisymmetric tensor in

Akψ=(Ak)IJψI

Such a matrix element ought to only have one index antisymmetrized, which can be seen in the case of ANe1N=(detA)e1N, for which the coefficient A1N1N is exactly the wedge product of the N columns A1AN:

A1AN=|I|=NA1kIeI=(A1kIϵI)e1NA1N1Ne1N=?(A1k1k)e1N

This is the determinant, which is usually seen with a permutation

σsgn(σ)(A1σ(1))(ANσ(N))(ANσ(N))

Only one index is antisymmetrized. So the I “antisymmetrizer” is out.

Instead I’ll continue to use A1NIϵI for an antisymmetrizer, or perhaps A1N[I]. We will use I with Einstein notation, but only in the sense of “components in the combination basis”. Therefore the determinant in the “combination basis” is the matrix element (AN)1N1N, whose value is:

detA=(AN)1N1N=A1NJϵJ1N=A1NJϵJ

Sometimes you see this expression with both indices antisymmetrized, which overcounts: 1N!AIJϵJϵI. This can be seen as the tensor-basis matrix element of AN on the N-volume Ω=ϵIeI and its dual Ω=1N!ϵJeJ. Of course, as established earlier, the tensor- and combination-basis matrix elements turn out to be identical; we could use the same expression in the combination basis if we were willing to tolerate a combinatorial factor.

I am hoping to be able to use wedge-indices as components in this way while still using them to represent explicit wedge-products of vectors and unit vectors: e12,v1k,A1N. I don’t think this will run into contradictions, but I’m getting a headache at this point and it’s hard to tell.


Wedge Products in General

Now we’ll consider the wedge product of two antisymmetric multivectors ψϕ with grades |ψ|=k,|ϕ|=l.

Trying to calculate the components of ψϕ in the tensor basis is a bit confusing, because you first would write down (ψKeK)(ϕLeL) and if you then factor out the basis elements you get eKeL—which means what exactly? It is easiest to take wedges of wedges. But for antisymmetric objects we have ψKeeK=1k!ψKeK, so we get

(ψKeK)(ϕLeL)=1k!l!(ψKeK)(ϕLeL)=1k!l!ψKϕL(eKeL)=(1k!l!ψKϕLϵKLI)eI

where in the last line we’ve switched to a sum over all basis elements eI and factored out the antisymmetry into a Levi-Civita symbol. The Einstein-notation expression is therefore

1k!l!ψKϕLϵKLI

This is short enough, but the combinatorial factors are ugly.

The permutation basis would have the same components but divided by 1(k+l)!, which is not particularly useful.

The combination-basis components are as usual the same as the tensor-basis, but we can also try to calculate them directly. The initial expression is simple:

(ψKeK)(ϕLeL)=K,LψKϕLeKeL=(ψKϕL)(eKeL)

Note the use of K indices and Einstein notation, which implies that the sum is in the combination basis. This would be the answer except that it’s no longer in the combination basis: eKeL are not a distinct basis elements. Instead we need sum over distinct basis elements eI and then, for each, include one set of indices K,L which comprise it, with an appropriate sign. We get

(ψKeK)(ϕLeL)=(ψKϕLϵKLI)eI

which has three combination-basis sums. The equivalent Einstein-notation expression would just be:

ψKϕLϵKLI

I could see getting used to this, but if that’s a lot we can revert the K,L sums to be over tensor indices instead of only the combinations, which duplicates the whole result by k!×l!, and accounting for this restores the combinatorial factors to give the same result as in the tensor basis:

(ψKeK)(ϕLeL)=ψKϕLϵKLIk!l!eI

This is now equivalent to the tensor-basis coefficient, though we’re calling II. But the mixed use of tensor and wedge indices might be disturbing.

As an example, suppose ψ=ψ12e12=ψ12(e1e2e2e1) and ϕ=ϕ3e3. Then:

ψϕ=12[(ϵ123123ψ12ϕ3+ϵ213123ψ21ϕ3)e123+()e213+()e132]=12[(ψ12ϕ3ψ21ϕ3)e123+(ψ21ϕ3ψ12ϕ3)e213+(ψ12ϕ3+ψ21ϕ3)e132]=ψ12ϕ3e123

The first line gives the full tensor-basis expression, which sums over each eI and then over all combinations of the indices from ψ,ϕ that produce the index I in any order. In this case only 2 choices survive: ψ12ϕ3 and ψ21ϕ3. Then we simplify, and on the last line the expression we get the (very succinct) combination-basis expression, with no combinatorial factors in sight! No signs appear in this expression because there’s only one way to make the indices 123 out of the two input tensors.

Note that while Einstein-notation sums will use I indices, I don’t intend to write these for explicit components like ψ12 unless an actual wedge product is implied.

The general case of a 2-vector times a vector will demonstrate the need to deduplicate comb.-basis elements. Take ψ=ψ12e12+ψ23e23+ψ31e31 and ϕ=ϕ1e1+ϕ2e2+ϕ3e3. The wedge product is simple:

ψϕ=(ψ12e12+ψ23e23+ψ31e31)(ϕ1e1+ϕ2e2+ϕ3e3)=ψ12ϕ3e123+ψ23ϕ1e231+ψ31ϕ2e312=(ψ12ϕ3+ψ23ϕ1+ψ31ϕ2)e123

But if we wanted to write the last line as ψijϕkϵijk123e123 we would overcount by a factor of 2, unless we restricted the sum to distinct sets of ij. The combination-basis expression (ψKϕLϵKLI)eI avoids this.