bsc-leon-vatthauer/agda/bsc-thesis/Categories.Category.Construction.Comma.html
2024-02-09 17:53:52 +01:00

141 lines
No EOL
63 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Categories.Category.Construction.Comma</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Symbol">{-#</a> <a id="5" class="Keyword">OPTIONS</a> <a id="13" class="Pragma">--without-K</a> <a id="25" class="Pragma">--safe</a> <a id="32" class="Symbol">#-}</a>
<a id="36" class="Keyword">module</a> <a id="43" href="Categories.Category.Construction.Comma.html" class="Module">Categories.Category.Construction.Comma</a> <a id="82" class="Keyword">where</a>
<a id="89" class="Keyword">open</a> <a id="94" class="Keyword">import</a> <a id="101" href="Data.Product.html" class="Module">Data.Product</a> <a id="114" class="Keyword">using</a> <a id="120" class="Symbol">(</a><a id="121" href="Data.Product.Base.html#1618" class="Function Operator">_×_</a><a id="124" class="Symbol">;</a> <a id="126" href="Data.Product.Base.html#852" class="Function"></a><a id="127" class="Symbol">;</a> <a id="129" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">_,_</a><a id="132" class="Symbol">;</a> <a id="134" href="Data.Product.Base.html#636" class="Field">proj₁</a><a id="139" class="Symbol">;</a> <a id="141" href="Data.Product.Base.html#650" class="Field">proj₂</a><a id="146" class="Symbol">;</a> <a id="148" href="Data.Product.Base.html#2747" class="Function">zip</a><a id="151" class="Symbol">;</a> <a id="153" href="Data.Product.Base.html#2173" class="Function">map</a><a id="156" class="Symbol">)</a>
<a id="158" class="Keyword">open</a> <a id="163" class="Keyword">import</a> <a id="170" href="Level.html" class="Module">Level</a>
<a id="176" class="Keyword">open</a> <a id="181" class="Keyword">import</a> <a id="188" href="Relation.Binary.html" class="Module">Relation.Binary</a> <a id="204" class="Keyword">using</a> <a id="210" class="Symbol">(</a><a id="211" href="Relation.Binary.Core.html#896" class="Function">Rel</a><a id="214" class="Symbol">)</a>
<a id="217" class="Keyword">open</a> <a id="222" class="Keyword">import</a> <a id="229" href="Categories.Category.Instance.One.html" class="Module">Categories.Category.Instance.One</a>
<a id="262" class="Keyword">open</a> <a id="267" class="Keyword">import</a> <a id="274" href="Categories.Category.html" class="Module">Categories.Category</a> <a id="294" class="Keyword">using</a> <a id="300" class="Symbol">(</a><a id="301" href="Categories.Category.Core.html#442" class="Record">Category</a><a id="309" class="Symbol">;</a> <a id="311" href="Categories.Category.html#502" class="Function Operator">_[_,_]</a><a id="317" class="Symbol">;</a> <a id="319" href="Categories.Category.html#700" class="Function Operator">_[_∘_]</a><a id="325" class="Symbol">;</a> <a id="327" class="Keyword">module</a> <a id="334" href="Categories.Category.html#824" class="Module">Definitions</a><a id="345" class="Symbol">)</a>
<a id="347" class="Keyword">open</a> <a id="352" class="Keyword">import</a> <a id="359" href="Categories.Functor.html" class="Module">Categories.Functor</a> <a id="378" class="Keyword">using</a> <a id="384" class="Symbol">(</a><a id="385" href="Categories.Functor.Core.html#248" class="Record">Functor</a><a id="392" class="Symbol">)</a>
<a id="394" class="Keyword">open</a> <a id="399" class="Keyword">import</a> <a id="406" href="Categories.Functor.Construction.Constant.html" class="Module">Categories.Functor.Construction.Constant</a> <a id="447" class="Keyword">using</a> <a id="453" class="Symbol">(</a><a id="454" href="Categories.Functor.Construction.Constant.html#719" class="Function">const!</a><a id="460" class="Symbol">)</a>
<a id="462" class="Keyword">import</a> <a id="469" href="Categories.Morphism.Reasoning.Core.html" class="Module">Categories.Morphism.Reasoning.Core</a> <a id="504" class="Symbol">as</a> <a id="507" class="Module">MR</a>
<a id="511" class="Keyword">private</a>
<a id="521" class="Keyword">variable</a>
<a id="534" href="Categories.Category.Construction.Comma.html#534" class="Generalizable">o₁</a> <a id="537" href="Categories.Category.Construction.Comma.html#537" class="Generalizable">ℓ₁</a> <a id="540" href="Categories.Category.Construction.Comma.html#540" class="Generalizable">e₁</a> <a id="543" href="Categories.Category.Construction.Comma.html#543" class="Generalizable">o₂</a> <a id="546" href="Categories.Category.Construction.Comma.html#546" class="Generalizable">ℓ₂</a> <a id="549" href="Categories.Category.Construction.Comma.html#549" class="Generalizable">e₂</a> <a id="552" href="Categories.Category.Construction.Comma.html#552" class="Generalizable">o₃</a> <a id="555" href="Categories.Category.Construction.Comma.html#555" class="Generalizable">ℓ₃</a> <a id="558" href="Categories.Category.Construction.Comma.html#558" class="Generalizable">e₃</a> <a id="561" class="Symbol">:</a> <a id="563" href="Agda.Primitive.html#742" class="Postulate">Level</a>
<a id="570" class="Comment">-- things go odd with generalized variables for A B C, use anonymous module instead</a>
<a id="654" class="Keyword">module</a> <a id="661" href="Categories.Category.Construction.Comma.html#661" class="Module">_</a> <a id="663" class="Symbol">{</a><a id="664" href="Categories.Category.Construction.Comma.html#664" class="Bound">A</a> <a id="666" class="Symbol">:</a> <a id="668" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="677" href="Categories.Category.Construction.Comma.html#534" class="Generalizable">o₁</a> <a id="680" href="Categories.Category.Construction.Comma.html#537" class="Generalizable">ℓ₁</a> <a id="683" href="Categories.Category.Construction.Comma.html#540" class="Generalizable">e₁</a><a id="685" class="Symbol">}</a> <a id="688" class="Symbol">{</a><a id="689" href="Categories.Category.Construction.Comma.html#689" class="Bound">B</a> <a id="691" class="Symbol">:</a> <a id="693" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="702" href="Categories.Category.Construction.Comma.html#543" class="Generalizable">o₂</a> <a id="705" href="Categories.Category.Construction.Comma.html#546" class="Generalizable">ℓ₂</a> <a id="708" href="Categories.Category.Construction.Comma.html#549" class="Generalizable">e₂</a><a id="710" class="Symbol">}</a> <a id="712" class="Symbol">{</a><a id="713" href="Categories.Category.Construction.Comma.html#713" class="Bound">C</a> <a id="715" class="Symbol">:</a> <a id="717" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="726" href="Categories.Category.Construction.Comma.html#552" class="Generalizable">o₃</a> <a id="729" href="Categories.Category.Construction.Comma.html#555" class="Generalizable">ℓ₃</a> <a id="732" href="Categories.Category.Construction.Comma.html#558" class="Generalizable">e₃</a><a id="734" class="Symbol">}</a> <a id="736" class="Keyword">where</a>
<a id="744" class="Keyword">private</a>
<a id="756" class="Keyword">module</a> <a id="763" href="Categories.Category.Construction.Comma.html#763" class="Module">C</a> <a id="765" class="Symbol">=</a> <a id="767" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="776" href="Categories.Category.Construction.Comma.html#713" class="Bound">C</a>
<a id="782" class="Keyword">module</a> <a id="789" href="Categories.Category.Construction.Comma.html#789" class="Module">A</a> <a id="791" class="Symbol">=</a> <a id="793" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="802" href="Categories.Category.Construction.Comma.html#664" class="Bound">A</a>
<a id="808" class="Keyword">module</a> <a id="815" href="Categories.Category.Construction.Comma.html#815" class="Module">B</a> <a id="817" class="Symbol">=</a> <a id="819" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="828" href="Categories.Category.Construction.Comma.html#689" class="Bound">B</a>
<a id="833" class="Keyword">record</a> <a id="840" href="Categories.Category.Construction.Comma.html#840" class="Record">CommaObj</a> <a id="849" class="Symbol">(</a><a id="850" href="Categories.Category.Construction.Comma.html#850" class="Bound">T</a> <a id="852" class="Symbol">:</a> <a id="854" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="862" href="Categories.Category.Construction.Comma.html#664" class="Bound">A</a> <a id="864" href="Categories.Category.Construction.Comma.html#713" class="Bound">C</a><a id="865" class="Symbol">)</a> <a id="867" class="Symbol">(</a><a id="868" href="Categories.Category.Construction.Comma.html#868" class="Bound">S</a> <a id="870" class="Symbol">:</a> <a id="872" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="880" href="Categories.Category.Construction.Comma.html#689" class="Bound">B</a> <a id="882" href="Categories.Category.Construction.Comma.html#713" class="Bound">C</a><a id="883" class="Symbol">)</a> <a id="885" class="Symbol">:</a> <a id="887" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="891" class="Symbol">(</a><a id="892" href="Categories.Category.Construction.Comma.html#677" class="Bound">o₁</a> <a id="895" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="897" href="Categories.Category.Construction.Comma.html#702" class="Bound">o₂</a> <a id="900" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="902" href="Categories.Category.Construction.Comma.html#729" class="Bound">ℓ₃</a><a id="904" class="Symbol">)</a> <a id="906" class="Keyword">where</a>
<a id="916" class="Keyword">open</a> <a id="921" href="Categories.Category.Core.html#442" class="Module">Category</a>
<a id="934" class="Keyword">open</a> <a id="939" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="947" href="Categories.Category.Construction.Comma.html#850" class="Bound">T</a> <a id="949" class="Keyword">renaming</a> <a id="958" class="Symbol">(</a><a id="959" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="962" class="Symbol">to</a> <a id="965" class="Field">T₀</a><a id="967" class="Symbol">)</a>
<a id="973" class="Keyword">open</a> <a id="978" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="986" href="Categories.Category.Construction.Comma.html#868" class="Bound">S</a> <a id="988" class="Keyword">renaming</a> <a id="997" class="Symbol">(</a><a id="998" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="1001" class="Symbol">to</a> <a id="1004" class="Field">S₀</a><a id="1006" class="Symbol">)</a>
<a id="1012" class="Keyword">field</a>
<a id="1024" class="Symbol">{</a><a id="1025" href="Categories.Category.Construction.Comma.html#1025" class="Field">α</a><a id="1026" class="Symbol">}</a> <a id="1028" class="Symbol">:</a> <a id="1030" href="Categories.Category.Core.html#559" class="Field">Obj</a> <a id="1034" href="Categories.Category.Construction.Comma.html#664" class="Bound">A</a>
<a id="1042" class="Symbol">{</a><a id="1043" href="Categories.Category.Construction.Comma.html#1043" class="Field">β</a><a id="1044" class="Symbol">}</a> <a id="1046" class="Symbol">:</a> <a id="1048" href="Categories.Category.Core.html#559" class="Field">Obj</a> <a id="1052" href="Categories.Category.Construction.Comma.html#689" class="Bound">B</a>
<a id="1060" href="Categories.Category.Construction.Comma.html#1060" class="Field">f</a> <a id="1064" class="Symbol">:</a> <a id="1066" href="Categories.Category.Construction.Comma.html#713" class="Bound">C</a> <a id="1068" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="1070" href="Categories.Category.Construction.Comma.html#965" class="Function">T₀</a> <a id="1073" href="Categories.Category.Construction.Comma.html#1025" class="Field">α</a> <a id="1075" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="1077" href="Categories.Category.Construction.Comma.html#1004" class="Function">S₀</a> <a id="1080" href="Categories.Category.Construction.Comma.html#1043" class="Field">β</a> <a id="1082" href="Categories.Category.html#502" class="Function Operator">]</a>
<a id="1087" class="Keyword">record</a> <a id="1094" href="Categories.Category.Construction.Comma.html#1094" class="Record">Comma⇒</a> <a id="1101" class="Symbol">{</a><a id="1102" href="Categories.Category.Construction.Comma.html#1102" class="Bound">T</a> <a id="1104" class="Symbol">:</a> <a id="1106" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1114" href="Categories.Category.Construction.Comma.html#664" class="Bound">A</a> <a id="1116" href="Categories.Category.Construction.Comma.html#713" class="Bound">C</a><a id="1117" class="Symbol">}</a> <a id="1119" class="Symbol">{</a><a id="1120" href="Categories.Category.Construction.Comma.html#1120" class="Bound">S</a> <a id="1122" class="Symbol">:</a> <a id="1124" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1132" href="Categories.Category.Construction.Comma.html#689" class="Bound">B</a> <a id="1134" href="Categories.Category.Construction.Comma.html#713" class="Bound">C</a><a id="1135" class="Symbol">}</a> <a id="1137" class="Symbol">(</a><a id="1138" href="Categories.Category.Construction.Comma.html#1138" class="Bound">X₁</a> <a id="1141" href="Categories.Category.Construction.Comma.html#1141" class="Bound">X₂</a> <a id="1144" class="Symbol">:</a> <a id="1146" href="Categories.Category.Construction.Comma.html#840" class="Record">CommaObj</a> <a id="1155" href="Categories.Category.Construction.Comma.html#1102" class="Bound">T</a> <a id="1157" href="Categories.Category.Construction.Comma.html#1120" class="Bound">S</a><a id="1158" class="Symbol">)</a> <a id="1160" class="Symbol">:</a> <a id="1162" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1166" class="Symbol">(</a><a id="1167" href="Categories.Category.Construction.Comma.html#680" class="Bound">ℓ₁</a> <a id="1170" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="1172" href="Categories.Category.Construction.Comma.html#705" class="Bound">ℓ₂</a> <a id="1175" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="1177" href="Categories.Category.Construction.Comma.html#732" class="Bound">e₃</a><a id="1179" class="Symbol">)</a> <a id="1181" class="Keyword">where</a>
<a id="1191" class="Keyword">open</a> <a id="1196" href="Categories.Category.Construction.Comma.html#840" class="Module">CommaObj</a> <a id="1205" href="Categories.Category.Construction.Comma.html#1138" class="Bound">X₁</a> <a id="1208" class="Keyword">renaming</a> <a id="1217" class="Symbol">(</a><a id="1218" href="Categories.Category.Construction.Comma.html#1025" class="Field">α</a> <a id="1220" class="Symbol">to</a> <a id="1223" class="Field">α₁</a><a id="1225" class="Symbol">;</a> <a id="1227" href="Categories.Category.Construction.Comma.html#1043" class="Field">β</a> <a id="1229" class="Symbol">to</a> <a id="1232" class="Field">β₁</a><a id="1234" class="Symbol">;</a> <a id="1236" href="Categories.Category.Construction.Comma.html#1060" class="Field">f</a> <a id="1238" class="Symbol">to</a> <a id="1241" class="Field">f₁</a><a id="1243" class="Symbol">)</a>
<a id="1249" class="Keyword">open</a> <a id="1254" href="Categories.Category.Construction.Comma.html#840" class="Module">CommaObj</a> <a id="1263" href="Categories.Category.Construction.Comma.html#1141" class="Bound">X₂</a> <a id="1266" class="Keyword">renaming</a> <a id="1275" class="Symbol">(</a><a id="1276" href="Categories.Category.Construction.Comma.html#1025" class="Field">α</a> <a id="1278" class="Symbol">to</a> <a id="1281" class="Field">α₂</a><a id="1283" class="Symbol">;</a> <a id="1285" href="Categories.Category.Construction.Comma.html#1043" class="Field">β</a> <a id="1287" class="Symbol">to</a> <a id="1290" class="Field">β₂</a><a id="1292" class="Symbol">;</a> <a id="1294" href="Categories.Category.Construction.Comma.html#1060" class="Field">f</a> <a id="1296" class="Symbol">to</a> <a id="1299" class="Field">f₂</a><a id="1301" class="Symbol">)</a>
<a id="1307" class="Keyword">open</a> <a id="1312" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="1320" href="Categories.Category.Construction.Comma.html#1102" class="Bound">T</a> <a id="1322" class="Keyword">renaming</a> <a id="1331" class="Symbol">(</a><a id="1332" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="1335" class="Symbol">to</a> <a id="1338" class="Field">T₁</a><a id="1340" class="Symbol">)</a>
<a id="1346" class="Keyword">open</a> <a id="1351" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="1359" href="Categories.Category.Construction.Comma.html#1120" class="Bound">S</a> <a id="1361" class="Keyword">renaming</a> <a id="1370" class="Symbol">(</a><a id="1371" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="1374" class="Symbol">to</a> <a id="1377" class="Field">S₁</a><a id="1379" class="Symbol">)</a>
<a id="1385" class="Keyword">open</a> <a id="1390" href="Categories.Category.html#824" class="Module">Definitions</a> <a id="1402" href="Categories.Category.Construction.Comma.html#713" class="Bound">C</a>
<a id="1409" class="Keyword">field</a>
<a id="1421" href="Categories.Category.Construction.Comma.html#1421" class="Field">g</a> <a id="1429" class="Symbol">:</a> <a id="1431" href="Categories.Category.Construction.Comma.html#664" class="Bound">A</a> <a id="1433" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="1435" href="Categories.Category.Construction.Comma.html#1223" class="Function">α₁</a> <a id="1438" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="1440" href="Categories.Category.Construction.Comma.html#1281" class="Function">α₂</a> <a id="1443" href="Categories.Category.html#502" class="Function Operator">]</a>
<a id="1451" href="Categories.Category.Construction.Comma.html#1451" class="Field">h</a> <a id="1459" class="Symbol">:</a> <a id="1461" href="Categories.Category.Construction.Comma.html#689" class="Bound">B</a> <a id="1463" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="1465" href="Categories.Category.Construction.Comma.html#1232" class="Function">β₁</a> <a id="1468" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="1470" href="Categories.Category.Construction.Comma.html#1290" class="Function">β₂</a> <a id="1473" href="Categories.Category.html#502" class="Function Operator">]</a>
<a id="1481" href="Categories.Category.Construction.Comma.html#1481" class="Field">commute</a> <a id="1489" class="Symbol">:</a> <a id="1491" href="Categories.Category.html#884" class="Function">CommutativeSquare</a> <a id="1509" href="Categories.Category.Construction.Comma.html#1241" class="Function">f₁</a> <a id="1512" class="Symbol">(</a><a id="1513" href="Categories.Category.Construction.Comma.html#1338" class="Function">T₁</a> <a id="1516" href="Categories.Category.Construction.Comma.html#1421" class="Field">g</a><a id="1517" class="Symbol">)</a> <a id="1519" class="Symbol">(</a><a id="1520" href="Categories.Category.Construction.Comma.html#1377" class="Function">S₁</a> <a id="1523" href="Categories.Category.Construction.Comma.html#1451" class="Field">h</a><a id="1524" class="Symbol">)</a> <a id="1526" href="Categories.Category.Construction.Comma.html#1299" class="Function">f₂</a>
<a id="1532" href="Categories.Category.Construction.Comma.html#1532" class="Function">Comma</a> <a id="1538" class="Symbol">:</a> <a id="1540" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1548" href="Categories.Category.Construction.Comma.html#664" class="Bound">A</a> <a id="1550" href="Categories.Category.Construction.Comma.html#713" class="Bound">C</a> <a id="1552" class="Symbol"></a> <a id="1554" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1562" href="Categories.Category.Construction.Comma.html#689" class="Bound">B</a> <a id="1564" href="Categories.Category.Construction.Comma.html#713" class="Bound">C</a> <a id="1566" class="Symbol"></a> <a id="1568" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="1577" class="Symbol">(</a><a id="1578" href="Categories.Category.Construction.Comma.html#677" class="Bound">o₁</a> <a id="1581" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="1583" href="Categories.Category.Construction.Comma.html#702" class="Bound">o₂</a> <a id="1586" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="1588" href="Categories.Category.Construction.Comma.html#729" class="Bound">ℓ₃</a><a id="1590" class="Symbol">)</a> <a id="1592" class="Symbol">(</a><a id="1593" href="Categories.Category.Construction.Comma.html#680" class="Bound">ℓ₁</a> <a id="1596" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="1598" href="Categories.Category.Construction.Comma.html#705" class="Bound">ℓ₂</a> <a id="1601" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="1603" href="Categories.Category.Construction.Comma.html#732" class="Bound">e₃</a><a id="1605" class="Symbol">)</a> <a id="1607" class="Symbol">(</a><a id="1608" href="Categories.Category.Construction.Comma.html#683" class="Bound">e₁</a> <a id="1611" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="1613" href="Categories.Category.Construction.Comma.html#708" class="Bound">e₂</a><a id="1615" class="Symbol">)</a>
<a id="1619" href="Categories.Category.Construction.Comma.html#1532" class="Function">Comma</a> <a id="1625" href="Categories.Category.Construction.Comma.html#1625" class="Bound">T</a> <a id="1627" href="Categories.Category.Construction.Comma.html#1627" class="Bound">S</a> <a id="1629" class="Symbol">=</a> <a id="1631" class="Keyword">record</a>
<a id="1642" class="Symbol">{</a> <a id="1644" href="Categories.Category.Core.html#559" class="Field">Obj</a> <a id="1656" class="Symbol">=</a> <a id="1658" href="Categories.Category.Construction.Comma.html#840" class="Record">CommaObj</a> <a id="1667" href="Categories.Category.Construction.Comma.html#1625" class="Bound">T</a> <a id="1669" href="Categories.Category.Construction.Comma.html#1627" class="Bound">S</a>
<a id="1675" class="Symbol">;</a> <a id="1677" href="Categories.Category.Core.html#575" class="Field Operator">_⇒_</a> <a id="1689" class="Symbol">=</a> <a id="1691" href="Categories.Category.Construction.Comma.html#1094" class="Record">Comma⇒</a>
<a id="1702" class="Symbol">;</a> <a id="1704" href="Categories.Category.Core.html#595" class="Field Operator">_≈_</a> <a id="1716" class="Symbol">=</a> <a id="1718" class="Symbol">λ</a> <a id="1720" href="Categories.Category.Construction.Comma.html#1720" class="Bound">a₁</a> <a id="1723" href="Categories.Category.Construction.Comma.html#1723" class="Bound">a₂</a> <a id="1726" class="Symbol"></a> <a id="1728" href="Categories.Category.Construction.Comma.html#1421" class="Field">g</a> <a id="1730" href="Categories.Category.Construction.Comma.html#1720" class="Bound">a₁</a> <a id="1733" href="Categories.Category.Core.html#595" class="Function Operator">A.≈</a> <a id="1737" href="Categories.Category.Construction.Comma.html#1421" class="Field">g</a> <a id="1739" href="Categories.Category.Construction.Comma.html#1723" class="Bound">a₂</a> <a id="1742" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="1744" href="Categories.Category.Construction.Comma.html#1451" class="Field">h</a> <a id="1746" href="Categories.Category.Construction.Comma.html#1720" class="Bound">a₁</a> <a id="1749" href="Categories.Category.Core.html#595" class="Function Operator">B.≈</a> <a id="1753" href="Categories.Category.Construction.Comma.html#1451" class="Field">h</a> <a id="1755" href="Categories.Category.Construction.Comma.html#1723" class="Bound">a₂</a>
<a id="1762" class="Symbol">;</a> <a id="1764" href="Categories.Category.Core.html#656" class="Field Operator">_∘_</a> <a id="1776" class="Symbol">=</a> <a id="1778" href="Categories.Category.Construction.Comma.html#2830" class="Function Operator">_∘_</a>
<a id="1787" class="Symbol">;</a> <a id="1789" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="1801" class="Symbol">=</a> <a id="1803" class="Keyword">record</a> <a id="1810" class="Symbol">{</a> <a id="1812" href="Categories.Category.Construction.Comma.html#1421" class="Field">g</a> <a id="1814" class="Symbol">=</a> <a id="1816" href="Categories.Category.Core.html#630" class="Function">A.id</a> <a id="1821" class="Symbol">;</a> <a id="1823" href="Categories.Category.Construction.Comma.html#1451" class="Field">h</a> <a id="1825" class="Symbol">=</a> <a id="1827" href="Categories.Category.Core.html#630" class="Function">B.id</a> <a id="1832" class="Symbol">;</a> <a id="1834" href="Categories.Category.Construction.Comma.html#1481" class="Field">commute</a> <a id="1842" class="Symbol">=</a> <a id="1844" href="Categories.Category.Construction.Comma.html#2499" class="Function">id-comm</a> <a id="1852" class="Symbol">}</a>
<a id="1858" class="Symbol">;</a> <a id="1860" href="Categories.Category.Core.html#715" class="Field">assoc</a> <a id="1872" class="Symbol">=</a> <a id="1874" href="Categories.Category.Core.html#715" class="Function">A.assoc</a> <a id="1882" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="1884" href="Categories.Category.Core.html#715" class="Function">B.assoc</a>
<a id="1896" class="Symbol">;</a> <a id="1898" href="Categories.Category.Core.html#1004" class="Field">sym-assoc</a> <a id="1910" class="Symbol">=</a> <a id="1912" href="Categories.Category.Core.html#1004" class="Function">A.sym-assoc</a> <a id="1924" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="1926" href="Categories.Category.Core.html#1004" class="Function">B.sym-assoc</a>
<a id="1942" class="Symbol">;</a> <a id="1944" href="Categories.Category.Core.html#1096" class="Field">identityˡ</a> <a id="1956" class="Symbol">=</a> <a id="1958" href="Categories.Category.Core.html#1096" class="Function">A.identityˡ</a> <a id="1970" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="1972" href="Categories.Category.Core.html#1096" class="Function">B.identityˡ</a>
<a id="1988" class="Symbol">;</a> <a id="1990" href="Categories.Category.Core.html#1145" class="Field">identityʳ</a> <a id="2002" class="Symbol">=</a> <a id="2004" href="Categories.Category.Core.html#1145" class="Function">A.identityʳ</a> <a id="2016" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="2018" href="Categories.Category.Core.html#1145" class="Function">B.identityʳ</a>
<a id="2034" class="Symbol">;</a> <a id="2036" href="Categories.Category.Core.html#1339" class="Field">identity²</a> <a id="2048" class="Symbol">=</a> <a id="2050" href="Categories.Category.Core.html#1339" class="Function">A.identity²</a> <a id="2062" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="2064" href="Categories.Category.Core.html#1339" class="Function">B.identity²</a>
<a id="2080" class="Symbol">;</a> <a id="2082" href="Categories.Category.Core.html#1384" class="Field">equiv</a> <a id="2088" class="Symbol">=</a> <a id="2090" class="Keyword">record</a>
<a id="2103" class="Symbol">{</a> <a id="2105" href="Relation.Binary.Structures.html#1596" class="Field">refl</a> <a id="2111" class="Symbol">=</a> <a id="2113" href="Relation.Binary.Structures.html#1596" class="Function">A.Equiv.refl</a> <a id="2126" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="2128" href="Relation.Binary.Structures.html#1596" class="Function">B.Equiv.refl</a>
<a id="2147" class="Symbol">;</a> <a id="2149" href="Relation.Binary.Structures.html#1622" class="Field">sym</a> <a id="2155" class="Symbol">=</a> <a id="2157" href="Data.Product.Base.html#2173" class="Function">map</a> <a id="2161" href="Relation.Binary.Structures.html#1622" class="Function">A.Equiv.sym</a> <a id="2173" href="Relation.Binary.Structures.html#1622" class="Function">B.Equiv.sym</a>
<a id="2191" class="Symbol">;</a> <a id="2193" href="Relation.Binary.Structures.html#1648" class="Field">trans</a> <a id="2199" class="Symbol">=</a> <a id="2201" href="Data.Product.Base.html#2747" class="Function">zip</a> <a id="2205" href="Relation.Binary.Structures.html#1648" class="Function">A.Equiv.trans</a> <a id="2219" href="Relation.Binary.Structures.html#1648" class="Function">B.Equiv.trans</a>
<a id="2239" class="Symbol">}</a>
<a id="2245" class="Symbol">;</a> <a id="2247" href="Categories.Category.Core.html#1438" class="Field">∘-resp-≈</a> <a id="2259" class="Symbol">=</a> <a id="2261" href="Data.Product.Base.html#2747" class="Function">zip</a> <a id="2265" href="Categories.Category.Core.html#1438" class="Function">A.∘-resp-≈</a> <a id="2276" href="Categories.Category.Core.html#1438" class="Function">B.∘-resp-≈</a>
<a id="2291" class="Symbol">}</a> <a id="2293" class="Keyword">module</a> <a id="2300" href="Categories.Category.Construction.Comma.html#2300" class="Module">Comma</a>
<a id="2310" class="Keyword">where</a>
<a id="2322" class="Keyword">module</a> <a id="2329" href="Categories.Category.Construction.Comma.html#2329" class="Module">T</a> <a id="2331" class="Symbol">=</a> <a id="2333" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="2341" href="Categories.Category.Construction.Comma.html#1625" class="Bound">T</a>
<a id="2349" class="Keyword">module</a> <a id="2356" href="Categories.Category.Construction.Comma.html#2356" class="Module">S</a> <a id="2358" class="Symbol">=</a> <a id="2360" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="2368" href="Categories.Category.Construction.Comma.html#1627" class="Bound">S</a>
<a id="2377" class="Keyword">open</a> <a id="2382" href="Categories.Category.Construction.Comma.html#2329" class="Module">T</a> <a id="2384" class="Keyword">using</a> <a id="2390" class="Symbol">()</a> <a id="2393" class="Keyword">renaming</a> <a id="2402" class="Symbol">(</a><a id="2403" href="Categories.Functor.Core.html#432" class="Function">F₀</a> <a id="2406" class="Symbol">to</a> <a id="2409" class="Function">T₀</a><a id="2411" class="Symbol">;</a> <a id="2413" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="2416" class="Symbol">to</a> <a id="2419" class="Function">T₁</a><a id="2421" class="Symbol">)</a>
<a id="2429" class="Keyword">open</a> <a id="2434" href="Categories.Category.Construction.Comma.html#2356" class="Module">S</a> <a id="2436" class="Keyword">using</a> <a id="2442" class="Symbol">()</a> <a id="2445" class="Keyword">renaming</a> <a id="2454" class="Symbol">(</a><a id="2455" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="2458" class="Symbol">to</a> <a id="2461" class="Field">S₀</a><a id="2463" class="Symbol">;</a> <a id="2465" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2468" class="Symbol">to</a> <a id="2471" class="Field">S₁</a><a id="2473" class="Symbol">)</a>
<a id="2481" class="Keyword">open</a> <a id="2486" href="Categories.Category.Construction.Comma.html#1094" class="Module">Comma⇒</a>
<a id="2499" href="Categories.Category.Construction.Comma.html#2499" class="Function">id-comm</a> <a id="2507" class="Symbol">:</a> <a id="2509" class="Symbol">{</a><a id="2510" href="Categories.Category.Construction.Comma.html#2510" class="Bound">E</a> <a id="2512" class="Symbol">:</a> <a id="2514" href="Categories.Category.Construction.Comma.html#840" class="Record">CommaObj</a> <a id="2523" href="Categories.Category.Construction.Comma.html#1625" class="Bound">T</a> <a id="2525" href="Categories.Category.Construction.Comma.html#1627" class="Bound">S</a><a id="2526" class="Symbol">}</a> <a id="2528" class="Symbol"></a> <a id="2530" class="Keyword">let</a> <a id="2534" class="Keyword">open</a> <a id="2539" href="Categories.Category.Construction.Comma.html#840" class="Module">CommaObj</a> <a id="2548" href="Categories.Category.Construction.Comma.html#2510" class="Bound">E</a> <a id="2550" class="Keyword">in</a>
<a id="2562" href="Categories.Category.Construction.Comma.html#2471" class="Field">S₁</a> <a id="2565" href="Categories.Category.Core.html#630" class="Function">B.id</a> <a id="2570" href="Categories.Category.Core.html#656" class="Field Operator">C.∘</a> <a id="2574" href="Categories.Category.Construction.Comma.html#1060" class="Field">f</a> <a id="2576" href="Categories.Category.Core.html#595" class="Field Operator">C.≈</a> <a id="2580" href="Categories.Category.Construction.Comma.html#1060" class="Field">f</a> <a id="2582" href="Categories.Category.Core.html#656" class="Field Operator">C.∘</a> <a id="2586" href="Categories.Category.Construction.Comma.html#2419" class="Function">T₁</a> <a id="2589" href="Categories.Category.Core.html#630" class="Function">A.id</a>
<a id="2600" href="Categories.Category.Construction.Comma.html#2499" class="Function">id-comm</a> <a id="2608" class="Symbol">{</a><a id="2609" href="Categories.Category.Construction.Comma.html#2609" class="Bound">E</a><a id="2610" class="Symbol">}</a> <a id="2612" class="Symbol">=</a> <a id="2614" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="2628" href="Categories.Category.Construction.Comma.html#2471" class="Field">S₁</a> <a id="2631" href="Categories.Category.Core.html#630" class="Function">B.id</a> <a id="2636" href="Categories.Category.Core.html#656" class="Field Operator">C.∘</a> <a id="2640" href="Categories.Category.Construction.Comma.html#1060" class="Field">f</a> <a id="2642" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2645" href="Categories.Morphism.Reasoning.Core.html#2948" class="Function">elimˡ</a> <a id="2651" href="Categories.Functor.Core.html#511" class="Field">S.identity</a> <a id="2662" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2672" href="Categories.Category.Construction.Comma.html#1060" class="Field">f</a> <a id="2686" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2689" href="Categories.Morphism.Reasoning.Core.html#2899" class="Function">introʳ</a> <a id="2696" href="Categories.Functor.Core.html#511" class="Function">T.identity</a> <a id="2707" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2717" href="Categories.Category.Construction.Comma.html#1060" class="Field">f</a> <a id="2719" href="Categories.Category.Core.html#656" class="Field Operator">C.∘</a> <a id="2723" href="Categories.Category.Construction.Comma.html#2419" class="Function">T₁</a> <a id="2726" href="Categories.Category.Core.html#630" class="Function">A.id</a> <a id="2731" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="2741" class="Keyword">where</a>
<a id="2757" class="Keyword">open</a> <a id="2762" href="Categories.Category.Core.html#2462" class="Module">C.HomReasoning</a>
<a id="2787" class="Keyword">open</a> <a id="2792" href="Categories.Category.Construction.Comma.html#840" class="Module">CommaObj</a> <a id="2801" href="Categories.Category.Construction.Comma.html#2609" class="Bound">E</a>
<a id="2813" class="Keyword">open</a> <a id="2818" href="Categories.Morphism.Reasoning.Core.html" class="Module">MR</a> <a id="2821" href="Categories.Category.Construction.Comma.html#713" class="Bound">C</a>
<a id="2830" href="Categories.Category.Construction.Comma.html#2830" class="Function Operator">_∘_</a> <a id="2835" class="Symbol">:</a> <a id="2837" class="Symbol"></a> <a id="2839" class="Symbol">{</a><a id="2840" href="Categories.Category.Construction.Comma.html#2840" class="Bound">X₁</a> <a id="2843" href="Categories.Category.Construction.Comma.html#2843" class="Bound">X₂</a> <a id="2846" href="Categories.Category.Construction.Comma.html#2846" class="Bound">X₃</a><a id="2848" class="Symbol">}</a> <a id="2850" class="Symbol"></a> <a id="2852" href="Categories.Category.Construction.Comma.html#1094" class="Record">Comma⇒</a> <a id="2859" href="Categories.Category.Construction.Comma.html#2843" class="Bound">X₂</a> <a id="2862" href="Categories.Category.Construction.Comma.html#2846" class="Bound">X₃</a> <a id="2865" class="Symbol"></a> <a id="2867" href="Categories.Category.Construction.Comma.html#1094" class="Record">Comma⇒</a> <a id="2874" href="Categories.Category.Construction.Comma.html#2840" class="Bound">X₁</a> <a id="2877" href="Categories.Category.Construction.Comma.html#2843" class="Bound">X₂</a> <a id="2880" class="Symbol"></a> <a id="2882" href="Categories.Category.Construction.Comma.html#1094" class="Record">Comma⇒</a> <a id="2889" href="Categories.Category.Construction.Comma.html#2840" class="Bound">X₁</a> <a id="2892" href="Categories.Category.Construction.Comma.html#2846" class="Bound">X₃</a>
<a id="2901" href="Categories.Category.Construction.Comma.html#2830" class="Function Operator">_∘_</a> <a id="2906" class="Symbol">{</a><a id="2907" href="Categories.Category.Construction.Comma.html#2907" class="Bound">X₁</a><a id="2909" class="Symbol">}</a> <a id="2911" class="Symbol">{</a><a id="2912" href="Categories.Category.Construction.Comma.html#2912" class="Bound">X₂</a><a id="2914" class="Symbol">}</a> <a id="2916" class="Symbol">{</a><a id="2917" href="Categories.Category.Construction.Comma.html#2917" class="Bound">X₃</a><a id="2919" class="Symbol">}</a> <a id="2921" href="Categories.Category.Construction.Comma.html#2921" class="Bound">a₁</a> <a id="2924" href="Categories.Category.Construction.Comma.html#2924" class="Bound">a₂</a> <a id="2927" class="Symbol">=</a> <a id="2929" class="Keyword">record</a>
<a id="2944" class="Symbol">{</a> <a id="2946" href="Categories.Category.Construction.Comma.html#1421" class="Field">g</a> <a id="2948" class="Symbol">=</a> <a id="2950" href="Categories.Category.Construction.Comma.html#664" class="Bound">A</a> <a id="2952" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="2954" href="Categories.Category.Construction.Comma.html#3355" class="Function">g₁</a> <a id="2957" href="Categories.Category.html#700" class="Function Operator"></a> <a id="2959" href="Categories.Category.Construction.Comma.html#3428" class="Field">g₂</a> <a id="2962" href="Categories.Category.html#700" class="Function Operator">]</a>
<a id="2972" class="Symbol">;</a> <a id="2974" href="Categories.Category.Construction.Comma.html#1451" class="Field">h</a> <a id="2976" class="Symbol">=</a> <a id="2978" href="Categories.Category.Construction.Comma.html#689" class="Bound">B</a> <a id="2980" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="2982" href="Categories.Category.Construction.Comma.html#3364" class="Function">h₁</a> <a id="2985" href="Categories.Category.html#700" class="Function Operator"></a> <a id="2987" href="Categories.Category.Construction.Comma.html#3437" class="Field">h₂</a> <a id="2990" href="Categories.Category.html#700" class="Function Operator">]</a>
<a id="3000" class="Symbol">;</a> <a id="3002" href="Categories.Category.Construction.Comma.html#1481" class="Field">commute</a> <a id="3010" class="Symbol">=</a> <a id="3012" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="3028" href="Categories.Category.Construction.Comma.html#2471" class="Field">S₁</a> <a id="3031" class="Symbol">(</a><a id="3032" href="Categories.Category.Construction.Comma.html#3364" class="Function">h₁</a> <a id="3035" href="Categories.Category.Core.html#656" class="Function Operator">B.∘</a> <a id="3039" href="Categories.Category.Construction.Comma.html#3437" class="Field">h₂</a><a id="3041" class="Symbol">)</a> <a id="3043" href="Categories.Category.Core.html#656" class="Field Operator">C.∘</a> <a id="3047" href="Categories.Category.Construction.Comma.html#3503" class="Function">f₁</a> <a id="3053" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="3056" href="Categories.Functor.Core.html#565" class="Field">S.homomorphism</a> <a id="3071" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="3079" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="3091" class="Symbol">(</a><a id="3092" href="Categories.Category.Construction.Comma.html#2471" class="Field">S₁</a> <a id="3095" href="Categories.Category.Construction.Comma.html#3364" class="Function">h₁</a> <a id="3098" href="Categories.Category.Core.html#656" class="Field Operator">C.∘</a> <a id="3102" href="Categories.Category.Construction.Comma.html#2471" class="Field">S₁</a> <a id="3105" href="Categories.Category.Construction.Comma.html#3437" class="Field">h₂</a><a id="3107" class="Symbol">)</a> <a id="3109" href="Categories.Category.Core.html#656" class="Field Operator">C.∘</a> <a id="3113" href="Categories.Category.Construction.Comma.html#3503" class="Function">f₁</a> <a id="3116" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="3119" href="Categories.Morphism.Reasoning.Core.html#4290" class="Function">glue</a> <a id="3124" href="Categories.Category.Construction.Comma.html#3379" class="Function">commutes₁</a> <a id="3134" href="Categories.Category.Construction.Comma.html#3452" class="Field">commutes₂</a> <a id="3144" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="3156" href="Categories.Category.Construction.Comma.html#3591" class="Function">f₃</a> <a id="3159" href="Categories.Category.Core.html#656" class="Field Operator">C.∘</a> <a id="3163" class="Symbol">(</a><a id="3164" href="Categories.Category.Construction.Comma.html#2419" class="Function">T₁</a> <a id="3167" href="Categories.Category.Construction.Comma.html#3355" class="Function">g₁</a> <a id="3170" href="Categories.Category.Core.html#656" class="Field Operator">C.∘</a> <a id="3174" href="Categories.Category.Construction.Comma.html#2419" class="Function">T₁</a> <a id="3177" href="Categories.Category.Construction.Comma.html#3428" class="Field">g₂</a><a id="3179" class="Symbol">)</a> <a id="3181" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="3185" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="3193" href="Categories.Functor.Core.html#565" class="Function">T.homomorphism</a> <a id="3208" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="3220" href="Categories.Category.Construction.Comma.html#3591" class="Function">f₃</a> <a id="3223" href="Categories.Category.Core.html#656" class="Field Operator">C.∘</a> <a id="3227" href="Categories.Category.Construction.Comma.html#2419" class="Function">T₁</a> <a id="3230" class="Symbol">(</a><a id="3231" href="Categories.Category.Construction.Comma.html#3355" class="Function">g₁</a> <a id="3234" href="Categories.Category.Core.html#656" class="Function Operator">A.∘</a> <a id="3238" href="Categories.Category.Construction.Comma.html#3428" class="Field">g₂</a><a id="3240" class="Symbol">)</a> <a id="3245" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="3255" class="Symbol">}</a>
<a id="3265" class="Keyword">where</a>
<a id="3279" class="Keyword">open</a> <a id="3284" href="Categories.Category.Core.html#2462" class="Module">C.HomReasoning</a>
<a id="3307" class="Keyword">open</a> <a id="3312" href="Categories.Morphism.Reasoning.Core.html" class="Module">MR</a> <a id="3315" href="Categories.Category.Construction.Comma.html#713" class="Bound">C</a>
<a id="3325" class="Keyword">open</a> <a id="3330" href="Categories.Category.Construction.Comma.html#1094" class="Module">Comma⇒</a> <a id="3337" href="Categories.Category.Construction.Comma.html#2921" class="Bound">a₁</a> <a id="3340" class="Keyword">renaming</a> <a id="3349" class="Symbol">(</a><a id="3350" href="Categories.Category.Construction.Comma.html#1421" class="Field">g</a> <a id="3352" class="Symbol">to</a> <a id="3355" class="Field">g₁</a><a id="3357" class="Symbol">;</a> <a id="3359" href="Categories.Category.Construction.Comma.html#1451" class="Field">h</a> <a id="3361" class="Symbol">to</a> <a id="3364" class="Field">h₁</a><a id="3366" class="Symbol">;</a> <a id="3368" href="Categories.Category.Construction.Comma.html#1481" class="Field">commute</a> <a id="3376" class="Symbol">to</a> <a id="3379" class="Field">commutes₁</a><a id="3388" class="Symbol">)</a>
<a id="3398" class="Keyword">open</a> <a id="3403" href="Categories.Category.Construction.Comma.html#1094" class="Module">Comma⇒</a> <a id="3410" href="Categories.Category.Construction.Comma.html#2924" class="Bound">a₂</a> <a id="3413" class="Keyword">renaming</a> <a id="3422" class="Symbol">(</a><a id="3423" href="Categories.Category.Construction.Comma.html#1421" class="Field">g</a> <a id="3425" class="Symbol">to</a> <a id="3428" class="Field">g₂</a><a id="3430" class="Symbol">;</a> <a id="3432" href="Categories.Category.Construction.Comma.html#1451" class="Field">h</a> <a id="3434" class="Symbol">to</a> <a id="3437" class="Field">h₂</a><a id="3439" class="Symbol">;</a> <a id="3441" href="Categories.Category.Construction.Comma.html#1481" class="Field">commute</a> <a id="3449" class="Symbol">to</a> <a id="3452" class="Field">commutes₂</a><a id="3461" class="Symbol">)</a>
<a id="3471" class="Keyword">open</a> <a id="3476" href="Categories.Category.Construction.Comma.html#840" class="Module">CommaObj</a> <a id="3485" href="Categories.Category.Construction.Comma.html#2907" class="Bound">X₁</a> <a id="3488" class="Keyword">renaming</a> <a id="3497" class="Symbol">(</a><a id="3498" href="Categories.Category.Construction.Comma.html#1060" class="Field">f</a> <a id="3500" class="Symbol">to</a> <a id="3503" class="Field">f₁</a><a id="3505" class="Symbol">)</a>
<a id="3515" class="Keyword">open</a> <a id="3520" href="Categories.Category.Construction.Comma.html#840" class="Module">CommaObj</a> <a id="3529" href="Categories.Category.Construction.Comma.html#2912" class="Bound">X₂</a> <a id="3532" class="Keyword">renaming</a> <a id="3541" class="Symbol">(</a><a id="3542" href="Categories.Category.Construction.Comma.html#1060" class="Field">f</a> <a id="3544" class="Symbol">to</a> <a id="3547" class="Field">f₂</a><a id="3549" class="Symbol">)</a>
<a id="3559" class="Keyword">open</a> <a id="3564" href="Categories.Category.Construction.Comma.html#840" class="Module">CommaObj</a> <a id="3573" href="Categories.Category.Construction.Comma.html#2917" class="Bound">X₃</a> <a id="3576" class="Keyword">renaming</a> <a id="3585" class="Symbol">(</a><a id="3586" href="Categories.Category.Construction.Comma.html#1060" class="Field">f</a> <a id="3588" class="Symbol">to</a> <a id="3591" class="Field">f₃</a><a id="3593" class="Symbol">)</a>
<a id="3598" class="Keyword">infix</a> <a id="3604" class="Number">4</a> <a id="3606" href="Categories.Category.Construction.Comma.html#3612" class="Function Operator">_↓_</a>
<a id="3612" href="Categories.Category.Construction.Comma.html#3612" class="Function Operator">_↓_</a> <a id="3616" class="Symbol">:</a> <a id="3618" class="Symbol">(</a><a id="3619" href="Categories.Category.Construction.Comma.html#3619" class="Bound">S</a> <a id="3621" class="Symbol">:</a> <a id="3623" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="3631" href="Categories.Category.Construction.Comma.html#664" class="Bound">A</a> <a id="3633" href="Categories.Category.Construction.Comma.html#713" class="Bound">C</a><a id="3634" class="Symbol">)</a> <a id="3636" class="Symbol">(</a><a id="3637" href="Categories.Category.Construction.Comma.html#3637" class="Bound">T</a> <a id="3639" class="Symbol">:</a> <a id="3641" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="3649" href="Categories.Category.Construction.Comma.html#689" class="Bound">B</a> <a id="3651" href="Categories.Category.Construction.Comma.html#713" class="Bound">C</a><a id="3652" class="Symbol">)</a> <a id="3654" class="Symbol"></a> <a id="3656" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="3665" class="Symbol">_</a> <a id="3667" class="Symbol">_</a> <a id="3669" class="Symbol">_</a>
<a id="3673" href="Categories.Category.Construction.Comma.html#3673" class="Bound">S</a> <a id="3675" href="Categories.Category.Construction.Comma.html#3612" class="Function Operator"></a> <a id="3677" href="Categories.Category.Construction.Comma.html#3677" class="Bound">T</a> <a id="3679" class="Symbol">=</a> <a id="3681" href="Categories.Category.Construction.Comma.html#1532" class="Function">Comma</a> <a id="3687" href="Categories.Category.Construction.Comma.html#3673" class="Bound">S</a> <a id="3689" href="Categories.Category.Construction.Comma.html#3677" class="Bound">T</a>
<a id="3694" href="Categories.Category.Construction.Comma.html#3694" class="Function">Dom</a> <a id="3698" class="Symbol">:</a> <a id="3700" class="Symbol">(</a><a id="3701" href="Categories.Category.Construction.Comma.html#3701" class="Bound">T</a> <a id="3703" class="Symbol">:</a> <a id="3705" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="3713" href="Categories.Category.Construction.Comma.html#664" class="Bound">A</a> <a id="3715" href="Categories.Category.Construction.Comma.html#713" class="Bound">C</a><a id="3716" class="Symbol">)</a> <a id="3718" class="Symbol"></a> <a id="3720" class="Symbol">(</a><a id="3721" href="Categories.Category.Construction.Comma.html#3721" class="Bound">S</a> <a id="3723" class="Symbol">:</a> <a id="3725" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="3733" href="Categories.Category.Construction.Comma.html#689" class="Bound">B</a> <a id="3735" href="Categories.Category.Construction.Comma.html#713" class="Bound">C</a><a id="3736" class="Symbol">)</a> <a id="3738" class="Symbol"></a> <a id="3740" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="3748" class="Symbol">(</a><a id="3749" href="Categories.Category.Construction.Comma.html#1532" class="Function">Comma</a> <a id="3755" href="Categories.Category.Construction.Comma.html#3701" class="Bound">T</a> <a id="3757" href="Categories.Category.Construction.Comma.html#3721" class="Bound">S</a><a id="3758" class="Symbol">)</a> <a id="3760" href="Categories.Category.Construction.Comma.html#664" class="Bound">A</a>
<a id="3764" href="Categories.Category.Construction.Comma.html#3694" class="Function">Dom</a> <a id="3768" href="Categories.Category.Construction.Comma.html#3768" class="Bound">T</a> <a id="3770" href="Categories.Category.Construction.Comma.html#3770" class="Bound">S</a> <a id="3772" class="Symbol">=</a> <a id="3774" class="Keyword">record</a>
<a id="3785" class="Symbol">{</a> <a id="3787" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="3790" class="Symbol">=</a> <a id="3792" href="Categories.Category.Construction.Comma.html#1025" class="Field">CommaObj.α</a>
<a id="3807" class="Symbol">;</a> <a id="3809" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3812" class="Symbol">=</a> <a id="3814" href="Categories.Category.Construction.Comma.html#1421" class="Field">Comma⇒.g</a>
<a id="3827" class="Symbol">;</a> <a id="3829" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="3838" class="Symbol">=</a> <a id="3840" href="Relation.Binary.Structures.html#1596" class="Function">refl</a>
<a id="3849" class="Symbol">;</a> <a id="3851" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="3864" class="Symbol">=</a> <a id="3866" href="Relation.Binary.Structures.html#1596" class="Function">refl</a>
<a id="3875" class="Symbol">;</a> <a id="3877" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="3886" class="Symbol">=</a> <a id="3888" href="Data.Product.Base.html#636" class="Field">proj₁</a>
<a id="3898" class="Symbol">}</a>
<a id="3903" class="Keyword">where</a>
<a id="3913" class="Keyword">open</a> <a id="3918" href="Categories.Category.Construction.Comma.html#2300" class="Module">Comma</a> <a id="3924" href="Categories.Category.Construction.Comma.html#3768" class="Bound">T</a> <a id="3926" href="Categories.Category.Construction.Comma.html#3770" class="Bound">S</a>
<a id="3932" class="Keyword">open</a> <a id="3937" href="Categories.Category.Core.html#1530" class="Module">A.Equiv</a>
<a id="3948" href="Categories.Category.Construction.Comma.html#3948" class="Function">Cod</a> <a id="3952" class="Symbol">:</a> <a id="3954" class="Symbol">(</a><a id="3955" href="Categories.Category.Construction.Comma.html#3955" class="Bound">T</a> <a id="3957" class="Symbol">:</a> <a id="3959" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="3967" href="Categories.Category.Construction.Comma.html#664" class="Bound">A</a> <a id="3969" href="Categories.Category.Construction.Comma.html#713" class="Bound">C</a><a id="3970" class="Symbol">)</a> <a id="3972" class="Symbol"></a> <a id="3974" class="Symbol">(</a><a id="3975" href="Categories.Category.Construction.Comma.html#3975" class="Bound">S</a> <a id="3977" class="Symbol">:</a> <a id="3979" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="3987" href="Categories.Category.Construction.Comma.html#689" class="Bound">B</a> <a id="3989" href="Categories.Category.Construction.Comma.html#713" class="Bound">C</a><a id="3990" class="Symbol">)</a> <a id="3992" class="Symbol"></a> <a id="3994" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="4002" class="Symbol">(</a><a id="4003" href="Categories.Category.Construction.Comma.html#1532" class="Function">Comma</a> <a id="4009" href="Categories.Category.Construction.Comma.html#3955" class="Bound">T</a> <a id="4011" href="Categories.Category.Construction.Comma.html#3975" class="Bound">S</a><a id="4012" class="Symbol">)</a> <a id="4014" href="Categories.Category.Construction.Comma.html#689" class="Bound">B</a>
<a id="4018" href="Categories.Category.Construction.Comma.html#3948" class="Function">Cod</a> <a id="4022" href="Categories.Category.Construction.Comma.html#4022" class="Bound">T</a> <a id="4024" href="Categories.Category.Construction.Comma.html#4024" class="Bound">S</a> <a id="4026" class="Symbol">=</a> <a id="4028" class="Keyword">record</a>
<a id="4039" class="Symbol">{</a> <a id="4041" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="4044" class="Symbol">=</a> <a id="4046" href="Categories.Category.Construction.Comma.html#1043" class="Field">CommaObj.β</a>
<a id="4061" class="Symbol">;</a> <a id="4063" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="4066" class="Symbol">=</a> <a id="4068" href="Categories.Category.Construction.Comma.html#1451" class="Field">Comma⇒.h</a>
<a id="4081" class="Symbol">;</a> <a id="4083" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="4092" class="Symbol">=</a> <a id="4094" href="Relation.Binary.Structures.html#1596" class="Function">refl</a>
<a id="4103" class="Symbol">;</a> <a id="4105" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="4118" class="Symbol">=</a> <a id="4120" href="Relation.Binary.Structures.html#1596" class="Function">refl</a>
<a id="4129" class="Symbol">;</a> <a id="4131" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="4140" class="Symbol">=</a> <a id="4142" href="Data.Product.Base.html#650" class="Field">proj₂</a>
<a id="4152" class="Symbol">}</a>
<a id="4157" class="Keyword">where</a>
<a id="4167" class="Keyword">open</a> <a id="4172" href="Categories.Category.Construction.Comma.html#2300" class="Module">Comma</a> <a id="4178" href="Categories.Category.Construction.Comma.html#4022" class="Bound">T</a> <a id="4180" href="Categories.Category.Construction.Comma.html#4024" class="Bound">S</a>
<a id="4186" class="Keyword">open</a> <a id="4191" href="Categories.Category.Core.html#1530" class="Module">B.Equiv</a>
<a id="4200" class="Keyword">module</a> <a id="4207" href="Categories.Category.Construction.Comma.html#4207" class="Module">_</a> <a id="4209" class="Symbol">{</a><a id="4210" href="Categories.Category.Construction.Comma.html#4210" class="Bound">C</a> <a id="4212" class="Symbol">:</a> <a id="4214" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="4223" href="Categories.Category.Construction.Comma.html#534" class="Generalizable">o₁</a> <a id="4226" href="Categories.Category.Construction.Comma.html#537" class="Generalizable">ℓ₁</a> <a id="4229" href="Categories.Category.Construction.Comma.html#540" class="Generalizable">e₁</a><a id="4231" class="Symbol">}</a> <a id="4233" class="Symbol">{</a><a id="4234" href="Categories.Category.Construction.Comma.html#4234" class="Bound">D</a> <a id="4236" class="Symbol">:</a> <a id="4238" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="4247" href="Categories.Category.Construction.Comma.html#543" class="Generalizable">o₂</a> <a id="4250" href="Categories.Category.Construction.Comma.html#546" class="Generalizable">ℓ₂</a> <a id="4253" href="Categories.Category.Construction.Comma.html#549" class="Generalizable">e₂</a><a id="4255" class="Symbol">}</a> <a id="4257" class="Keyword">where</a>
<a id="4265" class="Keyword">private</a>
<a id="4277" class="Keyword">module</a> <a id="4284" href="Categories.Category.Construction.Comma.html#4284" class="Module">C</a> <a id="4286" class="Symbol">=</a> <a id="4288" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="4297" href="Categories.Category.Construction.Comma.html#4210" class="Bound">C</a>
<a id="4302" class="Keyword">infix</a> <a id="4308" class="Number">4</a> <a id="4310" href="Categories.Category.Construction.Comma.html#4320" class="Function Operator">_↙_</a> <a id="4314" href="Categories.Category.Construction.Comma.html#4416" class="Function Operator">_↘_</a>
<a id="4320" href="Categories.Category.Construction.Comma.html#4320" class="Function Operator">_↙_</a> <a id="4324" class="Symbol">:</a> <a id="4326" class="Symbol">(</a><a id="4327" href="Categories.Category.Construction.Comma.html#4327" class="Bound">X</a> <a id="4329" class="Symbol">:</a> <a id="4331" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="4336" class="Symbol">)</a> <a id="4338" class="Symbol">(</a><a id="4339" href="Categories.Category.Construction.Comma.html#4339" class="Bound">T</a> <a id="4341" class="Symbol">:</a> <a id="4343" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="4351" href="Categories.Category.Construction.Comma.html#4234" class="Bound">D</a> <a id="4353" href="Categories.Category.Construction.Comma.html#4210" class="Bound">C</a><a id="4354" class="Symbol">)</a> <a id="4356" class="Symbol"></a> <a id="4358" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="4367" class="Symbol">(</a><a id="4368" href="Categories.Category.Construction.Comma.html#4247" class="Bound">o₂</a> <a id="4371" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="4373" href="Categories.Category.Construction.Comma.html#4226" class="Bound">ℓ₁</a><a id="4375" class="Symbol">)</a> <a id="4377" class="Symbol">(</a><a id="4378" href="Categories.Category.Construction.Comma.html#4250" class="Bound">ℓ₂</a> <a id="4381" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="4383" href="Categories.Category.Construction.Comma.html#4229" class="Bound">e₁</a><a id="4385" class="Symbol">)</a> <a id="4387" href="Categories.Category.Construction.Comma.html#4253" class="Bound">e₂</a>
<a id="4392" href="Categories.Category.Construction.Comma.html#4392" class="Bound">X</a> <a id="4394" href="Categories.Category.Construction.Comma.html#4320" class="Function Operator"></a> <a id="4396" href="Categories.Category.Construction.Comma.html#4396" class="Bound">T</a> <a id="4398" class="Symbol">=</a> <a id="4400" href="Categories.Functor.Construction.Constant.html#719" class="Function">const!</a> <a id="4407" href="Categories.Category.Construction.Comma.html#4392" class="Bound">X</a> <a id="4409" href="Categories.Category.Construction.Comma.html#3612" class="Function Operator"></a> <a id="4411" href="Categories.Category.Construction.Comma.html#4396" class="Bound">T</a>
<a id="4416" href="Categories.Category.Construction.Comma.html#4416" class="Function Operator">_↘_</a> <a id="4420" class="Symbol">:</a> <a id="4422" class="Symbol">(</a><a id="4423" href="Categories.Category.Construction.Comma.html#4423" class="Bound">S</a> <a id="4425" class="Symbol">:</a> <a id="4427" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="4435" href="Categories.Category.Construction.Comma.html#4234" class="Bound">D</a> <a id="4437" href="Categories.Category.Construction.Comma.html#4210" class="Bound">C</a><a id="4438" class="Symbol">)</a> <a id="4440" class="Symbol">(</a><a id="4441" href="Categories.Category.Construction.Comma.html#4441" class="Bound">X</a> <a id="4443" class="Symbol">:</a> <a id="4445" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="4450" class="Symbol">)</a> <a id="4452" class="Symbol"></a> <a id="4454" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="4463" class="Symbol">(</a><a id="4464" href="Categories.Category.Construction.Comma.html#4247" class="Bound">o₂</a> <a id="4467" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="4469" href="Categories.Category.Construction.Comma.html#4226" class="Bound">ℓ₁</a><a id="4471" class="Symbol">)</a> <a id="4473" class="Symbol">(</a><a id="4474" href="Categories.Category.Construction.Comma.html#4250" class="Bound">ℓ₂</a> <a id="4477" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="4479" href="Categories.Category.Construction.Comma.html#4229" class="Bound">e₁</a><a id="4481" class="Symbol">)</a> <a id="4484" href="Categories.Category.Construction.Comma.html#4253" class="Bound">e₂</a>
<a id="4489" href="Categories.Category.Construction.Comma.html#4489" class="Bound">S</a> <a id="4491" href="Categories.Category.Construction.Comma.html#4416" class="Function Operator"></a> <a id="4493" href="Categories.Category.Construction.Comma.html#4493" class="Bound">X</a> <a id="4495" class="Symbol">=</a> <a id="4497" href="Categories.Category.Construction.Comma.html#4489" class="Bound">S</a> <a id="4499" href="Categories.Category.Construction.Comma.html#3612" class="Function Operator"></a> <a id="4501" href="Categories.Functor.Construction.Constant.html#719" class="Function">const!</a> <a id="4508" href="Categories.Category.Construction.Comma.html#4493" class="Bound">X</a>
</pre></body></html>