CINXE.COM
universal construction 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> universal construction 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> universal construction </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/703/#Item_11" 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="yoneda_lemma">Yoneda lemma</h4> <div class="hide"><div> <p><strong><a class="existingWikiWord" href="/nlab/show/Yoneda+lemma">Yoneda lemma</a></strong></p> <p><strong>Ingredients</strong></p> <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/presheaf">presheaf</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/category+of+presheaves">category of presheaves</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/representable+presheaf">representable presheaf</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/Yoneda+embedding">Yoneda embedding</a></p> </li> </ul> <p><strong>Incarnations</strong></p> <ul> <li> <p><a class="existingWikiWord" href="/nlab/show/Yoneda+lemma">Yoneda lemma</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/enriched+Yoneda+lemma">enriched Yoneda lemma</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/co-Yoneda+lemma">co-Yoneda lemma</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/Yoneda+reduction">Yoneda reduction</a></p> </li> </ul> <p><strong>Properties</strong></p> <ul> <li> <p><a class="existingWikiWord" href="/nlab/show/free+cocompletion">free cocompletion</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/Yoneda+extension">Yoneda extension</a></p> </li> </ul> <p><strong>Universal aspects</strong></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/universal+construction">universal construction</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/universal+element">universal element</a></p> </li> </ul> <p><strong>Classification</strong></p> <ul> <li> <p><a class="existingWikiWord" href="/nlab/show/classifying+space">classifying space</a>, <a class="existingWikiWord" href="/nlab/show/classifying+stack">classifying stack</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/moduli+space">moduli space</a>, <a class="existingWikiWord" href="/nlab/show/moduli+stack">moduli stack</a>, <a class="existingWikiWord" href="/nlab/show/derived+moduli+space">derived moduli space</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/classifying+topos">classifying topos</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/subobject+classifier">subobject classifier</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/universal+principal+bundle">universal principal bundle</a>, <a class="existingWikiWord" href="/nlab/show/universal+principal+%E2%88%9E-bundle">universal principal ∞-bundle</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/classifying+morphism">classifying morphism</a></p> </li> </ul> <p><strong>Induced theorems</strong></p> <ul> <li><a class="existingWikiWord" href="/nlab/show/Tannaka+duality">Tannaka duality</a></li> </ul> <p>…</p> <p><strong>In higher category theory</strong></p> <p><a class="existingWikiWord" href="/nlab/show/Yoneda+lemma+for+higher+categories">Yoneda lemma for higher categories</a>:</p> <ul> <li> <p><a class="existingWikiWord" href="/nlab/show/Yoneda+lemma+for+%28%E2%88%9E%2C1%29-categories">Yoneda lemma for (∞,1)-categories</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/Yoneda+lemma+for+bicategories">Yoneda lemma for bicategories</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/Yoneda+lemma+for+tricategories">Yoneda lemma for tricategories</a></p> </li> </ul> <div> <p> <a href="/nlab/edit/Yoneda+lemma+-+contents">Edit this sidebar</a> </p> </div></div></div> </div> </div> <h1 id="contents">Contents</h1> <div class='maruku_toc'> <ul> <li><a href='#idea'>Idea</a></li> <li><a href='#example'>Example</a></li> <ul> <li><a href='#ConcreteExample'>Concrete examples</a></li> <li><a href='#classes_of_examples'>Classes of examples</a></li> </ul> <li><a href='#references'>References</a></li> </ul> </div> <h2 id="idea">Idea</h2> <p>Universal properties are commonly used in mathematics, often without mentioning the term “universal property”.</p> <p>For example, if one were asked to give a map <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>ℝ</mi><mo>→</mo><mi>ℝ</mi><mo>×</mo><mi>ℂ</mi></mrow><annotation encoding="application/x-tex">\mathbb{R} \to \mathbb{R} \times \mathbb{C}</annotation></semantics></math>, they might write down something like <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>x</mi><mo>↦</mo><mo stretchy="false">(</mo><msup><mi>x</mi> <mn>2</mn></msup><mo>,</mo><mi>x</mi><mo>+</mo><mi>i</mi><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">x \mapsto (x^2, x + i x)</annotation></semantics></math>. In effect, what is done is that a pair of maps <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>ℝ</mi><mo>→</mo><mi>ℝ</mi></mrow><annotation encoding="application/x-tex">\mathbb{R} \to \mathbb{R}</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>ℝ</mi><mo>→</mo><mi>ℂ</mi></mrow><annotation encoding="application/x-tex">\mathbb{R} \to \mathbb{C}</annotation></semantics></math> is given, namely <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mo stretchy="false">(</mo><mi>x</mi><mo>↦</mo><msup><mi>x</mi> <mn>2</mn></msup><mo>,</mo><mi>x</mi><mo>↦</mo><mi>x</mi><mo>+</mo><mi>i</mi><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">(x \mapsto x^2, x \mapsto x + i x)</annotation></semantics></math>. The <strong>universal property</strong> of the <a class="existingWikiWord" href="/nlab/show/product">product</a> says that giving a map to <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 \times B</annotation></semantics></math> is the same as giving a map 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> and a map 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>, and moreover this correspondence is natural in some precise sense.</p> <p>Similarly, given <a class="existingWikiWord" href="/nlab/show/rings">rings</a> <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>R</mi></mrow><annotation encoding="application/x-tex">R</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>S</mi></mrow><annotation encoding="application/x-tex">S</annotation></semantics></math>, if we want to extend a <a class="existingWikiWord" href="/nlab/show/ring+homomorphism">ring homomorphism</a> <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>R</mi><mo>→</mo><mi>S</mi></mrow><annotation encoding="application/x-tex">R \to S</annotation></semantics></math> to a homomorphism from the <a class="existingWikiWord" href="/nlab/show/polynomial+ring">polynomial ring</a> <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>R</mi><mo stretchy="false">[</mo><mi>x</mi><mo stretchy="false">]</mo><mo>→</mo><mi>S</mi></mrow><annotation encoding="application/x-tex">R[x] \to S</annotation></semantics></math>, all we have to do is to specify an element of <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>S</mi></mrow><annotation encoding="application/x-tex">S</annotation></semantics></math> that we send <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>x</mi></mrow><annotation encoding="application/x-tex">x</annotation></semantics></math> to. In other words, a homomorphism <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>R</mi><mo stretchy="false">[</mo><mi>x</mi><mo stretchy="false">]</mo><mo>→</mo><mi>S</mi></mrow><annotation encoding="application/x-tex">R[x] \to S</annotation></semantics></math> is the same as a homomorphism <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>R</mi><mo>→</mo><mi>S</mi></mrow><annotation encoding="application/x-tex">R \to S</annotation></semantics></math> and an element of <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>S</mi></mrow><annotation encoding="application/x-tex">S</annotation></semantics></math>.</p> <p>For it to be a universal property, just the existence of such a bijection is not sufficient. We will need some conditions to make sure the bijection is “natural”. Abstractly, this says that the bijection is given by a <a class="existingWikiWord" href="/nlab/show/natural+isomorphism">natural isomorphism</a> of certain <a class="existingWikiWord" href="/nlab/show/functors">functors</a>. More concretely, by the <a class="existingWikiWord" href="/nlab/show/Yoneda+lemma">Yoneda lemma</a>, this is equivalent to saying the bijection is “mediated” by some “universal maps”, which is how universal properties are usually formulated. See <a href="#ConcreteExample">Concrete examples</a> for more details.</p> <p>Recall that by the <a class="existingWikiWord" href="/nlab/show/Yoneda+lemma">Yoneda lemma</a>, specifying how we can map in or out of an object uniquely determines the object up to <a class="existingWikiWord" href="/nlab/show/isomorphism">isomorphism</a>. So we can use these universal properties as <em>definitions</em> of the constructions! These are known as <strong>universal constructions</strong>. Of course, these definitions are not actually “constructions”. We still have to do the concrete constructions the good, old way to show that there are objects satisfying the universal property (or apply general theorems such as the <a class="existingWikiWord" href="/nlab/show/adjoint+functor+theorem">adjoint functor theorem</a>).</p> <h2 id="example">Example</h2> <h3 id="ConcreteExample">Concrete examples</h3> <p>We first look at a few concrete examples of universal properties. These are all special cases of the ones described below.</p> <div class="num_example"> <h6 id="example_products">Example (products)</h6> <p>The <a class="existingWikiWord" href="/nlab/show/product">product</a> of two objects (eg. sets, groups, rings etc.) is specified by the property that maps <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>f</mi><mo>:</mo><mi>X</mi><mo>→</mo><mi>A</mi><mo>×</mo><mi>B</mi></mrow><annotation encoding="application/x-tex">f: X \to A \times B</annotation></semantics></math> biject naturally with pairs of maps <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mo stretchy="false">(</mo><msub><mi>f</mi> <mn>1</mn></msub><mo>:</mo><mi>X</mi><mo>→</mo><mi>A</mi><mo>,</mo><msub><mi>f</mi> <mn>2</mn></msub><mo>:</mo><mi>X</mi><mo>→</mo><mi>B</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">(f_1: X \to A, f_2: X \to B)</annotation></semantics></math>.</p> <p>The naturality condition is that if <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>f</mi><mo>:</mo><mi>X</mi><mo>→</mo><mi>A</mi><mo>×</mo><mi>B</mi></mrow><annotation encoding="application/x-tex">f: X \to A \times B</annotation></semantics></math> corresponds to <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>f</mi> <mn>1</mn></msub><mo>:</mo><mi>X</mi><mo>→</mo><mi>A</mi><mo>,</mo><msub><mi>f</mi> <mn>2</mn></msub><mo>:</mo><mi>X</mi><mo>→</mo><mi>B</mi></mrow><annotation encoding="application/x-tex">f_1: X \to A, f_2: X \to B</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>Y</mi><mo>→</mo><mi>X</mi></mrow><annotation encoding="application/x-tex">g: Y \to X</annotation></semantics></math> is a map, then <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>f</mi><mo>∘</mo><mi>g</mi></mrow><annotation encoding="application/x-tex">f \circ g</annotation></semantics></math> corresponds to <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>f</mi> <mn>1</mn></msub><mo>∘</mo><mi>g</mi></mrow><annotation encoding="application/x-tex">f_1 \circ g</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>f</mi> <mn>2</mn></msub><mo>∘</mo><mi>g</mi></mrow><annotation encoding="application/x-tex">f_2 \circ g</annotation></semantics></math>, so that the bijection respects composition.</p> <p>In particular, the <a class="existingWikiWord" href="/nlab/show/identity+map">identity map</a> <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>id</mi><mo>:</mo><mi>A</mi><mo>×</mo><mi>B</mi><mo>→</mo><mi>A</mi><mo>×</mo><mi>B</mi></mrow><annotation encoding="application/x-tex">id: A \times B \to A \times B</annotation></semantics></math> corresponds to a pair of <a class="existingWikiWord" href="/nlab/show/projection+maps">projection maps</a> <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>π</mi> <mn>1</mn></msub><mo>:</mo><mi>A</mi><mo>×</mo><mi>B</mi><mo>→</mo><mi>A</mi></mrow><annotation encoding="application/x-tex">\pi_1: A \times B \to A</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>π</mi> <mn>2</mn></msub><mo>:</mo><mi>A</mi><mo>×</mo><mi>B</mi><mo>→</mo><mi>B</mi></mrow><annotation encoding="application/x-tex">\pi_2: A \times B \to B</annotation></semantics></math>. Then if <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>f</mi><mo>:</mo><mi>X</mi><mo>→</mo><mi>A</mi><mo>×</mo><mi>B</mi></mrow><annotation encoding="application/x-tex">f: X \to A \times B</annotation></semantics></math> is a map, then by naturality, it corresponds to <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>π</mi> <mn>1</mn></msub><mo>∘</mo><mi>f</mi><mo>:</mo><mi>X</mi><mo>→</mo><mi>A</mi></mrow><annotation encoding="application/x-tex">\pi_1 \circ f: X \to A</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>π</mi> <mn>2</mn></msub><mo>∘</mo><mi>f</mi><mo>:</mo><mi>X</mi><mo>→</mo><mi>B</mi></mrow><annotation encoding="application/x-tex">\pi_2 \circ f: X \to B</annotation></semantics></math>.</p> <p>Suppose we are not given a bijection, but just an object <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>P</mi></mrow><annotation encoding="application/x-tex">P</annotation></semantics></math> with maps <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>π</mi> <mn>1</mn></msub><mo>:</mo><mi>P</mi><mo>→</mo><mi>A</mi></mrow><annotation encoding="application/x-tex">\pi_1: P \to A</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>π</mi> <mn>2</mn></msub><mo>:</mo><mi>P</mi><mo>→</mo><mi>B</mi></mrow><annotation encoding="application/x-tex">\pi_2: P \to B</annotation></semantics></math>. Then as above, we obtain a function from maps <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>X</mi><mo>→</mo><mi>P</mi></mrow><annotation encoding="application/x-tex">X \to P</annotation></semantics></math> to pairs of maps <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>X</mi><mo>→</mo><mi>A</mi><mo>,</mo><mi>X</mi><mo>→</mo><mi>B</mi></mrow><annotation encoding="application/x-tex">X \to A, X \to B</annotation></semantics></math> by composition. This makes <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>P</mi></mrow><annotation encoding="application/x-tex">P</annotation></semantics></math> into the product of <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> and <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> exactly when this function is a bijection, ie. for any pair of maps <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>f</mi> <mn>1</mn></msub><mo>:</mo><mi>X</mi><mo>→</mo><mi>A</mi><mo>,</mo><msub><mi>f</mi> <mn>2</mn></msub><mo>:</mo><mi>X</mi><mo>→</mo><mi>B</mi></mrow><annotation encoding="application/x-tex">f_1 : X \to A, f_2: X \to B</annotation></semantics></math>, there is a unique map <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>f</mi><mo>:</mo><mi>X</mi><mo>→</mo><mi>P</mi></mrow><annotation encoding="application/x-tex">f: X \to P</annotation></semantics></math> whose compositions with <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>π</mi> <mn>1</mn></msub><mo>,</mo><msub><mi>π</mi> <mn>2</mn></msub></mrow><annotation encoding="application/x-tex">\pi_1, \pi_2</annotation></semantics></math> are <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>f</mi> <mn>1</mn></msub><mo>,</mo><msub><mi>f</mi> <mn>2</mn></msub></mrow><annotation encoding="application/x-tex">f_1, f_2</annotation></semantics></math> respectively (naturality is easy to check).</p> <p>(The experienced reader will notice that this is just a special case of the <a class="existingWikiWord" href="/nlab/show/Yoneda+lemma">Yoneda lemma</a>)</p> <p>Thus, the universal property can be stated as follows: <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 a product of <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> and <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> if there exists maps <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>π</mi> <mn>1</mn></msub><mo>:</mo><mi>C</mi><mo>→</mo><mi>A</mi></mrow><annotation encoding="application/x-tex">\pi_1: C \to A</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>π</mi> <mn>2</mn></msub><mo>:</mo><mi>C</mi><mo>→</mo><mi>B</mi></mrow><annotation encoding="application/x-tex">\pi_2: C \to B</annotation></semantics></math> such that given any pair of maps <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>f</mi> <mn>1</mn></msub><mo>:</mo><mi>X</mi><mo>→</mo><mi>A</mi></mrow><annotation encoding="application/x-tex">f_1: X \to A</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>f</mi> <mn>2</mn></msub><mo>:</mo><mi>X</mi><mo>→</mo><mi>B</mi></mrow><annotation encoding="application/x-tex">f_2: X \to B</annotation></semantics></math>, there is a unique map <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>f</mi><mo>:</mo><mi>X</mi><mo>→</mo><mi>C</mi></mrow><annotation encoding="application/x-tex">f: X \to C</annotation></semantics></math> such that the following diagram commutes:</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>X</mi></mtd> <mtd></mtd> <mtd></mtd></mtr> <mtr><mtd></mtd> <mtd><msup><mo></mo><mpadded width="0" lspace="-100%width"><mrow><msub><mi>f</mi> <mn>1</mn></msub></mrow></mpadded></msup><mo>↙</mo></mtd> <mtd><msup><mo stretchy="false">↓</mo> <mpadded width="0"><mi>f</mi></mpadded></msup></mtd> <mtd><msup><mo>↘</mo> <mpadded width="0"><mrow><msub><mi>f</mi> <mn>2</mn></msub></mrow></mpadded></msup></mtd></mtr> <mtr><mtd><mi>A</mi></mtd> <mtd><munder><mo>←</mo><mrow><msub><mi>π</mi> <mn>1</mn></msub></mrow></munder></mtd> <mtd><mi>C</mi></mtd> <mtd><munder><mo>→</mo><mrow><msub><mi>π</mi> <mn>2</mn></msub></mrow></munder></mtd> <mtd><mi>B</mi></mtd></mtr></mtable></mrow></mrow><annotation encoding="application/x-tex"> \array{ & & X & & \\ & ^\mathllap{f_1}\swarrow & \downarrow^\mathrlap{f} & \searrow^\mathrlap{f_2}\\ A & \underset{\pi_1}{\leftarrow} & C & \underset{\pi_2}{\rightarrow} & B } </annotation></semantics></math></div> <p>In this case, we tend to write <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 \times B</annotation></semantics></math> for <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> </div> <p>Note that if we are talking about sets, then an element of a set <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>X</mi></mrow><annotation encoding="application/x-tex">X</annotation></semantics></math> is equivalent to a map <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mn>1</mn><mo>→</mo><mi>X</mi></mrow><annotation encoding="application/x-tex">1 \to X</annotation></semantics></math> from the singleton set <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>. Thus in particular, the above definition says an element of <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 \times B</annotation></semantics></math> is the same as a pair of elements <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mo stretchy="false">(</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">(a, b)</annotation></semantics></math>, where <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>a</mi><mo>∈</mo><mi>A</mi></mrow><annotation encoding="application/x-tex">a \in A</annotation></semantics></math> and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>b</mi><mo>∈</mo><mi>B</mi></mrow><annotation encoding="application/x-tex">b \in B</annotation></semantics></math>.</p> <div class="num_example"> <h6 id="example_free_groups">Example (free groups)</h6> <p>The <a class="existingWikiWord" href="/nlab/show/free+group">free</a> <a class="existingWikiWord" href="/nlab/show/group">group</a> on <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math> generators is a group <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>F</mi> <mi>n</mi></msub></mrow><annotation encoding="application/x-tex">F_n</annotation></semantics></math> such that <a class="existingWikiWord" href="/nlab/show/group+homomorphisms">group homomorphisms</a> <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>F</mi> <mi>n</mi></msub><mo>→</mo><mi>G</mi></mrow><annotation encoding="application/x-tex">F_n \to G</annotation></semantics></math> bijects (naturally) with <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math> elements of <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>G</mi></mrow><annotation encoding="application/x-tex">G</annotation></semantics></math> (not necessarily distinct).</p> <p>Similar to the above, the naturality condition says if <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> <mi>n</mi></msub><mo>→</mo><mi>G</mi></mrow><annotation encoding="application/x-tex">f: F_n \to G</annotation></semantics></math> corresponds to <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>g</mi> <mn>1</mn></msub><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>g</mi> <mi>n</mi></msub><mo>∈</mo><mi>G</mi></mrow><annotation encoding="application/x-tex">g_1, ..., g_n \in G</annotation></semantics></math>, and <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>h</mi><mo>:</mo><mi>G</mi><mo>→</mo><mi>H</mi></mrow><annotation encoding="application/x-tex">h: G \to H</annotation></semantics></math> is a map, then <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>h</mi><mo>∘</mo><mi>f</mi></mrow><annotation encoding="application/x-tex">h \circ f</annotation></semantics></math> corresponds to the elements <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>h</mi><mo stretchy="false">(</mo><msub><mi>g</mi> <mn>1</mn></msub><mo stretchy="false">)</mo><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>h</mi><mo stretchy="false">(</mo><msub><mi>g</mi> <mi>n</mi></msub><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">h(g_1), ..., h(g_n)</annotation></semantics></math>. In particular, suppose the identity map <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>id</mi><mo>:</mo><msub><mi>F</mi> <mi>n</mi></msub><mo>→</mo><msub><mi>F</mi> <mi>n</mi></msub></mrow><annotation encoding="application/x-tex">id: F_n \to F_n</annotation></semantics></math> corresponds to <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math> elements <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>x</mi> <mn>1</mn></msub><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi></msub><mo>∈</mo><msub><mi>F</mi> <mi>n</mi></msub></mrow><annotation encoding="application/x-tex">x_1, ..., x_n\in F_n</annotation></semantics></math>. Then any homomorphism <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> <mi>n</mi></msub><mo>→</mo><mi>G</mi></mrow><annotation encoding="application/x-tex">f: F_n \to G</annotation></semantics></math> corresponds to the elements <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>f</mi><mo stretchy="false">(</mo><msub><mi>x</mi> <mn>1</mn></msub><mo stretchy="false">)</mo><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>f</mi><mo stretchy="false">(</mo><msub><mi>x</mi> <mi>n</mi></msub><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">f(x_1), ..., f(x_n)</annotation></semantics></math> of <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>G</mi></mrow><annotation encoding="application/x-tex">G</annotation></semantics></math>.</p> <p>Thus, given the specified elements <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>x</mi> <mn>1</mn></msub><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi></msub><mo>∈</mo><msub><mi>F</mi> <mi>n</mi></msub></mrow><annotation encoding="application/x-tex">x_1, ..., x_n \in F_n</annotation></semantics></math>, the universal property says given any <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math> elements of <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>G</mi></mrow><annotation encoding="application/x-tex">G</annotation></semantics></math>, we can find a unique homomorphism <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> <mi>n</mi></msub><mo>→</mo><mi>G</mi></mrow><annotation encoding="application/x-tex">f: F_n \to G</annotation></semantics></math> that sends <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msub><mi>x</mi> <mn>1</mn></msub><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi></msub></mrow><annotation encoding="application/x-tex">x_1, ..., x_n</annotation></semantics></math> to the <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math> elements.</p> <p>Diagrammatically, picking <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math> elements out of a set <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>X</mi></mrow><annotation encoding="application/x-tex">X</annotation></semantics></math> is the same as a <a class="existingWikiWord" href="/nlab/show/function">function</a> (of sets) <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>n</mi><mo>→</mo><mi>X</mi></mrow><annotation encoding="application/x-tex">n \to X</annotation></semantics></math>. If we write <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>U</mi><mo stretchy="false">(</mo><mi>G</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">U(G)</annotation></semantics></math> for the underlying set of the group <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>G</mi></mrow><annotation encoding="application/x-tex">G</annotation></semantics></math> (ie. <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>U</mi></mrow><annotation encoding="application/x-tex">U</annotation></semantics></math> is the <a class="existingWikiWord" href="/nlab/show/forgetful+functor">forgetful functor</a> to <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>Set</mi></mrow><annotation encoding="application/x-tex">Set</annotation></semantics></math>), the universal property of the free group says that there is a specified function <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>ϕ</mi><mo>:</mo><mi>n</mi><mo>→</mo><mi>U</mi><mo stretchy="false">(</mo><msub><mi>F</mi> <mi>n</mi></msub><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">\phi: n \to U(F_n)</annotation></semantics></math>, such that for every function <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>f</mi><mo>:</mo><mi>n</mi><mo>→</mo><mi>U</mi><mo stretchy="false">(</mo><mi>G</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">f: n \to U(G)</annotation></semantics></math>, we can find a unique group homomorphism <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mover><mi>f</mi><mo stretchy="false">˜</mo></mover><mo>:</mo><msub><mi>F</mi> <mi>n</mi></msub><mo>→</mo><mi>G</mi></mrow><annotation encoding="application/x-tex">\tilde{f}: F_n \to G</annotation></semantics></math> such that the following diagram commutes:</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><mi>U</mi><mo stretchy="false">(</mo><msub><mi>F</mi> <mi>n</mi></msub><mo stretchy="false">)</mo></mtd> <mtd><mover><mo>→</mo><mrow><mi>U</mi><mo stretchy="false">(</mo><mover><mi>f</mi><mo stretchy="false">˜</mo></mover><mo stretchy="false">)</mo></mrow></mover></mtd> <mtd><mi>U</mi><mo stretchy="false">(</mo><mi>G</mi><mo stretchy="false">)</mo></mtd></mtr> <mtr><mtd><msup><mo></mo><mpadded width="0" lspace="-100%width"><mi>ϕ</mi></mpadded></msup><mo stretchy="false">↑</mo></mtd> <mtd><msub><mo>↗</mo> <mpadded width="0"><mi>f</mi></mpadded></msub></mtd></mtr> <mtr><mtd><mi>n</mi></mtd></mtr></mtable></mrow></mrow><annotation encoding="application/x-tex"> \array{ U(F_n) & \overset{U(\tilde{f})}{\to} & U(G)\\ ^\mathllap{\phi}\uparrow & \nearrow_{\mathrlap{f}}\\ n } </annotation></semantics></math></div> <p>In other words, every map <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>f</mi><mo>:</mo><mi>n</mi><mo>→</mo><mi>U</mi><mo stretchy="false">(</mo><mi>G</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">f: n \to U(G)</annotation></semantics></math> factors through the universal map <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>ϕ</mi><mo>:</mo><mi>n</mi><mo>→</mo><mi>U</mi><mo stretchy="false">(</mo><msub><mi>F</mi> <mi>n</mi></msub><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">\phi: n \to U(F_n)</annotation></semantics></math> uniquely.</p> </div> <div class="num_example"> <h6 id="example_tensor_products">Example (tensor products)</h6> <p>The <a class="existingWikiWord" href="/nlab/show/tensor+product">tensor product</a> of <a class="existingWikiWord" href="/nlab/show/vector+spaces">vector spaces</a> has the universal property that a <a class="existingWikiWord" href="/nlab/show/bilinear+map">bilinear map</a> <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>V</mi><mo>×</mo><mi>W</mi><mo>→</mo><mi>U</mi></mrow><annotation encoding="application/x-tex">V \times W \to U</annotation></semantics></math> bijects naturally with linear maps <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>V</mi><mo>⊗</mo><mi>W</mi><mo>→</mo><mi>U</mi></mrow><annotation encoding="application/x-tex">V \otimes W \to U</annotation></semantics></math>. The naturality condition is given by the existence of a universal bilinear map <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>ϕ</mi><mo>:</mo><mi>V</mi><mo>×</mo><mi>W</mi><mo>→</mo><mi>V</mi><mo>⊗</mo><mi>W</mi></mrow><annotation encoding="application/x-tex">\phi: V \times W \to V \otimes W</annotation></semantics></math> such that every bilinear map <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>V</mi><mo>×</mo><mi>W</mi><mo>→</mo><mi>U</mi></mrow><annotation encoding="application/x-tex">V \times W \to U</annotation></semantics></math> factors through <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>ϕ</mi></mrow><annotation encoding="application/x-tex">\phi</annotation></semantics></math> uniquely.</p> </div> <p>We have more degenerate examples such as the terminal object:</p> <div class="num_example"> <h6 id="example_terminal_and_initial_objects">Example (terminal and initial objects)</h6> <p>In the <a class="existingWikiWord" href="/nlab/show/category+of+sets">category of sets</a>, the singleton <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> satisfies the property that there is always a unique map from any object to <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>. So we can say that the maps <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>A</mi><mo>→</mo><mn>1</mn></mrow><annotation encoding="application/x-tex">A \to 1</annotation></semantics></math> biject (necessarily naturally) with the set <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>. More generally, in any category, if an object <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>X</mi></mrow><annotation encoding="application/x-tex">X</annotation></semantics></math> is such that there is always a unique map from any object to <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>X</mi></mrow><annotation encoding="application/x-tex">X</annotation></semantics></math>, then <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>X</mi></mrow><annotation encoding="application/x-tex">X</annotation></semantics></math> is called the <a class="existingWikiWord" href="/nlab/show/terminal+object">terminal object</a>.</p> <p>Dually, an initial object is an object <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> such that there is a unique map from <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> to any object <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>X</mi></mrow><annotation encoding="application/x-tex">X</annotation></semantics></math>.</p> </div> <h3 id="classes_of_examples">Classes of examples</h3> <p>In general, the <strong>universal constructions</strong> in <a class="existingWikiWord" href="/nlab/show/category+theory">category theory</a> include</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/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> <li> <p><a class="existingWikiWord" href="/nlab/show/dependent+sum">dependent sum</a>/<a class="existingWikiWord" href="/nlab/show/dependent+product">dependent product</a></p> </li> </ul> <p>Each of these may be defined by requiring it to satisfy a <strong>universal property</strong>. A universal property is a property of some construction which boils down to (is manifestly equivalent to) the property that an associated object is a universal initial object of some (auxiliary) category.</p> <p>In good cases, every single one of these is a special case of every other, so somehow one single concept here comes to us with many different faces.</p> <p>Some or all of these have analogs in <a class="existingWikiWord" href="/nlab/show/higher+category+theory">higher category theory</a>, notably in <a class="existingWikiWord" href="/nlab/show/2-category">2-category</a> theory and <a class="existingWikiWord" href="/nlab/show/%28%E2%88%9E%2C1%29-category+theory">(∞,1)-category theory</a>:</p> <ul> <li> <p><a class="existingWikiWord" href="/nlab/show/2-limit">2-limit</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/2-adjunction">2-adjunction</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/limit+in+a+quasi-category">limit in a quasi-category</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/adjoint+%28%E2%88%9E%2C1%29-functor">adjoint (∞,1)-functor</a></p> </li> </ul> <h2 id="references">References</h2> <p>An introductory but thorough treatment of universal properties and their relationship with the <a class="existingWikiWord" href="/nlab/show/Yoneda+lemma">Yoneda lemma</a> is given in</p> <ul> <li><a class="existingWikiWord" href="/nlab/show/Emily+Riehl">Emily Riehl</a>, <em>Category Theory in context</em>, Chapter 2. (<a href="http://www.math.jhu.edu/~eriehl/context.pdf">pdf</a>)</li> </ul> <p>A more informal and intuitive account is given in</p> <ul> <li><a class="existingWikiWord" href="/nlab/show/Paolo+Perrone">Paolo Perrone</a>, <em>Notes on Category Theory with examples from basic mathematics</em>, Chapter 2. (<a href="http://arxiv.org/abs/1912.10642">arXiv</a>)</li> </ul> </body></html> </div> <div class="revisedby"> <p> Last revised on January 15, 2020 at 04:42:56. See the <a href="/nlab/history/universal+construction" 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/universal+construction" accesskey="E" class="navlink" id="edit" rel="nofollow">Edit</a><a href="https://nforum.ncatlab.org/discussion/703/#Item_11">Discuss</a><span class="backintime"><a href="/nlab/revision/universal+construction/23" accesskey="B" class="navlinkbackintime" id="to_previous_revision" rel="nofollow">Previous revision</a></span><a href="/nlab/show/diff/universal+construction" accesskey="C" class="navlink" id="see_changes" rel="nofollow">Changes from previous revision</a><a href="/nlab/history/universal+construction" accesskey="S" class="navlink" id="history" rel="nofollow">History (23 revisions)</a> <a href="/nlab/show/universal+construction/cite" style="color: black">Cite</a> <a href="/nlab/print/universal+construction" accesskey="p" id="view_print" rel="nofollow">Print</a> <a href="/nlab/source/universal+construction" id="view_source" rel="nofollow">Source</a> </div> </div> <!-- Content --> </div> <!-- Container --> </body> </html>