Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind::category::IsEpicArrow Concept Referenceexport

An arrow declared to be an epimorphism (π: A ↠ B). More...

Concept definition

template<typename E>
A type that knows its own Domain (A) and Codomain (B), objects it maps between: called at the domain'...
Definition morphism.cppm:168
An arrow declared to be an epimorphism (π: A ↠ B).
Definition morphism.cppm:1183
An Arrow f: A -> B with a guaranteed Inverse g: B -> A.
Definition morphism.cppm:1010
constexpr bool is_epic_arrow_v
User-declared epicity witness for an arrow type.
Definition morphism.cppm:1166

Detailed Description

An arrow declared to be an epimorphism (π: A ↠ B).

An epic arrow is surjective: for every b in B there exists a in A with e(a) == b. The user declares epicity via is_epic_arrow_v<E> = true.

An IsIsomorphism is epic for free, symmetrically to IsMonicArrow: a two-sided inverse makes it surjective. So an iso is both monic and epic without a separate opt-in, and IsBijectiveArrow (monic ∧ epic) follows from IsIsomorphism. Concept-level || (not an is_epic_arrow_v partial spec) for the same cross-module-firing reason as IsMonicArrow.