# Subgroup basis matrices

# Introduction

Temperament mapping matrices are matrices in that represent regular temperaments; they are linear maps that send monzos to "tempered monzos" or "tmonzos." The integer row span of any mapping matrix is the set of all vals that support the temperament, which form a sublattice within the lattice of vals.

There is a "dual" set of **subgroup basis matrices**, (or "subgroup matrices" for short when the context is clear), in which we look at matrices in which the columns are monzos. These matrices have relevance in representing subgroups, as their integer column spans span some subgroup of JI. Each column represents an entry in the basis for a subgroup, e.g. [|1 0 0 0>, |0 1 0 0>, |0 0 1 0>] represents the 2.3.5 subgroup of 2.3.5.7. These matrices take "subgroup monzos" (or "smonzos") and map them to regular monzos on parent JI group.

And, dual to temperament mapping matrices, these subgroup matrices can also be left-multiplied by vals and thus thought of as linear maps or group homomorphisms on vals. They send vals to subgroup vals on the basis represented by the matrix, sometimes called **restricting** (or, more rarely, "co-tempering") the vals. These are dual to how temperament mapping matrices send tempered vals, or "tvals", back to regular vals.

(Note the duality here - subgroup vals are a *quotient group* of regular vals, whereas subgroup monzos are a *subgroup* of regular monzos.)

Subgroup basis matrices can be used as a generic representation for a basis of any subgroups of JI. Since the kernel of any temperament is a subgroup of JI, they can thus be used to represent kernels. They can also be used to compute the "subgroup restriction" of a val or mapping matrix to a smaller subgroup.

# Mathematical Definition

As a preliminary, a temperament mapping matrix represents some particular basis of a temperament. In mathematical terms, it represents a group homomorphism **T**: J → K from the free abelian group J of JI ratios to a group of "tempered intervals," which is isomorphic as a group to [math]\Bbb Z^n[/math]. Using the usual convention, we have that column vectors are monzos and row vectors are vals, so that the rows of these matrices are vals, and typically we will have more rows than columns. The integer row span of these matrices represent all the vals which "support" the temperament; typically we require the matrix to not be contorted (meaning the subgroup of supporting vals is saturated) and of full row rank (e.g. it is **surjective**).

We can similarly look at the matrices formed by monzos, in which the column vectors are monzos, which we call a **subgroup basis matrix.** In mathematical terms, these represent group homomorphisms **S**: G → J, where G is some subgroup of J, being injected back into the parent JI group J. We can view this matrix as mapping the subgroup monzos into back into the parent basis, and thus translating the coordinate system from the subgroup basis to the parent basis. The integer column span of these matrices represents all the monzos within the subgroup.

Typically, for a matrix S, with column vectors as monzos, to represent a true subgroup basis matrix, it must also be of full column rank, much like a temperament matrix must be of full row rank. Another way to look at this requirement is that it is **injective** into the parent group, dual to how we want mapping matrices to be **surjective**. However, we typically drop the restriction that this column span be saturated, so that we can represent, for instance, the 2.9.5 subgroup, unlike with temperament mapping matrices, where unsaturated matrices have contorsion and are viewed as pathological.

Note that, much like with temperament mapping matrices, there is not a unique basis matrix corresponding to any subgroup: for instance, the two subgroup bases "3.2.5" and "2.3.5" represent the same subgroup, but will be represented by different matrices. Similarly, these two matrices will send vals to svals on the "2.3.5" and "3.2.5" bases respectively.

We can easily see if two subgroup basis matrices represent the same subgroup by reducing them to a normal form, such as those in the normal interval list page. The normal forms for mapping matrices can easily be transposed and used for these matrices, such as the Hermite normal form. (Note that it typically makes more sense, when converting a normal form for use on monzos, to apply the form on a "vertically flipped and then transposed" version of the matrix, and then un-flipping and un-transposing.)

The integer column span of any subgroup basis matrix is said to **generate** the subgroup G. The integer row span of any subgroup basis matrix generates the "dual subgroup" of svals in which the coefficients represent, in order, the mappings for the intervals specified by the columns of S.

# Dual Transformation

We can also multiply a subgroup basis matrix with another matrix on the left, one in which the rows are vals. This gives the "dual transformation" of that subgroup basis. Since multiplication from the right represents a linear transformation **S:** G → J, mapping from subgroup monzos to monzos, the associated dual transformation is **S*:** J* → G*. A bit of analysis will reveal that these homomorphisms are maps which restrict vals to svals on a certain subgroup, and that the subgroup L which the elements of G* act on are smonzos. Put another way, svals are thus quotients of vals, similarly to how tmonzos are quotients of monzos; we call this **restricting** (or sometimes "co-tempering") the vals.

Any subgroup basis matrix also thus has "left kernel," which is typically called the "left nullspace" in linear algebra (note the term "cokernel" is slightly different, so we don't use it here). The left kernel is a subgroup of vals that temper out everything in the subgroup generated by the subgroup basis matrix. So for instance, if matrix S generates a subgroup representing the kernel for some temperament, the left nullspace represents all the vals tempering out that kernel (and thus which support the temperament).

S can also represent an arbitrary subgroup of JI, such as ones with monzos we'd like to play (rather than just representing the kernel for some temperament). In this situation, it is useful to view S as a map from vals to svals on S's subgroup basis. With this interpretation, S still has a left kernel of vals, which is the set of vals that are **restricted away** (or "co-tempered out"), as their subgroup restriction under S is the zero sval. The vals in the left kernel have the property that, for any v and any other val k in the left kernel, we have (v+k)∙S = v∙S + k∙S = v∙S + 0= v∙S. *In other words, any two vals differing by an element in the left kernel will restrict to the same sval.*

# Example

Say that our JI parent group J is in the 7-limit, and we want to look at temperaments on the 2.9/7.5/3 subgroup. We can create the subgroup mapping matrix by forming a matrix in which the columns are the monzo representation of these intervals:

[math] \newcommand{dangle}[][]{\style{display: inline-block; transform-origin: 50% 50% 0px; transform: rotate(90deg); }{ \rangle}} \newcommand{hpipe}[][]{\style{display: inline-block; transform-origin: 50% 50% 0px; transform: rotate(90deg); }{ |}} [/math]

[math] \left[ \begin{array}{rrr} \hpipe & \hpipe & \hpipe\\[-20pt] 1 & 0 & 0\\ 0 & 2 & -1\\ 0 & 0 & 1\\ 0 & -1 & 0\\[-20pt] \dangle & \dangle & \dangle\\[-20pt] \end{array} \right] [/math]

This matrix will be called **S** in the examples below.

## Main Transformation: Mapping from Subgroup Monzos to Parent Group Monzos'

**S** can be viewed as a mapping from smonzos to monzos. As an example, we'll consider the matrix of smonzos [|0 1 0>, |0 -2 1>|] on the 2.9/7.5/3 subgroup, which represent 9/7 and 245/243.

If this matrix is X, then the dual transformation can be found by multiplying S∙X, which yields

[math] \left[ \begin{array}{rrr} \hpipe & \hpipe \\[-20pt] 0 & 0\\ 2 & -5\\ 0 & 1\\ -1 & 2\\[-20pt] \dangle & \dangle\\[-20pt] \end{array} \right] [/math]

These monzos are the 7-limit representation of 9/7 and 245/243, respectively, in 2.3.5.7 coordinates.

## Dual Transformation: Subgroup Restriction

To restrict a val to the subgroup defined by the subgroup basis matrix, we'll left-multiply **S** by a val **V**. In this case, our val **V** will be the 7-limit patent val for 12-EDO:

[math] \left[ \begin{array}{rrrrrl} \langle 12 & 19 & 28 & 34 | \end{array} \right] [/math]

Multiplying **V**∙**S** yields the result

[math] \left[ \begin{array}{rrrrl} \langle 12 & 4 & 9 | \end{array} \right] [/math]

which tells us that the restriction of the 12-EDO patent val to the 2.9/7.5/3 subgroup is the sval <12 4 9|, with a mapping of 12 steps for 2/1, a mapping of 4 steps for 9/7, and a mapping of 9 steps for 5/3.

We can also send temperament mapping matrices into the subgroup matrix. For instance, here's 7-limit sensi - with the rows explicitly notated as vals, and the columns explicitly notated as tmonzos:

[math] \left[ \begin{array}{rrrrrl} \: \hpipe & \hpipe & \hpipe & \hpipe \:\: \\[-20pt] \langle \: 1 & -1 & -1 & -2 \: |\\ \langle \: 0 & 7 & 9 & 13 \: |\\[-20pt] \: \dangle & \dangle & \dangle & \dangle \:\: \\[-20pt] \end{array} \right] [/math]

If we call this matrix **M**, then the matrix multiplication **M∙S** gives us the following result:

[math] \left[ \begin{array}{rrrrrl} \: \hpipe & \hpipe & \hpipe \:\: \\[-20pt] \langle \: 1 & 0 & 0 \: | \\ \langle \: 0 & 1 & 2 \: | \\[-20pt] \: \dangle & \dangle & \dangle \:\: \\[-20pt] \end{array} \right] [/math]

This new matrix tells us that the subgroup restriction of sensi to the 2.9/7.5/3 subgroup is a new temperament mapping on the subgroup which sends 2/1 to one generator, 9/7 to the other generator, and 5/3 to two 9/7's. That is, it is just the subgroup restriction of each row independently.

We can also look at the left kernel of our subgroup matrix, which yields the null module spanned by <0 1 1 2|. Any vals which differ by any multiple of this null val will restrict down to the same sval. For instance, <12 19 28 34| restricts to <12 4 9| on the 2.9/7.5/3 subgroup, and <12 19 28 34| + <0 1 1 2| = <12 20 29 36| also restricts down exactly to <12 4 9|.