Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind::sets::Projection< K > Struct Template Reference

The projection π_k: the k-th component of a product. More...

Public Member Functions

template<typename P>
requires requires(const P& p) { component(p, At<K>{}); }
constexpr auto operator() (const P &p) const
 The component, as a value: one overload for lvalues and temporaries alike, and no reference into a product that may die.

Detailed Description

template<std::size_t K>
struct dedekind::sets::Projection< K >

The projection π_k: the k-th component of a product.

The variables of the grammar are the product projections of category:limit, one entity each: π (the unary projection, the identity), π_1, π_2, π_3, and the family π_<k>.

Template Parameters
Kthe slot, from 1.

π leaves the carrier open: π > 5 is a cut datum, π == v a point, and the former carrier & ... binds it, the constant meeting the carrier exactly. On a product the variable of slot k is the projection π_k: called on a point it reads the coordinate, and a comparison of terms over it builds a strongly-typed predicate on the pair (no lambda); && conjoins them (|| joins), distinct from the set-level & / | on whole relations; and product | predicate restricts the product to the relation. && binds looser than |, so the comprehension parenthesises the meet: ℕ*ℕ & (π_1 < π_2 && π_1 > 5) is the relation \(\{(x,y) \mid x<y \wedge x>5\}\) as an IsSet on ℕ×ℕ.

See also
dedekind::category::Projection

The documentation for this struct was generated from the following file: