I would like to know how to currify a partial mapping $A \times B \to_p C$?

Here, by "partial mapping from $X$ to $Y$", I mean a function from a subset of $X$ to $Y$, as explained here Partial Function.

It is known that $(A \times B) \to C$ is isomorphic to $A \to B \to C$. The isomorphism is known as "currying".

My question is about the relation between $A \times B \to_p C$ and $A \to_p B \to_p C$, where ${\to_p}$ denotes a partial function. Apparently, they are not isomorphic. But I would like to know how we can currify $A \times B \to_p C$?


Edit: My question was really, can we say that $A \to_p (B \to C) )$ is isomorphic to $A \times B \to_p C$? (I think no.) Which set would then be isomorphic to $(A \to_p (B \to C))$ (except itself)?

  • 1
    $\begingroup$ If there is no further structure, partial functions $A\times B\to_p C$ are in 1–1 correspondence with functions $A\to(B\to_p C)$ (i.e., the outer functions are total, the inner ones partial). $\endgroup$ – Emil Jeřábek Oct 5 '12 at 17:44

For plain vanilla sets and functions, a partial function $f$ from $A$ to $B$ can be viewed as essentially the same thing as a total function $g: A \to B + 1$, where the codomain is the disjoint union of $B$ with a 1-element set. The idea is that whenever $f(a)$ is undefined, we define $g(a)$ to be the element of $1$.

Thus, if $Par(A, B)$ denotes the set of partial functions, and $\hom(A, B)$ the set of total functions, we have

$$Par(A \times B, C) \cong \hom(A \times B, C+1) \cong \hom(A, \hom(B, C+1)) \cong \hom(A, Par(B, C))$$

and that tells you how to currify (curryfy?).

For toposes, the situation is just slightly more complicated, but it remains true that partial morphisms into an object $B$ are representable (not by $B+1$ in general, but by something else). But the same currification carries over.

Edit: I was asked to respond to: what about currying (or schoenfinkelifying!) the other way, to $Par(A, \hom(B, C))$. It pretty clearly gives a different result, just by cardinality considerations on finite sets; the difference is pretty stark by considering $A = 1$, where we compare $Par(B, C)$ to $\hom(B, C) + 1$ -- obviously the first is larger if $B$ has two or more elements. Sorry I can't say much more right now.

  • $\begingroup$ Thanks a lot. I see your points! But I cannot upvote... why my name is called "unknown" by the way? $\endgroup$ – user22707 Oct 5 '12 at 18:00
  • $\begingroup$ You can set up a proper user name if you register. $\endgroup$ – Emil Jeřábek Oct 5 '12 at 18:04
  • 1
    $\begingroup$ I prefer to Schoenfinkelify :) $\endgroup$ – François G. Dorais Oct 5 '12 at 18:09
  • $\begingroup$ Concerning my last edited question, using your technique, we get Par(A, Hom (B,C)) = Hom (A , Hom (B,C) + 1) and then it becomes stuck... $\endgroup$ – user22707 Oct 5 '12 at 18:17
  • $\begingroup$ @unknown(google): Indeed, it becomes stuck, and that is as it should be. Par(A,Hom(B,C)) can be regarded as a certain set of partial functions on AxB, but not all such partial functions, only those which, when defined at a point (a,b), are also defined at all the other points (a,b') in the same "column" (i.e., with the same a). $\endgroup$ – Andreas Blass Oct 6 '12 at 11:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.