A semifunctor is a homomorphism between semicategories, like a functor is a homomorphism between categories.
A semifunctor from a semicategory to a semicategory is a map sending each object to an object and each morphism in to morphism in , such that
If is a category, then need not preserve its identity morphisms, but the composition axiom does require that it send them to idempotents in .
In Rel, the bicategory of relations, adjoint pairs of relations are equivalent to functions (see principle of unique choice). Even with the axiom of choice, the analogous theorem for Prof, the bicategory of profunctors, says that an adjoint pair of profunctors is equivalent, not necessarily to a functor, but instead a semifunctor. If the codomain of the semifunctor is Cauchy complete this is equivalent to a functor, which recovers the usual formulation of this theorem.
A mapping of a category into another category that sends to a nontrivial idempotent endomorphism of is a semifunctor but not a functor.
More generally, recall from semicategory that the forgetful functor has a right adjoint , which sends a semicategory to its category of idempotents, or Karoubi envelope. Thus to give a semifunctor from a category to a (semi)category is the same as giving a functor from to the Karoubi envelope of (but beware that this correspondence does not hold for natural transformations).
Semifunctors between categories arise in the study of non-extensional type theories such as lambda calculus with equivalence, but not equivalence for the function type (see Hayashi 85). Whereas with both , a function type can be described as a right adjoint functor to , the non-extensional function type can be described by weakening the requirement to the right adjoint being merely a semifunctor.
An early reference for semifunctors (there called “weak functors”) is:
The terminology semifunctors originates in
whose author proceeds to discuss their adjoint pairs in the context of categorical semantics for a version of the lambda calculus.
Last revised on April 20, 2024 at 22:47:28. See the history of this page for a list of all contributions to it.