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

Signature-level witness for a sieve of arrows into an object. More...

Concept definition

template<typename S>
concept dedekind::category::IsSieve = requires(S s, typename S::Arrow f) {
typename S::Object;
typename S::Arrow;
requires std::same_as<Cod<typename S::Arrow>, typename S::Object>;
{ s.target() } -> std::same_as<typename S::Object>;
{ s.contains(f) } -> std::convertible_to<bool>;
{ s.pullback_along(f) } -> std::same_as<S>;
}
A type that knows its own Domain (A) and Codomain (B), objects it maps between: called at the domain'...
Definition morphism.cppm:168
Signature-level witness for a sieve of arrows into an object.
Definition topoi.cppm:185

Detailed Description

Signature-level witness for a sieve of arrows into an object.

A sieve over an object X is represented as a collection of incoming arrows together with closure under precomposition (modeled here by pullback_along). This concept is intentionally lightweight and currently models a single-arrow-type approximation: S::Arrow is fixed and pullback_along returns the same sieve type S.

It verifies shape/signature only for this narrowed surface; semantic laws are exercised in tests and can be strengthened by later issue work.