Octahedral Symmetry

Octahedral Symmetry#

The six vertices of the octahedron can be taken as identical to the six edge midpoints of the tetrahedron. As such they have \(t(u,v)\) as their polynomial invariant.

The octahedral symmetry group is generated by transformations \(I\) and \(II\) above, along with

\[ III: \quad u'=e^{i\pi/4}\, u \,,\quad v' = e^{-i\pi/4} \,v \,. \]

Under transformation \(III\) with \(A=e^{i\pi/4} = D^*\), \(B=C=0\), we find that

\[\begin{split}\begin{align*} t(u',v') &= AA^*\,uv(A^2\,u^2-A^{*2}\,v^2)(A^2\,u^2+A^{*2}\,v^2) \\ &= -t(u,v) \,. \end{align*}\end{split}\]

Therefore, only \(t^2(u,v)\) is an absolute invariant under the octahedral symmetry group.

The 8 face centers of the octahedron are formed by combining the 8 tetrahedral roots \(\{k_i, \bar{k}_i\}\) found before. As such, the octahedral polynomial invariant for the face centers is given by

\[W(u, v) := \Phi(u,v)\, \Psi(u,v) = u^8 + 14\,u^4v^4+v^8\,.\]
# Check of the above:
from sympy import I, diff, simplify, sqrt, symbols
from tetra import Phi, Psi, t
from functools import reduce

u, v = symbols("u v")
W = simplify(Phi * Psi)
W
\[\displaystyle u^{8} + 14 u^{4} v^{4} + v^{8}\]

In order to work out the transformation properties of \(W(u,v)\), it is useful to note that \(t\) and \(W\) are inter-related as follows:

\[\begin{split}{\rm Hess}[t] := \det\left[\begin{matrix}\frac{\partial^2t}{\partial u^2} & \frac{\partial^2t}{\partial u\partial v} \\[6pt] \frac{\partial^2t}{\partial v \partial u} & \frac{\partial^2t}{\partial v^2}\end{matrix}\right] = -25\,W(u,v)\,.\end{split}\]

In other words, \(W(u,v)\) is the Hessian of \(t(u,v)\). As such, since \(t \to -t\) under transformation \(III\) (and since \(W \sim t^2\)), \(W(u,v)\) is clearly invariant under all three octahedral symmetry generators.

# Check of the above:
def hessian(f, u, v):
    du2 = diff(diff(f, u), u)
    dudv = diff(diff(f, u), v)
    dv2 = diff(diff(f, v), v)
    return du2 * dv2 - dudv**2


hessian(t, u, v).equals(-25 * Phi * Psi)
True

The edge midpoints of the octahedron form a polynomial invariant, \(\chi(u,v)\), which we will compute next.

The edge midpoints can be labeled as follows:

\[\begin{split} \begin{matrix} {\bf X}_1 = \tfrac{1}{\sqrt{2}}(1,1,0) \quad & {\bf X}_2 = \tfrac{1}{\sqrt{2}}(-1,1,0) \quad & {\bf X}_3 = \tfrac{1}{\sqrt{2}}(-1,-1,0) \quad & {\bf X}_4 = \tfrac{1}{\sqrt{2}}(1,-1,0) \\ {\bf X}_5 = \tfrac{1}{\sqrt{2}}(1,0,1) \quad & {\bf X}_6 = \tfrac{1}{\sqrt{2}}(0,1,1) \quad & {\bf X}_7 = \tfrac{1}{\sqrt{2}}(-1,0,1) \quad & {\bf X}_8 = \tfrac{1}{\sqrt{2}}(0,-1,1) \\ {\bf X}_9 = \tfrac{1}{\sqrt{2}}(1,0,-1) \quad & {\bf X}_{10} = \tfrac{1}{\sqrt{2}}(0,1,-1) \quad & {\bf X}_{11} = \tfrac{1}{\sqrt{2}}(-1,0,-1) \quad & {\bf X}_{12} = \tfrac{1}{\sqrt{2}}(0,-1,-1) \end{matrix} \end{split}\]

The corresponding stereographically-projected points in the complex plane are given by

\[\begin{split} \begin{matrix} l_1 = \tfrac{1}{\sqrt{2}}(1 + i) \quad & l_2 = \tfrac{1}{\sqrt{2}}(-1 + i) \quad & l_3 = \tfrac{1}{\sqrt{2}}(-1 - i) \quad & l_4 = \tfrac{1}{\sqrt{2}}(1 - i) \\ l_5 = 1 + \sqrt{2} \quad & l_6 = i(1 + \sqrt{2}) \quad & l_7 = -1 - \sqrt{2} \quad & l_8 = -i(1 + \sqrt{2}) \\ l_9 = -1 + \sqrt{2} \quad & l_{10} = i(-1 + \sqrt{2}) \quad & l_{11} = 1 - \sqrt{2} \quad & l_{12} = i(1 - \sqrt{2}) \end{matrix} \end{split}\]

One way to compute \(\chi(u,v)\) is to blindly multiply together. Doing so gives

\[\chi(u,v) := \prod_{i=1}^{12}\left(u-l_i\,v\right) = u^{12} - 33\left(u^8\,v^4+u^4\,v^8\right) + v^{12} \,.\]
# Check of the above:
def stereo(v1, v2, v3):
    return (v1 + I * v2) / (1 - v3)


ls = []

ls.append(stereo(1 / sqrt(2), 1 / sqrt(2), 0))
ls.append(stereo(1 / sqrt(2), -1 / sqrt(2), 0))
ls.append(stereo(-1 / sqrt(2), 1 / sqrt(2), 0))
ls.append(stereo(-1 / sqrt(2), -1 / sqrt(2), 0))
ls.append(stereo(0, 1 / sqrt(2), 1 / sqrt(2)))
ls.append(stereo(0, 1 / sqrt(2), -1 / sqrt(2)))
ls.append(stereo(0, -1 / sqrt(2), 1 / sqrt(2)))
ls.append(stereo(0, -1 / sqrt(2), -1 / sqrt(2)))
ls.append(stereo(1 / sqrt(2), 0, 1 / sqrt(2)))
ls.append(stereo(1 / sqrt(2), 0, -1 / sqrt(2)))
ls.append(stereo(-1 / sqrt(2), 0, 1 / sqrt(2)))
ls.append(stereo(-1 / sqrt(2), 0, -1 / sqrt(2)))

chi = reduce(lambda x, y: x * y, [u - x * v for x in ls])
simplify(chi)
\[\displaystyle u^{12} - 33 u^{8} v^{4} - 33 u^{4} v^{8} + v^{12}\]

Alternatively, we can make use of the four-fold symmetry relating the midpoints

\[(l_1, l_2=i\,l_1, l_3=i^2\,l_1, l_4=i^3\,l_1)\]

and similarly for \((l_5, l_6, l_7, l_8)\), \((l_9, l_{10}, l_{11}, l_{12})\). Grouping in this way, we can write

\[\chi(u,v) = \chi_{\rm part}(u,v, l_1) \, \chi_{\rm part}(u,v, l_5) \, \chi_{\rm part}(u,v, l_9)\]

where each \(\chi_{\rm part}(u,v,x)\) is given by

\[\chi_{\rm part}(u,v,x) = \prod_{k=1}^4\left(u-i^k\,x\,v\right) = u^4-x^4\,v^4 \,.\]
# Check of the above
x = symbols("x")


def reduce_multiply(any_list):
    return reduce(lambda x, y: x * y, any_list)


expr = reduce_multiply([u - x * I**k * v for k in range(4)])
simplify(expr)
\[\displaystyle u^{4} - v^{4} x^{4}\]
chi_part1 = expr.subs(x, 1 / sqrt(2) * (1 + I)).expand()
chi_part1
\[\displaystyle u^{4} + v^{4}\]
chi_part5 = expr.subs(x, 1 + sqrt(2)).expand()
chi_part5
\[\displaystyle u^{4} - 17 v^{4} - 12 \sqrt{2} v^{4}\]
chi_part9 = expr.subs(x, -1 + sqrt(2)).expand()
chi_part9
\[\displaystyle u^{4} - 17 v^{4} + 12 \sqrt{2} v^{4}\]
chi = (chi_part1 * chi_part5 * chi_part9).expand()
chi
\[\displaystyle u^{12} - 33 u^{8} v^{4} - 33 u^{4} v^{8} + v^{12}\]

As it turns out, \(\chi(u,v)\) is also related to \(t(u,v)\) and \(W(u,v)\): \(\chi\) is proportional to the Jacobian of \({\bf V}(u,v) := [t(u,v), W(u,v)]\):

\[\begin{split}{\textrm Jac}[{\bf V}](u,v) := \det \left[\begin{matrix} \frac{\partial t}{\partial u} & \frac{\partial t}{\partial v} \\[6pt] \frac{\partial W}{\partial u} & \frac{\partial W}{\partial v} \end{matrix}\right] = -8\,\chi(u,v) \,.\end{split}\]
# Check of the above:
def jacobian(f, g, u, v):
    return diff(f, u) * diff(g, v) - diff(f, v) * diff(g, u)


jacobian(t, W, u, v).equals(-8 * chi)
True

Since \(\chi \sim t\), and since \(t\to-t\) under transformation \(III\), we deduce that \(\chi^2\) is an absolute invariant of the octahedral symmetry group.

Lastly, by direct computation we can verify that the absolute invariants \(\chi^2\), \(W^3\), and \(t^4\) (all sharing the same order of homogeneity) are inter-related:

\[\chi^2 - W^3 + 108\, t^4 = 0 \,.\]
# Check of the above:
simplify(chi**2 - W**3).factor()
\[\displaystyle - 108 u^{4} v^{4} \left(u - v\right)^{4} \left(u + v\right)^{4} \left(u^{2} + v^{2}\right)^{4}\]
# Second check:
(chi**2 - W**3).equals(-108 * t**4)
True