{
  "aliases": null,
  "backlinks": [
    {
      "field": "defines",
      "target": "9P83YFRWDJ"
    }
  ],
  "body": "\n## Summary\n\nA profunctor, also called a distributor or bimodule, from a category $\\mathcal{C}$ to a category $\\mathcal{D}$ is a [[functor|28NQ0KRHD3]] $\\mathcal{D}^{\\mathrm{op}} \\times \\mathcal{C} \\to \\mathbf{Set}$.\nIt generalizes functors: every functor gives a profunctor.\nIt also generalizes relations: a relation between sets is a profunctor between discrete categories with values in truth values.\nProfunctors compose by a [[coend|W9QTFV0Z8D]], and categories, profunctors and natural transformations form a bicategory.\nThey are the categorical analogue of bimodules between rings.\n\n## Explanations\n\n### L1 human\n\nA function from $X$ to $Y$ assigns to each $x$ one $y$, while a relation only says which pairs $(x, y)$ are related.\nA profunctor does the same for categories, and it says how $x$ and $y$ are related by a set of \"witnesses\" $P(d, c)$.\nThe witnesses can be moved along morphisms in both categories, in opposite directions.\nFor example, the hom-sets $\\Hom(d, c)$ of a category form a profunctor from the category to itself: a morphism is a witness that $d$ maps to $c$.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "kind": "concept",
    "msc": [
      "18D60"
    ],
    "name": "Profunctor",
    "same_as": {
      "wikidata": "Q7248328",
      "wikipedia": "Profunctor"
    },
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Profunctor"
      }
    ],
    "tag": "EAPHAQVVD5"
  },
  "kind": "concept",
  "link": "https://tamnd.github.io/math2/node/EAPHAQVVD5/",
  "links": null,
  "markdown": "https://tamnd.github.io/math2/node/EAPHAQVVD5.md",
  "msc": [
    "18D60"
  ],
  "name": "Profunctor",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/EAP/EAPHAQVVD5.md",
  "status": null,
  "tag": "EAPHAQVVD5",
  "uri": "m2://EAPHAQVVD5",
  "url": "https://tamnd.github.io/math2/wiki/profunctor/",
  "writing": {
    "tag": "EAPHAQVVD5",
    "kind": "concept",
    "level": "W0",
    "next": [
      {
        "what": "a source with a locator",
        "have": 0,
        "want": 1
      }
    ]
  }
}
