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

W is a function space T^D — eval f(d), pointwise +, and scalar · over T. More...

Concept definition

template<typename W, typename D, typename T>
requires(W const& f, W const& g, D const& d, T const& s) {
{ f(d) } -> std::convertible_to<T>;
{ f + g } -> std::same_as<W>;
{ s * f } -> std::same_as<W>;
}
W is a function space T^D — eval f(d), pointwise +, and scalar · over T.
Definition function.cppm:115

Detailed Description

W is a function space T^D — eval f(d), pointwise +, and scalar · over T.

function__Concept

Template Parameters
WCarrier type representing the function space.
DDomain type (the index / argument type; std::size_t for ℕ-indexed function spaces, future IsExtensionalCardinal carriers for richer domains).
TCodomain / scalar field type.

The concept value-side requires three operations:

  • Eval: f(d) yields a T-convertible value.
  • Pointwise +: f + g closes the carrier.
  • Scalar ·: s · f closes the carrier (left multiplication; carriers MAY also expose right multiplication f · s but it is not required by the concept).

The pointwise / scalar laws (associativity of +, distributivity over ·, identity elements) are documented but not encoded in this concept. Pinning them as static_asserts requires value-level witnesses on a constexpr-friendly inhabitant; today sequences::Path<T> uses std::function and is not constexpr, so the witness story is at the type level (concept inhabitation). Constexpr inhabitants (e.g. Diagonal<D, F>'s rule type) can pin the laws value-side in a follow-up.