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

Pure syntactic shape: T supports the partial-order operators <, <=, >, >= with results in the truth-value carrier L::Ω of a chosen logical species. More...

Concept definition

template<typename T, typename L Boole>
concept dedekind::order::HasPartialOrderOperators = requires(const T a, const T b) {
{ a < b } -> std::same_as<typename L::Ω>;
{ a <= b } -> std::same_as<typename L::Ω>;
{ a > b } -> std::same_as<typename L::Ω>;
{ a >= b } -> std::same_as<typename L::Ω>;
}
Pure syntactic shape: T supports the partial-order operators <, <=, >, >= with results in the truth-v...
Definition poset.cppm:130

Detailed Description

Pure syntactic shape: T supports the partial-order operators <, <=, >, >= with results in the truth-value carrier L::Ω of a chosen logical species.

Use this concept where a callsite needs the four relational operators to compile and yield a value in the truth-value carrier of a chosen IsOckhamAlgebra, but does not want to bind to a particular axiomatic order (preorder, partial, total). No claim about reflexivity, antisymmetry, transitivity, or comparability is made here; for those, use IsPreOrdered / IsPartiallyOrdered / IsTotallyOrdered (the last in :order:total).

The L parameter defaults to Boole (so L::Ω is bool); supply a different IsOckhamAlgebra to constrain the return type to a non-Boolean truth-value carrier (e.g. Kleene). Mirrors the L-parametric pattern already used by IsPreOrdered / IsPartiallyOrdered.

Sibling of dedekind::algebra::HasRingOperators (in algebra:ring), dedekind::algebra::HasFieldOperators (in algebra:field), and HasLatticeOperators (in order:lattice) in the shape-concept family. The split between shape and axiom mirrors the literal-vs-strict tier introduced under PR #394.