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

Can A and B be compared in the injected order Ord, at compile time? Both must expose ::value of one carrier type T that is IsPosetal under Ord's resolved relation, and that relation must be default-constructible and constexpr-callable on those values. A registered-but-runtime-only or stateful order therefore fails this guard and the glb/lub collapse stays inactive (fail-closed) rather than hard-erroring. More...

Concept definition

template<typename A, typename B, typename Ord>
requires {
A::value;
B::value;
} &&
std::same_as<std::remove_cvref_t<decltype(A::value)>,
std::remove_cvref_t<decltype(B::value)>> &&
IsPosetal<std::remove_cvref_t<decltype(A::value)>,
resolved_order_t<std::remove_cvref_t<decltype(A::value)>, Ord>> &&
std::default_initializable<
resolved_order_t<std::remove_cvref_t<decltype(A::value)>, Ord>> &&
requires {
{
resolved_order_t<std::remove_cvref_t<decltype(A::value)>, Ord>{}(
A::value, B::value)
} -> std::convertible_to<bool>;
typename std::bool_constant<(
resolved_order_t<std::remove_cvref_t<decltype(A::value)>, Ord>{}(
A::value, B::value),
true)>;
}
A Category where morphisms are governed by a specific Logic Species (Ω).
Definition posetal.cppm:90
Can A and B be compared in the injected order Ord, at compile time? Both must expose value of one car...
Definition lattice.cppm:1161
std::conditional_t< std::same_as< Ord, canonical_order >, std::less_equal< T >, Ord > resolved_order_t
The comparator Ord resolves to for a carrier T: std::less_equal<T> for canonical_order,...
Definition lattice.cppm:819

Detailed Description

Can A and B be compared in the injected order Ord, at compile time? Both must expose ::value of one carrier type T that is IsPosetal under Ord's resolved relation, and that relation must be default-constructible and constexpr-callable on those values. A registered-but-runtime-only or stateful order therefore fails this guard and the glb/lub collapse stays inactive (fail-closed) rather than hard-erroring.