CINXE.COM

profunctor in nLab

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd" > <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> profunctor in nLab </title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="robots" content="index,follow" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link href="/stylesheets/instiki.css?1676280126" media="all" rel="stylesheet" type="text/css" /> <link href="/stylesheets/mathematics.css?1660229990" media="all" rel="stylesheet" type="text/css" /> <link href="/stylesheets/syntax.css?1660229990" media="all" rel="stylesheet" type="text/css" /> <link href="/stylesheets/nlab.css?1676280126" media="all" rel="stylesheet" type="text/css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/dreampulse/computer-modern-web-font@master/fonts.css"/> <style type="text/css"> h1#pageName, div.info, .newWikiWord a, a.existingWikiWord, .newWikiWord a:hover, [actiontype="toggle"]:hover, #TextileHelp h3 { color: #226622; } a:visited.existingWikiWord { color: #164416; } </style> <style type="text/css"><!--/*--><![CDATA[/*><!--*/ .toc ul {margin: 0; padding: 0;} .toc ul ul {margin: 0; padding: 0 0 0 10px;} .toc li > p {margin: 0} .toc ul li {list-style-type: none; position: relative;} .toc div {border-top:1px dotted #ccc;} .rightHandSide h2 {font-size: 1.5em;color:#008B26} table.plaintable { border-collapse:collapse; margin-left:30px; border:0; } .plaintable td {border:1px solid #000; padding: 3px;} .plaintable th {padding: 3px;} .plaintable caption { font-weight: bold; font-size:1.1em; text-align:center; margin-left:30px; } /* Query boxes for questioning and answering mechanism */ div.query{ background: #f6fff3; border: solid #ce9; border-width: 2px 1px; padding: 0 1em; margin: 0 1em; max-height: 20em; overflow: auto; } /* Standout boxes for putting important text */ div.standout{ background: #fff1f1; border: solid black; border-width: 2px 1px; padding: 0 1em; margin: 0 1em; overflow: auto; } /* Icon for links to n-category arXiv documents (commented out for now i.e. disabled) a[href*="http://arxiv.org/"] { background-image: url(../files/arXiv_icon.gif); background-repeat: no-repeat; background-position: right bottom; padding-right: 22px; } */ /* Icon for links to n-category cafe posts (disabled) a[href*="http://golem.ph.utexas.edu/category"] { background-image: url(../files/n-cafe_5.gif); background-repeat: no-repeat; background-position: right bottom; padding-right: 25px; } */ /* Icon for links to pdf files (disabled) a[href$=".pdf"] { background-image: url(../files/pdficon_small.gif); background-repeat: no-repeat; background-position: right bottom; padding-right: 25px; } */ /* Icon for links to pages, etc. -inside- pdf files (disabled) a[href*=".pdf#"] { background-image: url(../files/pdf_entry.gif); background-repeat: no-repeat; background-position: right bottom; padding-right: 25px; } */ a.existingWikiWord { color: #226622; } a.existingWikiWord:visited { color: #226622; } a.existingWikiWord[title] { border: 0px; color: #aa0505; text-decoration: none; } a.existingWikiWord[title]:visited { border: 0px; color: #551111; text-decoration: none; } a[href^="http://"] { border: 0px; color: #003399; } a[href^="http://"]:visited { border: 0px; color: #330066; } a[href^="https://"] { border: 0px; color: #003399; } a[href^="https://"]:visited { border: 0px; color: #330066; } div.dropDown .hide { display: none; } div.dropDown:hover .hide { display:block; } div.clickDown .hide { display: none; } div.clickDown:focus { outline:none; } div.clickDown:focus .hide, div.clickDown:hover .hide { display: block; } div.clickDown .clickToReveal, div.clickDown:focus .clickToHide { display:block; } div.clickDown:focus .clickToReveal, div.clickDown .clickToHide { display:none; } div.clickDown .clickToReveal:after { content: "A(Hover to reveal, click to "hold")"; font-size: 60%; } div.clickDown .clickToHide:after { content: "A(Click to hide)"; font-size: 60%; } div.clickDown .clickToHide, div.clickDown .clickToReveal { white-space: pre-wrap; } .un_theorem, .num_theorem, .un_lemma, .num_lemma, .un_prop, .num_prop, .un_cor, .num_cor, .un_defn, .num_defn, .un_example, .num_example, .un_note, .num_note, .un_remark, .num_remark { margin-left: 1em; } span.theorem_label { margin-left: -1em; } .proof span.theorem_label { margin-left: 0em; } :target { background-color: #BBBBBB; border-radius: 5pt; } /*]]>*/--></style> <script src="/javascripts/prototype.js?1660229990" type="text/javascript"></script> <script src="/javascripts/effects.js?1660229990" type="text/javascript"></script> <script src="/javascripts/dragdrop.js?1660229990" type="text/javascript"></script> <script src="/javascripts/controls.js?1660229990" type="text/javascript"></script> <script src="/javascripts/application.js?1660229990" type="text/javascript"></script> <script src="/javascripts/page_helper.js?1660229990" type="text/javascript"></script> <script src="/javascripts/thm_numbering.js?1660229990" type="text/javascript"></script> <script type="text/x-mathjax-config"> <!--//--><![CDATA[//><!-- MathJax.Ajax.config.path["Contrib"] = "/MathJax"; MathJax.Hub.Config({ MathML: { useMathMLspacing: true }, "HTML-CSS": { scale: 90, extensions: ["handle-floats.js"] } }); MathJax.Hub.Queue( function () { var fos = document.getElementsByTagName('foreignObject'); for (var i = 0; i < fos.length; i++) { MathJax.Hub.Typeset(fos[i]); } }); //--><!]]> </script> <script type="text/javascript"> <!--//--><![CDATA[//><!-- window.addEventListener("DOMContentLoaded", function () { var div = document.createElement('div'); var math = document.createElementNS('http://www.w3.org/1998/Math/MathML', 'math'); document.body.appendChild(div); div.appendChild(math); // Test for MathML support comparable to WebKit version https://trac.webkit.org/changeset/203640 or higher. div.setAttribute('style', 'font-style: italic'); var mathml_unsupported = !(window.getComputedStyle(div.firstChild).getPropertyValue('font-style') === 'normal'); div.parentNode.removeChild(div); if (mathml_unsupported) { // MathML does not seem to be supported... var s = document.createElement('script'); s.src = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=MML_HTMLorMML-full"; document.querySelector('head').appendChild(s); } else { document.head.insertAdjacentHTML("beforeend", '<style>svg[viewBox] {max-width: 100%}</style>'); } }); //--><!]]> </script> <link href="https://ncatlab.org/nlab/atom_with_headlines" rel="alternate" title="Atom with headlines" type="application/atom+xml" /> <link href="https://ncatlab.org/nlab/atom_with_content" rel="alternate" title="Atom with full content" type="application/atom+xml" /> <script type="text/javascript"> document.observe("dom:loaded", function() { generateThmNumbers(); }); </script> </head> <body> <div id="Container"> <div id="Content"> <h1 id="pageName"> <span style="float: left; margin: 0.5em 0.25em -0.25em 0"> <svg xmlns="http://www.w3.org/2000/svg" width="1.872em" height="1.8em" viewBox="0 0 190 181"> <path fill="#226622" d="M72.8 145c-1.6 17.3-15.7 10-23.6 20.2-5.6 7.3 4.8 15 11.4 15 11.5-.2 19-13.4 26.4-20.3 3.3-3 8.2-4 11.2-7.2a14 14 0 0 0 2.9-11.1c-1.4-9.6-12.4-18.6-16.9-27.2-5-9.6-10.7-27.4-24.1-27.7-17.4-.3-.4 26 4.7 30.7 2.4 2.3 5.4 4.1 7.3 6.9 1.6 2.3 2.1 5.8-1 7.2-5.9 2.6-12.4-6.3-15.5-10-8.8-10.6-15.5-23-26.2-31.8-5.2-4.3-11.8-8-18-3.7-7.3 4.9-4.2 12.9.2 18.5a81 81 0 0 0 30.7 23c3.3 1.5 12.8 5.6 10 10.7-2.5 5.2-11.7 3-15.6 1.1-8.4-3.8-24.3-21.3-34.4-13.7-3.5 2.6-2.3 7.6-1.2 11.1 2.8 9 12.2 17.2 20.9 20.5 17.3 6.7 34.3-8 50.8-12.1z"/> <path fill="#a41e32" d="M145.9 121.3c-.2-7.5 0-19.6-4.5-26-5.4-7.5-12.9-1-14.1 5.8-1.4 7.8 2.7 14.1 4.8 21.3 3.4 12 5.8 29-.8 40.1-3.6-6.7-5.2-13-7-20.4-2.1-8.2-12.8-13.2-15.1-1.9-2 9.7 9 21.2 12 30.1 1.2 4 2 8.8 6.4 10.3 6.9 2.3 13.3-4.7 17.7-8.8 12.2-11.5 36.6-20.7 43.4-36.4 6.7-15.7-13.7-14-21.3-7.2-9.1 8-11.9 20.5-23.6 25.1 7.5-23.7 31.8-37.6 38.4-61.4 2-7.3-.8-29.6-13-19.8-14.5 11.6-6.6 37.6-23.3 49.2z"/> <path fill="#193c78" d="M86.3 47.5c0-13-10.2-27.6-5.8-40.4 2.8-8.4 14.1-10.1 17-1 3.8 11.6-.3 26.3-1.8 38 11.7-.7 10.5-16 14.8-24.3 2.1-4.2 5.7-9.1 11-6.7 6 2.7 7.4 9.2 6.6 15.1-2.2 14-12.2 18.8-22.4 27-3.4 2.7-8 6.6-5.9 11.6 2 4.4 7 4.5 10.7 2.8 7.4-3.3 13.4-16.5 21.7-16 14.6.7 12 21.9.9 26.2-5 1.9-10.2 2.3-15.2 3.9-5.8 1.8-9.4 8.7-15.7 8.9-6.1.1-9-6.9-14.3-9-14.4-6-33.3-2-44.7-14.7-3.7-4.2-9.6-12-4.9-17.4 9.3-10.7 28 7.2 35.7 12 2 1.1 11 6.9 11.4 1.1.4-5.2-10-8.2-13.5-10-11.1-5.2-30-15.3-35-27.3-2.5-6 2.8-13.8 9.4-13.6 6.9.2 13.4 7 17.5 12C70.9 34 75 43.8 86.3 47.4z"/> </svg> </span> <span class="webName">nLab</span> profunctor </h1> <div class="navigation"> <span class="skipNav"><a href='#navEnd'>Skip the Navigation Links</a> | </span> <span style="display:inline-block; width: 0.3em;"></span> <a href="/nlab/show/HomePage" accesskey="H" title="Home page">Home Page</a> | <a href="/nlab/all_pages" accesskey="A" title="List of all pages">All Pages</a> | <a href="/nlab/latest_revisions" accesskey="U" title="Latest edits and page creations">Latest Revisions</a> | <a href="https://nforum.ncatlab.org/discussion/10145/#Item_33" title="Discuss this page in its dedicated thread on the nForum" style="color: black">Discuss this page</a> | <form accept-charset="utf-8" action="/nlab/search" id="navigationSearchForm" method="get"> <fieldset class="search"><input type="text" id="searchField" name="query" value="Search" style="display:inline-block; float: left;" onfocus="this.value == 'Search' ? this.value = '' : true" onblur="this.value == '' ? this.value = 'Search' : true" /></fieldset> </form> <span id='navEnd'></span> </div> <div id="revision"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" xml:lang="en" lang="en"> <head><meta http-equiv="Content-type" content="application/xhtml+xml;charset=utf-8" /><title>Contents</title></head> <body> <div class="rightHandSide"> <div class="toc clickDown" tabindex="0"> <h3 id="context">Context</h3> <h4 id="category_theory">Category theory</h4> <div class="hide"><div> <p><strong><a class="existingWikiWord" href="/nlab/show/category+theory">category theory</a></strong></p> <h2 id="sidebar_concepts">Concepts</h2> <ul> <li> <p><a class="existingWikiWord" href="/nlab/show/category">category</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/functor">functor</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/natural+transformation">natural transformation</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/Cat">Cat</a></p> </li> </ul> <h2 id="sidebar_universal_constructions">Universal constructions</h2> <ul> <li> <p><a class="existingWikiWord" href="/nlab/show/universal+construction">universal construction</a></p> <ul> <li> <p><a class="existingWikiWord" href="/nlab/show/representable+functor">representable functor</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/adjoint+functor">adjoint functor</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/limit">limit</a>/<a class="existingWikiWord" href="/nlab/show/colimit">colimit</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/weighted+limit">weighted limit</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/end">end</a>/<a class="existingWikiWord" href="/nlab/show/coend">coend</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/Kan+extension">Kan extension</a></p> </li> </ul> </li> </ul> <h2 id="sidebar_theorems">Theorems</h2> <ul> <li> <p><a class="existingWikiWord" href="/nlab/show/Yoneda+lemma">Yoneda lemma</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/Isbell+duality">Isbell duality</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/Grothendieck+construction">Grothendieck construction</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/adjoint+functor+theorem">adjoint functor theorem</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/monadicity+theorem">monadicity theorem</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/adjoint+lifting+theorem">adjoint lifting theorem</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/Tannaka+duality">Tannaka duality</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/Gabriel-Ulmer+duality">Gabriel-Ulmer duality</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/small+object+argument">small object argument</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/Freyd-Mitchell+embedding+theorem">Freyd-Mitchell embedding theorem</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/relation+between+type+theory+and+category+theory">relation between type theory and category theory</a></p> </li> </ul> <h2 id="sidebar_extensions">Extensions</h2> <ul> <li> <p><a class="existingWikiWord" href="/nlab/show/sheaf+and+topos+theory">sheaf and topos theory</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/enriched+category+theory">enriched category theory</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/higher+category+theory">higher category theory</a></p> </li> </ul> <h2 id="sidebar_applications">Applications</h2> <ul> <li><a class="existingWikiWord" href="/nlab/show/applications+of+%28higher%29+category+theory">applications of (higher) category theory</a></li> </ul> <div> <p> <a href="/nlab/edit/category+theory+-+contents">Edit this sidebar</a> </p> </div></div></div> <h4 id="enriched_category_theory">Enriched category theory</h4> <div class="hide"><div> <p><strong><a class="existingWikiWord" href="/nlab/show/enriched+category+theory">enriched category theory</a></strong></p> <h2 id="background">Background</h2> <ul> <li> <p><a class="existingWikiWord" href="/nlab/show/category+theory">category theory</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/monoidal+category">monoidal category</a>, <a class="existingWikiWord" href="/nlab/show/closed+monoidal+category">closed monoidal category</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/cosmos">cosmos</a>, <a class="existingWikiWord" href="/nlab/show/multicategory">multicategory</a>, <a class="existingWikiWord" href="/nlab/show/bicategory">bicategory</a>, <a class="existingWikiWord" href="/nlab/show/double+category">double category</a>, <a class="existingWikiWord" href="/nlab/show/virtual+double+category">virtual double category</a></p> </li> </ul> <h2 id="basic_concepts">Basic concepts</h2> <ul> <li> <p><a class="existingWikiWord" href="/nlab/show/enriched+category">enriched category</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/enriched+functor">enriched functor</a>, <a class="existingWikiWord" href="/nlab/show/profunctor">profunctor</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/enriched+natural+transformation">enriched natural transformation</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/enriched+adjoint+functor">enriched adjoint functor</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/enriched+product+category">enriched product category</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/enriched+functor+category">enriched functor category</a></p> </li> </ul> <h2 id="universal_constructions">Universal constructions</h2> <ul> <li> <p><a class="existingWikiWord" href="/nlab/show/weighted+limit">weighted limit</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/end">end</a>, <a class="existingWikiWord" href="/nlab/show/coend">coend</a></p> </li> </ul> <h2 id="extra_stuff_structure_property">Extra stuff, structure, property</h2> <ul> <li> <p><a class="existingWikiWord" href="/nlab/show/copowering">copowering</a> (<a class="existingWikiWord" href="/nlab/show/tensoring">tensoring</a>)</p> <p><a class="existingWikiWord" href="/nlab/show/powering">powering</a> (<a class="existingWikiWord" href="/nlab/show/cotensoring">cotensoring</a>)</p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/monoidal+enriched+category">monoidal enriched category</a></p> <ul> <li> <p><a class="existingWikiWord" href="/nlab/show/cartesian+closed+enriched+category">cartesian closed enriched category</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/locally+cartesian+closed+enriched+category">locally cartesian closed enriched category</a></p> </li> </ul> </li> </ul> <h3 id="homotopical_enrichment">Homotopical enrichment</h3> <ul> <li> <p><a class="existingWikiWord" href="/nlab/show/enriched+homotopical+category">enriched homotopical category</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/enriched+model+category">enriched model category</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/model+structure+on+homotopical+presheaves">model structure on homotopical presheaves</a></p> </li> </ul> </div></div> </div> </div> <h1 id="contents">Contents</h1> <div class='maruku_toc'> <ul> <li><a href='#idea'>Idea</a></li> <li><a href='#definition'>Definition</a></li> <li><a href='#the_bicategory_of_profunctors'>The bicategory of profunctors</a></li> <li><a href='#alternative_definitions'>Alternative definitions</a></li> <ul> <li><a href='#FuncsOnPresheaves'>In terms of colimit-preserving functors on presheaf categories</a></li> <li><a href='#in_terms_of_twosided_discrete_fibrations'>In terms of two-sided discrete fibrations</a></li> <li><a href='#in_terms_of_twosided_codiscrete_cofibrations'>In terms of two-sided codiscrete cofibrations</a></li> <li><a href='#comparing_fibrations_and_cofibrations'>Comparing fibrations and cofibrations</a></li> <li><a href='#in_terms_of_spans'>In terms of spans</a></li> </ul> <li><a href='#examples'>Examples</a></li> <li><a href='#Properties'>Properties</a></li> <li><a href='#related_entries'>Related entries</a></li> <li><a href='#references'>References</a></li> <li><a href='#notation'>Notation</a></li> </ul> </div> <h2 id="idea">Idea</h2> <p>The concept of <em>profunctor</em> is a generalization of the concept of <a class="existingWikiWord" href="/nlab/show/functor">functor</a> in much the same way that the concept of <a class="existingWikiWord" href="/nlab/show/bimodule">bimodule</a> generalizes that of <a class="existingWikiWord" href="/nlab/show/associative+algebra">algebra</a> <a class="existingWikiWord" href="/nlab/show/homomorphism">homomorphism</a> (in fact, this may be understood as a special case of enriched profunctors).</p> <h2 id="definition">Definition</h2> <p>If <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math> are <a class="existingWikiWord" href="/nlab/show/categories">categories</a>, then a <strong>profunctor</strong> from <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math> to <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math> is a <a class="existingWikiWord" href="/nlab/show/functor">functor</a> of the form</p> <div class="maruku-equation"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block" class="maruku-mathml"><semantics><mrow><msub><mi>H</mi> <mi>F</mi></msub><mo lspace="verythinmathspace">:</mo><msup><mi>D</mi> <mi>op</mi></msup><mo>×</mo><mi>C</mi><mo>→</mo><mi>Set</mi><mspace width="thinmathspace"></mspace><mo>.</mo></mrow><annotation encoding="application/x-tex"> H_F \colon D^{op}\times C \to Set \,. </annotation></semantics></math></div> <p>Such a profunctor is usually written as <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>F</mi><mo lspace="verythinmathspace">:</mo><mi>C</mi></mrow><annotation encoding="application/x-tex">F\colon C </annotation></semantics></math>⇸<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex"> D</annotation></semantics></math>. For <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>d</mi><mo>∈</mo><mi>D</mi></mrow><annotation encoding="application/x-tex">d \in D</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>c</mi><mo>∈</mo><mi>C</mi></mrow><annotation encoding="application/x-tex">c \in C</annotation></semantics></math> the set <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>H</mi> <mi>F</mi></msub><mo stretchy="false">(</mo><mi>d</mi><mo>,</mo><mi>c</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">H_F(d,c)</annotation></semantics></math> is also called the set of <a class="existingWikiWord" href="/nlab/show/heteromorphisms">heteromorphisms</a> from <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>d</mi></mrow><annotation encoding="application/x-tex">d</annotation></semantics></math> to <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>c</mi></mrow><annotation encoding="application/x-tex">c</annotation></semantics></math>.</p> <p>Every <a class="existingWikiWord" href="/nlab/show/functor">functor</a> <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>f</mi><mo lspace="verythinmathspace">:</mo><mi>C</mi><mo>→</mo><mi>D</mi></mrow><annotation encoding="application/x-tex">f\colon C\to D</annotation></semantics></math> induces two profunctors <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi><mo stretchy="false">(</mo><mn>1</mn><mo>,</mo><mi>f</mi><mo stretchy="false">)</mo><mo lspace="verythinmathspace">:</mo><mi>C</mi></mrow><annotation encoding="application/x-tex">D(1,f)\colon C </annotation></semantics></math>⇸<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex"> D</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi><mo stretchy="false">(</mo><mi>f</mi><mo>,</mo><mn>1</mn><mo stretchy="false">)</mo><mo lspace="verythinmathspace">:</mo><mi>D</mi></mrow><annotation encoding="application/x-tex">D(f,1)\colon D </annotation></semantics></math>⇸<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex"> C</annotation></semantics></math>, defined by <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi><mo stretchy="false">(</mo><mn>1</mn><mo>,</mo><mi>f</mi><mo stretchy="false">)</mo><mo stretchy="false">(</mo><mi>d</mi><mo>,</mo><mi>c</mi><mo stretchy="false">)</mo><mo>=</mo><mi>D</mi><mo stretchy="false">(</mo><mi>d</mi><mo>,</mo><mi>f</mi><mo stretchy="false">(</mo><mi>c</mi><mo stretchy="false">)</mo><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">D(1,f)(d,c) = D(d,f(c))</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi><mo stretchy="false">(</mo><mi>f</mi><mo>,</mo><mn>1</mn><mo stretchy="false">)</mo><mo stretchy="false">(</mo><mi>c</mi><mo>,</mo><mi>d</mi><mo stretchy="false">)</mo><mo>=</mo><mi>D</mi><mo stretchy="false">(</mo><mi>f</mi><mo stretchy="false">(</mo><mi>c</mi><mo stretchy="false">)</mo><mo>,</mo><mi>d</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">D(f,1)(c,d) = D(f(c),d)</annotation></semantics></math>. (Here <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi><mo stretchy="false">(</mo><mo lspace="verythinmathspace" rspace="0em">−</mo><mo>,</mo><mo lspace="verythinmathspace" rspace="0em">−</mo><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">D(-,-)</annotation></semantics></math> denotes the <a class="existingWikiWord" href="/nlab/show/hom+functor">hom functor</a> of <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mn>1</mn></mrow><annotation encoding="application/x-tex">1</annotation></semantics></math> denotes the identity functor on the respective category.) Since this construction may be thought of as the <a class="existingWikiWord" href="/nlab/show/adjunct">adjunct</a> of the composition of <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>f</mi></mrow><annotation encoding="application/x-tex">f</annotation></semantics></math> with the <a class="existingWikiWord" href="/nlab/show/Yoneda+embedding">Yoneda embedding</a> <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi><mover><mo>⟶</mo><mi>f</mi></mover><mi>D</mi><mover><mo>⟶</mo><mi>Yoneda</mi></mover><mo stretchy="false">[</mo><msup><mi>D</mi> <mi>op</mi></msup><mo>,</mo><mi>Set</mi><mo stretchy="false">]</mo></mrow><annotation encoding="application/x-tex">C \stackrel{f}{\longrightarrow} D \stackrel{Yoneda}{\longrightarrow} [D^{op},Set]</annotation></semantics></math>, these profunctors are called <em>representable</em> (or sometimes one of them is called <em>corepresentable</em>) and this way profunctors subsume and generalize ordinary functors.</p> <p>In particular the identity profunctor <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>Id</mi><mo lspace="verythinmathspace">:</mo><mi>C</mi></mrow><annotation encoding="application/x-tex">Id \colon C </annotation></semantics></math>⇸<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex"> C</annotation></semantics></math> is represented by the identity functor and hence is given by the <a class="existingWikiWord" href="/nlab/show/hom-functor">hom-functor</a> <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi><mo stretchy="false">(</mo><mo lspace="verythinmathspace" rspace="0em">−</mo><mo>,</mo><mo lspace="verythinmathspace" rspace="0em">−</mo><mo stretchy="false">)</mo><mo>:</mo><msup><mi>C</mi> <mi>op</mi></msup><mo>×</mo><mi>C</mi><mo>→</mo><mi>Set</mi></mrow><annotation encoding="application/x-tex">C(-,-) : C^{op} \times C \to Set</annotation></semantics></math> itself.</p> <p>The notion generalizes to many other kinds of categories. For instance, if <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math> are <a class="existingWikiWord" href="/nlab/show/enriched+category">enriched</a> over some symmetric <a class="existingWikiWord" href="/nlab/show/closed+monoidal+category">closed monoidal category</a> <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>V</mi></mrow><annotation encoding="application/x-tex">V</annotation></semantics></math>, then a profunctor from <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math> to <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math> is a <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>V</mi></mrow><annotation encoding="application/x-tex">V</annotation></semantics></math>-functor <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msup><mi>D</mi> <mi>op</mi></msup><mo>⊗</mo><mi>C</mi><mo>→</mo><mi>V</mi></mrow><annotation encoding="application/x-tex">D^{op} \otimes C\to V</annotation></semantics></math>. If they are <a class="existingWikiWord" href="/nlab/show/internal+categories">internal categories</a>, then a profunctor <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C </annotation></semantics></math>⇸<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex"> D</annotation></semantics></math> is an <a class="existingWikiWord" href="/nlab/show/internal+diagram">internal diagram</a> on <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msup><mi>D</mi> <mi>op</mi></msup><mo>×</mo><mi>C</mi></mrow><annotation encoding="application/x-tex">D^{op}\times C</annotation></semantics></math>, and so on. There are also other equivalent definitions in each case; see below.</p> <p>A profunctor is also sometimes called a <strong><a class="existingWikiWord" href="/nlab/show/bimodule">(bi)module</a></strong> or a <strong>distributor</strong> or a <strong>relator</strong> or a <strong>correspondence</strong>, though the latter word is also used for a <a class="existingWikiWord" href="/nlab/show/span">span</a>. The term “module” tends to be common in Australia, especially in the enriched case; here the intuition is that for one-object <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>V</mi></mrow><annotation encoding="application/x-tex">V</annotation></semantics></math>-categories, i.e. monoids in <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>V</mi></mrow><annotation encoding="application/x-tex">V</annotation></semantics></math>, profunctors really are the same as <a class="existingWikiWord" href="/nlab/show/bimodules">bimodules</a> between such monoids in the usual sense. “Profunctor” is perhaps more common in the Set-based and internal cases (but is also used in the enriched case); here the intuition is that a profunctor is a generalization of a functor, via the construction of “representable” profunctors. Jean Bénabou, who invented the term and originally used “profunctor,” now prefers “distributor”. One reason for this is that lax functors from a given category to the bicategory of distributors give a notion of “distribution on a category”, formally resembling <a class="existingWikiWord" href="/nlab/show/distributions">distributions</a> qua generalized <a class="existingWikiWord" href="/nlab/show/functions">functions</a> - see <a href="#Benabou95">Bénabou 95</a>.</p> <p>Note that the convention that a profunctor is a functor <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msup><mi>D</mi> <mi>op</mi></msup><mo>×</mo><mi>C</mi><mo>→</mo><mi>Set</mi></mrow><annotation encoding="application/x-tex">D^{op}\times C \to Set</annotation></semantics></math> is not universal; some authors reverse <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math> and/or put the “op” on the other one. See the discussion below.</p> <h2 id="the_bicategory_of_profunctors">The bicategory of profunctors</h2> <p>Profunctors are composed by using a <a class="existingWikiWord" href="/nlab/show/coend">coend</a> to “trace out” the middle variable. Specifically, for profunctors <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>F</mi><mo>:</mo><mi>C</mi></mrow><annotation encoding="application/x-tex">F : C </annotation></semantics></math>⇸<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex"> D</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>G</mi><mo>:</mo><mi>D</mi></mrow><annotation encoding="application/x-tex">G : D </annotation></semantics></math>⇸<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>E</mi></mrow><annotation encoding="application/x-tex"> E</annotation></semantics></math>, their composite <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>G</mi><mo>∘</mo><mi>F</mi><mo>:</mo><mi>C</mi></mrow><annotation encoding="application/x-tex">G \circ F: C </annotation></semantics></math>⇸<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>E</mi></mrow><annotation encoding="application/x-tex"> E</annotation></semantics></math> is defined to be</p> <div class="maruku-equation"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block" class="maruku-mathml"><semantics><mrow><mo stretchy="false">(</mo><mi>G</mi><mo>∘</mo><mi>F</mi><mo stretchy="false">)</mo><mo stretchy="false">(</mo><mi>e</mi><mo>,</mo><mi>c</mi><mo stretchy="false">)</mo><mo>:</mo><mo>=</mo><msup><mo>∫</mo> <mrow><mi>d</mi><mo>∈</mo><mi>D</mi></mrow></msup><mi>F</mi><mo stretchy="false">(</mo><mi>d</mi><mo>,</mo><mi>c</mi><mo stretchy="false">)</mo><mo>⊗</mo><mi>G</mi><mo stretchy="false">(</mo><mi>e</mi><mo>,</mo><mi>d</mi><mo stretchy="false">)</mo><mspace width="thinmathspace"></mspace><mo>.</mo></mrow><annotation encoding="application/x-tex"> (G \circ F)(e,c) := \int^{d \in D} F(d,c)\otimes G(e,d) \,. </annotation></semantics></math></div> <p>This yields a <a class="existingWikiWord" href="/nlab/show/bicategory">bicategory</a> in which</p> <ul> <li> <p><a class="existingWikiWord" href="/nlab/show/objects">objects</a> are <a class="existingWikiWord" href="/nlab/show/small+categories">small categories</a>,</p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/morphism">morphism</a>s are profunctors with the above composition, and</p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/2-morphisms">2-morphisms</a> are <a class="existingWikiWord" href="/nlab/show/natural+transformation">natural transformation</a>s.</p> </li> </ul> <p>This bicategory is variously denoted <a class="existingWikiWord" href="/nlab/show/Prof">Prof</a>, <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>Mod</mi></mrow><annotation encoding="application/x-tex">Mod</annotation></semantics></math>, or <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>Dist</mi></mrow><annotation encoding="application/x-tex">Dist</annotation></semantics></math>, according to one’s chosen name for profunctors. In the <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>V</mi></mrow><annotation encoding="application/x-tex">V</annotation></semantics></math>-enriched case, it is written <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>V</mi><mi>Prof</mi></mrow><annotation encoding="application/x-tex">V Prof</annotation></semantics></math> or <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>V</mi><mi>Mod</mi></mrow><annotation encoding="application/x-tex">V Mod</annotation></semantics></math> or <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>V</mi><mi>Dist</mi></mrow><annotation encoding="application/x-tex">V Dist</annotation></semantics></math>.</p> <p>The construction of the “representable” profunctors <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi><mo stretchy="false">(</mo><mn>1</mn><mo>,</mo><mi>f</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">D(1,f)</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi><mo stretchy="false">(</mo><mi>f</mi><mo>,</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">D(f,1)</annotation></semantics></math> from a functor <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>f</mi><mo lspace="verythinmathspace">:</mo><mi>C</mi><mo>→</mo><mi>D</mi></mrow><annotation encoding="application/x-tex">f\colon C\to D</annotation></semantics></math> yield two identity-on-objects functors <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>Cat</mi><mo>→</mo><mi>Prof</mi></mrow><annotation encoding="application/x-tex">Cat \to Prof</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msup><mi>Cat</mi> <mi>op</mi></msup><mo>→</mo><mi>Prof</mi></mrow><annotation encoding="application/x-tex">Cat^{op}\to Prof</annotation></semantics></math>. Moreover, it is easy to check that <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi><mo stretchy="false">(</mo><mn>1</mn><mo>,</mo><mi>f</mi><mo stretchy="false">)</mo><mo>⊢</mo><mi>D</mi><mo stretchy="false">(</mo><mi>f</mi><mo>,</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">D(1,f) \vdash D(f,1)</annotation></semantics></math> in the bicategory <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>Prof</mi></mrow><annotation encoding="application/x-tex">Prof</annotation></semantics></math>; thus <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>Cat</mi><mo>→</mo><mi>Prof</mi></mrow><annotation encoding="application/x-tex">Cat\to Prof</annotation></semantics></math> is a <a class="existingWikiWord" href="/nlab/show/proarrow+equipment">proarrow equipment</a> in the sense of Wood (in fact, the prototypical one). This same fact can also be expressed by defining a (pseudo) <a class="existingWikiWord" href="/nlab/show/double+category">double category</a> in which functors and profunctors are the two kinds of arrows; the construction of representable profunctors is then given by <a class="existingWikiWord" href="/nlab/show/companion">companion</a>s and <a class="existingWikiWord" href="/nlab/show/conjoint">conjoint</a>s in this double category, which make it a <a class="existingWikiWord" href="/nlab/show/framed+bicategory">framed bicategory</a>, hence an equivalent representation of a proarrow equipment.</p> <p>The <a class="existingWikiWord" href="/nlab/show/full+sub-2-category">full sub-2-category</a> <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>Prof</mi> <mi>rep</mi></msub></mrow><annotation encoding="application/x-tex">Prof_{rep}</annotation></semantics></math> on representable profunctors is equivalent to <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>Cat</mi> <mi>ana</mi></msub></mrow><annotation encoding="application/x-tex">Cat_{ana}</annotation></semantics></math>, the 2-category of <a class="existingWikiWord" href="/nlab/show/anafunctor">anafunctor</a>s. See there for more details.</p> <h2 id="alternative_definitions">Alternative definitions</h2> <h3 id="FuncsOnPresheaves">In terms of colimit-preserving functors on presheaf categories</h3> <p>A basic fact (e.g. Kashiwara, Schapira, <a class="existingWikiWord" href="/nlab/show/Categories+and+Sheaves">Categories and Sheaves</a>, corollary 2.7.4, page 63) is that for <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>A</mi></mrow><annotation encoding="application/x-tex">A</annotation></semantics></math> a <a class="existingWikiWord" href="/nlab/show/cocomplete+category">cocomplete category</a>, <a class="existingWikiWord" href="/nlab/show/cocontinuous+functor">colimit-preserving functors</a> from <a class="existingWikiWord" href="/nlab/show/presheaf">presheaves</a> on some small category <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math> to <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>A</mi></mrow><annotation encoding="application/x-tex">A</annotation></semantics></math> are canonically equivalent to functors from <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math> to <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>A</mi></mrow><annotation encoding="application/x-tex">A</annotation></semantics></math>: we have an equivalence of <a class="existingWikiWord" href="/nlab/show/functor+category">functor categories</a></p> <div class="maruku-equation"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block" class="maruku-mathml"><semantics><mrow><mi>Cocont</mi><mo stretchy="false">(</mo><mi>PSh</mi><mo stretchy="false">(</mo><mi>C</mi><mo stretchy="false">)</mo><mo>,</mo><mi>A</mi><mo stretchy="false">)</mo><mo>≃</mo><mi>Func</mi><mo stretchy="false">(</mo><mi>C</mi><mo>,</mo><mi>A</mi><mo stretchy="false">)</mo><mspace width="thinmathspace"></mspace><mo>.</mo></mrow><annotation encoding="application/x-tex"> Cocont(PSh(C),A) \simeq Func(C,A) \,. </annotation></semantics></math></div> <p>This may be thought of as a consequence of the <a class="existingWikiWord" href="/nlab/show/co-Yoneda+lemma">co-Yoneda lemma</a> (and hence, of course, of the <a class="existingWikiWord" href="/nlab/show/Yoneda+lemma">Yoneda lemma</a>) which says that every presheaf is a colimit over <a class="existingWikiWord" href="/nlab/show/representable+functor">representables</a>, i.e. over objects in the image of the <a class="existingWikiWord" href="/nlab/show/Yoneda+embedding">Yoneda embedding</a> <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>Y</mi><mo>:</mo><mi>C</mi><mo>→</mo><mi>PSh</mi><mo stretchy="false">(</mo><mi>C</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">Y : C \to PSh(C)</annotation></semantics></math>. This immediately implies that a colimit-preserving functor on <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>PSh</mi><mo stretchy="false">(</mo><mi>C</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">PSh(C)</annotation></semantics></math> is already determined by its restriction along <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>Y</mi></mrow><annotation encoding="application/x-tex">Y</annotation></semantics></math> to <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math>.</p> <p>Now, profunctors <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msup><mi>D</mi> <mi>op</mi></msup><mo>⊗</mo><mi>C</mi><mo>→</mo><mi>V</mi></mrow><annotation encoding="application/x-tex">D^{op} \otimes C \to V</annotation></semantics></math> are <a class="existingWikiWord" href="/nlab/show/adjunct">adjunct</a> to functors <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi><mo>→</mo><mo stretchy="false">[</mo><msup><mi>D</mi> <mi>op</mi></msup><mo>,</mo><mi>V</mi><mo stretchy="false">]</mo><mo>≃</mo><mi>PSh</mi><mo stretchy="false">(</mo><mi>D</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">C \to [D^{op}, V] \simeq PSh(D)</annotation></semantics></math>. Hence by the above, profunctors are equivalent to colimit-preserving functors</p> <div class="maruku-equation"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block" class="maruku-mathml"><semantics><mrow><mi>PSh</mi><mo stretchy="false">(</mo><mi>C</mi><mo stretchy="false">)</mo><mo>→</mo><mi>PSh</mi><mo stretchy="false">(</mo><mi>D</mi><mo stretchy="false">)</mo><mspace width="thinmathspace"></mspace><mo>.</mo></mrow><annotation encoding="application/x-tex"> PSh(C) \to PSh(D) \,. </annotation></semantics></math></div> <p>Indeed, there is an equivalence of bicategories between <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>V</mi><mi>Prof</mi></mrow><annotation encoding="application/x-tex">V Prof</annotation></semantics></math> and the 2-category of categories and colimit-preserving functors and natural transformations between their presheaf categories. Note that the latter is a <a class="existingWikiWord" href="/nlab/show/strict+2-category">strict 2-category</a> which can thus serve as a “natural” strictification of <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>V</mi><mi>Prof</mi></mrow><annotation encoding="application/x-tex">V Prof</annotation></semantics></math> (e.g. <a href="#Cattani99">Cattani 1999, Prop. 4.2.4</a>).</p> <p>From this perspective, the representable profunctor induced by an ordinary <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>V</mi></mrow><annotation encoding="application/x-tex">V</annotation></semantics></math>-functor <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>f</mi><mo>:</mo><mi>C</mi><mo>→</mo><mi>D</mi></mrow><annotation encoding="application/x-tex">f : C \to D</annotation></semantics></math> is the <a class="existingWikiWord" href="/nlab/show/adjunct">adjunct</a> of the postcomposition</p> <div class="maruku-equation"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block" class="maruku-mathml"><semantics><mrow><mi>C</mi><mover><mo>→</mo><mi>f</mi></mover><mi>D</mi><mover><mo>→</mo><mi>Y</mi></mover><mo stretchy="false">[</mo><msup><mi>D</mi> <mi>op</mi></msup><mo>,</mo><mi>V</mi><mo stretchy="false">]</mo></mrow><annotation encoding="application/x-tex"> C \stackrel{f}{\to} D \stackrel{Y}{\to} [D^{op},V] </annotation></semantics></math></div> <p>with the <a class="existingWikiWord" href="/nlab/show/Yoneda+embedding">Yoneda embedding</a> under the Hom-adjunction.</p> <p>The formulation of profunctors as colimit-preserving functors on presheaf categories plays a big role also in the context of <a class="existingWikiWord" href="/nlab/show/%28%E2%88%9E%2C1%29-categories">(∞,1)-categories</a>. A <a class="existingWikiWord" href="/nlab/show/presentable+%28%E2%88%9E%2C1%29-category">presentable (∞,1)-category</a> is one equivalent to a <a class="existingWikiWord" href="/nlab/show/localization">localization</a> of some <a class="existingWikiWord" href="/nlab/show/%28%E2%88%9E%2C1%29-category+of+%28%E2%88%9E%2C1%29-presheaves">(∞,1)-category of (∞,1)-presheaves</a> (i.e. some <a class="existingWikiWord" href="/nlab/show/reflective+%28%E2%88%9E%2C1%29-subcategory">reflective (∞,1)-subcategory</a> of the latter). The collection of all <a class="existingWikiWord" href="/nlab/show/presentable+%28%E2%88%9E%2C1%29-categories">presentable (∞,1)-categories</a> and colimit-preserving <a class="existingWikiWord" href="/nlab/show/%28%E2%88%9E%2C1%29-functors">(∞,1)-functors</a> betweem them forms the <a class="existingWikiWord" href="/nlab/show/symmetric+monoidal+%28%E2%88%9E%2C1%29-category+of+presentable+%28%E2%88%9E%2C1%29-categories">symmetric monoidal (∞,1)-category of presentable (∞,1)-categories</a>, whose <a class="existingWikiWord" href="/nlab/show/tensor+product">tensor product</a> is the “bilinear” tensor product coming from interpreting colimit-preserving functors as “linear” (reading: colimit <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mo>∼</mo></mrow><annotation encoding="application/x-tex">\sim</annotation></semantics></math> sum).</p> <p>This <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mo stretchy="false">(</mo><mn>∞</mn><mo>,</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">(\infty,1)</annotation></semantics></math>-category <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msup><mi>Pr</mi> <mi>L</mi></msup></mrow><annotation encoding="application/x-tex">Pr^L</annotation></semantics></math> therefore is an <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mo stretchy="false">(</mo><mn>∞</mn><mo>,</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">(\infty,1)</annotation></semantics></math>-analog of <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>Set</mi><mtext>-</mtext><mi>Mod</mi></mrow><annotation encoding="application/x-tex">Set\text{-}Mod</annotation></semantics></math>. In <a class="existingWikiWord" href="/nlab/show/geometric+%E2%88%9E-function+theory">geometric ∞-function theory</a> one finds (see section 4 there) that morphisms in <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msup><mi>Pr</mi> <mi>L</mi></msup></mrow><annotation encoding="application/x-tex">Pr^L</annotation></semantics></math> encode the “correspondence operations” such as Fourier-Mukai and its generalizations. See in that context also the examples below.</p> <h3 id="in_terms_of_twosided_discrete_fibrations">In terms of two-sided discrete fibrations</h3> <p>Recall that a functor <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msup><mi>D</mi> <mi>op</mi></msup><mo>→</mo><mi>Set</mi></mrow><annotation encoding="application/x-tex">D^{op}\to Set</annotation></semantics></math> can equivalently be described as a <a class="existingWikiWord" href="/nlab/show/discrete+fibration">discrete</a> <a class="existingWikiWord" href="/nlab/show/%28Grothendieck%29+fibration">(Grothendieck) fibration</a>, and similarly a functor <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi><mo>→</mo><mi>Set</mi></mrow><annotation encoding="application/x-tex">C\to Set</annotation></semantics></math> can be described as a discrete opfibration. Thus, a profunctor <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msup><mi>D</mi> <mi>op</mi></msup><mo>×</mo><mi>C</mi><mo>→</mo><mi>Set</mi></mrow><annotation encoding="application/x-tex">D^{op}\times C\to Set</annotation></semantics></math> could be described by a discrete opfibration over <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msup><mi>D</mi> <mi>op</mi></msup><mo>×</mo><mi>C</mi></mrow><annotation encoding="application/x-tex">D^{op}\times C</annotation></semantics></math>, or a discrete fibration over <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi><mo>×</mo><msup><mi>C</mi> <mi>op</mi></msup></mrow><annotation encoding="application/x-tex">D\times C^{op}</annotation></semantics></math>, but there is also a more directly “two-sided” fibrational description. A <em><a class="existingWikiWord" href="/nlab/show/two-sided+fibration">two-sided fibration</a></em> from <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math> to <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math> is a functor <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>E</mi><mo>→</mo><mi>C</mi><mo>×</mo><mi>D</mi></mrow><annotation encoding="application/x-tex">E\to C\times D</annotation></semantics></math> which is a fibration over <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math> and an opfibration over <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math> in a compatible way. Such a fibration represents a pseudofunctor <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msup><mi>D</mi> <mi>op</mi></msup><mo>×</mo><mi>C</mi><mo>→</mo><mi>Cat</mi></mrow><annotation encoding="application/x-tex">D^{op}\times C\to Cat</annotation></semantics></math>, and hence if it is discrete it represents a profunctor <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msup><mi>D</mi> <mi>op</mi></msup><mo>×</mo><mi>C</mi><mo>→</mo><mi>Set</mi></mrow><annotation encoding="application/x-tex">D^{op}\times C\to Set</annotation></semantics></math>.</p> <p>This definition/characterization of profunctors works for internal categories as well, but <em>not</em> for enriched ones. It is sometimes called the <a class="existingWikiWord" href="/nlab/show/graph+of+a+profunctor">graph of a profunctor</a> (although this is sometimes also used for the other fibrational representations mentioned above).</p> <h3 id="in_terms_of_twosided_codiscrete_cofibrations">In terms of two-sided codiscrete cofibrations</h3> <p>Yet another way of representing profunctors is via their <a class="existingWikiWord" href="/nlab/show/collages">collages</a>, also called <a class="existingWikiWord" href="/nlab/show/cograph+of+a+profunctor">cographs</a>. The collage of a profunctor <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>H</mi><mo lspace="verythinmathspace">:</mo><mi>C</mi></mrow><annotation encoding="application/x-tex">H\colon C</annotation></semantics></math>⇸<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex"> D</annotation></semantics></math> is, in particular, a category <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mover><mi>H</mi><mo stretchy="false">¯</mo></mover></mrow><annotation encoding="application/x-tex">\bar{H}</annotation></semantics></math> equipped with functors <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi><mo>→</mo><mover><mi>H</mi><mo stretchy="false">¯</mo></mover></mrow><annotation encoding="application/x-tex">C\to \bar{H}</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi><mo>→</mo><mover><mi>H</mi><mo stretchy="false">¯</mo></mover></mrow><annotation encoding="application/x-tex">D\to\bar{H}</annotation></semantics></math> which are <a class="existingWikiWord" href="/nlab/show/fully+faithful+functor">fully faithful</a> and jointly bijective on objects.</p> <p>In fact, the objects of the <a class="existingWikiWord" href="/nlab/show/undercategory">undercategory</a> <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mo stretchy="false">(</mo><mi>C</mi><mo>⊔</mo><mi>D</mi><mo stretchy="false">)</mo><mo stretchy="false">/</mo><mi>Cat</mi></mrow><annotation encoding="application/x-tex">(C\sqcup D)/Cat</annotation></semantics></math> which are collages of profunctors <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math>⇸<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math> can be characterized, up to equivalence, as the two-sided <a class="existingWikiWord" href="/nlab/show/codiscrete+cofibrations">codiscrete cofibrations</a>, i.e. the two-sided discrete fibrations in <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msup><mi>Cat</mi> <mi>op</mi></msup></mrow><annotation encoding="application/x-tex">Cat^{op}</annotation></semantics></math>. In simpler and more explicit language, these are the categories <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>M</mi></mrow><annotation encoding="application/x-tex">M</annotation></semantics></math> which contain <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math> as disjoint full subcategories which are jointly-<a class="existingWikiWord" href="/nlab/show/wide+subcategory">wide</a> (i.e. together contain all the objects), and such that there are no morphisms from an object of <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math> to an object of <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math>. Equivalently, they are the categories which admit a functor to the <a class="existingWikiWord" href="/nlab/show/interval+category">interval category</a> <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>I</mi></mrow><annotation encoding="application/x-tex">I</annotation></semantics></math> such that <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math> is the fiber over <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mn>0</mn></mrow><annotation encoding="application/x-tex">0</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math> is the fiber over <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mn>1</mn></mrow><annotation encoding="application/x-tex">1</annotation></semantics></math>.</p> <p>When viewing a profunctor <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>H</mi><mo lspace="verythinmathspace">:</mo><mi>C</mi></mrow><annotation encoding="application/x-tex">H\colon C</annotation></semantics></math>⇸<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math> in this way, one may sometimes speak of elements of <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>H</mi><mo stretchy="false">(</mo><mi>d</mi><mo>,</mo><mi>c</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">H(d,c)</annotation></semantics></math> as <em>heteromorphisms</em> from <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>d</mi></mrow><annotation encoding="application/x-tex">d</annotation></semantics></math> to <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>c</mi></mrow><annotation encoding="application/x-tex">c</annotation></semantics></math>, since they are morphisms in the category <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mover><mi>H</mi><mo stretchy="false">¯</mo></mover></mrow><annotation encoding="application/x-tex">\bar{H}</annotation></semantics></math> and can be “composed” with morphisms of <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math> (this corresponds to the “action” of <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math> on <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>H</mi></mrow><annotation encoding="application/x-tex">H</annotation></semantics></math> in the other formulations), but they go between objects of two different categories (namely <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math>).</p> <p>This characterization works just as well in both the internal and enriched case. Perhaps surprisingly, it also tends to give the “right” notion of profunctor starting with many other, even more exotic, 2-categories. However, it is trickier to figure out how to define the composite of profunctors viewed as codiscrete cofibrations; see <a class="existingWikiWord" href="/nlab/show/codiscrete+cofibration">codiscrete cofibration</a>.</p> <h3 id="comparing_fibrations_and_cofibrations">Comparing fibrations and cofibrations</h3> <p>If <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi><mover><mo>→</mo><mi>g</mi></mover><mover><mi>H</mi><mo stretchy="false">¯</mo></mover><mover><mo>←</mo><mi>f</mi></mover><mi>D</mi></mrow><annotation encoding="application/x-tex">C \overset{g}{\to} \bar{H} \overset{f}{\leftarrow} D</annotation></semantics></math> is a codiscrete cofibration representing a profunctor <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>H</mi></mrow><annotation encoding="application/x-tex">H</annotation></semantics></math> from <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math> to <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math>, then the two-sided discrete fibration representing the same profunctor can be obtained as the <a class="existingWikiWord" href="/nlab/show/comma+category">comma category</a> <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mo stretchy="false">(</mo><mi>f</mi><mo stretchy="false">↓</mo><mi>g</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">(f\downarrow g)</annotation></semantics></math> with its two projections to <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math>.</p> <p>Dually, if <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi><mover><mo>←</mo><mi>p</mi></mover><mi>E</mi><mover><mo>→</mo><mi>q</mi></mover><mi>D</mi></mrow><annotation encoding="application/x-tex">C \overset{p}{\leftarrow} E \overset{q}{\to} D</annotation></semantics></math> is a two-sided discrete fibration representing a profunctor from <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math> to <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math>, then the codiscrete cofibration representing the same profunctor can be obtained as the <span class="newWikiWord">cocomma object<a href="/nlab/new/cocomma+object">?</a></span> <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mo stretchy="false">(</mo><mi>q</mi><mo stretchy="false">↑</mo><mi>p</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">(q\uparrow p)</annotation></semantics></math> with the two inclusions of <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math>.</p> <p>In fact, in any 2-category with comma and cocomma objects, we have an <a class="existingWikiWord" href="/nlab/show/adjunction">adjunction</a></p> <div class="maruku-equation"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block" class="maruku-mathml"><semantics><mrow><mi>cocomma</mi><mo>:</mo><mi>Span</mi><mo stretchy="false">(</mo><mi>C</mi><mo>,</mo><mi>D</mi><mo stretchy="false">)</mo><mspace width="thickmathspace"></mspace><mo>⇄</mo><mspace width="thickmathspace"></mspace><mi>Cospan</mi><mo stretchy="false">(</mo><mi>C</mi><mo>,</mo><mi>D</mi><mo stretchy="false">)</mo><mo>:</mo><mi>comma</mi><mo>.</mo></mrow><annotation encoding="application/x-tex"> cocomma: Span(C,D) \;\rightleftarrows\; Cospan(C,D) : comma. </annotation></semantics></math></div> <p>One can show that comma objects are always discrete fibrations, and dually cocomma objects are always codiscrete cofibrations. In <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>Cat</mi></mrow><annotation encoding="application/x-tex">Cat</annotation></semantics></math> and other similar 2-categories, this adjunction is <a class="existingWikiWord" href="/nlab/show/idempotent+adjunction">idempotent</a> and restricts to an equivalence between the categories of discrete fibrations and codiscrete cofibrations (both of which are of course equivalent to the category of profunctors from <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math> to <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math>). This is a two-sided version of the <a class="existingWikiWord" href="/nlab/show/Grothendieck+construction">Grothendieck construction</a>.</p> <h3 id="in_terms_of_spans">In terms of spans</h3> <p>A profunctor <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>F</mi></mrow><annotation encoding="application/x-tex">F</annotation></semantics></math> between <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math> can also be viewed as a span <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>C</mi> <mn>0</mn></msub><mo>←</mo><msub><mi>F</mi> <mn>1</mn></msub><mo>→</mo><msub><mi>D</mi> <mn>0</mn></msub></mrow><annotation encoding="application/x-tex">C_0 \leftarrow F_1 \rightarrow D_0</annotation></semantics></math> that is compatible with composition in <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math> in an appropriate way. This formulation falls out from the definition of a category as a <a class="existingWikiWord" href="/nlab/show/monad">monad</a> in the <a class="existingWikiWord" href="/nlab/show/bicategory">bicategory</a> (more generally <a class="existingWikiWord" href="/nlab/show/double+category">double category</a>) <a class="existingWikiWord" href="/nlab/show/Span">Span</a> and defining a profunctor to be a <a class="existingWikiWord" href="/nlab/show/module+over+a+monad">bimodule</a>. The formulation in terms of double categories can be used to produce the appropriate notion of both enriched and internal profunctors.</p> <h2 id="examples">Examples</h2> <ul> <li> <p>Recall that a one-object <a class="existingWikiWord" href="/nlab/show/Vect">Vect</a>-<a class="existingWikiWord" href="/nlab/show/enriched+category">enriched category</a> is just an <a class="existingWikiWord" href="/nlab/show/algebra">algebra</a>, while a general <a class="existingWikiWord" href="/nlab/show/Vect">Vect</a>-<a class="existingWikiWord" href="/nlab/show/enriched+category">enriched category</a> is an <a class="existingWikiWord" href="/nlab/show/algebroid">algebroid</a>. The full sub-bicategory of <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>Vect</mi><mo lspace="0em" rspace="thinmathspace">Mod</mo></mrow><annotation encoding="application/x-tex">Vect\Mod</annotation></semantics></math> on one-object <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>Vect</mi></mrow><annotation encoding="application/x-tex">Vect</annotation></semantics></math>-enriched categories is the familiar category of <a class="existingWikiWord" href="/nlab/show/algebras">algebras</a>, <a class="existingWikiWord" href="/nlab/show/bimodules">bimodules</a> and bimodule homomorphisms. In this case, the “representable” profunctors correspond to the way in which every morphism <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>A</mi><mo>→</mo><mi>B</mi></mrow><annotation encoding="application/x-tex">A \to B</annotation></semantics></math> of <a class="existingWikiWord" href="/nlab/show/algebras">algebras</a> induces the <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>A</mi></mrow><annotation encoding="application/x-tex">A</annotation></semantics></math>-<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>B</mi></mrow><annotation encoding="application/x-tex">B</annotation></semantics></math> bimodule which as a vector space is <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>B</mi></mrow><annotation encoding="application/x-tex">B</annotation></semantics></math> with obvious right <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>B</mi></mrow><annotation encoding="application/x-tex">B</annotation></semantics></math> action and left <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>A</mi></mrow><annotation encoding="application/x-tex">A</annotation></semantics></math>-action induced by first mapping <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>A</mi></mrow><annotation encoding="application/x-tex">A</annotation></semantics></math> to <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>B</mi></mrow><annotation encoding="application/x-tex">B</annotation></semantics></math> via <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>f</mi></mrow><annotation encoding="application/x-tex">f</annotation></semantics></math> and then using multiplication in <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>B</mi></mrow><annotation encoding="application/x-tex">B</annotation></semantics></math>.</p> </li> <li> <p>The full sub-bicategory of <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>Set</mi><mi>Prof</mi></mrow><annotation encoding="application/x-tex">Set Prof</annotation></semantics></math> on <a class="existingWikiWord" href="/nlab/show/discrete+category">discrete categories</a> is the bicategory of sets, <a class="existingWikiWord" href="/nlab/show/spans">spans</a> of sets and morphisms of spans:</p> <div class="maruku-equation"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block" class="maruku-mathml"><semantics><mrow><mi>Set</mi><msub><mo lspace="0em" rspace="thinmathspace">Mod</mo> <mi>disc</mi></msub><mo>≃</mo><mi>Span</mi><mo stretchy="false">(</mo><mi>Set</mi><mo stretchy="false">)</mo><mspace width="thinmathspace"></mspace><mo>.</mo></mrow><annotation encoding="application/x-tex"> Set\Mod_{disc} \simeq Span(Set) \,. </annotation></semantics></math></div> <p>In particular a <a class="existingWikiWord" href="/nlab/show/relation">relation</a> between sets is a special case of this. From this point of view the 2-category <a class="existingWikiWord" href="/nlab/show/Prof">Prof</a> of profunctors is a <a class="existingWikiWord" href="/nlab/show/categorification">categorification</a> of the category <a class="existingWikiWord" href="/nlab/show/Rel">Rel</a> of sets and relations.</p> <p>Moreover, the representable profunctor between discrete category induced by a <a class="existingWikiWord" href="/nlab/show/function">function</a> <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>f</mi><mo>:</mo><mi>C</mi><mo>→</mo><mi>D</mi></mrow><annotation encoding="application/x-tex">f : C \to D</annotation></semantics></math> of sets is the span</p> <div class="maruku-equation"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block" class="maruku-mathml"><semantics><mrow><mrow><mtable><mtr><mtd></mtd> <mtd></mtd> <mtd><mi>C</mi></mtd></mtr> <mtr><mtd></mtd> <mtd><msup><mrow></mrow> <mi>Id</mi></msup><mo>↙</mo></mtd> <mtd></mtd> <mtd><msup><mo>↘</mo> <mi>f</mi></msup></mtd></mtr> <mtr><mtd><mi>C</mi></mtd> <mtd></mtd> <mtd></mtd> <mtd></mtd> <mtd><mi>D</mi></mtd></mtr></mtable></mrow><mspace width="thinmathspace"></mspace><mo>.</mo></mrow><annotation encoding="application/x-tex"> \array{ &amp;&amp; C \\ &amp; {}^{Id}\swarrow &amp;&amp; \searrow^{f} \\ C &amp;&amp;&amp;&amp; D } \,. </annotation></semantics></math></div></li> <li> <p>Similarly, the full sub-bicategory of internal profunctors in <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>S</mi><mo>=</mo><mo stretchy="false">(</mo><msup><mi>Set</mi> <mi>op</mi></msup><mo>,</mo><mo>×</mo><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">S = (Set^{op}, \times)</annotation></semantics></math> on “discrete categories” is the bicategory of <a class="existingWikiWord" href="/nlab/show/cospans">cospans</a></p> <div class="maruku-equation"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block" class="maruku-mathml"><semantics><mrow><msup><mi>Set</mi> <mi>op</mi></msup><msub><mo lspace="0em" rspace="thinmathspace">Mod</mo> <mi>disc</mi></msub><mo>≃</mo><mi>Span</mi><mo stretchy="false">(</mo><msup><mi>Set</mi> <mi>op</mi></msup><mo stretchy="false">)</mo><mo>=</mo><mi>Cospan</mi><mo stretchy="false">(</mo><mi>Set</mi><mo stretchy="false">)</mo><mspace width="thinmathspace"></mspace><mo>.</mo></mrow><annotation encoding="application/x-tex"> Set^{op}\Mod_{disc} \simeq Span(Set^{op}) = Cospan(Set) \,. </annotation></semantics></math></div></li> <li> <p>for <a class="existingWikiWord" href="/nlab/show/enriched+category">enrichment</a> over a <a class="existingWikiWord" href="/nlab/show/category+of+chain+complexes">category of chain complexes</a> an <a class="existingWikiWord" href="/nlab/show/enriched+category">enriched category</a> is a <a class="existingWikiWord" href="/nlab/show/dg-category">dg-category</a> and a profunctor is now a dg-<a class="existingWikiWord" href="/nlab/show/bimodule">bimodule</a> of dg-categories. This appears notably in the definition of <a class="existingWikiWord" href="/nlab/show/noncommutative+motives">noncommutative motives</a>.</p> </li> </ul> <h2 id="Properties">Properties</h2> <ul> <li> <p>If a <a class="existingWikiWord" href="/nlab/show/functor">functor</a> represents a given profunctor, then the action of the functor on morphisms is determined by the action of the profunctor and the representation isomorphism. For details see at <em><a class="existingWikiWord" href="/nlab/show/representability+determines+functoriality">representability determines functoriality</a></em></p> </li> <li> <p>If <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>𝒟</mi></mrow><annotation encoding="application/x-tex">\mathcal{D}</annotation></semantics></math> is <a class="existingWikiWord" href="/nlab/show/Cauchy+complete+category">Cauchy complete</a>, then the profunctors that correspond to functors (via Yoneda, which here looks like <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>F</mi><mo>↦</mo><msub><mi>F</mi> <mo>*</mo></msub></mrow><annotation encoding="application/x-tex">F\mapsto F_*</annotation></semantics></math>, with <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>F</mi> <mo>*</mo></msub><mo stretchy="false">(</mo><mi>d</mi><mo>,</mo><mi>c</mi><mo stretchy="false">)</mo><mo>=</mo><mi>𝒟</mi><mo stretchy="false">(</mo><mi>d</mi><mo>,</mo><mi>F</mi><mi>c</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">F_*(d,c)=\mathcal{D}(d,F c)</annotation></semantics></math>) are exactly those that admit right adjoints. In general, right adjoint profunctors correspond to functors into the <a class="existingWikiWord" href="/nlab/show/Cauchy+complete+category#InOrdinaryCatTheoryByProfunctors">Cauchy completion</a> of their codomain.</p> </li> </ul> <h2 id="related_entries">Related entries</h2> <ul> <li> <p><a class="existingWikiWord" href="/nlab/show/module">module</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/2-vector+space">2-vector space</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/double+profunctor">double profunctor</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/nucleus+of+a+profunctor">nucleus of a profunctor</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/Mealy+morphism">Mealy morphism</a></p> </li> </ul> <h2 id="references">References</h2> <p>Original articles:</p> <ul> <li> <p><a class="existingWikiWord" href="/nlab/show/Maren+Justesen">Maren Justesen</a>, <em>Bikategorien af Profunktorer</em>, Aarhus 1968 (<a href="https://ncatlab.org/nlab/files/Justesen_Profunktoren.pdf">pdf</a>)</p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/Marta+Bunge">Marta Bunge</a>, Chapter 3 of: <em>Categories of Set-Valued Functors</em>, University of Pennsylvania, 1966</p> <blockquote> <p>based on suggestions by <a class="existingWikiWord" href="/nlab/show/Bill+Lawvere">Bill Lawvere</a></p> </blockquote> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/Michel+Andr%C3%A9">Michel André</a>, <em>Categories of Functors and Adjoint Functors</em>, Batelle Institute at Geneva, 1964, see also <em>Categories of Functors and Adjoint Functors</em>,American Journal of Mathematics, Vol. 88, No. 3 (Jul., 1966), pp. 529-543</p> </li> <li id="Benabou73"> <p><a class="existingWikiWord" href="/nlab/show/Jean+B%C3%A9nabou">Jean Bénabou</a>, <em>Les distributeurs</em>, Université Catholique de Louvain, Institut de Mathématique Pure et Appliquée, rapport <strong>33</strong> (1973) &lbrack;<a href="http://www.entretemps.asso.fr/maths/DistributeursLouvain.pdf">pdf</a>, <a class="existingWikiWord" href="/nlab/files/Benabou-LesDistributeurs.pdf" title="pdf">pdf</a>&rbrack;</p> <blockquote> <p>(including discussion of <a class="existingWikiWord" href="/nlab/show/enriched+category">enriched</a> and <a class="existingWikiWord" href="/nlab/show/internal+category">internal</a> profunctors)</p> </blockquote> </li> </ul> <p>Some of these ideas were exposed at Oberwolfach in 1966. There are extant notes taken by <a class="existingWikiWord" href="/nlab/show/Anders+Kock">Anders Kock</a> of a talk by <a class="existingWikiWord" href="/nlab/show/Bill+Lawvere">Bill Lawvere</a>, but there is only a passing mention of ‘generalised functors’ (what are now called profunctors) and their ‘generalised matrix multiplication’.</p> <p>Texbook account:</p> <ul> <li><a class="existingWikiWord" href="/nlab/show/Francis+Borceux">Francis Borceux</a>, Sec. 7.7 <em><a class="existingWikiWord" href="/nlab/show/Handbook+of+Categorical+Algebra">Handbook of Categorical Algebra</a> I</em>, Cambridge UP 1994.</li> </ul> <p>Lecture notes:</p> <ul> <li id="Benabou00"><a class="existingWikiWord" href="/nlab/show/Jean+B%C3%A9nabou">Jean Bénabou</a> (notes by <a class="existingWikiWord" href="/nlab/show/Thomas+Streicher">Thomas Streicher</a>), <em>Distributors at work</em>, (2000), <a href="http://www.mathematik.tu-darmstadt.de/~streicher/FIBR/DiWo.pdf">pdf</a></li> </ul> <p>Exposition:</p> <ul> <li><a class="existingWikiWord" href="/nlab/show/John+Baez">John Baez</a>, <em>Re: Klein 2-Geometry VII</em> (<a href="http://golem.ph.utexas.edu/category/2006/11/klein_2geometry_vii.html#c005985">blog</a>)</li> </ul> <p>A nice example of profunctors between Lawvere <a class="existingWikiWord" href="/nlab/show/metric+spaces">metric spaces</a> can be found in <a href="http://golem.ph.utexas.edu/category/2009/11/equipments.html#c029633">this comment</a>.</p> <p>The following classic paper is a good appetizer</p> <ul> <li><a class="existingWikiWord" href="/nlab/show/William+Lawvere">William Lawvere</a>, <em>Metric Spaces, Generalized Logic, and Closed Categories</em> , Rendiconti di Seminario matématico e fisico di Milano XLIII (1973) pp.135-166. Reprinted in TAC Reprints no.1 (2002) pp.1-37. (<a href="http://www.tac.mta.ca/tac/reprints/articles/1/tr1abs.html">tac</a>)</li> </ul> <p>See the <a class="existingWikiWord" href="/joyalscatlab/published/HomePage">Joyal's CatLab</a> for the theory of <a class="existingWikiWord" href="/nlab/show/Set">Set</a>-valued distributors:</p> <ul> <li><a class="existingWikiWord" href="/nlab/show/Andr%C3%A9+Joyal">André Joyal</a>, <em><a class="existingWikiWord" href="/joyalscatlab/published/Distributors+and+barrels">Distributors and barrels</a></em> .</li> </ul> <p>Internal profunctors are considered in</p> <ul> <li> <p><a class="existingWikiWord" href="/nlab/show/Peter+Johnstone">Peter Johnstone</a>, <em>Topos Theory</em> , Academic Press New York 1977. (Dover reprint Minneola 2014; sect. 2.4)</p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/Peter+Johnstone">Peter Johnstone</a>, <em>Sketches of an <a class="existingWikiWord" href="/nlab/show/Elephant">Elephant</a> I</em>, Oxford UP 2002. (pp.359-367)</p> </li> </ul> <p>The relation to <a class="existingWikiWord" href="/nlab/show/locally+presentable+categories">locally presentable categories</a> is almost explicit in:</p> <ul> <li id="Cattani99"><a class="existingWikiWord" href="/nlab/show/Gian+Luca+Cattani">Gian Luca Cattani</a>, <em>Presheaf Models for Concurrency</em>, PhD thesis from BRICS, University of Aarhus 1999 (<a href="http://www.brics.dk/DS/99/1/BRICS-DS-99-1.pdf">pdf</a>, <a class="existingWikiWord" href="/nlab/files/Cattani_PresheafModels.pdf" title="pdf">pdf</a>)</li> </ul> <p>Profunctors play an important in categorical <a class="existingWikiWord" href="/nlab/show/shape+theory">shape theory</a>. The original source is</p> <ul> <li><a class="existingWikiWord" href="/nlab/show/Dominique+Bourn">Dominique Bourn</a>, <a class="existingWikiWord" href="/nlab/show/Jean-Marc+Cordier">Jean-Marc Cordier</a>, <em>Distributeurs et théorie de la forme</em>, Cah. Top. Géom. Diff. Cat. <strong>21</strong> no.2 (1980) pp.161-189. (<a href="http://www.numdam.org/item/CTGDC_1980__21_2_161_0">numdam:CTGDC_1980__21_2_161_0</a>, <a href="http://archive.numdam.org/ARCHIVE/CTGDC/CTGDC_1980__21_2/CTGDC_1980__21_2_161_0/CTGDC_1980__21_2_161_0.pdf">pdf</a>)</li> </ul> <p>The material together with a general discussion of profunctors is also available in English in the reprinted monograph</p> <ul> <li>J.-M. Cordier , <a class="existingWikiWord" href="/nlab/show/Tim+Porter">Tim Porter</a>, <em>Shape Theory: Categorical Methods of Approximation</em> , (1989), Mathematics and its Applications, Ellis Horwood. Reprinted Dover (2008).</li> </ul> <p>Discussion of simplicial enriched profunctors in the context of strong shape theory in</p> <ul> <li><a class="existingWikiWord" href="/nlab/show/Michael+Batanin">Michael Batanin</a>, <em>Categorical Strong Shape Theory</em>, Cah. Top. Géom. Diff. Cat. <strong>38</strong> no.1 (1997) pp.3-66. (<a href="http://archive.numdam.org/ARCHIVE/CTGDC/CTGDC_1997__38_1/CTGDC_1997__38_1_3_0/CTGDC_1997__38_1_3_0.pdf">pdf</a>)</li> </ul> <p>Overview and application in <a class="existingWikiWord" href="/nlab/show/computer+science">computer science</a>:</p> <ul> <li><a class="existingWikiWord" href="/nlab/show/Gian+Luca+Cattani">Gian Luca Cattani</a>, G. Winskel, <em>Profunctors, Open Maps, and Bisimulation</em> , BRICS Report <strong>04-22</strong> (2004). (<a href="http://www.brics.dk/RS/04/22/BRICS-RS-04-22.pdf">pdf</a>)</li> </ul> <p>The common generalization of <a class="existingWikiWord" href="/nlab/show/bimodules">bimodules</a> and <a class="existingWikiWord" href="/nlab/show/spans">spans</a> in terms of profunctors has been discussed on the blog at</p> <ul> <li><a class="existingWikiWord" href="/nlab/show/John+Baez">John Baez</a>, <em>Bimodules versus spans</em> (<a href="http://golem.ph.utexas.edu/category/2008/08/bimodules_versus_spans.html">blog</a>)</li> </ul> <p>Distributions on a category as lax functors into the category of distributors are sketched in the abstract:</p> <ul> <li id="Benabou95"><a class="existingWikiWord" href="/nlab/show/Jean+B%C3%A9nabou">Jean Bénabou</a>, <em>Distributions and 2-descent</em>, (1995), <a href="https://oda.mfo.de/themes/MFO/vendor/pdfjs-dist-viewer-min/build/minified/web/viewer.html?file=https://oda.mfo.de/bitstream/handle/mfo/102/full-text.pdf#page=275">pdf</a></li> </ul> <h2 id="notation">Notation</h2> <p>Profunctors are often notated with a slashed or barred arrow, as in <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>C</mi></mrow><annotation encoding="application/x-tex">C</annotation></semantics></math>⇸<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math>, which is U+21F8 in Unicode. It is not always obvious how to draw this character, so here are some hints.</p> <ul> <li> <p>On the nLab (or anywhere that accepts SGML character entities, including raw HTML on the web), it can be found using a Unicode entity:</p> <pre><code>&amp;#8696;</code></pre> </li> <li> <p>In LaTeX, one can use <code>\nrightarrow</code> (producing ‘<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mo>↛</mo></mrow><annotation encoding="application/x-tex">\nrightarrow</annotation></semantics></math>’) in a pinch, but a nice-looking extensible barred arrow command <code>\xslashedrightarrow</code> can also be produced with the following preamble code (modified from amsmath’s <code>\xrightarrow</code>). It requires the packages <code>amsmath</code> and <code>mathtools</code> to be loaded.</p> <pre><code>\makeatletter \def\slashedarrowfill@#1#2#3#4#5{% $\m@th\thickmuskip0mu\medmuskip\thickmuskip\thinmuskip\thickmuskip \relax#5#1\mkern-7mu% \cleaders\hbox{$#5\mkern-2mu#2\mkern-2mu$}\hfill \mathclap{#3}\mathclap{#2}% \cleaders\hbox{$#5\mkern-2mu#2\mkern-2mu$}\hfill \mkern-7mu#4$% } \def\rightslashedarrowfill@{% \slashedarrowfill@\relbar\relbar\mapstochar\rightarrow} \newcommand\xslashedrightarrow[2][]{% \ext@arrow 0055{\rightslashedarrowfill@}{#1}{#2}} \makeatother</code></pre> <p>The command <code>\xslashedrightarrow</code> can then be used with one required argument and one optional argument, just like <code>\xrightarrow</code>. A version taking no arguments can of course be defined with</p> <pre><code>\def\slashedrightarrow{\xslashedrightarrow{}}</code></pre> <p>A simpler barred arrow taking no arguments can be created with</p> <pre><code>\def\slashedrightarrow{\relbar\joinrel\mapstochar\joinrel\rightarrow}</code></pre> </li> <li> <p>In Xypic, a barred arrow (to the right, in this example) can be produced with</p> <pre><code>\ar[r]|-@{|}</code></pre> </li> </ul> </body></html> </div> <div class="revisedby"> <p> Last revised on November 12, 2024 at 14:45:50. See the <a href="/nlab/history/profunctor" style="color: #005c19">history</a> of this page for a list of all contributions to it. </p> </div> <div class="navigation navfoot"> <a href="/nlab/edit/profunctor" accesskey="E" class="navlink" id="edit" rel="nofollow">Edit</a><a href="https://nforum.ncatlab.org/discussion/10145/#Item_33">Discuss</a><span class="backintime"><a href="/nlab/revision/profunctor/79" accesskey="B" class="navlinkbackintime" id="to_previous_revision" rel="nofollow">Previous revision</a></span><a href="/nlab/show/diff/profunctor" accesskey="C" class="navlink" id="see_changes" rel="nofollow">Changes from previous revision</a><a href="/nlab/history/profunctor" accesskey="S" class="navlink" id="history" rel="nofollow">History (79 revisions)</a> <a href="/nlab/show/profunctor/cite" style="color: black">Cite</a> <a href="/nlab/print/profunctor" accesskey="p" id="view_print" rel="nofollow">Print</a> <a href="/nlab/source/profunctor" id="view_source" rel="nofollow">Source</a> </div> </div> <!-- Content --> </div> <!-- Container --> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10