struct SpecialAutomorphismGroup{N} <: SymmetrizedGroup group::AutGroup end function SpecialAutomorphismGroup(args::Dict) N = args["SAut"] return SpecialAutomorphismGroup{N}(AutGroup(FreeGroup(N), special=true)) end name(G::SpecialAutomorphismGroup{N}) where N = "SAutF$(N)" group(G::SpecialAutomorphismGroup) = G.group function generatingset(G::SpecialAutomorphismGroup) S = gens(group(G)); return unique([S; inv.(S)]) end function autS(G::SpecialAutomorphismGroup{N}) where N return WreathProduct(PermutationGroup(2), PermutationGroup(N)) end