Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind::algebra::Inverse< G, Op > Struct Template Referenceexport

The group inverse under Op, reified as an arrow (an endomorphism G → G). More...

Public Types

using Domain = G
using Codomain = G

Public Member Functions

constexpr G operator() (const G &x) const

Detailed Description

template<typename G, typename Op>
requires dedekind::category::IsGroup<G, Op>
struct dedekind::algebra::Inverse< G, Op >

The group inverse under Op, reified as an arrow (an endomorphism G → G).

group__Formal_Verification

Wraps the inverse_v bridge (category:species) as a first-class morphism carrying Domain / Codomain, so the group inverse can be reasoned about categorically — composed, and registered with a variance. Inverse<G, std::plus<G>> is the additive inverse x ↦ -x; Inverse<G, std::multiplies<G>> the multiplicative x ↦ 1/x.

Note
On an ordered group the additive inverse is antitone (order-reversing); the multiplicative inverse is antitone only on the positive cone. Those variance facts are registered where the order lives (:ordered_algebra), not here.
Template Parameters
GThe carrier; constrained category::IsGroup<G, Op> — the group hypothesis is exactly what makes the inverse inverse_v<G, Op> exist (IsMonoid && IsLoop supplies the two-sided inverse). category::IsGroup is the carrier-level group (not algebra::IsGroup, which gates a set object X by X::Domain).
OpThe group operation (std::plus<G> additive, std::multiplies<G> multiplicative).

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