27 lines
786 B
Julia
27 lines
786 B
Julia
|
## Particular definitions for actions on Aut(F_n)
|
|||
|
|
|||
|
function _conj(
|
|||
|
t::Groups.Transvection,
|
|||
|
σ::PermutationGroups.AbstractPerm,
|
|||
|
)
|
|||
|
return Groups.Transvection(t.id, t.i^inv(σ), t.j^inv(σ), t.inv)
|
|||
|
end
|
|||
|
|
|||
|
function _flip(t::Groups.Transvection, g::Groups.GroupElement)
|
|||
|
isone(g) && return t
|
|||
|
return Groups.Transvection(t.id === :ϱ ? :λ : :ϱ, t.i, t.j, t.inv)
|
|||
|
end
|
|||
|
|
|||
|
function _conj(
|
|||
|
t::Groups.Transvection,
|
|||
|
x::Groups.Constructions.DirectPowerElement,
|
|||
|
)
|
|||
|
@assert Groups.order(Int, parent(x).group) == 2
|
|||
|
i, j = t.i, t.j
|
|||
|
t = ifelse(isone(x.elts[i] * x.elts[j]), t, inv(t))
|
|||
|
return _flip(t, x.elts[i])
|
|||
|
end
|
|||
|
|
|||
|
action_by_conjugation(sautfn::Groups.AutomorphismGroup{<:Groups.FreeGroup}, Σ::Groups.Group) =
|
|||
|
AlphabetPermutation(alphabet(sautfn), Σ, _conj)
|