21 lines
664 B
Julia
21 lines
664 B
Julia
|
## 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)
|