|
|
|
|
|
by 082349872349872
1221 days ago
|
|
A/ are you familiar with the APL languages? they often emphasise a difference between changing data-at-locations (hylē) and the arrangement-of-the-locations (morphē). Moving forward from them, one gets Squiggol, then Haskell explorations of "deforestation", then ?? B/ I have been playing around with the following idea lately; does it correspond to anything nicely explainable in your theory? If we have a function f (respecting some sort of structure), we can do 3 (6) particularly nice things with it to get more functions: - f°g precompose with a projection (or a section)
- h°f postcompose with an injection (or a retraction)
- g*°f°g conjugate with a bijection (or the split of an idempotent)
|
|
1. precomposition: with precomposition you should use a function pair (h, 1_b) that has an identity for the second part to form a morphism m: fg -> f like so: https://q.uiver.app/?q=WzAsNCxbMCwyLCJBIl0sWzIsMiwiQiJdLFswL...
2. postcomposition: with postcomposition you should use a function pair (1_b, k) that has an identity for the first part to form a morphism m: f -> hf like so: https://q.uiver.app/?q=WzAsNCxbMCwyLCJBIl0sWzIsMiwiQiJdLFsyL...
3. conjugation: with conjugation you can actually use an equal function pair (g,g) to get a morphism from a function f to its conjugate gfg^{-1}. Then we see that this forms a commutative square for gfg^{-1}g = gf. Thusly, there is always a morphism from any function to its conjugate by a bijection like so: https://q.uiver.app/?q=WzAsNCxbMCwyLCJBIl0sWzIsMiwiQSJdLFswL...
Therefore, I would say that precomposition, postcomposition, and conjugation form special types of morphisms between functions defined by special properties like having one function be the identity or having both functions be equal to one another. Then beyond that we can classify these morphisms by rather or not their components are projections, injections, or bijections to get towards what you are speaking about. This all fits in to the perspective that functions are objects in Sets^(->), so that is nice.
I can't say I've ever used APL but I have heard of it. It has some very interesting syntax and notation, but I have made it far enough to actually try it out yet.