diff --git a/docs/src/abelian/introduction.md b/docs/src/abelian/introduction.md index 7ecb0cf277..9f09cdfdf0 100644 --- a/docs/src/abelian/introduction.md +++ b/docs/src/abelian/introduction.md @@ -58,7 +58,7 @@ nrels(G::GrpAbFinGen) rels(A::GrpAbFinGen) isfinite(A::GrpAbFinGen) is_infinite(A::GrpAbFinGen) -rank(A::GrpAbFinGen) +torsion_free_rank(A::GrpAbFinGen) order(A::GrpAbFinGen) exponent(A::GrpAbFinGen) istrivial(A::GrpAbFinGen) diff --git a/src/GrpAb/GrpAbFinGen.jl b/src/GrpAb/GrpAbFinGen.jl index 1f36cb4405..68fed14062 100644 --- a/src/GrpAb/GrpAbFinGen.jl +++ b/src/GrpAb/GrpAbFinGen.jl @@ -35,7 +35,7 @@ import AbstractAlgebra.GroupsCore: istrivial export abelian_group, free_abelian_group, is_snf, ngens, nrels, rels, snf, isfinite, - is_infinite, rank, order, exponent, istrivial, is_isomorphic, + is_infinite, torsion_free_rank, rank, order, exponent, istrivial, is_isomorphic, direct_product, is_torsion, torsion_subgroup, sub, quo, is_cyclic, psylow_subgroup, is_subgroup, abelian_groups, flat, tensor_product, dual, chain_complex, is_exact, free_resolution, obj, map, @@ -476,12 +476,12 @@ is_finite_gen(A::GrpAbFinGen) = isfinite(snf(A)[1]) ################################################################################ @doc raw""" - rank(A::GrpAbFinGen) -> Int + torsion_free_rank(A::GrpAbFinGen) -> Int -Return the rank of $A$, that is, the dimension of the +Return the torsion free rank of $A$, that is, the dimension of the $\mathbf{Q}$-vectorspace $A \otimes_{\mathbf Z} \mathbf Q$. """ -rank(A::GrpAbFinGen) = is_snf(A) ? rank_snf(A) : rank_gen(A) +torsion_free_rank(A::GrpAbFinGen) = is_snf(A) ? rank_snf(A) : rank_gen(A) rank_snf(A::GrpAbFinGen) = length(findall(x -> iszero(x), A.snf))