Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
small.cppm File Reference

Small Categories (Enumerated Morphism Sets). More...

#include <concepts>
#include <functional>
#include <string>
import dedekind.category:species;
Include dependency graph for small.cppm:

Classes

struct  dedekind::category::StringArrow
 An arrow that is just a label. More...
struct  dedekind::category::StringCategory
 The Category of Labels. More...

Namespaces

namespace  dedekind::category

Concepts

concept  dedekind::category::IsLocallySmallCategory
 Value-level locally-small witness: the Hom-collection of Cat is a set in the metatheory.
concept  dedekind::category::IsSmallCategory
 A point-free, morphism-only reification of a Category.

Functions

template<typename T, IsArrow G>
requires std::same_as<T, Dom<G>>
constexpr auto dedekind::category::operator>> (Identity< T >, G g)
template<IsArrow F, typename T>
requires std::same_as<Cod<F>, T>
constexpr auto dedekind::category::operator>> (F f, Identity< T >)
template<typename T>
constexpr auto dedekind::category::operator>> (Identity< T > i, Identity< T >)

Variables

template<typename T, typename Op>
constexpr bool dedekind::category::is_associative_v< T, Op > = true

Detailed Description

Small Categories (Enumerated Morphism Sets).

@partition :small

small__Small

A Small Category is defined by the property that its collections of objects and morphisms are Sets (not Classes). In the context of C++23, "Smallness" is a pragmatic guarantee: any category reifiable within the type system is inherently Small, as its inhabitants are bounded by the translation unit's finite universe of types.

Defines a single-species category as a small category containing exactly one object type. In this setting, all morphisms are endomorphisms, causing the category to behave as a monoid where composition is the binary operation. This provides a focused foundation for species-specific logic within the C++ type system.

@quote "Il linguaggio delle categorie è affettuosamente noto come 'nonsense astratto'. Questo termine è essenzialmente accurato: le categorie si riferiscono al 'nonsense' nel senso che riguardano esclusivamente la 'struttura', e non il 'significato' di ciò che rappresentano." (The language of categories is affectionately known as "abstract nonsense." This term is essentially accurate: categories refer to "nonsense" in the sense that they are all about the "structure," and not about the "meaning," of what they represent.) — Paolo Aluffi, Algebra: Chapter 0

Note
"With all the variety of mathematical knowledge, we are still clearly conscious of the similarity of the logical devices, the relationship of the ideas in mathematics as a whole and the numerous analogies in its different departments." – David Hilbert, Mathematical Problems (1900)