From 30d58445dfa7abf378f6cf37c065b66b541284de Mon Sep 17 00:00:00 2001 From: Marek Kaluba Date: Thu, 13 Oct 2022 23:21:42 +0200 Subject: [PATCH] letters(A::Alphabet) are no more --- src/aut_groups/mcg.jl | 2 +- src/aut_groups/sautFn.jl | 4 ++-- src/autgroups.jl | 2 +- src/types.jl | 12 +++++------- test/AutSigma3.jl | 8 +++----- 5 files changed, 12 insertions(+), 16 deletions(-) diff --git a/src/aut_groups/mcg.jl b/src/aut_groups/mcg.jl index 5d9041f..8b3bbce 100644 --- a/src/aut_groups/mcg.jl +++ b/src/aut_groups/mcg.jl @@ -64,7 +64,7 @@ function SurfaceGroup(genus::Integer, boundaries::Integer) F = FreeGroup(alphabet(rws)) rels = [F(lhs)=>F(rhs) for (lhs,rhs) in word_rels] - return SurfaceGroup(genus, boundaries, KnuthBendix.letters(Al)[2:2:end], rels, rws) + return SurfaceGroup(genus, boundaries, [Al[i] for i in 2:2:length(Al)], rels, rws) end rewriting(S::SurfaceGroup) = S.rws diff --git a/src/aut_groups/sautFn.jl b/src/aut_groups/sautFn.jl index 4e86a37..19e5f45 100644 --- a/src/aut_groups/sautFn.jl +++ b/src/aut_groups/sautFn.jl @@ -4,8 +4,8 @@ include("gersten_relations.jl") function SpecialAutomorphismGroup(F::FreeGroup; ordering = KnuthBendix.LenLex, kwargs...) n = length(alphabet(F)) ÷ 2 - A, rels = gersten_relations(n, commutative = false) - S = KnuthBendix.letters(A)[1:2(n^2-n)] + A, rels = gersten_relations(n, commutative=false) + S = [A[i] for i in 1:2:length(A)] maxrules = 1000*n diff --git a/src/autgroups.jl b/src/autgroups.jl index 696270a..8b78223 100644 --- a/src/autgroups.jl +++ b/src/autgroups.jl @@ -144,7 +144,7 @@ end function Base.getindex(lm::LettersMap, i::Integer) # here i is an index of an alphabet - @boundscheck 1 ≤ i ≤ length(KnuthBendix.letters(lm.A)) + @boundscheck 1 ≤ i ≤ length(lm.A) if !haskey(lm.indices_map, i) img = if haskey(lm.indices_map, inv(lm.A, i)) diff --git a/src/types.jl b/src/types.jl index a96e5dc..289bf55 100644 --- a/src/types.jl +++ b/src/types.jl @@ -153,8 +153,7 @@ struct FreeGroup{T,O} <: AbstractFPGroup function FreeGroup(gens, ordering::KnuthBendix.WordOrdering) @assert length(gens) == length(unique(gens)) - L = KnuthBendix.letters(alphabet(ordering)) - @assert all(l -> l in L, gens) + @assert all(l -> l in alphabet(ordering), gens) return new{eltype(gens),typeof(ordering)}(gens, ordering) end end @@ -163,12 +162,11 @@ FreeGroup(gens, A::Alphabet) = FreeGroup(gens, KnuthBendix.LenLex(A)) function FreeGroup(A::Alphabet) @boundscheck @assert all( - KnuthBendix.hasinverse(l, A) for l in KnuthBendix.letters(A) + KnuthBendix.hasinverse(l, A) for l in A ) - ltrs = KnuthBendix.letters(A) - gens = Vector{eltype(ltrs)}() - invs = Vector{eltype(ltrs)}() - for l in ltrs + gens = Vector{eltype(A)}() + invs = Vector{eltype(A)}() + for l in A l ∈ invs && continue push!(gens, l) push!(invs, inv(A, l)) diff --git a/test/AutSigma3.jl b/test/AutSigma3.jl index 475fb57..9977b7f 100644 --- a/test/AutSigma3.jl +++ b/test/AutSigma3.jl @@ -9,10 +9,10 @@ pauts = let p = perm"(1,3,5)(2,4,6)" [Groups.PermRightAut(p^i) for i in 0:2] end - T = eltype(KnuthBendix.letters(alphabet(autπ₁Σ))) + T = eltype(alphabet(autπ₁Σ)) S = eltype(pauts) - A = Alphabet(Union{T,S}[KnuthBendix.letters(alphabet(autπ₁Σ)); pauts]) + A = Alphabet(Union{T,S}[alphabet(autπ₁Σ)...; pauts]) autG = AutomorphismGroup( π₁Σ, @@ -27,9 +27,7 @@ Al = alphabet(autπ₁Σ) S = [gens(autπ₁Σ); inv.(gens(autπ₁Σ))] - sautFn = let ltrs = KnuthBendix.letters(Al) - parent(first(ltrs).autFn_word) - end + sautFn = parent(Al[1].autFn_word) τ = Groups.rotation_element(sautFn)