Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind::sets::ComposedIsoImagePredicate< SourceSet, FInv > Struct Template Reference

Composed predicate for the iso-decidable image(f, Set) specialisation below: y ↦ S(f^{-1}(y)) where S is the source set's characteristic and f^{-1} is the iso's inverse. More...

Public Member Functions

template<typename U>
requires std::invocable<const FInv&, const U&> && std::invocable<const SourceSet&, std::invoke_result_t<const FInv&, const U&>>
constexpr auto operator() (const U &y) const

Public Attributes

SourceSet source
FInv f_inverse

Detailed Description

template<typename SourceSet, typename FInv>
struct dedekind::sets::ComposedIsoImagePredicate< SourceSet, FInv >

Composed predicate for the iso-decidable image(f, Set) specialisation below: y ↦ S(f^{-1}(y)) where S is the source set's characteristic and f^{-1} is the iso's inverse.

Captures (i) the source set S by value and (ii) the inverse arrow FInv by value, so the closure is self-contained and constexpr-friendly at the call site. Not default-constructible in general — a Comprehension stores its Predicate by value and has no default constructor, so callers must always supply both components to the in-class aggregate initialiser. The source set's operator() already performs lift_logic<L> on the inner result, and S.operator() on the unwrapped x returns L::Ω directly, so the composition preserves the source logic species without going through Ternary.

SourceSet is the source set type; FInv is the type returned by inverse(f) for the iso f.


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