|
Dedekind 0.0.0
A structuralist C++23 Module Library
|
The membership predicate of a functional graph \(\Gamma_f\): \((a,b)\mapsto b = f(a)\). More...
Public Types | |
| using | ArrowType = std::remove_cvref_t<F> |
| using | Pair |
Public Member Functions | |
| constexpr bool | operator() (const Pair &p) const |
Public Attributes | |
| ArrowType | arrow |
The membership predicate of a functional graph \(\Gamma_f\): \((a,b)\mapsto b = f(a)\).
Named (not a lambda) so it carries its arrow f. That is what lets two graphs compose by the relative product without enumerating the shared intermediate (operator>> below): GraphPredicate recovers the arrow, so \(\Gamma_f;\Gamma_g = \Gamma_{f;g}\) is available on any carrier. Membership delegates to arrow_as_relation (one source of truth for \(b=f(a)\)).
| using dedekind::relational::GraphPredicate< F >::Pair |