GroupsCore
The aim of this package is to standardize the common assumptions and functions on group i.e. to create Group interface.
The protocol consists of two parts:
Group
(parent object) methods,GroupElement
methods.
This is due to the fact that hardly any information can be encoded in Type
, we rely on parent objects that represent groups, as well as ordinary group elements. It is assumed that all elements of a group have identical parent (i.e. ===
) so that parent objects behave locally as singletons.
Examples and Conformance testing
For an implemented interface please have a look at /test
folder, where several example implementations are tested against the conformance test suite:
To test the conformance of e.g. CyclicGroup
defined above one can run
julia> using GroupsCore
julia> include(joinpath(pathof(GroupsCore), "..", "..", "test", "conformance_test.jl"))
test_GroupElement_interface (generic function with 1 method)
julia> include(joinpath(pathof(GroupsCore), "..", "..", "test", "cyclic.jl"))
julia> let C = CyclicGroup(15)
test_Group_interface(C)
test_GroupElement_interface(rand(C, 2)...)
nothing
end
Test Summary: | Pass Total Time
Group interface | 21 21 0.0s
Test Summary: | Pass Total Time
GroupElement interface | 91 91 0.0s
Users
The Oscar.jl
project no longer supports GroupsCore.jl
interface at version 0.5
. See these comments.