52 lines
1.7 KiB
Julia
52 lines
1.7 KiB
Julia
indexing(n) = [(i,j) for i in 1:n for j in 1:n if i≠j]
|
||
|
||
function generating_set(G::AutGroup{N}, n=N) where N
|
||
|
||
rmuls = [Groups.rmul_autsymbol(i,j) for (i,j) in indexing(n)]
|
||
lmuls = [Groups.lmul_autsymbol(i,j) for (i,j) in indexing(n)]
|
||
gen_set = G.([rmuls; lmuls])
|
||
|
||
return [gen_set; inv.(gen_set)]
|
||
end
|
||
|
||
function Sq(RG::GroupRing{AutGroup{N}}) where N
|
||
S₂ = generating_set(RG.group, 2)
|
||
ℤ = Int64
|
||
Δ₂ = length(S₂)*one(RG, ℤ) - RG(S₂, ℤ);
|
||
|
||
Alt_N = [g for g in elements(PermutationGroup(N)) if parity(g) == 0]
|
||
elt = sum(σ(Δ₂)^2 for σ in Alt_N)
|
||
# return RG(elt.coeffs÷factorial(N-2))
|
||
return elt
|
||
end
|
||
|
||
function Adj(RG::GroupRing{AutGroup{N}}) where N
|
||
S₂ = small_generating_set(RG, 2)
|
||
ℤ = Int64
|
||
Δ₂ = length(T2)*one(RG, ℤ) - RG(S₂, ℤ);
|
||
|
||
Alt_N = [g for g in elements(PermutationGroup(N)) if parity(g) == 0]
|
||
|
||
adj(σ::perm, τ::perm, i=1, j=2) = Set([σ[i], σ[j]]) ∩ Set([τ[i], τ[j]])
|
||
adj(σ::perm) = [τ for τ in Alt_N if length(adj(σ, τ)) == 1]
|
||
|
||
@time elt = sum(σ(Δ₂)*sum(τ(Δ₂) for τ in adj(σ)) for σ in Alt_N);
|
||
# return RG(elt.coeffs÷factorial(N-2)^2)
|
||
return elt
|
||
end
|
||
|
||
function Op(RG::GroupRing{AutGroup{N}}) where N
|
||
S₂ = small_generating_set(RG, 2)
|
||
ℤ = Int64
|
||
Δ₂ = length(T2)*one(RG, ℤ) - RG(S₂, ℤ);
|
||
|
||
Alt_N = [g for g in elements(PermutationGroup(N)) if parity(g) == 0]
|
||
|
||
adj(σ::perm, τ::perm, i=1, j=2) = Set([σ[i], σ[j]]) ∩ Set([τ[i], τ[j]])
|
||
op(σ::perm) = [τ for τ in Alt_N if length(adj(σ, τ)) == 0]
|
||
|
||
@time elt = sum(σ(Δ₂)*sum(τ(Δ₂) for τ in op(σ)) for σ in Alt_N);
|
||
# return RG(elt.coeffs÷factorial(N-2)^2)
|
||
return elt
|
||
end
|