mirror of
https://github.com/kalmarek/Groups.jl.git
synced 2024-11-04 19:00:27 +01:00
77 lines
2.2 KiB
Julia
77 lines
2.2 KiB
Julia
@testset "Aut(Σ₃.₀)" begin
|
||
genus = 3
|
||
|
||
π₁Σ = Groups.SurfaceGroup(genus, 0)
|
||
|
||
@test contains(sprint(print, π₁Σ), "surface")
|
||
|
||
Groups.PermRightAut(p::Perm) = Groups.PermRightAut([i^p for i in 1:2genus])
|
||
# Groups.PermLeftAut(p::Perm) = Groups.PermLeftAut(p.d)
|
||
autπ₁Σ = let autπ₁Σ = AutomorphismGroup(π₁Σ)
|
||
pauts = let p = perm"(1,3,5)(2,4,6)"
|
||
[Groups.PermRightAut(p^i) for i in 0:2]
|
||
end
|
||
T = eltype(alphabet(autπ₁Σ))
|
||
S = eltype(pauts)
|
||
|
||
A = Alphabet(Union{T,S}[alphabet(autπ₁Σ)...; pauts])
|
||
|
||
autG = AutomorphismGroup(
|
||
π₁Σ,
|
||
autπ₁Σ.gens,
|
||
A,
|
||
ntuple(i -> inv(gens(π₁Σ, i)), 2Groups.genus(π₁Σ))
|
||
)
|
||
|
||
autG
|
||
end
|
||
|
||
Al = alphabet(autπ₁Σ)
|
||
S = [gens(autπ₁Σ); inv.(gens(autπ₁Σ))]
|
||
|
||
sautFn = parent(Al[1].autFn_word)
|
||
|
||
τ = Groups.rotation_element(sautFn)
|
||
|
||
@testset "Twists" begin
|
||
A = KnuthBendix.alphabet(sautFn)
|
||
λ = Groups.ΡΛ(:λ, A, 2genus)
|
||
ϱ = Groups.ΡΛ(:ϱ, A, 2genus)
|
||
@test sautFn(Groups.Te_diagonal(λ, ϱ, 1)) ==
|
||
conj(sautFn(Groups.Te_diagonal(λ, ϱ, 2)), τ)
|
||
|
||
@test sautFn(Groups.Te_diagonal(λ, ϱ, 3)) == sautFn(Groups.Te(λ, ϱ, 3, 1))
|
||
end
|
||
|
||
z = let d = Groups.domain(τ)
|
||
Groups.evaluate(τ^genus)
|
||
end
|
||
|
||
@test π₁Σ.(word.(z)) == Groups.domain(first(S))
|
||
d = Groups.domain(first(S))
|
||
p = perm"(1,3,5)(2,4,6)"
|
||
@test Groups.evaluate!(deepcopy(d), τ) ==
|
||
ntuple(i -> d[i^inv(p)], length(d))
|
||
@test Groups.evaluate!(deepcopy(d), τ^2) == ntuple(i -> d[i^p], length(d))
|
||
|
||
E, sizes = Groups.wlmetric_ball(S, radius=3)
|
||
@test sizes == [49, 1813, 62971]
|
||
B2 = @view E[1:sizes[2]]
|
||
|
||
σ = autπ₁Σ(Word([Al[Groups.PermRightAut(p)]]))
|
||
|
||
@test conj(S[7], σ) == S[10]
|
||
@test conj(S[7], σ^2) == S[11]
|
||
@test conj(S[9], σ) == S[12]
|
||
@test conj(S[9], σ^2) == S[8]
|
||
|
||
@test conj(S[1], σ) == S[4]
|
||
@test conj(S[1], σ^2) == S[5]
|
||
@test conj(S[3], σ) == S[6]
|
||
@test conj(S[3], σ^2) == S[2]
|
||
|
||
B2ᶜ = [conj(b, σ) for b in B2]
|
||
@test B2ᶜ != B2
|
||
@test Set(B2ᶜ) == Set(B2)
|
||
end
|