PropertyT.jl/src/actions/sln_conjugation.jl

21 lines
664 B
Julia
Raw Normal View History

2022-11-07 16:21:58 +01:00
## Particular definitions for actions on SL(n,)
function _conj(
t::MatrixGroups.ElementaryMatrix{N},
σ::PermutationGroups.AbstractPerm,
) where {N}
return MatrixGroups.ElementaryMatrix{N}(t.i^inv(σ), t.j^inv(σ), t.val)
end
function _conj(
t::MatrixGroups.ElementaryMatrix{N},
x::Groups.Constructions.DirectPowerElement,
) where {N}
@assert Groups.order(Int, parent(x).group) == 2
just_one_flips = xor(isone(x.elts[t.i]), isone(x.elts[t.j]))
return ifelse(just_one_flips, inv(t), t)
end
action_by_conjugation(sln::Groups.MatrixGroups.SpecialLinearGroup, Σ::Groups.Group) =
AlphabetPermutation(alphabet(sln), Σ, _conj)