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