]> Simplices

# Simplices: Generalised Triangles

A simplex (plural: simplices) is the generalisation, to arbitrary dimension, of triangles in two dimensions and tetrahedra in three. It most prominently has vertices, edges joining its vertices and further kindred structures as we go to higher dimension, generically termed faces. What follows is a rather concrete model of a fairly general description of simplices.

## The Canonical Simplices

The canonical n-simplex, for some given natural n, is the collection S(n) = {({positives}: p :1+n): sum(p) = 1}. A topological n-simplex is any topological space topologically isomorphic to S(n). A geometric n-simplex is any image of S(n) under a linear map; I shall describe it as voluminous precisely if it preservess linear independence of the vectors from any one vertex of S(n) to each of the others. (A voluminous geometric simplex of maximal dimension in any linear space has edges, out of each vertex, that form a basis for the space.)

Note that I have not constrained p in S(n) to accept all members of 1+n = {0,…,n} as input; but, for its sum to be 1, it must accept at least one input. For all practical purposes, if p ignores some i in 1+n, one may treat it as if p(i) were 0; however, allowing p to ignore i in this case enables me to insist on all of p's outputs being positive. It also requires the definition of addition to be of form: p+q maps i to p(i)+q(i) if both accept i, to p(i) if only p does and to q(i) if only q does; p+q ignores i if both p and q do so. This way, (p:i←i:), the collection of inputs p accepts, is the support of p – those i in 1+n for which p(i) is positive.

The above definition can be applied to any positively-ordered ringlet (including the {positives} of any ringlet of characteristic 0, although the rest of the ringlet is ignored by the simplices). Below I shall mainly focus on the case of a division ringlet, whose {positives} are apt to be {positive reals} or {positive ratios}. In particular, because {positives} forms a multiplicative group, for any positive p the collection {({positives}: f :1+n): sum(f) = p} is simply the result of scaling S(n)'s members by p; so the particular value we require each member of S(n) to sum to makes no material difference to the simplices we obtain. The story is quite different for a ringlet such as {naturals} in whose {positives} the multiplicative identity is the only unit.

### Triangle, line, point, …

For this eccentric little sub-section, in which the naturals 0 = {} and 1 = {0} shall be prominent, I'll distinguish from them the multiplicative identity of {positives} as one and, if the ringlet whose positives those are has an additive identity, that shall be zero; words name scalars, digits identify naturals. So the n-simplex is, briefly, S(n) = {({positives}: f :1+n): sum(f) = one}.

Pause to wind S(2), S(1), … backwards and we find: S(n) is the canonical n-simplex; there are n degrees of freedom of movement within it; S(2) is a triangle with three sides, each of which is a 1-simplex; S(1) is a line with two ends, each of which is a 0-simplex. We have S(0) = {mapping ({positives}:f:1): sum(f) = one}, but a mapping (:f:1) is either [] or [f(0)]; only the latter can have sum one, and that only when f(0) = one; so S(0) = {[one]} has exactly one member, the list with a single entry, whose value is one. So our canonical point (i.e. 0-simplex) is a set with one member, as one might expect. If the pattern we saw for S(2) and S(1) is followed, it should have a boundary with a single component; but what would that component be ?

The definition of S(0) is as a subset of {mappings ({positives}: f :1)}; so we can naturally consider {mappings ({positives}: f :0)} as the next space down, within which to look for a boundary for S(0). However, 0 = empty, so the only mapping ({positives}: f :0) is in fact empty itself, the unique relation (: f :{}), and its sum is the scalar zero (if one is available, but in any case), not one; so no mapping ({positives}: f :0) has sum(f) = one. Thus {mapping ({positives}: f :0): sum(f) = one} = {} may be construed as a sort of S(−1); and the boundary of S(0) is just exactly one of it – the empty set.

How about a boundary for that ? Fortunately the pattern we've seen from higher dimensions tells us how many components this has: 0 of them, so we don't need to ask what those components are, because there are none of them. That makes sense, of course: empty has nothing in it for anything to be the boundary of. So we're saved the need to invent a meaning for a (−2)-simplex – which is good, because I can't contrive any notion at all of what one of those would be.

As S(−1) is empty, and any n-simplex is isomorphic to S(n), every (−1)-simplex is empty, i.e. there is only one (−1)-simplex; the empty simplex is the boundary of every 0-simplex; and, as a (−1)-simplex, it has no boundary. This is largely irrelevant, but makes some inductive proofs later on easier to kick-start.

The fact that we go down to −1 and no further matches the fact that the naturals go down to 0 and no further; we've used a space of dimension 1+n in which to specify the n-simplex, which introduces an off-by-one complication; one might more cleanly index simplices by their number of vertices, so that they are simply labelled by the naturals without having to go down to −1. However, in actual use of simplices to understand other things, it is most convenient to index them by the number of independent directions of movement within the simplex; which, furthermore, matches orthodoxy, so we must just live with the minor quirk of the base being off by one. In any case, the boundary of a vertex is not of much interest, so seldom intrudes into the discussion other than as a formality.

### Shrinking towards a point

Consider the function:

• towards = (: (: (: t.q +(1−t).p ← p :S(n)) ←t :{positives ≤ 1}) ←q :S(n))

for any point q of S(n), towards(q) is a linear deformation of the whole of S(n) away to q: for each positive t ≤ 1, towards(q, t) is a mapping from S(n) into itself; for each p in S(n), (: towards(q, t, p) ←t :) is a linear trajectory in S(n) from p at t = 0 to q at t = 1.

Any notion of continuity for relations with {positives} naturally induces one for relations with S(n), generated by taking the mappings ({positives}: p(i) ←p |S(n)), for each i in 1+n, to be continuous. For this sense of continuity, any output of towards deforms any path in S(n) continuously onto a constant path – i.e. a single point – even if the path is periodic and the deformation is constrained to preserve this.

### Probability measures on n

An alternative way of reading S(n) is as the collection of propability distributions on the collection 1+n = {0,1,…,n}, i.e. the collection of positive measures on 1+n having total measure 1. For any type of number in use, that I'll refer to as scalars, a measure on N is a linear map from, for each linear domain U, {mappings (U: |N)} to U; the total of such a measure is its output when given, as input, ({scalars}: 1←i |N), which maps each member of N to the fixed value 1. When N is finite, as is 1+n above, we can define summation over N and represent any measure on N by a mapping ({scalars}: m :N); the measure is then (U: sum(m.p) ← p :{mappings (U::N)}), wherein m.p = (U: m(i).p(i) ←i :N) with (:m.p|) equal to the intersection of (:m|) and (:p|), as is usual for pointwise multiplication. That this is linear in p follows trivially, using pointwise addition on mappings (U:q:N), so that (:q+p|) is the union of (:q|) and (:p|).

Describe a measure on a finite collection, N, as positive if it can be written, in terms of some ({positives}: m :N), as sum(m.p) ←p; then sum gives us a one-to-one correspondence between members of S(n) and positive measures on 1+n with total measure 1. (It might be better to call these non-negative, since some such positive measures still map some genuine mappings ({positives}::N) to zero.)

A general n-simplex is continuously isomorphic to S(n); identify, as its vertices, the positions corresponding to vertices of S(n), namely {({1}:|{i}): i in 1+n}, where the whole sum is concentrated on one member of 1+n; on S(n) we have the scalar functions of position ({positives}: p(i) ← p |S(n)) for each i in 1+n, which we can compose with our isomorphism to obtain, for each i, a mapping ({positives}: |n-simplex); identifying i with its vertex, we thus obtain a mapping from vertices to continuous non-negative scalar functions of position, within the simplex; each vertex's scalar function is 1 at that vertex; the sum of all these functions, at any given position, is 1; so one vertex's scalar function, evaluated at another vertex, either gives 0 or rejects the input. Each scalar function is positive throughout the interior of the simplex.

We can equally construe this as a mapping from positions in the simplex to positive measures on the vertices of the simplex. When the vertices of S(n) are considered as vectors in {mapping ({positive scalars}::1+n)} and the measure associated with position p is applied to ({vectors}: ({1}:|{i}) ←i :1+n), the vector it produces is simply sum(: p(i).({1}:|{i}) ← i :1+n). Now, p(i).({1}:|{i}) maps j to p(i) if j is i and ignores j, or maps it to 0, otherwise; so summing over i, we get a mapping which maps j to p(j); which is to say, the mapping p. Thus the measure on the simplex's vertices associated with a position within the simplex may sensibly be thought of as describing the given position as the average of the vertices, using positive weightings with a total weight of 1.

## Vertices, edges, faces, …

Now, for any subset M of 1+n, there's a corresponding subset of S(n), namely those f in S(n) for which (:f:M) = f, i.e. M subsumes (:f|); since sum(f) is one, there is no such f when M is empty, so this subset of S(n) is empty if M is. Otherwise, let 1+m be the number of members M has; m is at most n and our subset of S(n) is an m-simplex; it's described as an m-face of S(n); likewise, a continuum isomorphism (i.e. a continuous isomorphism with continuous inverse) between S(n) and an n-simplex maps this face to an m-face of the n-simplex. An n-simplex has i-faces for i in 1+n; its only n-face is itself, its 0-faces are its vertices, its 1-faces are its edges. [In principle, at least, the (−1)-simplex boundary of every 0-face can also be counted as a (−1)-face. As empty is unique, each simplex has exactly one (−1)-face.] The number of i-faces of an n-simplex is simply the number of subsets of 1+n that have 1+i members, chose(1+n, 1+i) = (1+n)!/(1+i)!/(n−i)!

Let K be M's complement in 1+n, i.e. K and M have empty intersection and their union is 1+n; K = {i in 1+n: i not in M}. This corresponds to partitioning the vertices of a simplex: each part yields a face, on which the scalar functions associated with the other part's vertices are all zero; if 1+k is K's number of members, so 1+k+1+m=1+n or 1+k+m=n; we get two opposite faces, a k-face and an m-face with 1+k+m = n.

Given K, M et al. as above, we have scalar functions on S(n) defined by (: sum(:p:K) ←p :S(n)) and (: sum(:p:M) ←p :S(n)); clearly, these add up to 1 throughout S(n); the former is zero, and the latter is one, on the m-face {mapping ({positive}: p :M): sum(:p:M) = 1}; and conversely for the k-face with K in M's place.

One example of a linear map from an n-simplex is the linear map that forgets a single co-ordinate: for example, the last, (: (:f:n) ←f :{({positives}: p :1+n): sum(p) = 1}). This maps our canonical n-simplex to {({positives}: p :n): sum(p) ≤ 1}; for any f in this image set, the forgotten f(n) can be recovered by requiring sum(f) to be 1 – if sum(:f:n) is 1, f does not accept n as an input; otherwise, sum(:f:n) < 1 and there is some positive which, when added to sum(:f:n), gives 1; so we extend f to map n to this positive. So there is a natural isomorphism between the n-simplex and the corner, {({positives}: f :n): sum(f) ≤ 1}, enclosed between the (n-1)-simplex and the origin of its linear space. Furthermore, we get such an isomorphism for each natural j ≤ n, (: (:f:j)&unite;(: f(i+j+1) ←i+j :n) ←f :), and composing these isomorphisms with one another's inverses provides a family of auto-isomorphisms of the n-simplex that correspond to swapping two co-ordinates in {({positives}: :1+n)}; the group of auto-isomorphisms generated by these correspond to co-ordinate permutations.

## Measure

In one dimension, we can measure the length of the line (one-simplex); in two dimensions, we can measure the area of a triangle (two-simplex); in three dimensions, we can measure the volume of a tetrahedron (three-simplex). At each dimension, we're using a measure (length, area, volume, …); if we use a higher dimension's measure on a lower dimension's simplex we get zero – each triangular face of a tetrahedron has zero volume; each side of a triangle has zero area (and volume); the end-points of a line have zero length (and …). The interesting value, then, is the n-measure of an n-simplex, for each natural n. We can address S(n) itself or any geometric n-simplex.

For the general geometric n-simplex, the measure is not affected by any translation; and any linear map transforms the n-measure by its determinant – or, more formally, by the determinant of the linear map's restriction to an n-dimensional subspace, parallel to our simplex, of the potentially >n-dimensional space in which we found our n-simplex. In particular, if we scale a face of a (1+n)-simplex by some factor t between zero and one, the n-measure of the scaled face is simply power(n, t) times the n-measure of the unscaled face. This enables us to obtain the (1+n)-measure, V, of a (1+n)-simplex from the n-measure, A, of one of its n-faces, an n-simplex, and the length, h, of the line, perpendicular to this face, from the opposive vertex to this face or its extension along vectors within it:

V
= integral(: A.power(n, t).h.dt ←t; t<1 :{positives}}
= A.h/(1+n)

which simply generalises the relevant formulae for the triangle (half base times height) and tetrahedron (one third base area times height) in an entirely unsurprising manner. Note that the n = 0 case, where we know the measure of our 1-simplex to be simply its length, V = h, gives h = V = A.h/1, so the 0-measure of the 0-simplex at either end must be A = 1; i.e. every 0-simplex has 0-measure 1. That makes sense: the 0-measure just counts how many points it sees. (For the remaining step down, 1+n = 0, V is the 0-simplex's measure, V = 1. The extent of that 0-simplex is zero, no matter what direction you want to look at it from; so, whatever its interpretation, h = 0 is the only possibility; whence (1+n).V = h.A is fatuously satisfied, 0.1 = 0.A, without telling us anything about the measure A of the −1-simplex; it is left indeterinate, which seems fair enough – I have no conception of what a −1-measure would be.)

This suffices to determine the n-measure of our canonical S(n) for each natural n, given the relevant lengths, using the usual root mean square length in {mapping ({positives}::1+n)}. S(0) has measure 1. For each natural n, the line from vertex ({1}||{1+n}) of S(1+n) at right angles to the opposite face, S(n), meets the latter at its mid-point, ({1/(1+n)}:|1+n), so the square of its length (a sum of 1 from co-ordinate 1+n of the difference, plus 1+n terms, each 1/power(2, 1+n), from co-ordinates 0 through n) is 1 +1/(1+n) = (2+n)/(1+n). Let M(n) be the measure of the canonical n-simplex; we have M(0) = 1 and can now infer (1+n).M(1+n) = M(n).√((2+n)/(1+n)) for each natural n, yielding n!.M(n) = √(1+n) for each natural n. In particular, M(1) = √2 is the length of every side of every canonical simplex, so M(n)/power(n/2, 2) is the measure of the n-simplex with unit sides. In any case, no matter what the side-length, unless it increases with n, the measure of the n-simplex tends rapidly towards zero as n increases, thnaks to the factor of n! by which it divides √(1 +n).

For a given geometric n-simplex in some linear space V, we simply need to construct the linear (V:|{mapping ({positives}::1+n)}) whose images of the vertices of S(n) – whose position vectors form the standard basis of the linear map's input space – are the vertices of our geometric n-simplex. Then take the restriction of this linear map to the space {mapping ({reals}:f:1+n): sum(f) = 0} and compute its determinant. Interestingly, formulae attributed to Hero of Alexandria (60 AD) and to Niccolo Fontana Tartaglia (16th century) give the area and volume (respectively) of a general triangle and tetrahedron as square roots of determinants of (symmetric) matrices expressed entirely in terms of the lengths of the edges. It would be interesting to see how these generalise.

Written by Eddy.