2021-08-13 16:20:31 +02:00
|
|
|
|
@testset "Aut(Σ₃.₀)" begin
|
|
|
|
|
genus = 3
|
|
|
|
|
|
|
|
|
|
π₁Σ = Groups.SurfaceGroup(genus, 0)
|
|
|
|
|
|
2022-10-14 01:14:38 +02:00
|
|
|
|
@test contains(sprint(print, π₁Σ), "surface")
|
|
|
|
|
|
2023-08-26 10:16:19 +02:00
|
|
|
|
Groups.PermRightAut(p::Perm) = Groups.PermRightAut([i^p for i in 1:2genus])
|
2021-08-13 16:20:31 +02:00
|
|
|
|
# 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
|
2022-10-13 23:21:42 +02:00
|
|
|
|
T = eltype(alphabet(autπ₁Σ))
|
2021-08-13 16:20:31 +02:00
|
|
|
|
S = eltype(pauts)
|
|
|
|
|
|
2022-10-13 23:21:42 +02:00
|
|
|
|
A = Alphabet(Union{T,S}[alphabet(autπ₁Σ)...; pauts])
|
2021-08-13 16:20:31 +02:00
|
|
|
|
|
|
|
|
|
autG = AutomorphismGroup(
|
|
|
|
|
π₁Σ,
|
|
|
|
|
autπ₁Σ.gens,
|
|
|
|
|
A,
|
2022-10-14 01:14:38 +02:00
|
|
|
|
ntuple(i -> inv(gens(π₁Σ, i)), 2Groups.genus(π₁Σ))
|
2021-08-13 16:20:31 +02:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
autG
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
Al = alphabet(autπ₁Σ)
|
|
|
|
|
S = [gens(autπ₁Σ); inv.(gens(autπ₁Σ))]
|
|
|
|
|
|
2022-10-13 23:21:42 +02:00
|
|
|
|
sautFn = parent(Al[1].autFn_word)
|
2021-08-13 16:20:31 +02:00
|
|
|
|
|
|
|
|
|
τ = Groups.rotation_element(sautFn)
|
|
|
|
|
|
|
|
|
|
@testset "Twists" begin
|
|
|
|
|
A = KnuthBendix.alphabet(sautFn)
|
|
|
|
|
λ = Groups.ΡΛ(:λ, A, 2genus)
|
|
|
|
|
ϱ = Groups.ΡΛ(:ϱ, A, 2genus)
|
|
|
|
|
@test sautFn(Groups.Te_diagonal(λ, ϱ, 1)) ==
|
2022-10-14 01:14:38 +02:00
|
|
|
|
conj(sautFn(Groups.Te_diagonal(λ, ϱ, 2)), τ)
|
2021-08-13 16:20:31 +02:00
|
|
|
|
|
|
|
|
|
@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)"
|
2023-08-26 10:16:19 +02:00
|
|
|
|
@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))
|
2021-08-13 16:20:31 +02:00
|
|
|
|
|
|
|
|
|
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
|