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

A truth-object: a type that can serve as the classifier Ω for a logical species. More...

Concept definition

template<typename T>
requires {
typename T::logic_species;
}
Pure syntactic shape: T supports the logical operators &&, ||, ! with closed results.
Definition logic.cppm:537
The IsOckhamAlgebra Concept (The Algebraic Signature of Truth).
Definition logic.cppm:114
A truth-object: a type that can serve as the classifier Ω for a logical species.
Definition logic.cppm:569

Detailed Description

A truth-object: a type that can serve as the classifier Ω for a logical species.

Satisfied when T either carries the closed logical operators (&& / || / ! all returning T, as for bool, Ternary, and the Truth<L> wrappers now that the meet/join register has landed), or is a registered logic wrapper declaring a valid logic_species. Truth<L> now qualifies by both branches; the logic_species branch remains the fallback for any wrapper that does not overload the operators. int and std::string satisfy neither (int's && yields bool, and neither declares a logic_species), so IsΩ does not over-accept them. This is deliberately decoupled from GetLogic, whose permissive default maps any type to Boole and would otherwise let IsΩ accept arbitrary types.

Note
bool and Ternary are peer inhabitants: neither is a privileged "the Ω". bool is distinguished only at the dominance layer (as the decided core \(\mathbb{B}\) that decidable maps factor through; see lift_logic), not as a logic. Register a new species (say a fuzzy logic) and its truth-type joins as another peer. The non-trivial inhabitants shipped are Ternary (Kleene \(K_3\)), Percentage (the Percent chain) and each Chain<T>'s T, read as truth values only through their species.