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

Stated in arrow language: F is an endomorphism on the object T (IsEndomorphism, domain and codomain T — applying it twice returns to the domain) carrying the certificate \(f \circ f = \mathrm{id}_T\). T defaults to the arrow's domain; a bare callable names it. The object may be presented by many types (morphism__Objects_And_Their_Presentations), so the complement on \(\mathrm{Sub}(T)\) is an involution here, through this one concept. More...

Concept definition

template<typename F, typename T Dom<F>>
std::same_as<Dom<detail_involution::on_t<F, T>>, T> &&
is_involutive_v<std::remove_cvref_t<F>, T>
Proposition: A Morphism where Domain ≡ Codomain (f: A -> A).
Definition morphism.cppm:505
Stated in arrow language: F is an endomorphism on the object T (IsEndomorphism, domain and codomain T...
Definition involution.cppm:195

Detailed Description

Stated in arrow language: F is an endomorphism on the object T (IsEndomorphism, domain and codomain T — applying it twice returns to the domain) carrying the certificate \(f \circ f = \mathrm{id}_T\). T defaults to the arrow's domain; a bare callable names it. The object may be presented by many types (morphism__Objects_And_Their_Presentations), so the complement on \(\mathrm{Sub}(T)\) is an involution here, through this one concept.

An endomap \(f : T \to T\) that is CERTIFIED its own inverse: \(f \circ f = \mathrm{id}_T\).

The atomic seed of the \(\dagger\) notion. It is NOT shape-only: beyond the endomap shape (f invocable T → T) it requires the is_involutive_v certificate, so a merely-composable map like [](int x){return x+1;} is rejected — consumers can rely on \(f(f(x)) = x\). :lattice's IsInvolutiveEndofunctor is this same predicate under the lattice-complement reading.