> *"The Yoneda lemma is arguably the most important result in category theory."*
/plugin marketplace add plurigrid/asi/plugin install asi-skills@asi-skillsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
"The Yoneda lemma is arguably the most important result in category theory." — Emily Riehl
Category Theory in Programming (CTP) by NoahStoryM - Racket tutorial mapping abstract CT concepts to programming constructs with GF(3) colored awareness.
Source: NoahStoryM/ctp
Docs: docs.racket-lang.org/ctp
Local: .topos/ctp/
| # | Chapter | Trit | Color | Status |
|---|---|---|---|---|
| 1 | Category | +1 | #E67F86 | ✓ Complete |
| 2 | Functor | -1 | #D06546 | ✓ Complete |
| 3 | Natural Transformation | 0 | #1316BB | ✓ Complete |
| 4 | Yoneda Lemma | +1 | #BA2645 | Planned |
| 5 | Higher Categories | -1 | #49EE54 | Planned |
| 6 | (Co)Limits | 0 | #11C710 | Planned |
| 7 | Adjunctions | +1 | #76B0F0 | Planned |
| 8 | (Co)Monads | -1 | #E59798 | Planned |
| 9 | CCC & λ-calculus | 0 | #5333D9 | Planned |
| 10 | Toposes | +1 | #7E90EB | Planned |
| 11 | Kan Extensions | -1 | #1D9E7E | Planned |
GF(3) Sum: (+1) + (-1) + (0) + (+1) + (-1) + (0) + (+1) + (-1) + (0) + (+1) + (-1) = 0 ✓ BALANCED
Nat(Hom(A, -), F) ≅ F(A)
Every object is completely determined by its relationships to all other objects.
Located in .topos/ctp/scribblings/code/:
Set.rkt - Category of setsRel.rkt - Category of relationsProc.rkt - Category of proceduresPair.rkt - Product categoryMatr.rkt - Matrix categoriesList.rkt - List monoid as categoryNat.rkt - Natural numbersDFA.rkt - Deterministic finite automataNFA.rkt - Nondeterministic finite automataTDFA.rkt - Typed DFASet->Rel.rkt - Set to Relation functorP_*.rkt, P^*.rkt, P_!.rkt - Powerset functorsSliF.rkt, coSliF.rkt - Slice functors# Install CTP package
cd .topos/ctp && raco pkg install
# Build documentation
raco setup --doc-index ctp
# Open docs
open doc/ctp/index.html
| CTP Concept | Music-Topos Implementation |
|---|---|
| Category | ACSets schema |
| Functor | Geometric morphism |
| Natural Transformation | Schema migration |
| Yoneda | Representable presheaves |
| Limits | Pullbacks in DuckDB |
| Adjunctions | Galois connections |
| Monads | Computation contexts |
When reading CTP files, each touched file gets a deterministic color:
# Track file access with Gay.jl colors
seed = 1069
files_touched = []
def touch_file(path, index)
color = gay_color_at(seed, index)
files_touched << { path: path, color: color, trit: color[:trit] }
end
Current session colors (seed=1069):
#E67F86 (+1) - info.rkt#D06546 (-1) - main.rkt#1316BB (0) - ctp.scrbl#BA2645 (+1) - category/main.scrbl#49EE54 (-1) - functor/main.scrbl#11C710 (0) - natural transformation/#76B0F0 (+1) - code examples# View CTP docs
just ctp-docs
# Run CTP examples
just ctp-examples
# Verify GF(3) coloring
just ctp-colors