Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind::category::is_cyclic_group< T, Op > Struct Template Referenceexport

Opt-in trait: is (T, Op) a \emph{cyclic} abelian group? More...

Inheritance diagram for dedekind::category::is_cyclic_group< T, Op >:
Collaboration diagram for dedekind::category::is_cyclic_group< T, Op >:

Detailed Description

template<typename T, typename Op>
struct dedekind::category::is_cyclic_group< T, Op >

Opt-in trait: is (T, Op) a \emph{cyclic} abelian group?

Closes #378. A cyclic group is an abelian group generated by a single element. Every cyclic group is isomorphic to \(\mathbb{Z}/n\mathbb{Z}\) for some \(n \ge 1\) (finite cyclic) or to \(\mathbb{Z}\) itself (infinite cyclic). In this library, all finite cyclic carriers that matter — unsigned int / unsigned long / size_t under std::plus (wrapping at \(2^w\)), ExtensionalCardinal<W> under std::plus, SignedExtensionalCardinal under std::plus, morphologies::Modular<N> under std::plus — are cyclic specialisations of the abelian-group case.

The trait is struct-backed (is_cyclic_group<T, Op>) so SpeciesTraits-based discovery works across module boundaries. Default false; carrier author declares finiteness / cyclicity (C++ concepts cannot derive it from a type signature).


The documentation for this struct was generated from the following file: