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:u=eiπ/4u,v=eiπ/4v.

Under transformation III with A=eiπ/4=D, B=C=0, we find that

t(u,v)=AAuv(A2u2A2v2)(A2u2+A2v2)=t(u,v).

Therefore, only t2(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 {ki,k¯i} found before. As such, the octahedral polynomial invariant for the face centers is given by

W(u,v):=Φ(u,v)Ψ(u,v)=u8+14u4v4+v8.
# 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
u8+14u4v4+v8

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:

Hess[t]:=det[2tu22tuv2tvu2tv2]=25W(u,v).

In other words, W(u,v) is the Hessian of t(u,v). As such, since tt under transformation III (and since Wt2), 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, χ(u,v), which we will compute next.

The edge midpoints can be labeled as follows:

X1=12(1,1,0)X2=12(1,1,0)X3=12(1,1,0)X4=12(1,1,0)X5=12(1,0,1)X6=12(0,1,1)X7=12(1,0,1)X8=12(0,1,1)X9=12(1,0,1)X10=12(0,1,1)X11=12(1,0,1)X12=12(0,1,1)

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

l1=12(1+i)l2=12(1+i)l3=12(1i)l4=12(1i)l5=1+2l6=i(1+2)l7=12l8=i(1+2)l9=1+2l10=i(1+2)l11=12l12=i(12)

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

χ(u,v):=i=112(uliv)=u1233(u8v4+u4v8)+v12.
# 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)
u1233u8v433u4v8+v12

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

(l1,l2=il1,l3=i2l1,l4=i3l1)

and similarly for (l5,l6,l7,l8), (l9,l10,l11,l12). Grouping in this way, we can write

χ(u,v)=χpart(u,v,l1)χpart(u,v,l5)χpart(u,v,l9)

where each χpart(u,v,x) is given by

χpart(u,v,x)=k=14(uikxv)=u4x4v4.
# 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)
u4v4x4
chi_part1 = expr.subs(x, 1 / sqrt(2) * (1 + I)).expand()
chi_part1
u4+v4
chi_part5 = expr.subs(x, 1 + sqrt(2)).expand()
chi_part5
u417v4122v4
chi_part9 = expr.subs(x, -1 + sqrt(2)).expand()
chi_part9
u417v4+122v4
chi = (chi_part1 * chi_part5 * chi_part9).expand()
chi
u1233u8v433u4v8+v12

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

Jac[V](u,v):=det[tutvWuWv]=8χ(u,v).
# 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 χt, and since tt under transformation III, we deduce that χ2 is an absolute invariant of the octahedral symmetry group.

Lastly, by direct computation we can verify that the absolute invariants χ2, W3, and t4 (all sharing the same order of homogeneity) are inter-related:

χ2W3+108t4=0.
# Check of the above:
simplify(chi**2 - W**3).factor()
108u4v4(uv)4(u+v)4(u2+v2)4
# Second check:
(chi**2 - W**3).equals(-108 * t**4)
True