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

An arrow with a definite variance: order-preserving (IsMonotone) or order-reversing (IsAntiMonotone). The leg-shape of a Galois connection, whose adjoints are always one or the other. Mirrors :limit::IsBoundaryObject's "X @c || @c dual" disjunction shape. More...

Concept definition

template<typename F, typename Op std::less_equal<>>
(
requires(Op op, Dom<F> a) { op(a, a); } ||
requires(Op op, Cod<F> c) { op(c, c); }) &&
(IsMonotone<F, Op> || IsAntiMonotone<F, Op>)
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 with a definite variance: order-preserving (IsMonotone) or order-reversing (IsAntiMonotone)....
Definition posetal.cppm:456
typename std::remove_cvref_t< F >::Codomain Cod
Shorthand to look up the Codomain of an Arrow type F.
Definition morphism.cppm:239
typename std::remove_cvref_t< F >::Domain Dom
Shorthand to look up the Domain of an Arrow type F.
Definition morphism.cppm:231

Detailed Description

An arrow with a definite variance: order-preserving (IsMonotone) or order-reversing (IsAntiMonotone). The leg-shape of a Galois connection, whose adjoints are always one or the other. Mirrors :limit::IsBoundaryObject's "X @c || @c dual" disjunction shape.

Note
Variance is DERIVED for the structured arrows and ASSERTED for the irreducible leaf maps (#908). Derived: Identity and the negation NegationArrow (below), and the spider Copy / Merge whose monotonicity is a theorem gated on IsOrderMeetSemilattice (:cartesian_bicategory). Asserted: atomic order-preserving maps (the ℕ↪ℤ / sint / uint embeddings) register is_monotone_v directly, since their variance is a fact about that specific map, not a consequence of its type ("inference composes, tagging explodes": tag only the irreducible leaves). A general op-derived variance-composition law (co∘co=co, antitone∘antitone=monotone) awaits a reified composition arrow; the two-axis (contravariant-domain / covariant-codomain) reading is the hyperdoctrine extension.