mirror of
https://github.com/kalmarek/PropertyT.jl.git
synced 2024-11-13 14:00:27 +01:00
309 lines
12 KiB
Julia
309 lines
12 KiB
Julia
|
#= GAP code to generate matrices
|
|||
|
alg := SimpleLieAlgebra("G", 2, Rationals);
|
|||
|
root_sys := RootSystem(alg);
|
|||
|
pos_gens := PositiveRootVectors(root_sys);
|
|||
|
pos_rts := PositiveRoots(root_sys);
|
|||
|
|
|||
|
neg_gens := NegativeRootVectors(root_sys);
|
|||
|
neg_rts := NegativeRoots(root_sys);
|
|||
|
|
|||
|
alg_gens := ShallowCopy(pos_gens);;
|
|||
|
Append(alg_gens, neg_gens);
|
|||
|
grading := ShallowCopy(pos_rts);
|
|||
|
Append(grading, neg_rts);
|
|||
|
|
|||
|
mats := List(alg_gens, x->AdjointMatrix(Basis(alg), x));
|
|||
|
|
|||
|
W := WeylGroup(root_sys);
|
|||
|
PW := Action(W, grading, OnRight);
|
|||
|
=#
|
|||
|
|
|||
|
using LinearAlgebra
|
|||
|
|
|||
|
function matrix_exp(M::AbstractMatrix{<:Integer})
|
|||
|
res = zeros(Rational{eltype(M)}, size(M))
|
|||
|
res += I
|
|||
|
k = 0
|
|||
|
expM = one(M)
|
|||
|
while !iszero(expM)
|
|||
|
k += 1
|
|||
|
expM *= M
|
|||
|
@. res += 1 // factorial(k) * expM
|
|||
|
if k == 20
|
|||
|
@warn "matrix exponential did not converge" norm(expM - exp(M))
|
|||
|
break
|
|||
|
end
|
|||
|
end
|
|||
|
@debug "matrix_exp converged after $k iterations"
|
|||
|
return res
|
|||
|
end
|
|||
|
|
|||
|
const gap_adj_mats = [
|
|||
|
[
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 1],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
],
|
|||
|
[
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -2],
|
|||
|
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0],
|
|||
|
],
|
|||
|
[
|
|||
|
[0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1],
|
|||
|
[2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0],
|
|||
|
],
|
|||
|
[
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0],
|
|||
|
[3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0],
|
|||
|
],
|
|||
|
[
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 1],
|
|||
|
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
|
|||
|
],
|
|||
|
[
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0],
|
|||
|
],
|
|||
|
[
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
],
|
|||
|
[
|
|||
|
[0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 2],
|
|||
|
[0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
],
|
|||
|
[
|
|||
|
[0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[-3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1],
|
|||
|
[0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0],
|
|||
|
[0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
],
|
|||
|
[
|
|||
|
[0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[-2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
],
|
|||
|
[
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -1],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
],
|
|||
|
[
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
|
|||
|
[0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
[0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
],
|
|||
|
]
|
|||
|
|
|||
|
function G₂_matrices_roots()
|
|||
|
adj_mats = map(gap_adj_mats) do m
|
|||
|
return hcat(m...)
|
|||
|
end
|
|||
|
adj_mats = filter!(!isdiag, adj_mats) # remove the ones from center
|
|||
|
|
|||
|
gens_mats = [convert(Matrix{Int}, matrix_exp(m')) for m in adj_mats]
|
|||
|
|
|||
|
#=
|
|||
|
The roots from
|
|||
|
|
|||
|
G₂roots_gap = [
|
|||
|
[2, -1], # α = e₁ - e₂
|
|||
|
[-3, 2], # A = -α + β = -e₁ + 2e₂ - e₃
|
|||
|
[-1, 1], # β = e₂ - e₃
|
|||
|
[1, 0], # α + β = e₁ - e₃
|
|||
|
[3, -1], # B = 2α + β = 2e₁ - e₂ - e₃
|
|||
|
[0, 1], # A + B = α + 2β = e₁ + e₂ - 2e₃
|
|||
|
[-2, 1], # -α
|
|||
|
[3, -2], # -A
|
|||
|
[1, -1], # -β
|
|||
|
[-1, 0], # -α - β
|
|||
|
[-3, 1], # -B
|
|||
|
[0, -1], # -A - B
|
|||
|
]
|
|||
|
|
|||
|
G₂roots_gap are the ones from cartan matrix. To obtain the standard
|
|||
|
(hexagonal) picture map them by `T` defined as follows:
|
|||
|
```julia
|
|||
|
cartan = hcat(G₂roots_gap[1:2]...)
|
|||
|
rot(α) = [cos(α) -sin(α); sin(α) cos(α)]
|
|||
|
|
|||
|
c₁ = [√2, 0]
|
|||
|
c₂ = rot(5π / 6) * [√2, 0] * √3 # (= 1/2[√6, 1])
|
|||
|
|
|||
|
T = hcat(c₁, c₂) * inv(cartan)
|
|||
|
```
|
|||
|
By plotting one against the others (or by blind calculation) one can see
|
|||
|
the following assignment. Here `⟨α, β⟩_ℤ = A₂` and `⟨A, B⟩_ℤ ≅ √3/√2 A₂`.
|
|||
|
=#
|
|||
|
e₁ = PropertyT.Roots.𝕖(3, 1)
|
|||
|
e₂ = PropertyT.Roots.𝕖(3, 2)
|
|||
|
e₃ = PropertyT.Roots.𝕖(3, 3)
|
|||
|
|
|||
|
α = e₁ - e₂
|
|||
|
β = e₂ - e₃
|
|||
|
A = -α + β
|
|||
|
B = α + (α + β)
|
|||
|
|
|||
|
roots = [α, A, β, α + β, B, A + B, -α, -A, -β, -α - β, -B, -A - B]
|
|||
|
|
|||
|
return gens_mats, roots
|
|||
|
end
|
|||
|
|
|||
|
function G₂_roots_weyl()
|
|||
|
(mats, roots) = G₂_matrices_roots()
|
|||
|
d = size(first(mats), 1)
|
|||
|
G₂ = Groups.MatrixGroup{d}(mats)
|
|||
|
|
|||
|
m = Groups.gens(G₂)
|
|||
|
|
|||
|
σ = let w = m[1] * inv(m[7]) * m[1], m = union(m, inv.(m))
|
|||
|
PermutationGroups.Perm([findfirst(==(inv(w) * x * w), m) for x in m])
|
|||
|
end
|
|||
|
|
|||
|
τ = let w = m[2] * inv(m[8]) * m[2], m = union(m, inv.(m))
|
|||
|
PermutationGroups.Perm([findfirst(==(inv(w) * x * w), m) for x in m])
|
|||
|
end
|
|||
|
|
|||
|
W = PermGroup(σ, τ)
|
|||
|
|
|||
|
return G₂, roots, W
|
|||
|
end
|