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

Q is a quotient of a carrier V by a declared congruence R for Op and reduces from V — the relational reading of the H leg. More...

Concept definition

template<typename Q, typename Op>
requires {
} &&
Op> &&
{ Q{v} } -> std::same_as<Q>;
}
Q is a quotient of a carrier V by a declared congruence R for Op and reduces from V — the relational ...
Definition quotient.cppm:195
A homogeneous binary relation R on a carrier V is a congruence w.r.t. operation Op when it is an equi...
Definition cartesian.cppm:1307
typename quotient_congruence< Q >::carrier quotient_congruence_carrier_t
Convenience alias for quotient_congruence<Q>::carrier (the carrier V that the congruence lives on).
Definition quotient.cppm:165
quotient_congruence<Q>: carrier-side declaration of the congruence witnessing Q = V/R....
Definition quotient.cppm:155

Detailed Description

Q is a quotient of a carrier V by a declared congruence R for Op and reduces from V — the relational reading of the H leg.

Holds when (1) Q declares a quotient_congruence whose relation R is a genuine congruence on its carrier V (IsCongruence<R,V,Op>: an equivalence preserved by Op), and (2) the canonical projection \(V \twoheadrightarrow Q\) exists — Q is constructible from a carrier value (Q{v}) — so Q is tied to V/R, not merely accompanied by a free-floating congruence. A bare marker type with no reduction is rejected.

Clause (2) is the honest ceiling: a full quotient proof ( \(\forall a,b:\ \mathrm{proj}\,a=\mathrm{proj}\,b \iff R(a,b)\)) is Rice-undecidable, so the concept certifies the structural tie (a congruence on V plus a reduction V\to Q), not the extensional identity. The H-leg analogue of IsSubalgebra (S), and independent of IsQuotientAlgebra (see the note above): a carrier may certify its own traits directly yet still be witnessed relationally as V/R.

Template Parameters
Qthe quotient carrier (declares quotient_congruence, reduces from V).
Opthe carrier operation the congruence must respect (e.g.\ std::plus).