statusfailed
1.2K posts

statusfailed
@statusfailed
founder @ https://t.co/DuFsvLW8Ps


Tangential to this, from Ursula Le Guin:







denote a function f from A to B with `f : A -> B`. likewise denote a partial function with `f : A -| B`. write `f : A -< B` for a nondeterministic function and `f : A -[ B` for a total nondeterministic function. by exploiting mirror symmetry, we may instead choose to write the type of a function as `B <- A : f`. this is just notation and is no different from writing `f : A -> B`. we may mirror the other sorts of functions too. `B |- A : f` for the partial function, `B >- A : f` for the nondeterministic, and `B ]- A : f` for the total nondeterministic. by superimposing the forward and reverse notations atop each other, we can describe a pair of functions that exist in a relationship with one another. for example, the total function `f : A -> B` fuses with the partial function `A |- B : g` to get `f : A |-> B : g` in this case, due to the relationship between f and g, we can deduce that f is an injection. this notation describes many useful sorts of relationships. `f : A >-< B : g` is a general relation between A and B. `f : A >-> B : g` describes a normal function f, as the word "function" is commonly understood. `f : A |-> B : g` is an injection and `f : A ]-> B : g` is a surjection. `f : A <-> B : g` is an isomorphism, and `f : A |-| B : g` is a partial isomorphism this notation ALSO describes exotic relationships like `f : A |-[ B : g` whose standard interpretations are not immediately clear to me









