mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
161 lines
78 KiB
HTML
161 lines
78 KiB
HTML
|
<!DOCTYPE HTML>
|
|||
|
<html><head><meta charset="utf-8"><title>Categories.NaturalTransformation.Core</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="37" class="Keyword">module</a> <a id="44" href="Categories.NaturalTransformation.Core.html" class="Module">Categories.NaturalTransformation.Core</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="Level.html" class="Module">Level</a>
|
|||
|
|
|||
|
<a id="108" class="Keyword">open</a> <a id="113" class="Keyword">import</a> <a id="120" href="Categories.Category.html" class="Module">Categories.Category</a>
|
|||
|
<a id="140" class="Keyword">open</a> <a id="145" class="Keyword">import</a> <a id="152" href="Categories.Functor.html" class="Module">Categories.Functor</a> <a id="171" class="Keyword">renaming</a> <a id="180" class="Symbol">(</a><a id="181" href="Categories.Functor.html#349" class="Function">id</a> <a id="184" class="Symbol">to</a> <a id="187" class="Function">idF</a><a id="190" class="Symbol">)</a>
|
|||
|
<a id="192" class="Keyword">open</a> <a id="197" class="Keyword">import</a> <a id="204" href="Categories.Functor.Properties.html" class="Module">Categories.Functor.Properties</a>
|
|||
|
<a id="234" class="Keyword">import</a> <a id="241" href="Categories.Morphism.html" class="Module">Categories.Morphism</a> <a id="261" class="Symbol">as</a> <a id="264" class="Module">Morphism</a>
|
|||
|
<a id="273" class="Keyword">import</a> <a id="280" href="Categories.Morphism.Reasoning.html" class="Module">Categories.Morphism.Reasoning</a> <a id="310" class="Symbol">as</a> <a id="313" class="Module">MR</a>
|
|||
|
|
|||
|
<a id="317" class="Keyword">open</a> <a id="322" class="Keyword">import</a> <a id="329" href="Relation.Binary.PropositionalEquality.html" class="Module">Relation.Binary.PropositionalEquality</a> <a id="367" class="Symbol">as</a> <a id="370" class="Module">≡</a> <a id="372" class="Keyword">using</a> <a id="378" class="Symbol">(</a><a id="379" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a><a id="382" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="385" class="Keyword">private</a>
|
|||
|
<a id="395" class="Keyword">variable</a>
|
|||
|
<a id="408" href="Categories.NaturalTransformation.Core.html#408" class="Generalizable">o</a> <a id="410" href="Categories.NaturalTransformation.Core.html#410" class="Generalizable">ℓ</a> <a id="412" href="Categories.NaturalTransformation.Core.html#412" class="Generalizable">e</a> <a id="414" href="Categories.NaturalTransformation.Core.html#414" class="Generalizable">o′</a> <a id="417" href="Categories.NaturalTransformation.Core.html#417" class="Generalizable">ℓ′</a> <a id="420" href="Categories.NaturalTransformation.Core.html#420" class="Generalizable">e′</a> <a id="423" class="Symbol">:</a> <a id="425" href="Agda.Primitive.html#591" class="Postulate">Level</a>
|
|||
|
<a id="435" href="Categories.NaturalTransformation.Core.html#435" class="Generalizable">C</a> <a id="437" href="Categories.NaturalTransformation.Core.html#437" class="Generalizable">D</a> <a id="439" href="Categories.NaturalTransformation.Core.html#439" class="Generalizable">E</a> <a id="441" class="Symbol">:</a> <a id="443" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="452" href="Categories.NaturalTransformation.Core.html#408" class="Generalizable">o</a> <a id="454" href="Categories.NaturalTransformation.Core.html#410" class="Generalizable">ℓ</a> <a id="456" href="Categories.NaturalTransformation.Core.html#412" class="Generalizable">e</a>
|
|||
|
|
|||
|
<a id="459" class="Keyword">record</a> <a id="NaturalTransformation"></a><a id="466" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="488" class="Symbol">{</a><a id="489" href="Categories.NaturalTransformation.Core.html#489" class="Bound">C</a> <a id="491" class="Symbol">:</a> <a id="493" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="502" href="Categories.NaturalTransformation.Core.html#408" class="Generalizable">o</a> <a id="504" href="Categories.NaturalTransformation.Core.html#410" class="Generalizable">ℓ</a> <a id="506" href="Categories.NaturalTransformation.Core.html#412" class="Generalizable">e</a><a id="507" class="Symbol">}</a>
|
|||
|
<a id="538" class="Symbol">{</a><a id="539" href="Categories.NaturalTransformation.Core.html#539" class="Bound">D</a> <a id="541" class="Symbol">:</a> <a id="543" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="552" href="Categories.NaturalTransformation.Core.html#414" class="Generalizable">o′</a> <a id="555" href="Categories.NaturalTransformation.Core.html#417" class="Generalizable">ℓ′</a> <a id="558" href="Categories.NaturalTransformation.Core.html#420" class="Generalizable">e′</a><a id="560" class="Symbol">}</a>
|
|||
|
<a id="591" class="Symbol">(</a><a id="592" href="Categories.NaturalTransformation.Core.html#592" class="Bound">F</a> <a id="594" href="Categories.NaturalTransformation.Core.html#594" class="Bound">G</a> <a id="596" class="Symbol">:</a> <a id="598" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="606" href="Categories.NaturalTransformation.Core.html#489" class="Bound">C</a> <a id="608" href="Categories.NaturalTransformation.Core.html#539" class="Bound">D</a><a id="609" class="Symbol">)</a> <a id="611" class="Symbol">:</a> <a id="613" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="617" class="Symbol">(</a><a id="618" href="Categories.NaturalTransformation.Core.html#502" class="Bound">o</a> <a id="620" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="622" href="Categories.NaturalTransformation.Core.html#504" class="Bound">ℓ</a> <a id="624" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="626" href="Categories.NaturalTransformation.Core.html#555" class="Bound">ℓ′</a> <a id="629" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="631" href="Categories.NaturalTransformation.Core.html#558" class="Bound">e′</a><a id="633" class="Symbol">)</a> <a id="635" class="Keyword">where</a>
|
|||
|
<a id="643" class="Keyword">eta-equality</a>
|
|||
|
<a id="658" class="Keyword">private</a>
|
|||
|
<a id="670" class="Keyword">module</a> <a id="NaturalTransformation.F"></a><a id="677" href="Categories.NaturalTransformation.Core.html#677" class="Module">F</a> <a id="679" class="Symbol">=</a> <a id="681" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="689" href="Categories.NaturalTransformation.Core.html#592" class="Bound">F</a>
|
|||
|
<a id="695" class="Keyword">module</a> <a id="NaturalTransformation.G"></a><a id="702" href="Categories.NaturalTransformation.Core.html#702" class="Module">G</a> <a id="704" class="Symbol">=</a> <a id="706" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="714" href="Categories.NaturalTransformation.Core.html#594" class="Bound">G</a>
|
|||
|
<a id="718" class="Keyword">open</a> <a id="723" href="Categories.NaturalTransformation.Core.html#677" class="Module">F</a> <a id="725" class="Keyword">using</a> <a id="731" class="Symbol">(</a><a id="732" href="Categories.Functor.Core.html#432" class="Function">F₀</a><a id="734" class="Symbol">;</a> <a id="736" href="Categories.Functor.Core.html#455" class="Function">F₁</a><a id="738" class="Symbol">)</a>
|
|||
|
<a id="742" class="Keyword">open</a> <a id="747" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="756" href="Categories.NaturalTransformation.Core.html#539" class="Bound">D</a> <a id="758" class="Keyword">hiding</a> <a id="765" class="Symbol">(</a><a id="766" href="Categories.Category.Core.html#3132" class="Function">op</a><a id="768" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="773" class="Keyword">field</a>
|
|||
|
<a id="NaturalTransformation.η"></a><a id="783" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="795" class="Symbol">:</a> <a id="797" class="Symbol">∀</a> <a id="799" href="Categories.NaturalTransformation.Core.html#799" class="Bound">X</a> <a id="801" class="Symbol">→</a> <a id="803" href="Categories.NaturalTransformation.Core.html#539" class="Bound">D</a> <a id="805" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="807" href="Categories.Functor.Core.html#432" class="Function">F₀</a> <a id="810" href="Categories.NaturalTransformation.Core.html#799" class="Bound">X</a> <a id="812" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="814" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="819" href="Categories.NaturalTransformation.Core.html#799" class="Bound">X</a> <a id="821" href="Categories.Category.html#502" class="Function Operator">]</a>
|
|||
|
<a id="NaturalTransformation.commute"></a><a id="827" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="839" class="Symbol">:</a> <a id="841" class="Symbol">∀</a> <a id="843" class="Symbol">{</a><a id="844" href="Categories.NaturalTransformation.Core.html#844" class="Bound">X</a> <a id="846" href="Categories.NaturalTransformation.Core.html#846" class="Bound">Y</a><a id="847" class="Symbol">}</a> <a id="849" class="Symbol">(</a><a id="850" href="Categories.NaturalTransformation.Core.html#850" class="Bound">f</a> <a id="852" class="Symbol">:</a> <a id="854" href="Categories.NaturalTransformation.Core.html#489" class="Bound">C</a> <a id="856" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="858" href="Categories.NaturalTransformation.Core.html#844" class="Bound">X</a> <a id="860" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="862" href="Categories.NaturalTransformation.Core.html#846" class="Bound">Y</a> <a id="864" href="Categories.Category.html#502" class="Function Operator">]</a><a id="865" class="Symbol">)</a> <a id="867" class="Symbol">→</a> <a id="869" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="871" href="Categories.NaturalTransformation.Core.html#846" class="Bound">Y</a> <a id="873" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="875" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="878" href="Categories.NaturalTransformation.Core.html#850" class="Bound">f</a> <a id="880" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="882" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="887" href="Categories.NaturalTransformation.Core.html#850" class="Bound">f</a> <a id="889" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="891" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="893" href="Categories.NaturalTransformation.Core.html#844" class="Bound">X</a>
|
|||
|
<a id="899" class="Comment">-- We introduce an extra proof to ensure the opposite of the opposite of a natural</a>
|
|||
|
<a id="986" class="Comment">-- transformation is definitionally equal to itself.</a>
|
|||
|
<a id="NaturalTransformation.sym-commute"></a><a id="1043" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="1055" class="Symbol">:</a> <a id="1057" class="Symbol">∀</a> <a id="1059" class="Symbol">{</a><a id="1060" href="Categories.NaturalTransformation.Core.html#1060" class="Bound">X</a> <a id="1062" href="Categories.NaturalTransformation.Core.html#1062" class="Bound">Y</a><a id="1063" class="Symbol">}</a> <a id="1065" class="Symbol">(</a><a id="1066" href="Categories.NaturalTransformation.Core.html#1066" class="Bound">f</a> <a id="1068" class="Symbol">:</a> <a id="1070" href="Categories.NaturalTransformation.Core.html#489" class="Bound">C</a> <a id="1072" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="1074" href="Categories.NaturalTransformation.Core.html#1060" class="Bound">X</a> <a id="1076" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="1078" href="Categories.NaturalTransformation.Core.html#1062" class="Bound">Y</a> <a id="1080" href="Categories.Category.html#502" class="Function Operator">]</a><a id="1081" class="Symbol">)</a> <a id="1083" class="Symbol">→</a> <a id="1085" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="1090" href="Categories.NaturalTransformation.Core.html#1066" class="Bound">f</a> <a id="1092" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="1094" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="1096" href="Categories.NaturalTransformation.Core.html#1060" class="Bound">X</a> <a id="1098" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="1100" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="1102" href="Categories.NaturalTransformation.Core.html#1062" class="Bound">Y</a> <a id="1104" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="1106" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1109" href="Categories.NaturalTransformation.Core.html#1066" class="Bound">f</a>
|
|||
|
|
|||
|
<a id="NaturalTransformation.op"></a><a id="1114" href="Categories.NaturalTransformation.Core.html#1114" class="Function">op</a> <a id="1117" class="Symbol">:</a> <a id="1119" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="1141" href="Categories.Functor.Core.html#816" class="Function">G.op</a> <a id="1146" href="Categories.Functor.Core.html#816" class="Function">F.op</a>
|
|||
|
<a id="1153" href="Categories.NaturalTransformation.Core.html#1114" class="Function">op</a> <a id="1156" class="Symbol">=</a> <a id="1158" class="Keyword">record</a>
|
|||
|
<a id="1169" class="Symbol">{</a> <a id="1171" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="1183" class="Symbol">=</a> <a id="1185" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a>
|
|||
|
<a id="1191" class="Symbol">;</a> <a id="1193" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="1205" class="Symbol">=</a> <a id="1207" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a>
|
|||
|
<a id="1223" class="Symbol">;</a> <a id="1225" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="1237" class="Symbol">=</a> <a id="1239" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a>
|
|||
|
<a id="1251" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="1254" class="Comment">-- Just like `Category`, we introduce a helper definition to ease the actual</a>
|
|||
|
<a id="1331" class="Comment">-- construction of a natural transformation.</a>
|
|||
|
<a id="1376" class="Keyword">record</a> <a id="NTHelper"></a><a id="1383" href="Categories.NaturalTransformation.Core.html#1383" class="Record">NTHelper</a> <a id="1392" class="Symbol">{</a><a id="1393" href="Categories.NaturalTransformation.Core.html#1393" class="Bound">C</a> <a id="1395" class="Symbol">:</a> <a id="1397" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="1406" href="Categories.NaturalTransformation.Core.html#408" class="Generalizable">o</a> <a id="1408" href="Categories.NaturalTransformation.Core.html#410" class="Generalizable">ℓ</a> <a id="1410" href="Categories.NaturalTransformation.Core.html#412" class="Generalizable">e</a><a id="1411" class="Symbol">}</a>
|
|||
|
<a id="1429" class="Symbol">{</a><a id="1430" href="Categories.NaturalTransformation.Core.html#1430" class="Bound">D</a> <a id="1432" class="Symbol">:</a> <a id="1434" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="1443" href="Categories.NaturalTransformation.Core.html#414" class="Generalizable">o′</a> <a id="1446" href="Categories.NaturalTransformation.Core.html#417" class="Generalizable">ℓ′</a> <a id="1449" href="Categories.NaturalTransformation.Core.html#420" class="Generalizable">e′</a><a id="1451" class="Symbol">}</a>
|
|||
|
<a id="1469" class="Symbol">(</a><a id="1470" href="Categories.NaturalTransformation.Core.html#1470" class="Bound">F</a> <a id="1472" href="Categories.NaturalTransformation.Core.html#1472" class="Bound">G</a> <a id="1474" class="Symbol">:</a> <a id="1476" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1484" href="Categories.NaturalTransformation.Core.html#1393" class="Bound">C</a> <a id="1486" href="Categories.NaturalTransformation.Core.html#1430" class="Bound">D</a><a id="1487" class="Symbol">)</a> <a id="1489" class="Symbol">:</a> <a id="1491" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1495" class="Symbol">(</a><a id="1496" href="Categories.NaturalTransformation.Core.html#1406" class="Bound">o</a> <a id="1498" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1500" href="Categories.NaturalTransformation.Core.html#1408" class="Bound">ℓ</a> <a id="1502" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1504" href="Categories.NaturalTransformation.Core.html#1410" class="Bound">e</a> <a id="1506" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1508" href="Categories.NaturalTransformation.Core.html#1443" class="Bound">o′</a> <a id="1511" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1513" href="Categories.NaturalTransformation.Core.html#1446" class="Bound">ℓ′</a> <a id="1516" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1518" href="Categories.NaturalTransformation.Core.html#1449" class="Bound">e′</a><a id="1520" class="Symbol">)</a> <a id="1522" class="Keyword">where</a>
|
|||
|
<a id="1530" class="Keyword">private</a>
|
|||
|
<a id="1542" class="Keyword">module</a> <a id="NTHelper.G"></a><a id="1549" href="Categories.NaturalTransformation.Core.html#1549" class="Module">G</a> <a id="1551" class="Symbol">=</a> <a id="1553" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="1561" href="Categories.NaturalTransformation.Core.html#1472" class="Bound">G</a>
|
|||
|
<a id="1565" class="Keyword">open</a> <a id="1570" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="1578" href="Categories.NaturalTransformation.Core.html#1470" class="Bound">F</a> <a id="1580" class="Keyword">using</a> <a id="1586" class="Symbol">(</a><a id="1587" href="Categories.Functor.Core.html#432" class="Field">F₀</a><a id="1589" class="Symbol">;</a> <a id="1591" href="Categories.Functor.Core.html#455" class="Field">F₁</a><a id="1593" class="Symbol">)</a>
|
|||
|
<a id="1597" class="Keyword">open</a> <a id="1602" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="1611" href="Categories.NaturalTransformation.Core.html#1430" class="Bound">D</a> <a id="1613" class="Keyword">hiding</a> <a id="1620" class="Symbol">(</a><a id="1621" href="Categories.Category.Core.html#3132" class="Function">op</a><a id="1623" class="Symbol">)</a>
|
|||
|
<a id="1627" class="Keyword">field</a>
|
|||
|
<a id="NTHelper.η"></a><a id="1637" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="1649" class="Symbol">:</a> <a id="1651" class="Symbol">∀</a> <a id="1653" href="Categories.NaturalTransformation.Core.html#1653" class="Bound">X</a> <a id="1655" class="Symbol">→</a> <a id="1657" href="Categories.NaturalTransformation.Core.html#1430" class="Bound">D</a> <a id="1659" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="1661" href="Categories.Functor.Core.html#432" class="Function">F₀</a> <a id="1664" href="Categories.NaturalTransformation.Core.html#1653" class="Bound">X</a> <a id="1666" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="1668" href="Categories.Functor.Core.html#432" class="Function">G.F₀</a> <a id="1673" href="Categories.NaturalTransformation.Core.html#1653" class="Bound">X</a> <a id="1675" href="Categories.Category.html#502" class="Function Operator">]</a>
|
|||
|
<a id="NTHelper.commute"></a><a id="1681" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="1693" class="Symbol">:</a> <a id="1695" class="Symbol">∀</a> <a id="1697" class="Symbol">{</a><a id="1698" href="Categories.NaturalTransformation.Core.html#1698" class="Bound">X</a> <a id="1700" href="Categories.NaturalTransformation.Core.html#1700" class="Bound">Y</a><a id="1701" class="Symbol">}</a> <a id="1703" class="Symbol">(</a><a id="1704" href="Categories.NaturalTransformation.Core.html#1704" class="Bound">f</a> <a id="1706" class="Symbol">:</a> <a id="1708" href="Categories.NaturalTransformation.Core.html#1393" class="Bound">C</a> <a id="1710" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="1712" href="Categories.NaturalTransformation.Core.html#1698" class="Bound">X</a> <a id="1714" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="1716" href="Categories.NaturalTransformation.Core.html#1700" class="Bound">Y</a> <a id="1718" href="Categories.Category.html#502" class="Function Operator">]</a><a id="1719" class="Symbol">)</a> <a id="1721" class="Symbol">→</a> <a id="1723" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="1725" href="Categories.NaturalTransformation.Core.html#1700" class="Bound">Y</a> <a id="1727" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="1729" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="1732" href="Categories.NaturalTransformation.Core.html#1704" class="Bound">f</a> <a id="1734" href="Categories.Category.Core.html#595" class="Function Operator">≈</a> <a id="1736" href="Categories.Functor.Core.html#455" class="Function">G.F₁</a> <a id="1741" href="Categories.NaturalTransformation.Core.html#1704" class="Bound">f</a> <a id="1743" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="1745" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="1747" href="Categories.NaturalTransformation.Core.html#1698" class="Bound">X</a>
|
|||
|
|
|||
|
<a id="ntHelper"></a><a id="1750" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="1759" class="Symbol">:</a> <a id="1761" class="Symbol">∀</a> <a id="1763" class="Symbol">{</a><a id="1764" href="Categories.NaturalTransformation.Core.html#1764" class="Bound">F</a> <a id="1766" href="Categories.NaturalTransformation.Core.html#1766" class="Bound">G</a> <a id="1768" class="Symbol">:</a> <a id="1770" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1778" href="Categories.NaturalTransformation.Core.html#435" class="Generalizable">C</a> <a id="1780" href="Categories.NaturalTransformation.Core.html#437" class="Generalizable">D</a><a id="1781" class="Symbol">}</a> <a id="1783" class="Symbol">→</a> <a id="1785" href="Categories.NaturalTransformation.Core.html#1383" class="Record">NTHelper</a> <a id="1794" href="Categories.NaturalTransformation.Core.html#1764" class="Bound">F</a> <a id="1796" href="Categories.NaturalTransformation.Core.html#1766" class="Bound">G</a> <a id="1798" class="Symbol">→</a> <a id="1800" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="1822" href="Categories.NaturalTransformation.Core.html#1764" class="Bound">F</a> <a id="1824" href="Categories.NaturalTransformation.Core.html#1766" class="Bound">G</a>
|
|||
|
<a id="1826" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="1835" class="Symbol">{</a><a id="1836" class="Argument">D</a> <a id="1838" class="Symbol">=</a> <a id="1840" href="Categories.NaturalTransformation.Core.html#1840" class="Bound">D</a><a id="1841" class="Symbol">}</a> <a id="1843" href="Categories.NaturalTransformation.Core.html#1843" class="Bound">α</a> <a id="1845" class="Symbol">=</a> <a id="1847" class="Keyword">record</a>
|
|||
|
<a id="1856" class="Symbol">{</a> <a id="1858" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="1870" class="Symbol">=</a> <a id="1872" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a>
|
|||
|
<a id="1876" class="Symbol">;</a> <a id="1878" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="1890" class="Symbol">=</a> <a id="1892" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a>
|
|||
|
<a id="1902" class="Symbol">;</a> <a id="1904" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="1916" class="Symbol">=</a> <a id="1918" class="Symbol">λ</a> <a id="1920" href="Categories.NaturalTransformation.Core.html#1920" class="Bound">f</a> <a id="1922" class="Symbol">→</a> <a id="1924" href="Relation.Binary.Structures.html#1603" class="Function">Equiv.sym</a> <a id="1934" class="Symbol">(</a><a id="1935" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="1943" href="Categories.NaturalTransformation.Core.html#1920" class="Bound">f</a><a id="1944" class="Symbol">)</a>
|
|||
|
<a id="1948" class="Symbol">}</a>
|
|||
|
<a id="1952" class="Keyword">where</a> <a id="1958" class="Keyword">open</a> <a id="1963" href="Categories.NaturalTransformation.Core.html#1383" class="Module">NTHelper</a> <a id="1972" href="Categories.NaturalTransformation.Core.html#1843" class="Bound">α</a>
|
|||
|
<a id="1982" class="Keyword">open</a> <a id="1987" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="1996" href="Categories.NaturalTransformation.Core.html#1840" class="Bound">D</a>
|
|||
|
|
|||
|
<a id="1999" class="Comment">-- Don't use ntHelper as it produces non-reduction in other places</a>
|
|||
|
<a id="2066" class="Comment">-- and be pedantic about arguments too, this helps inference too.</a>
|
|||
|
<a id="id"></a><a id="2132" href="Categories.NaturalTransformation.Core.html#2132" class="Function">id</a> <a id="2135" class="Symbol">:</a> <a id="2137" class="Symbol">∀</a> <a id="2139" class="Symbol">{</a><a id="2140" href="Categories.NaturalTransformation.Core.html#2140" class="Bound">F</a> <a id="2142" class="Symbol">:</a> <a id="2144" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="2152" href="Categories.NaturalTransformation.Core.html#435" class="Generalizable">C</a> <a id="2154" href="Categories.NaturalTransformation.Core.html#437" class="Generalizable">D</a><a id="2155" class="Symbol">}</a> <a id="2157" class="Symbol">→</a> <a id="2159" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="2181" href="Categories.NaturalTransformation.Core.html#2140" class="Bound">F</a> <a id="2183" href="Categories.NaturalTransformation.Core.html#2140" class="Bound">F</a>
|
|||
|
<a id="2185" href="Categories.NaturalTransformation.Core.html#2132" class="Function">id</a> <a id="2188" class="Symbol">{</a><a id="2189" class="Argument">D</a> <a id="2191" class="Symbol">=</a> <a id="2193" href="Categories.NaturalTransformation.Core.html#2193" class="Bound">D</a><a id="2194" class="Symbol">}</a> <a id="2196" class="Symbol">{</a><a id="2197" href="Categories.NaturalTransformation.Core.html#2197" class="Bound">F</a><a id="2198" class="Symbol">}</a> <a id="2200" class="Symbol">=</a> <a id="2202" class="Keyword">record</a>
|
|||
|
<a id="2211" class="Symbol">{</a> <a id="2213" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="2215" class="Symbol">=</a> <a id="2217" class="Symbol">λ</a> <a id="2219" href="Categories.NaturalTransformation.Core.html#2219" class="Bound">_</a> <a id="2221" class="Symbol">→</a> <a id="2223" href="Categories.Category.Core.html#630" class="Function">D.id</a>
|
|||
|
<a id="2230" class="Symbol">;</a> <a id="2232" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="2240" class="Symbol">=</a> <a id="2242" class="Symbol">λ</a> <a id="2244" href="Categories.NaturalTransformation.Core.html#2244" class="Bound">f</a> <a id="2246" class="Symbol">→</a> <a id="2248" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a> <a id="2260" class="Symbol">{</a><a id="2261" class="Argument">f</a> <a id="2263" class="Symbol">=</a> <a id="2265" href="Categories.Functor.Core.html#455" class="Field">Functor.F₁</a> <a id="2276" href="Categories.NaturalTransformation.Core.html#2197" class="Bound">F</a> <a id="2278" href="Categories.NaturalTransformation.Core.html#2244" class="Bound">f</a><a id="2279" class="Symbol">}</a>
|
|||
|
<a id="2283" class="Symbol">;</a> <a id="2285" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="2297" class="Symbol">=</a> <a id="2299" class="Symbol">λ</a> <a id="2301" href="Categories.NaturalTransformation.Core.html#2301" class="Bound">f</a> <a id="2303" class="Symbol">→</a> <a id="2305" href="Categories.Morphism.Reasoning.Core.html#1202" class="Function">id-comm</a> <a id="2313" class="Symbol">{</a><a id="2314" class="Argument">f</a> <a id="2316" class="Symbol">=</a> <a id="2318" href="Categories.Functor.Core.html#455" class="Field">Functor.F₁</a> <a id="2329" href="Categories.NaturalTransformation.Core.html#2197" class="Bound">F</a> <a id="2331" href="Categories.NaturalTransformation.Core.html#2301" class="Bound">f</a><a id="2332" class="Symbol">}</a>
|
|||
|
<a id="2336" class="Symbol">}</a>
|
|||
|
<a id="2340" class="Keyword">where</a>
|
|||
|
<a id="2348" class="Keyword">module</a> <a id="2355" href="Categories.NaturalTransformation.Core.html#2355" class="Module">D</a> <a id="2357" class="Symbol">=</a> <a id="2359" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="2368" href="Categories.NaturalTransformation.Core.html#2193" class="Bound">D</a>
|
|||
|
<a id="2372" class="Keyword">open</a> <a id="2377" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="2380" href="Categories.NaturalTransformation.Core.html#2193" class="Bound">D</a>
|
|||
|
|
|||
|
<a id="2383" class="Keyword">infixr</a> <a id="2390" class="Number">9</a> <a id="2392" href="Categories.NaturalTransformation.Core.html#2439" class="Function Operator">_∘ᵥ_</a> <a id="2397" href="Categories.NaturalTransformation.Core.html#2919" class="Function Operator">_∘ₕ_</a> <a id="2402" href="Categories.NaturalTransformation.Core.html#3439" class="Function Operator">_∘ˡ_</a> <a id="2407" href="Categories.NaturalTransformation.Core.html#3784" class="Function Operator">_∘ʳ_</a>
|
|||
|
|
|||
|
<a id="2413" class="Comment">-- "Vertical composition"</a>
|
|||
|
<a id="_∘ᵥ_"></a><a id="2439" href="Categories.NaturalTransformation.Core.html#2439" class="Function Operator">_∘ᵥ_</a> <a id="2444" class="Symbol">:</a> <a id="2446" class="Symbol">∀</a> <a id="2448" class="Symbol">{</a><a id="2449" href="Categories.NaturalTransformation.Core.html#2449" class="Bound">F</a> <a id="2451" href="Categories.NaturalTransformation.Core.html#2451" class="Bound">G</a> <a id="2453" href="Categories.NaturalTransformation.Core.html#2453" class="Bound">H</a> <a id="2455" class="Symbol">:</a> <a id="2457" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="2465" href="Categories.NaturalTransformation.Core.html#435" class="Generalizable">C</a> <a id="2467" href="Categories.NaturalTransformation.Core.html#437" class="Generalizable">D</a><a id="2468" class="Symbol">}</a> <a id="2470" class="Symbol">→</a>
|
|||
|
<a id="2481" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="2503" href="Categories.NaturalTransformation.Core.html#2451" class="Bound">G</a> <a id="2505" href="Categories.NaturalTransformation.Core.html#2453" class="Bound">H</a> <a id="2507" class="Symbol">→</a> <a id="2509" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="2531" href="Categories.NaturalTransformation.Core.html#2449" class="Bound">F</a> <a id="2533" href="Categories.NaturalTransformation.Core.html#2451" class="Bound">G</a> <a id="2535" class="Symbol">→</a> <a id="2537" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="2559" href="Categories.NaturalTransformation.Core.html#2449" class="Bound">F</a> <a id="2561" href="Categories.NaturalTransformation.Core.html#2453" class="Bound">H</a>
|
|||
|
<a id="2563" href="Categories.NaturalTransformation.Core.html#2439" class="Function Operator">_∘ᵥ_</a> <a id="2568" class="Symbol">{</a><a id="2569" class="Argument">C</a> <a id="2571" class="Symbol">=</a> <a id="2573" href="Categories.NaturalTransformation.Core.html#2573" class="Bound">C</a><a id="2574" class="Symbol">}</a> <a id="2576" class="Symbol">{</a><a id="2577" class="Argument">D</a> <a id="2579" class="Symbol">=</a> <a id="2581" href="Categories.NaturalTransformation.Core.html#2581" class="Bound">D</a><a id="2582" class="Symbol">}</a> <a id="2584" class="Symbol">{</a><a id="2585" href="Categories.NaturalTransformation.Core.html#2585" class="Bound">F</a><a id="2586" class="Symbol">}</a> <a id="2588" class="Symbol">{</a><a id="2589" href="Categories.NaturalTransformation.Core.html#2589" class="Bound">G</a><a id="2590" class="Symbol">}</a> <a id="2592" class="Symbol">{</a><a id="2593" href="Categories.NaturalTransformation.Core.html#2593" class="Bound">H</a><a id="2594" class="Symbol">}</a> <a id="2596" href="Categories.NaturalTransformation.Core.html#2596" class="Bound">X</a> <a id="2598" href="Categories.NaturalTransformation.Core.html#2598" class="Bound">Y</a> <a id="2600" class="Symbol">=</a> <a id="2602" class="Keyword">record</a>
|
|||
|
<a id="2611" class="Symbol">{</a> <a id="2613" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="2621" class="Symbol">=</a> <a id="2623" class="Symbol">λ</a> <a id="2625" href="Categories.NaturalTransformation.Core.html#2625" class="Bound">q</a> <a id="2627" class="Symbol">→</a> <a id="2629" href="Categories.NaturalTransformation.Core.html#2581" class="Bound">D</a> <a id="2631" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="2633" href="Categories.NaturalTransformation.Core.html#783" class="Function">X.η</a> <a id="2637" href="Categories.NaturalTransformation.Core.html#2625" class="Bound">q</a> <a id="2639" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="2641" href="Categories.NaturalTransformation.Core.html#783" class="Field">Y.η</a> <a id="2645" href="Categories.NaturalTransformation.Core.html#2625" class="Bound">q</a> <a id="2647" href="Categories.Category.html#700" class="Function Operator">]</a>
|
|||
|
<a id="2651" class="Symbol">;</a> <a id="2653" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="2661" class="Symbol">=</a> <a id="2663" class="Symbol">λ</a> <a id="2665" href="Categories.NaturalTransformation.Core.html#2665" class="Bound">f</a> <a id="2667" class="Symbol">→</a> <a id="2669" href="Categories.Morphism.Reasoning.Core.html#4290" class="Function">glue</a> <a id="2674" class="Symbol">(</a><a id="2675" href="Categories.NaturalTransformation.Core.html#827" class="Function">X.commute</a> <a id="2685" href="Categories.NaturalTransformation.Core.html#2665" class="Bound">f</a><a id="2686" class="Symbol">)</a> <a id="2688" class="Symbol">(</a><a id="2689" href="Categories.NaturalTransformation.Core.html#827" class="Field">Y.commute</a> <a id="2699" href="Categories.NaturalTransformation.Core.html#2665" class="Bound">f</a><a id="2700" class="Symbol">)</a>
|
|||
|
<a id="2704" class="Symbol">;</a> <a id="2706" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="2718" class="Symbol">=</a> <a id="2720" class="Symbol">λ</a> <a id="2722" href="Categories.NaturalTransformation.Core.html#2722" class="Bound">f</a> <a id="2724" class="Symbol">→</a> <a id="2726" href="Relation.Binary.Structures.html#1603" class="Function">Category.Equiv.sym</a> <a id="2745" href="Categories.NaturalTransformation.Core.html#2581" class="Bound">D</a> <a id="2747" class="Symbol">(</a><a id="2748" href="Categories.Morphism.Reasoning.Core.html#4290" class="Function">glue</a> <a id="2753" class="Symbol">(</a><a id="2754" href="Categories.NaturalTransformation.Core.html#827" class="Function">X.commute</a> <a id="2764" href="Categories.NaturalTransformation.Core.html#2722" class="Bound">f</a><a id="2765" class="Symbol">)</a> <a id="2767" class="Symbol">(</a><a id="2768" href="Categories.NaturalTransformation.Core.html#827" class="Field">Y.commute</a> <a id="2778" href="Categories.NaturalTransformation.Core.html#2722" class="Bound">f</a><a id="2779" class="Symbol">))</a>
|
|||
|
<a id="2784" class="Symbol">}</a>
|
|||
|
<a id="2788" class="Keyword">where</a> <a id="2794" class="Keyword">module</a> <a id="2801" href="Categories.NaturalTransformation.Core.html#2801" class="Module">X</a> <a id="2803" class="Symbol">=</a> <a id="2805" href="Categories.NaturalTransformation.Core.html#466" class="Module">NaturalTransformation</a> <a id="2827" href="Categories.NaturalTransformation.Core.html#2596" class="Bound">X</a>
|
|||
|
<a id="2837" class="Keyword">module</a> <a id="2844" href="Categories.NaturalTransformation.Core.html#2844" class="Module">Y</a> <a id="2846" class="Symbol">=</a> <a id="2848" href="Categories.NaturalTransformation.Core.html#466" class="Module">NaturalTransformation</a> <a id="2870" href="Categories.NaturalTransformation.Core.html#2598" class="Bound">Y</a>
|
|||
|
<a id="2880" class="Keyword">open</a> <a id="2885" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="2888" href="Categories.NaturalTransformation.Core.html#2581" class="Bound">D</a>
|
|||
|
|
|||
|
<a id="2891" class="Comment">-- "Horizontal composition"</a>
|
|||
|
<a id="_∘ₕ_"></a><a id="2919" href="Categories.NaturalTransformation.Core.html#2919" class="Function Operator">_∘ₕ_</a> <a id="2924" class="Symbol">:</a> <a id="2926" class="Symbol">∀</a> <a id="2928" class="Symbol">{</a><a id="2929" href="Categories.NaturalTransformation.Core.html#2929" class="Bound">F</a> <a id="2931" href="Categories.NaturalTransformation.Core.html#2931" class="Bound">G</a> <a id="2933" class="Symbol">:</a> <a id="2935" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="2943" href="Categories.NaturalTransformation.Core.html#435" class="Generalizable">C</a> <a id="2945" href="Categories.NaturalTransformation.Core.html#437" class="Generalizable">D</a><a id="2946" class="Symbol">}</a> <a id="2948" class="Symbol">{</a><a id="2949" href="Categories.NaturalTransformation.Core.html#2949" class="Bound">H</a> <a id="2951" href="Categories.NaturalTransformation.Core.html#2951" class="Bound">I</a> <a id="2953" class="Symbol">:</a> <a id="2955" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="2963" href="Categories.NaturalTransformation.Core.html#437" class="Generalizable">D</a> <a id="2965" href="Categories.NaturalTransformation.Core.html#439" class="Generalizable">E</a><a id="2966" class="Symbol">}</a> <a id="2968" class="Symbol">→</a>
|
|||
|
<a id="2979" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="3001" href="Categories.NaturalTransformation.Core.html#2949" class="Bound">H</a> <a id="3003" href="Categories.NaturalTransformation.Core.html#2951" class="Bound">I</a> <a id="3005" class="Symbol">→</a> <a id="3007" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="3029" href="Categories.NaturalTransformation.Core.html#2929" class="Bound">F</a> <a id="3031" href="Categories.NaturalTransformation.Core.html#2931" class="Bound">G</a> <a id="3033" class="Symbol">→</a> <a id="3035" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="3057" class="Symbol">(</a><a id="3058" href="Categories.NaturalTransformation.Core.html#2949" class="Bound">H</a> <a id="3060" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="3063" href="Categories.NaturalTransformation.Core.html#2929" class="Bound">F</a><a id="3064" class="Symbol">)</a> <a id="3066" class="Symbol">(</a><a id="3067" href="Categories.NaturalTransformation.Core.html#2951" class="Bound">I</a> <a id="3069" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="3072" href="Categories.NaturalTransformation.Core.html#2931" class="Bound">G</a><a id="3073" class="Symbol">)</a>
|
|||
|
<a id="3075" href="Categories.NaturalTransformation.Core.html#2919" class="Function Operator">_∘ₕ_</a> <a id="3080" class="Symbol">{</a><a id="3081" class="Argument">E</a> <a id="3083" class="Symbol">=</a> <a id="3085" href="Categories.NaturalTransformation.Core.html#3085" class="Bound">E</a><a id="3086" class="Symbol">}</a> <a id="3088" class="Symbol">{</a><a id="3089" href="Categories.NaturalTransformation.Core.html#3089" class="Bound">F</a><a id="3090" class="Symbol">}</a> <a id="3092" class="Symbol">{</a><a id="3093" class="Argument">I</a> <a id="3095" class="Symbol">=</a> <a id="3097" href="Categories.NaturalTransformation.Core.html#3097" class="Bound">I</a><a id="3098" class="Symbol">}</a> <a id="3100" href="Categories.NaturalTransformation.Core.html#3100" class="Bound">Y</a> <a id="3102" href="Categories.NaturalTransformation.Core.html#3102" class="Bound">X</a> <a id="3104" class="Symbol">=</a> <a id="3106" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="3115" class="Keyword">record</a>
|
|||
|
<a id="3124" class="Symbol">{</a> <a id="3126" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="3128" class="Symbol">=</a> <a id="3130" class="Symbol">λ</a> <a id="3132" href="Categories.NaturalTransformation.Core.html#3132" class="Bound">q</a> <a id="3134" class="Symbol">→</a> <a id="3136" href="Categories.NaturalTransformation.Core.html#3085" class="Bound">E</a> <a id="3138" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="3140" href="Categories.NaturalTransformation.Core.html#3416" class="Function">I₁</a> <a id="3143" class="Symbol">(</a><a id="3144" href="Categories.NaturalTransformation.Core.html#783" class="Field">X.η</a> <a id="3148" href="Categories.NaturalTransformation.Core.html#3132" class="Bound">q</a><a id="3149" class="Symbol">)</a> <a id="3151" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="3153" href="Categories.NaturalTransformation.Core.html#783" class="Function">Y.η</a> <a id="3157" class="Symbol">(</a><a id="3158" href="Categories.Functor.Core.html#432" class="Function">F.F₀</a> <a id="3163" href="Categories.NaturalTransformation.Core.html#3132" class="Bound">q</a><a id="3164" class="Symbol">)</a> <a id="3166" href="Categories.Category.html#700" class="Function Operator">]</a>
|
|||
|
<a id="3170" class="Symbol">;</a> <a id="3172" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="3180" class="Symbol">=</a> <a id="3182" class="Symbol">λ</a> <a id="3184" href="Categories.NaturalTransformation.Core.html#3184" class="Bound">f</a> <a id="3186" class="Symbol">→</a> <a id="3188" href="Categories.Morphism.Reasoning.Core.html#4290" class="Function">glue</a> <a id="3193" class="Symbol">(</a><a id="3194" href="Categories.Functor.Properties.html#2676" class="Function Operator">[</a> <a id="3196" href="Categories.NaturalTransformation.Core.html#3097" class="Bound">I</a> <a id="3198" href="Categories.Functor.Properties.html#2676" class="Function Operator">]-resp-square</a> <a id="3212" class="Symbol">(</a><a id="3213" href="Categories.NaturalTransformation.Core.html#827" class="Field">X.commute</a> <a id="3223" href="Categories.NaturalTransformation.Core.html#3184" class="Bound">f</a><a id="3224" class="Symbol">))</a> <a id="3227" class="Symbol">(</a><a id="3228" href="Categories.NaturalTransformation.Core.html#827" class="Function">Y.commute</a> <a id="3238" class="Symbol">(</a><a id="3239" href="Categories.Functor.Core.html#455" class="Function">F.F₁</a> <a id="3244" href="Categories.NaturalTransformation.Core.html#3184" class="Bound">f</a><a id="3245" class="Symbol">))</a>
|
|||
|
<a id="3250" class="Symbol">}</a>
|
|||
|
<a id="3254" class="Keyword">where</a> <a id="3260" class="Keyword">module</a> <a id="3267" href="Categories.NaturalTransformation.Core.html#3267" class="Module">F</a> <a id="3269" class="Symbol">=</a> <a id="3271" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="3279" href="Categories.NaturalTransformation.Core.html#3089" class="Bound">F</a>
|
|||
|
<a id="3289" class="Keyword">module</a> <a id="3296" href="Categories.NaturalTransformation.Core.html#3296" class="Module">X</a> <a id="3298" class="Symbol">=</a> <a id="3300" href="Categories.NaturalTransformation.Core.html#466" class="Module">NaturalTransformation</a> <a id="3322" href="Categories.NaturalTransformation.Core.html#3102" class="Bound">X</a>
|
|||
|
<a id="3332" class="Keyword">module</a> <a id="3339" href="Categories.NaturalTransformation.Core.html#3339" class="Module">Y</a> <a id="3341" class="Symbol">=</a> <a id="3343" href="Categories.NaturalTransformation.Core.html#466" class="Module">NaturalTransformation</a> <a id="3365" href="Categories.NaturalTransformation.Core.html#3100" class="Bound">Y</a>
|
|||
|
<a id="3375" class="Keyword">open</a> <a id="3380" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="3388" href="Categories.NaturalTransformation.Core.html#3097" class="Bound">I</a> <a id="3390" class="Keyword">renaming</a> <a id="3399" class="Symbol">(</a><a id="3400" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="3403" class="Symbol">to</a> <a id="3406" class="Field">I₀</a><a id="3408" class="Symbol">;</a> <a id="3410" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3413" class="Symbol">to</a> <a id="3416" class="Field">I₁</a><a id="3418" class="Symbol">)</a>
|
|||
|
<a id="3428" class="Keyword">open</a> <a id="3433" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="3436" href="Categories.NaturalTransformation.Core.html#3085" class="Bound">E</a>
|
|||
|
|
|||
|
<a id="_∘ˡ_"></a><a id="3439" href="Categories.NaturalTransformation.Core.html#3439" class="Function Operator">_∘ˡ_</a> <a id="3444" class="Symbol">:</a> <a id="3446" class="Symbol">∀</a> <a id="3448" class="Symbol">{</a><a id="3449" href="Categories.NaturalTransformation.Core.html#3449" class="Bound">G</a> <a id="3451" href="Categories.NaturalTransformation.Core.html#3451" class="Bound">H</a> <a id="3453" class="Symbol">:</a> <a id="3455" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="3463" href="Categories.NaturalTransformation.Core.html#435" class="Generalizable">C</a> <a id="3465" href="Categories.NaturalTransformation.Core.html#437" class="Generalizable">D</a><a id="3466" class="Symbol">}</a> <a id="3468" class="Symbol">(</a><a id="3469" href="Categories.NaturalTransformation.Core.html#3469" class="Bound">F</a> <a id="3471" class="Symbol">:</a> <a id="3473" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="3481" href="Categories.NaturalTransformation.Core.html#437" class="Generalizable">D</a> <a id="3483" href="Categories.NaturalTransformation.Core.html#439" class="Generalizable">E</a><a id="3484" class="Symbol">)</a> <a id="3486" class="Symbol">→</a> <a id="3488" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="3510" href="Categories.NaturalTransformation.Core.html#3449" class="Bound">G</a> <a id="3512" href="Categories.NaturalTransformation.Core.html#3451" class="Bound">H</a> <a id="3514" class="Symbol">→</a> <a id="3516" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="3538" class="Symbol">(</a><a id="3539" href="Categories.NaturalTransformation.Core.html#3469" class="Bound">F</a> <a id="3541" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="3544" href="Categories.NaturalTransformation.Core.html#3449" class="Bound">G</a><a id="3545" class="Symbol">)</a> <a id="3547" class="Symbol">(</a><a id="3548" href="Categories.NaturalTransformation.Core.html#3469" class="Bound">F</a> <a id="3550" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="3553" href="Categories.NaturalTransformation.Core.html#3451" class="Bound">H</a><a id="3554" class="Symbol">)</a>
|
|||
|
<a id="3556" href="Categories.NaturalTransformation.Core.html#3439" class="Function Operator">_∘ˡ_</a> <a id="3561" href="Categories.NaturalTransformation.Core.html#3561" class="Bound">F</a> <a id="3563" href="Categories.NaturalTransformation.Core.html#3563" class="Bound">α</a> <a id="3565" class="Symbol">=</a> <a id="3567" class="Keyword">record</a>
|
|||
|
<a id="3576" class="Symbol">{</a> <a id="3578" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="3590" class="Symbol">=</a> <a id="3592" class="Symbol">λ</a> <a id="3594" href="Categories.NaturalTransformation.Core.html#3594" class="Bound">X</a> <a id="3596" class="Symbol">→</a> <a id="3598" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="3601" class="Symbol">(</a><a id="3602" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="3604" href="Categories.NaturalTransformation.Core.html#3594" class="Bound">X</a><a id="3605" class="Symbol">)</a>
|
|||
|
<a id="3609" class="Symbol">;</a> <a id="3611" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="3623" class="Symbol">=</a> <a id="3625" class="Symbol">λ</a> <a id="3627" href="Categories.NaturalTransformation.Core.html#3627" class="Bound">f</a> <a id="3629" class="Symbol">→</a> <a id="3631" href="Categories.Functor.Properties.html#2676" class="Function Operator">[</a> <a id="3633" href="Categories.NaturalTransformation.Core.html#3561" class="Bound">F</a> <a id="3635" href="Categories.Functor.Properties.html#2676" class="Function Operator">]-resp-square</a> <a id="3649" class="Symbol">(</a><a id="3650" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="3658" href="Categories.NaturalTransformation.Core.html#3627" class="Bound">f</a><a id="3659" class="Symbol">)</a>
|
|||
|
<a id="3663" class="Symbol">;</a> <a id="3665" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="3677" class="Symbol">=</a> <a id="3679" class="Symbol">λ</a> <a id="3681" href="Categories.NaturalTransformation.Core.html#3681" class="Bound">f</a> <a id="3683" class="Symbol">→</a> <a id="3685" href="Categories.Functor.Properties.html#2676" class="Function Operator">[</a> <a id="3687" href="Categories.NaturalTransformation.Core.html#3561" class="Bound">F</a> <a id="3689" href="Categories.Functor.Properties.html#2676" class="Function Operator">]-resp-square</a> <a id="3703" class="Symbol">(</a><a id="3704" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="3716" href="Categories.NaturalTransformation.Core.html#3681" class="Bound">f</a><a id="3717" class="Symbol">)</a>
|
|||
|
<a id="3721" class="Symbol">}</a>
|
|||
|
<a id="3725" class="Keyword">where</a> <a id="3731" class="Keyword">open</a> <a id="3736" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="3744" href="Categories.NaturalTransformation.Core.html#3561" class="Bound">F</a>
|
|||
|
<a id="3754" class="Keyword">open</a> <a id="3759" href="Categories.NaturalTransformation.Core.html#466" class="Module">NaturalTransformation</a> <a id="3781" href="Categories.NaturalTransformation.Core.html#3563" class="Bound">α</a>
|
|||
|
|
|||
|
<a id="_∘ʳ_"></a><a id="3784" href="Categories.NaturalTransformation.Core.html#3784" class="Function Operator">_∘ʳ_</a> <a id="3789" class="Symbol">:</a> <a id="3791" class="Symbol">∀</a> <a id="3793" class="Symbol">{</a><a id="3794" href="Categories.NaturalTransformation.Core.html#3794" class="Bound">G</a> <a id="3796" href="Categories.NaturalTransformation.Core.html#3796" class="Bound">H</a> <a id="3798" class="Symbol">:</a> <a id="3800" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="3808" href="Categories.NaturalTransformation.Core.html#437" class="Generalizable">D</a> <a id="3810" href="Categories.NaturalTransformation.Core.html#439" class="Generalizable">E</a><a id="3811" class="Symbol">}</a> <a id="3813" class="Symbol">→</a> <a id="3815" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="3837" href="Categories.NaturalTransformation.Core.html#3794" class="Bound">G</a> <a id="3839" href="Categories.NaturalTransformation.Core.html#3796" class="Bound">H</a> <a id="3841" class="Symbol">→</a> <a id="3843" class="Symbol">(</a><a id="3844" href="Categories.NaturalTransformation.Core.html#3844" class="Bound">F</a> <a id="3846" class="Symbol">:</a> <a id="3848" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="3856" href="Categories.NaturalTransformation.Core.html#435" class="Generalizable">C</a> <a id="3858" href="Categories.NaturalTransformation.Core.html#437" class="Generalizable">D</a><a id="3859" class="Symbol">)</a> <a id="3861" class="Symbol">→</a> <a id="3863" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="3885" class="Symbol">(</a><a id="3886" href="Categories.NaturalTransformation.Core.html#3794" class="Bound">G</a> <a id="3888" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="3891" href="Categories.NaturalTransformation.Core.html#3844" class="Bound">F</a><a id="3892" class="Symbol">)</a> <a id="3894" class="Symbol">(</a><a id="3895" href="Categories.NaturalTransformation.Core.html#3796" class="Bound">H</a> <a id="3897" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="3900" href="Categories.NaturalTransformation.Core.html#3844" class="Bound">F</a><a id="3901" class="Symbol">)</a>
|
|||
|
<a id="3903" href="Categories.NaturalTransformation.Core.html#3784" class="Function Operator">_∘ʳ_</a> <a id="3908" class="Symbol">{</a><a id="3909" class="Argument">D</a> <a id="3911" class="Symbol">=</a> <a id="3913" href="Categories.NaturalTransformation.Core.html#3913" class="Bound">D</a><a id="3914" class="Symbol">}</a> <a id="3916" class="Symbol">{</a><a id="3917" class="Argument">E</a> <a id="3919" class="Symbol">=</a> <a id="3921" href="Categories.NaturalTransformation.Core.html#3921" class="Bound">E</a><a id="3922" class="Symbol">}</a> <a id="3924" class="Symbol">{</a><a id="3925" class="Argument">G</a> <a id="3927" class="Symbol">=</a> <a id="3929" href="Categories.NaturalTransformation.Core.html#3929" class="Bound">G</a><a id="3930" class="Symbol">}</a> <a id="3932" class="Symbol">{</a><a id="3933" class="Argument">H</a> <a id="3935" class="Symbol">=</a> <a id="3937" href="Categories.NaturalTransformation.Core.html#3937" class="Bound">H</a><a id="3938" class="Symbol">}</a> <a id="3940" href="Categories.NaturalTransformation.Core.html#3940" class="Bound">α</a> <a id="3942" href="Categories.NaturalTransformation.Core.html#3942" class="Bound">F</a> <a id="3944" class="Symbol">=</a> <a id="3946" class="Keyword">record</a>
|
|||
|
<a id="3955" class="Symbol">{</a> <a id="3957" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="3969" class="Symbol">=</a> <a id="3971" class="Symbol">λ</a> <a id="3973" href="Categories.NaturalTransformation.Core.html#3973" class="Bound">X</a> <a id="3975" class="Symbol">→</a> <a id="3977" href="Categories.NaturalTransformation.Core.html#783" class="Function">η</a> <a id="3979" class="Symbol">(</a><a id="3980" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="3983" href="Categories.NaturalTransformation.Core.html#3973" class="Bound">X</a><a id="3984" class="Symbol">)</a>
|
|||
|
<a id="3988" class="Symbol">;</a> <a id="3990" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="4002" class="Symbol">=</a> <a id="4004" class="Symbol">λ</a> <a id="4006" href="Categories.NaturalTransformation.Core.html#4006" class="Bound">f</a> <a id="4008" class="Symbol">→</a> <a id="4010" href="Categories.NaturalTransformation.Core.html#827" class="Function">commute</a> <a id="4018" class="Symbol">(</a><a id="4019" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="4022" href="Categories.NaturalTransformation.Core.html#4006" class="Bound">f</a><a id="4023" class="Symbol">)</a>
|
|||
|
<a id="4027" class="Symbol">;</a> <a id="4029" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="4041" class="Symbol">=</a> <a id="4043" class="Symbol">λ</a> <a id="4045" href="Categories.NaturalTransformation.Core.html#4045" class="Bound">f</a> <a id="4047" class="Symbol">→</a> <a id="4049" href="Categories.NaturalTransformation.Core.html#1043" class="Function">sym-commute</a> <a id="4061" class="Symbol">(</a><a id="4062" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="4065" href="Categories.NaturalTransformation.Core.html#4045" class="Bound">f</a><a id="4066" class="Symbol">)</a>
|
|||
|
<a id="4070" class="Symbol">}</a>
|
|||
|
<a id="4074" class="Keyword">where</a> <a id="4080" class="Keyword">open</a> <a id="4085" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="4093" href="Categories.NaturalTransformation.Core.html#3942" class="Bound">F</a>
|
|||
|
<a id="4103" class="Keyword">open</a> <a id="4108" href="Categories.NaturalTransformation.Core.html#466" class="Module">NaturalTransformation</a> <a id="4130" href="Categories.NaturalTransformation.Core.html#3940" class="Bound">α</a>
|
|||
|
|
|||
|
<a id="id∘id⇒id"></a><a id="4133" href="Categories.NaturalTransformation.Core.html#4133" class="Function">id∘id⇒id</a> <a id="4142" class="Symbol">:</a> <a id="4144" class="Symbol">{</a><a id="4145" href="Categories.NaturalTransformation.Core.html#4145" class="Bound">C</a> <a id="4147" class="Symbol">:</a> <a id="4149" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="4158" href="Categories.NaturalTransformation.Core.html#408" class="Generalizable">o</a> <a id="4160" href="Categories.NaturalTransformation.Core.html#410" class="Generalizable">ℓ</a> <a id="4162" href="Categories.NaturalTransformation.Core.html#412" class="Generalizable">e</a><a id="4163" class="Symbol">}</a> <a id="4165" class="Symbol">→</a> <a id="4167" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="4189" class="Symbol">{</a><a id="4190" class="Argument">C</a> <a id="4192" class="Symbol">=</a> <a id="4194" href="Categories.NaturalTransformation.Core.html#4145" class="Bound">C</a><a id="4195" class="Symbol">}</a> <a id="4197" class="Symbol">{</a><a id="4198" class="Argument">D</a> <a id="4200" class="Symbol">=</a> <a id="4202" href="Categories.NaturalTransformation.Core.html#4145" class="Bound">C</a><a id="4203" class="Symbol">}</a> <a id="4205" class="Symbol">(</a><a id="4206" href="Categories.NaturalTransformation.Core.html#187" class="Function">idF</a> <a id="4210" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="4213" href="Categories.NaturalTransformation.Core.html#187" class="Function">idF</a><a id="4216" class="Symbol">)</a> <a id="4218" href="Categories.NaturalTransformation.Core.html#187" class="Function">idF</a>
|
|||
|
<a id="4222" href="Categories.NaturalTransformation.Core.html#4133" class="Function">id∘id⇒id</a> <a id="4231" class="Symbol">{</a><a id="4232" class="Argument">C</a> <a id="4234" class="Symbol">=</a> <a id="4236" href="Categories.NaturalTransformation.Core.html#4236" class="Bound">C</a><a id="4237" class="Symbol">}</a> <a id="4239" class="Symbol">=</a> <a id="4241" class="Keyword">record</a>
|
|||
|
<a id="4250" class="Symbol">{</a> <a id="4252" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="4264" class="Symbol">=</a> <a id="4266" class="Symbol">λ</a> <a id="4268" href="Categories.NaturalTransformation.Core.html#4268" class="Bound">_</a> <a id="4270" class="Symbol">→</a> <a id="4272" href="Categories.Category.Core.html#630" class="Field">Category.id</a> <a id="4284" href="Categories.NaturalTransformation.Core.html#4236" class="Bound">C</a>
|
|||
|
<a id="4288" class="Symbol">;</a> <a id="4290" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="4302" class="Symbol">=</a> <a id="4304" class="Symbol">λ</a> <a id="4306" href="Categories.NaturalTransformation.Core.html#4306" class="Bound">f</a> <a id="4308" class="Symbol">→</a> <a id="4310" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">MR.id-comm-sym</a> <a id="4325" href="Categories.NaturalTransformation.Core.html#4236" class="Bound">C</a> <a id="4327" class="Symbol">{</a><a id="4328" class="Argument">f</a> <a id="4330" class="Symbol">=</a> <a id="4332" href="Categories.NaturalTransformation.Core.html#4306" class="Bound">f</a><a id="4333" class="Symbol">}</a>
|
|||
|
<a id="4337" class="Symbol">;</a> <a id="4339" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="4351" class="Symbol">=</a> <a id="4353" class="Symbol">λ</a> <a id="4355" href="Categories.NaturalTransformation.Core.html#4355" class="Bound">f</a> <a id="4357" class="Symbol">→</a> <a id="4359" href="Categories.Morphism.Reasoning.Core.html#1202" class="Function">MR.id-comm</a> <a id="4370" href="Categories.NaturalTransformation.Core.html#4236" class="Bound">C</a> <a id="4372" class="Symbol">{</a><a id="4373" class="Argument">f</a> <a id="4375" class="Symbol">=</a> <a id="4377" href="Categories.NaturalTransformation.Core.html#4355" class="Bound">f</a><a id="4378" class="Symbol">}</a>
|
|||
|
<a id="4382" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="id⇒id∘id"></a><a id="4385" href="Categories.NaturalTransformation.Core.html#4385" class="Function">id⇒id∘id</a> <a id="4394" class="Symbol">:</a> <a id="4396" class="Symbol">{</a><a id="4397" href="Categories.NaturalTransformation.Core.html#4397" class="Bound">C</a> <a id="4399" class="Symbol">:</a> <a id="4401" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="4410" href="Categories.NaturalTransformation.Core.html#408" class="Generalizable">o</a> <a id="4412" href="Categories.NaturalTransformation.Core.html#410" class="Generalizable">ℓ</a> <a id="4414" href="Categories.NaturalTransformation.Core.html#412" class="Generalizable">e</a><a id="4415" class="Symbol">}</a> <a id="4417" class="Symbol">→</a> <a id="4419" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="4441" class="Symbol">{</a><a id="4442" class="Argument">C</a> <a id="4444" class="Symbol">=</a> <a id="4446" href="Categories.NaturalTransformation.Core.html#4397" class="Bound">C</a><a id="4447" class="Symbol">}</a> <a id="4449" class="Symbol">{</a><a id="4450" class="Argument">D</a> <a id="4452" class="Symbol">=</a> <a id="4454" href="Categories.NaturalTransformation.Core.html#4397" class="Bound">C</a><a id="4455" class="Symbol">}</a> <a id="4457" href="Categories.NaturalTransformation.Core.html#187" class="Function">idF</a> <a id="4461" class="Symbol">(</a><a id="4462" href="Categories.NaturalTransformation.Core.html#187" class="Function">idF</a> <a id="4466" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="4469" href="Categories.NaturalTransformation.Core.html#187" class="Function">idF</a><a id="4472" class="Symbol">)</a>
|
|||
|
<a id="4474" href="Categories.NaturalTransformation.Core.html#4385" class="Function">id⇒id∘id</a> <a id="4483" class="Symbol">{</a><a id="4484" class="Argument">C</a> <a id="4486" class="Symbol">=</a> <a id="4488" href="Categories.NaturalTransformation.Core.html#4488" class="Bound">C</a><a id="4489" class="Symbol">}</a> <a id="4491" class="Symbol">=</a> <a id="4493" class="Keyword">record</a>
|
|||
|
<a id="4502" class="Symbol">{</a> <a id="4504" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="4516" class="Symbol">=</a> <a id="4518" class="Symbol">λ</a> <a id="4520" href="Categories.NaturalTransformation.Core.html#4520" class="Bound">_</a> <a id="4522" class="Symbol">→</a> <a id="4524" href="Categories.Category.Core.html#630" class="Field">Category.id</a> <a id="4536" href="Categories.NaturalTransformation.Core.html#4488" class="Bound">C</a>
|
|||
|
<a id="4540" class="Symbol">;</a> <a id="4542" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="4554" class="Symbol">=</a> <a id="4556" class="Symbol">λ</a> <a id="4558" href="Categories.NaturalTransformation.Core.html#4558" class="Bound">f</a> <a id="4560" class="Symbol">→</a> <a id="4562" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">MR.id-comm-sym</a> <a id="4577" href="Categories.NaturalTransformation.Core.html#4488" class="Bound">C</a> <a id="4579" class="Symbol">{</a><a id="4580" class="Argument">f</a> <a id="4582" class="Symbol">=</a> <a id="4584" href="Categories.NaturalTransformation.Core.html#4558" class="Bound">f</a><a id="4585" class="Symbol">}</a>
|
|||
|
<a id="4589" class="Symbol">;</a> <a id="4591" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="4603" class="Symbol">=</a> <a id="4605" class="Symbol">λ</a> <a id="4607" href="Categories.NaturalTransformation.Core.html#4607" class="Bound">f</a> <a id="4609" class="Symbol">→</a> <a id="4611" href="Categories.Morphism.Reasoning.Core.html#1202" class="Function">MR.id-comm</a> <a id="4622" href="Categories.NaturalTransformation.Core.html#4488" class="Bound">C</a> <a id="4624" class="Symbol">{</a><a id="4625" class="Argument">f</a> <a id="4627" class="Symbol">=</a> <a id="4629" href="Categories.NaturalTransformation.Core.html#4607" class="Bound">f</a><a id="4630" class="Symbol">}</a>
|
|||
|
<a id="4634" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="4637" class="Keyword">module</a> <a id="4644" href="Categories.NaturalTransformation.Core.html#4644" class="Module">_</a> <a id="4646" class="Symbol">{</a><a id="4647" href="Categories.NaturalTransformation.Core.html#4647" class="Bound">F</a> <a id="4649" class="Symbol">:</a> <a id="4651" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="4659" href="Categories.NaturalTransformation.Core.html#435" class="Generalizable">C</a> <a id="4661" href="Categories.NaturalTransformation.Core.html#437" class="Generalizable">D</a><a id="4662" class="Symbol">}</a> <a id="4664" class="Keyword">where</a>
|
|||
|
<a id="4672" class="Keyword">open</a> <a id="4677" href="Categories.Category.Core.html#2462" class="Module">Category.HomReasoning</a> <a id="4699" href="Categories.NaturalTransformation.Core.html#4661" class="Bound">D</a>
|
|||
|
<a id="4703" class="Keyword">open</a> <a id="4708" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="4716" href="Categories.NaturalTransformation.Core.html#4647" class="Bound">F</a>
|
|||
|
<a id="4720" class="Keyword">open</a> <a id="4725" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="4734" href="Categories.NaturalTransformation.Core.html#4661" class="Bound">D</a>
|
|||
|
<a id="4738" class="Keyword">open</a> <a id="4743" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="4746" href="Categories.NaturalTransformation.Core.html#4661" class="Bound">D</a>
|
|||
|
<a id="4750" class="Keyword">private</a> <a id="4758" class="Keyword">module</a> <a id="4765" href="Categories.NaturalTransformation.Core.html#4765" class="Module">D</a> <a id="4767" class="Symbol">=</a> <a id="4769" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="4778" href="Categories.NaturalTransformation.Core.html#4661" class="Bound">D</a>
|
|||
|
|
|||
|
<a id="4783" href="Categories.NaturalTransformation.Core.html#4783" class="Function">F⇒F∘id</a> <a id="4790" class="Symbol">:</a> <a id="4792" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="4814" href="Categories.NaturalTransformation.Core.html#4647" class="Bound">F</a> <a id="4816" class="Symbol">(</a><a id="4817" href="Categories.NaturalTransformation.Core.html#4647" class="Bound">F</a> <a id="4819" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="4822" href="Categories.NaturalTransformation.Core.html#187" class="Function">idF</a><a id="4825" class="Symbol">)</a>
|
|||
|
<a id="4829" href="Categories.NaturalTransformation.Core.html#4783" class="Function">F⇒F∘id</a> <a id="4836" class="Symbol">=</a> <a id="4838" class="Keyword">record</a> <a id="4845" class="Symbol">{</a> <a id="4847" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="4849" class="Symbol">=</a> <a id="4851" class="Symbol">λ</a> <a id="4853" href="Categories.NaturalTransformation.Core.html#4853" class="Bound">_</a> <a id="4855" class="Symbol">→</a> <a id="4857" href="Categories.Category.Core.html#630" class="Function">D.id</a> <a id="4862" class="Symbol">;</a> <a id="4864" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="4872" class="Symbol">=</a> <a id="4874" class="Symbol">λ</a> <a id="4876" href="Categories.NaturalTransformation.Core.html#4876" class="Bound">_</a> <a id="4878" class="Symbol">→</a> <a id="4880" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a> <a id="4892" class="Symbol">;</a> <a id="4894" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="4906" class="Symbol">=</a> <a id="4908" class="Symbol">λ</a> <a id="4910" href="Categories.NaturalTransformation.Core.html#4910" class="Bound">_</a> <a id="4912" class="Symbol">→</a> <a id="4914" href="Categories.Morphism.Reasoning.Core.html#1202" class="Function">id-comm</a> <a id="4922" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="4927" href="Categories.NaturalTransformation.Core.html#4927" class="Function">F⇒id∘F</a> <a id="4934" class="Symbol">:</a> <a id="4936" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="4958" href="Categories.NaturalTransformation.Core.html#4647" class="Bound">F</a> <a id="4960" class="Symbol">(</a><a id="4961" href="Categories.NaturalTransformation.Core.html#187" class="Function">idF</a> <a id="4965" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="4968" href="Categories.NaturalTransformation.Core.html#4647" class="Bound">F</a><a id="4969" class="Symbol">)</a>
|
|||
|
<a id="4973" href="Categories.NaturalTransformation.Core.html#4927" class="Function">F⇒id∘F</a> <a id="4980" class="Symbol">=</a> <a id="4982" class="Keyword">record</a> <a id="4989" class="Symbol">{</a> <a id="4991" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="4993" class="Symbol">=</a> <a id="4995" class="Symbol">λ</a> <a id="4997" href="Categories.NaturalTransformation.Core.html#4997" class="Bound">_</a> <a id="4999" class="Symbol">→</a> <a id="5001" href="Categories.Category.Core.html#630" class="Function">D.id</a> <a id="5006" class="Symbol">;</a> <a id="5008" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="5016" class="Symbol">=</a> <a id="5018" class="Symbol">λ</a> <a id="5020" href="Categories.NaturalTransformation.Core.html#5020" class="Bound">_</a> <a id="5022" class="Symbol">→</a> <a id="5024" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a> <a id="5036" class="Symbol">;</a> <a id="5038" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="5050" class="Symbol">=</a> <a id="5052" class="Symbol">λ</a> <a id="5054" href="Categories.NaturalTransformation.Core.html#5054" class="Bound">_</a> <a id="5056" class="Symbol">→</a> <a id="5058" href="Categories.Morphism.Reasoning.Core.html#1202" class="Function">id-comm</a> <a id="5066" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="5071" href="Categories.NaturalTransformation.Core.html#5071" class="Function">F∘id⇒F</a> <a id="5078" class="Symbol">:</a> <a id="5080" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="5102" class="Symbol">(</a><a id="5103" href="Categories.NaturalTransformation.Core.html#4647" class="Bound">F</a> <a id="5105" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="5108" href="Categories.NaturalTransformation.Core.html#187" class="Function">idF</a><a id="5111" class="Symbol">)</a> <a id="5113" href="Categories.NaturalTransformation.Core.html#4647" class="Bound">F</a>
|
|||
|
<a id="5117" href="Categories.NaturalTransformation.Core.html#5071" class="Function">F∘id⇒F</a> <a id="5124" class="Symbol">=</a> <a id="5126" class="Keyword">record</a> <a id="5133" class="Symbol">{</a> <a id="5135" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="5137" class="Symbol">=</a> <a id="5139" class="Symbol">λ</a> <a id="5141" href="Categories.NaturalTransformation.Core.html#5141" class="Bound">_</a> <a id="5143" class="Symbol">→</a> <a id="5145" href="Categories.Category.Core.html#630" class="Function">D.id</a> <a id="5150" class="Symbol">;</a> <a id="5152" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="5160" class="Symbol">=</a> <a id="5162" class="Symbol">λ</a> <a id="5164" href="Categories.NaturalTransformation.Core.html#5164" class="Bound">_</a> <a id="5166" class="Symbol">→</a> <a id="5168" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a> <a id="5180" class="Symbol">;</a> <a id="5182" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="5194" class="Symbol">=</a> <a id="5196" class="Symbol">λ</a> <a id="5198" href="Categories.NaturalTransformation.Core.html#5198" class="Bound">_</a> <a id="5200" class="Symbol">→</a> <a id="5202" href="Categories.Morphism.Reasoning.Core.html#1202" class="Function">id-comm</a> <a id="5210" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="5215" href="Categories.NaturalTransformation.Core.html#5215" class="Function">id∘F⇒F</a> <a id="5222" class="Symbol">:</a> <a id="5224" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="5246" class="Symbol">(</a><a id="5247" href="Categories.NaturalTransformation.Core.html#187" class="Function">idF</a> <a id="5251" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="5254" href="Categories.NaturalTransformation.Core.html#4647" class="Bound">F</a><a id="5255" class="Symbol">)</a> <a id="5257" href="Categories.NaturalTransformation.Core.html#4647" class="Bound">F</a>
|
|||
|
<a id="5261" href="Categories.NaturalTransformation.Core.html#5215" class="Function">id∘F⇒F</a> <a id="5268" class="Symbol">=</a> <a id="5270" class="Keyword">record</a> <a id="5277" class="Symbol">{</a> <a id="5279" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="5281" class="Symbol">=</a> <a id="5283" class="Symbol">λ</a> <a id="5285" href="Categories.NaturalTransformation.Core.html#5285" class="Bound">_</a> <a id="5287" class="Symbol">→</a> <a id="5289" href="Categories.Category.Core.html#630" class="Function">D.id</a> <a id="5294" class="Symbol">;</a> <a id="5296" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="5304" class="Symbol">=</a> <a id="5306" class="Symbol">λ</a> <a id="5308" href="Categories.NaturalTransformation.Core.html#5308" class="Bound">_</a> <a id="5310" class="Symbol">→</a> <a id="5312" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a> <a id="5324" class="Symbol">;</a> <a id="5326" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="5338" class="Symbol">=</a> <a id="5340" class="Symbol">λ</a> <a id="5342" href="Categories.NaturalTransformation.Core.html#5342" class="Bound">_</a> <a id="5344" class="Symbol">→</a> <a id="5346" href="Categories.Morphism.Reasoning.Core.html#1202" class="Function">id-comm</a> <a id="5354" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="5357" class="Keyword">private</a>
|
|||
|
<a id="op-involutive"></a><a id="5367" href="Categories.NaturalTransformation.Core.html#5367" class="Function">op-involutive</a> <a id="5381" class="Symbol">:</a> <a id="5383" class="Symbol">{</a><a id="5384" href="Categories.NaturalTransformation.Core.html#5384" class="Bound">C</a> <a id="5386" class="Symbol">:</a> <a id="5388" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="5397" href="Categories.NaturalTransformation.Core.html#408" class="Generalizable">o</a> <a id="5399" href="Categories.NaturalTransformation.Core.html#410" class="Generalizable">ℓ</a> <a id="5401" href="Categories.NaturalTransformation.Core.html#412" class="Generalizable">e</a><a id="5402" class="Symbol">}</a> <a id="5404" class="Symbol">{</a><a id="5405" href="Categories.NaturalTransformation.Core.html#5405" class="Bound">D</a> <a id="5407" class="Symbol">:</a> <a id="5409" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="5418" href="Categories.NaturalTransformation.Core.html#414" class="Generalizable">o′</a> <a id="5421" href="Categories.NaturalTransformation.Core.html#417" class="Generalizable">ℓ′</a> <a id="5424" href="Categories.NaturalTransformation.Core.html#420" class="Generalizable">e′</a><a id="5426" class="Symbol">}</a> <a id="5428" class="Symbol">{</a><a id="5429" href="Categories.NaturalTransformation.Core.html#5429" class="Bound">F</a> <a id="5431" href="Categories.NaturalTransformation.Core.html#5431" class="Bound">G</a> <a id="5433" class="Symbol">:</a> <a id="5435" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="5443" href="Categories.NaturalTransformation.Core.html#5384" class="Bound">C</a> <a id="5445" href="Categories.NaturalTransformation.Core.html#5405" class="Bound">D</a><a id="5446" class="Symbol">}</a> <a id="5448" class="Symbol">→</a>
|
|||
|
<a id="5468" class="Symbol">(</a><a id="5469" href="Categories.NaturalTransformation.Core.html#5469" class="Bound">α</a> <a id="5471" class="Symbol">:</a> <a id="5473" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="5495" href="Categories.NaturalTransformation.Core.html#5429" class="Bound">F</a> <a id="5497" href="Categories.NaturalTransformation.Core.html#5431" class="Bound">G</a><a id="5498" class="Symbol">)</a> <a id="5500" class="Symbol">→</a> <a id="5502" href="Categories.NaturalTransformation.Core.html#1114" class="Function">NaturalTransformation.op</a> <a id="5527" class="Symbol">(</a><a id="5528" href="Categories.NaturalTransformation.Core.html#1114" class="Function">NaturalTransformation.op</a> <a id="5553" href="Categories.NaturalTransformation.Core.html#5469" class="Bound">α</a><a id="5554" class="Symbol">)</a> <a id="5556" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="5558" href="Categories.NaturalTransformation.Core.html#5469" class="Bound">α</a>
|
|||
|
<a id="5562" href="Categories.NaturalTransformation.Core.html#5367" class="Function">op-involutive</a> <a id="5576" class="Symbol">_</a> <a id="5578" class="Symbol">=</a> <a id="5580" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">≡.refl</a>
|
|||
|
</pre></body></html>
|