From c857627690509421ac47fb0e8a01078009384418 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20G=C3=B6ttgens?= Date: Wed, 10 Dec 2025 16:01:11 +0100 Subject: [PATCH 1/3] Add `relations(::FPModule)`; redirect `rels` through `relations` --- docs/src/module.md | 1 + docs/src/module_interface.md | 1 + src/generic/FreeModule.jl | 2 +- src/generic/InvariantFactorDecomposition.jl | 2 +- src/generic/Module.jl | 11 +++++++++-- 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/docs/src/module.md b/docs/src/module.md index f5abe07172..f80577412a 100644 --- a/docs/src/module.md +++ b/docs/src/module.md @@ -65,6 +65,7 @@ Return a Julia array of the generators of the module $M$. ```julia rels(M::FPModule{T}) where T <: RingElement +relations(M::FPModule{T}) where T <: RingElement ``` Return a Julia vector of all the relations between the generators of `M`. Each diff --git a/docs/src/module_interface.md b/docs/src/module_interface.md index f5e1e690a9..d5a6ced58a 100644 --- a/docs/src/module_interface.md +++ b/docs/src/module_interface.md @@ -89,6 +89,7 @@ Return a Julia array of the generators of the module $M$. ```julia rels(M::MyModule{T}) where T <: RingElement +relations(M::MyModule{T}) where T <: RingElement ``` Return a Julia vector of all the relations between the generators of `M`. Each diff --git a/src/generic/FreeModule.jl b/src/generic/FreeModule.jl index bc7ebd907d..dabaad9acc 100644 --- a/src/generic/FreeModule.jl +++ b/src/generic/FreeModule.jl @@ -24,7 +24,7 @@ elem_type(::Type{FreeModule{T}}) where T <: NCRingElement = FreeModuleElem{T} parent(m::FreeModuleElem{T}) where T <: NCRingElement = m.parent -function rels(M::FreeModule{T}) where T <: RingElement +function relations(M::FreeModule{T}) where T <: RingElement # there are no relations in a free module return Vector{dense_matrix_type(T)}(undef, 0) end diff --git a/src/generic/InvariantFactorDecomposition.jl b/src/generic/InvariantFactorDecomposition.jl index 0e61d854db..b33bccc821 100644 --- a/src/generic/InvariantFactorDecomposition.jl +++ b/src/generic/InvariantFactorDecomposition.jl @@ -32,7 +32,7 @@ end invariant_factors(N::SNFModule{T}) where T <: RingElement = N.invariant_factors -function rels(N::SNFModule{T}) where T <: RingElement +function relations(N::SNFModule{T}) where T <: RingElement T1 = dense_matrix_type(T) R = base_ring(N) invs = invariant_factors(N) diff --git a/src/generic/Module.jl b/src/generic/Module.jl index fa3a7119a6..e49b6ce3ff 100644 --- a/src/generic/Module.jl +++ b/src/generic/Module.jl @@ -17,13 +17,20 @@ end @doc raw""" - rels(M::AbstractAlgebra.FPModule{T}) where T <: RingElement + relations(M::AbstractAlgebra.FPModule{T}) where T <: RingElement Return a vector of all the relations between generators of the given module, where each relation is given as row matrix. The relation matrix whose rows are the returned relations will be in reduced form (hnf/rref). """ -rels(M::AbstractAlgebra.FPModule{T}) where T <: RingElement = M.rels::Vector{dense_matrix_type(T)} +relations(M::AbstractAlgebra.FPModule{T}) where T <: RingElement = M.rels::Vector{dense_matrix_type(T)} + +@doc raw""" + rels(M::AbstractAlgebra.FPModule{T}) where T <: RingElement + +Alias for `relations(M)`. +""" +rels(M::AbstractAlgebra.FPModule{T}) where T <: RingElement = relations(M) @doc raw""" is_compatible(M::AbstractAlgebra.FPModule{T}, N::AbstractAlgebra.FPModule{T}) where T <: RingElement From db0baab9bc4c8c57cc774fe6c975c171e6cf7b5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20G=C3=B6ttgens?= Date: Wed, 10 Dec 2025 16:06:29 +0100 Subject: [PATCH 2/3] Add missing exports --- src/exports.jl | 1 + src/generic/exports.jl | 1 + 2 files changed, 2 insertions(+) diff --git a/src/exports.jl b/src/exports.jl index bca5c9225d..78d3e87736 100644 --- a/src/exports.jl +++ b/src/exports.jl @@ -505,6 +505,7 @@ export rational_function_field export reduce! export rel_series export rel_series_type +export relations export rels export rem! export remove diff --git a/src/generic/exports.jl b/src/generic/exports.jl index d3c2a013a5..6f95c5f3b4 100644 --- a/src/generic/exports.jl +++ b/src/generic/exports.jl @@ -102,6 +102,7 @@ export prime export push_term! export reduce! export rel_series_type +export relations export rels export rescale! export retraction_map From be0486440851a5b8073578edcc6c3bd39335a1ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20G=C3=B6ttgens?= Date: Wed, 10 Dec 2025 16:11:37 +0100 Subject: [PATCH 3/3] Add back reference --- src/generic/Module.jl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/generic/Module.jl b/src/generic/Module.jl index e49b6ce3ff..8feba1d4ac 100644 --- a/src/generic/Module.jl +++ b/src/generic/Module.jl @@ -22,6 +22,8 @@ end Return a vector of all the relations between generators of the given module, where each relation is given as row matrix. The relation matrix whose rows are the returned relations will be in reduced form (hnf/rref). + +This has a short alias `rels(M)`. """ relations(M::AbstractAlgebra.FPModule{T}) where T <: RingElement = M.rels::Vector{dense_matrix_type(T)}