Consider a linear space V over complex scalars supporting a self-inverse conjugation

- * = ({scalars}: *s ←s :{scalars})

which respects addition (i.e. *(r+s) = (*r) + (*s)) and multiplication (i.e. *(r.s) = (*r).(*s)), preserves all real scalars, negates any scalar whose square is negative; and for which:

- ({reals}: (*s)+s ←s |{scalars}) and ({positives}: (*s).s ←s |{non-zero scalars})

We can define antilinearity by: for any other linear space U over the same scalars, (U:f|V) is antilinear iff f respects addition (i.e. f(v+w) = f(v)+f(w) for all v, w in V) and conjugates scalings, i.e. f(k.v) = (*k).f(v) for any scalar k and v in V. The only linear map which is also antilinear is zero. Given any list of mappings in which each entry is either linear or antilinear, its composite will be: linear if the number of antilinears in the list is even; or antilinear if odd.

For any linear map ({scalars}: f |V), we have *&on;f = (: *(f(v)) ←v
|V), which must necessarily be antilinear; likewise, were f antilinear, *&on;f
would be linear. Thus (: *&on;f ←f :) is an isomorphism between dual(V)
and V's antidual

{antilinear ({scalars}: |V)}. Since it respects
addition and, for any scalar k, *&on;(k.f) is (: *(k.f(v)) ←v :) =
(*k).(*&on;f), the isomorphism is antilinear.

For any mapping, f, whose outputs are mappings, transpose(f) is defined to be (: (: f(u,v) ←u :) ←v :) and f is its transpose. If all f's outputs are linear, transpose(f) is linear; and (conversely) if f is linear so are transpose(f)'s ouputs. Likewise if f's outputs are antilinear, so is transpose(f); if f is antilinear, so are transpose(f)'s outputs. Thus the transpose of an antilinear map whose outputs are linear will be a linear map whose outputs are antilinear.

For antilinear (dual(V): f |U) we thus have linear (antidual(U):
transpose(f) |V); composing this to the right of (dual(U): *&on;q ←q
:antidual(U)), which is antilinear, we get antilinear (dual(U): (: *&on;q
←q :)&on;transpose(f) |V), known as the **Hermitian
transpose** of f, which I shall write as H*(f). When U is V, antilinear
(dual(V): f |V) yields antilinear (dual(V): H*(f) |V), just as linear (dual(V):
g |V) yields linear (dual(V): transpose(g) |V). Likewise, when U and V are dual
to one another, antilinear (U:f|U) yields antilinear (dual(U): H*(f) |dual(U))
just as linear (U:g|U) yields linear (dual(U): transpose(g) :dual(U)). Thus the
Hermitian transpose is, for antilinear maps (between linear spaces), what
(ordinary) transpose is for linear maps.

For brevity in much of what follows, I'll introduce a transpose or H*, as
appropriate

mapping,

- T = (: transpose :{linear maps})&unite;(: H* :{antilinear maps})

(and it *is* a mapping, since any linear map which is also
antilinear is zero, hence so are its transpose and H*, thus the two mappings
united agree about it).

Now, for any (U:h|V) with U, V linear spaces, we can interpret U as dual(dual(U)) to read h as

- (U:h|V) = (: ({scalars}: h(v)·w ←w |dual(U)) ←v |V)

whence

- transpose(h)
- = (dual(V): ({scalars}: h(v)·w ←v |V) ←w |dual(U))
- = (dual(V): ({scalars}: u·w ←u |U)&on;h ←w |dual(U))
- = (dual(V): w&on;h ←w |dual(U))

since u·w and w·u are synonymous, for u in U and w in dual(U), with the latter being synonymous with w(u). Thus transpose(h,w) = w&on;h; and, if h is antilinear, H*(h,w) = *&on;w&on;h. We can use this to help in describing the effects of transpose and H* on composites. But first, a technical finagle ...

Technically (: *&on;q ←q :) works fine as a mapping (antidual(U)| |dual(U)) but can only be employed as (: |V) by interpreting V as dual(U) for some U; which must thus be dual(V) so, in fact, we obtain it as

- (: *&on;q ←q :V) = (antidual(dual(V)): (: *w(v) ←w |dual(V)) ←v |V)

and, indeed, there is no such thing as anti-V

for
antidual(dual(V)) to be construed as directly. Strictly speaking, this is
really (: *&on;q ←q :) composed left of the following isomorphism ...

Similarly, dual&on;dual is not the identity on linear spaces; for a linear space V, dual(V) is {linear ({scalars}: |V)} so dual(dual(V)) is {linear ({scalars}: |dual(V))}. There is a natural embedding of any linear space in its double dual, given by

- (dual(dual(V)): ({scalars}: w(v) ←w |dual(V)) ←v |V)

with w in dual(V) and v in V, so that w(v) is a scalar, whence (: w(v) ←w :) is a mapping ({scalars}: |dual(V)) and linear by virtue of the definitions of addition and scaling as applied to mappings producing outputs in a linear space (in this case {scalars}). For finite-dimensional V, this embedding of V in dual(dual(V)) is always an isomorphism, so few problems arise; however, I may as well pause to show how much we can manage even otherwise.

Regardless of V's dimension, we can extend any linear (dual(V): g |V) to

- (dual(V): x&on;transpose(g) ←x |dual(dual(V)))

which, composed left of the above embedding, yields

- (dual(V): (: w(v)←w :)&on;transpose(g) ←v |V)
- = (: (: g(v,u) ←u |V) ←v |V)

which is just g (so we did simply extend g to all of dual(dual(V))). Likewise, we can extend any antilinear (dual(V): g |V) to

- (dual(V): *&on;x&on;H*(g) ←x |dual(dual(V)))

which, composed left of the embedding, yields

- (dual(V): *&on;(: w(v) ←w |dual(V))&on;H*(g) ←v |V)
- = (: *&on;(: *g(v,u) ←u |V) ←v |V)

which, once again, is just g. [Some day I must explore how this relates to Yoneda's lemma.]

I shall systematically ignore the difference between V and dual(dual(V)) hereafter, albeit this is only strictly valid for finite-dimensional V; though, as just shown, the involvement of even one mapping (dual(V): |V) will usually suffice to justify ignoring the difference.

For any mappings g and (:f|g) with the outputs of transpose(f) and of g in mutually dual linear spaces, we have

- transpose(f&on;g)
- = (: (: f(g(u), v) ←u :) ←v :)
- = (: (: f(u, v) ←u :)&on;g ←v :)
- = (: transpose(f,v)&on;g ←v :)
- = (: transpose(g, transpose(f,v)) ←v :)
- = transpose(g)&on;transpose(f)

For linear g and antilinear (:f|g), we have

- H*(f&on;g)
- = (: (: *f(g(u), v) ←u :) ←v :)
- = (: (: *f(u, v) ←u :)&on;g ←v :)
- = transpose(g)&on;H*(f)

For antilinear g and linear (:f|g), we have (exploiting the fact that transpose(f)'s outputs are linear maps, so fall in a linear space)

- H*(f&on;g)
- = (: *&on;q ←q :)&on;transpose(f&on;g)
- = (: *&on;q ←q :)&on;transpose(g)&on;transpose(f)
- = H*(g)&on;transpose(f)

For antilinear g and antilinear (:f|g), we have

- transpose(f&on;g)
- = (: (: f(g(u), v) ←u :) ←v :)
- = (: transpose(f,v)&on;g ←v :)
- = (: *&on;H*(f,v)&on;g ←v :)
- = (: *&on;transpose(g, H*(f,v)) ←v :)
- = H*(g)&on;H*(f)

Thus H* and transpose act on composites by applying the appropriate one of H* and transpose to each mapping composed and reversing the order of composition. Using T, we can express this rule as:

- T&on;(: compose :{list (T::)}) = (: compose(T&on;h&on;(: i←j; i+j+1=n |n)) ←(T:h|n) :{lists})

Just as we can describe a linear (dual(V): f |V) as transposition
symmetric

iff f = transpose(f), so equally we can describe an antilinear
(dual(V): f |V) as Hermitian symmetric

iff f = H*(f). In each case, I
shall simply describe f as symmetric

iff T(f) = f. Likewise, just as an
f with transpose(f) = -f is described as transposition antisymmetric

, so
equally an f with H*(f) = -f is Hermitian antisymmetric

; or, simply, f is
antisymmetric

iff T(f) = -f.

Now, for any linear or antilinear f, f+T(f) is manifestly symmetric; while f-T(f) is manifestly antisymmetric; and the average of these two is f. Thus we can express f as the sum of two terms, one symmetric, the other antisymmetric;

- (f+T(f))/2
- known as
the symmetric part of

f, and - (f-T(f))/2
- known as
the antisymmetric part of f

.

No corresponding notions exist (naturally) for (V: f |V), whether linear or antilinear, since T(f) is (dual(V): |dual(V)) so doesn't have the option of being equal to ±(V:f|V), except when V = dual(V), nor can we perform addition or subtraction such as f+T(f). However, when we have an isomorphism between V and dual(V), we can use this to convert T(f) into a mapping (V:|V) which we can compare (or add) with f or -f; alternatively, we can compose f with such an isomorphism to obtain a mapping from a space to its dual, and ask whether that is (anti)symmetric.

Indeed, for any mapping (dual(V): g :V), the first approach
compares ±g&on;f with T(f)&on;g; when g is an isomorphism these will be
equal exactly when g's representation of T(f), namely reverse(g)&on;T(f)&on;g,
is equal to ±f. The second approach asks whether g&on;f is
(anti)symmetric; which would appear to be more natural, so it's what I'll use; g
will of course be either linear or antilinear and, at least typically,
symmetric. When g is symmetric, T(g&on;f) = T(f)&on;g so comparing g&on;f with
T(f)&on;g is equivalent to asking about g&on;f's symmetry, so the two approaches
coincide. For any (dual(V): g :V), I'll describe a mapping (V:f:V) as
g-symmetric

precisely if g&on;f is symmetric, i.e. a fixed point of T,
and similarly for g-antisymmetric

.

For any isomorphism (dual(V)| g |V) and any (V:f|V), at least when each is either linear or antilinear, we can form reverse(g)&on;T(g&on;f); adding this to f yields something manifestly g-symmetric; subtracting it from f yields something g-antisymmetric; halving each of these we thus, as before, decompose f into a g-symmetric part and a g-antisymmetric part.

All of this corresponds exactly to discussion of (anti)symmetry of mappings (dual(V): |V), all pulled back through an isomorphism (V| |dual(V)), namely reverse(g), to yield mappings (V:|V). What makes it more interesting than simply discussing the (anti)symmetry of mappings (dual(V): |V) is that we can compose mappings (V:|V). Except when V is dual(V), the outputs of one mapping (dual(V): |V) are not inputs of the next, so composites of such are empty. However, one mapping (V:|V) produces outputs which another accepts as inputs, so composing them produces a mapping (V:|V).

Now, for given (dual(V): g |V), if f and h are g-symmetric, T(g&on;f&on;h) =
T(h)&on;T(g&on;f) = T(h)&on;g&on;f; thus, if g is symmetric, so that T(h)&on;g =
T(h)&on;T(g) = T(g&on;h) = g&on;h, we find T(g&on;f&on;h) = g&on;h&on;f so that
h&on;f will be symmetric if equal to f&on;h, i.e. whenever f and h commute with
one another. In general, the symmetry or antisymmetry of composites will depend
on: whether the components are g-symmetric or g-antisymmetric; whether g is
symmetric or antisymmetric; and whether the components commute with one another
or anticommute

i.e. f&on;h = -h&on;f.

One may equally use any mapping (V: q |dual(V)), in the role of reverse(g),
to define a multiplication

on mappings (dual(V): |V), namely composition
on either side of q

, e.g. (dual(V): f&on;q&on;h |V) with f and h both
(dual(V): |V). Combining many mappings (dual(V): |V) in this way simply amounts
to composing a list which alternates q with the given mappings; there will be
one less q than the given mappings, hence an odd number of mappings in the list.
If (including the q entries) the list entries are all either linear or
antilinear, the list will be linear or antilinear according as the number of
antilinear entries is even or odd; notably, if all entries (i.e. q and the
mappings combined) are linear or all are antilinear, the composite will be
likewise. Again, questions of symmetry will be more complex; but can now be
reduced to considering whether the mappings (dual(V): |V) commute or anticommute
under the given q-multiplication

, rather than under composition.

If we have a basis (V:b|n) with dual (dual(V):q|n) - specified by b(i)·q(j) being 1 when i and j are equal, 0 otherwise - and an invertible linear or antilinear (V:h|V), we can obtain h&on;b as an alternate basis of V. The components of the members of this basis with respect to b are given by contracting the elements of h&on;b with those of q, which equally gives the components of h with respect to b; a typical value is q(j)·h(b(i)), a.k.a. h(b(i),q(j)). Expect transpose(reverse(h)) to serve as the corresponding change of basis mapping in dual(V).

[to be continued] A metric

on a linear space defines an inner product

which
combines two vectors to produce a scalar. For a real linear space, a metric
does this bilinearly

, i.e. linearly in each of the two vectors; as such
it is a linear map from vectors to linear maps from vectors to scalars. For
such a linear (dual(V): g |V) the inner product of two members, u and v, of V is
given by g(u,v). The length of a vector, v in V, is the square root of the
inner product of v with itself, g(v,v). For such lengths to behave as we
expect

, crucially always yielding a real (positive) answer unless v is zero,
g(v,v) must always be positive (so that it has a real square root) for non-zero
v; in this case, g is described as positive definite

.

Typically, we'll have the lengths and need to infer g; we can do this by observing that, for given u and v in V, the squared length of u+v is, from g's linearties, g(u+v,u+v) = g(u,u) +g(v,v) +g(u,v) +g(v,u), whence g(u,v)+g(v,u) can be inferred from the squared lengths of u, v and u+v. By exploring how this varies with u and v we can determine the symmetric part of g. Thus an inner product inferred from lengths is necessarily symmetric; equivalently, the notion of length that an inner product defines depends only on the symmetric part of the inner product.

On a complex linear space, V, however, no linear (dual(V): g |V) inner product can give only real lengths; if i is a square root of -1 and g(u,u) is positive (hence has a real square root) then g(i.u,i.u) = i.i.g(u,u) = -g(u,u) is negative. However, an antilinear (dual(V): g |V) can; g(i.u,i.u) = (*i).g(u,i.u) = (*i).i.g(u,u) and (*i).i is given to be positive (given that i is non-zero); indeed, the same holds true for any non-zero scalar in place of i. Thus a positive-definite inner product on a complex linear space, V, is necessarily antilinear (dual(V): |V).

Now, for u, v in V and scalar k, lengths of u+k.v, u and v will give us

- g(u+k.v,u+k.v) -g(u,u) -(*k).k.g(v,v) = k.g(u,v) +(*k).g(v,u)

from which we can infer (e.g. from k = 1 and k = i) values for g(u,v)+g(v,u) and g(u,v)-g(v,u), whence the value of g(u,v) in general: we're not limited to only the symmetric part of our inner product. None the less, it is usual to work with symmetric inner products; albeit now Hermitian symmetric, rather than transpose symmetric.

Now, albeit positive definite inner products must be antilinear (dual(V):
|V), not every (dual(V): |V) is positive definite; nor are we obliged only to
consider positive definite inner products (or symmetric ones). Indeed, any
theory sophisticated enough to embrace Maxwell's model of electro-magnetism is
obliged to work with a (real, so simply linear) metric which yields both
positive and negative squared lengths

, i.e. values for g(u,u), as well as
zero ones for non-zero vectors (namely light-like

ones). The metric of
space-time isn't positive definite; so we shall not restrict attention only to
these. None the less, the inner products used in quantum mechanics on complex
vector spaces - modeling the possible states of the quantum system as unit
vectors - do need to be positive definite; where physics needs complex vector
spaces, it needs antilinear metrics.

Given a symmetric antilinear (dual(V): g |V), we can chose a basis,
(dual(V):b|n) for some natural n, for which g is diagonal

with units on
its diagonal, i.e. g = sum(: u(i).b(i)×(*&on;b(i)) ←i :n) for some
({+1, -1}: u :n); and g is invertible iff (:u|) = n. Furthermore, for any
positive-definite Hermitian-symmetric (dual(V): q |V), we can unit-diagonalise
g, as before, while diagonalising q = sum(: p(i).b(i)×(*&on;b(i)) :n) for
some ({positive real scalars}:p|n). [That's a major theorem of linear algebra;
when I get round to writing it up, I may eventually remember to link from here
to there ... Conway followed the completion of his proof of that theorem by
juggling while balancing a broom-stick, head-upwards with its handle on his
chin, to illustrate the miracle.] With g diagonalised (with or without q as
partner), at the very least we have g = sum(: ({+1,-1}:u:n).b×(*&on;b)
:n); and the numbers of members of ({+1}:u|) and ({-1}:u|) provide the
signature

of g - though many bases may serve in place of b, u's only
variation is by permutations of n, u&on;s ←u with (n|s|n) a monic mapping,
so these numbers are invariants.

Now consider any linear (V:h|V) and u in V with h(u) = k.u for
some scalar k; unless u is an additive identity, a.k.a. zero (in which case this
is trivially true for every k), this makes u an eigenvector

of h and k
its eigenvalue

. We can read k as the linear scaling (V: k.v ←v |V),
whence h-k is the linear map (V: h(v)-k.v ←v |V) and maps at least one
non-zero vector, u, to zero; i.e. its kernel has positive dimension, so its rank
is less than V's dimension, n. This makes its determinant, det(h-k), zero; for
given h, (: det(h-k) ←k :{scalars}) is a polynomial, in k, of degree (at
most) n; and we're interested in the roots of this polynomial, i.e. those k for
which det(h-k) is zero. We can thus expect (up to) n eigenvalues.

If h is g-symmetric for some Hermitian symmetric g and has eigenvectors u, v with eigenvalues k, m respectively, so h(u) = k.u and h(v) = m.v, we have

- (*k).g(u,v)
- = g(k.u,v) = g(h(u),v)
- = (g&on;h)(u,v)
- = T(g&on;h,u,v)
- = *g(h(v),u)
- = m.*g(v,u)
- = m.g(u,v)

whence either g(u,v) is zero or *k = m. In particular, with u = v, k = m, any non-null (i.e. g(u,u) is not zero) eigenvector of a g-symmetric linear map, for Hermitian symmetric g, must have a real eigenvalue, *k = k. Thus if g is positive definite (or negative definite; either way, it has no null vectors), all eigenvalues of g-symmetric linear maps are real.

Written by Eddy.