bsc-leon-vatthauer/agda/bsc-thesis/Categories.NaturalTransformation.Hom.html

39 lines
19 KiB
HTML
Raw Normal View History

2024-02-09 17:53:52 +01:00
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Categories.NaturalTransformation.Hom</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">open</a> <a id="41" class="Keyword">import</a> <a id="48" href="Level.html" class="Module">Level</a>
<a id="54" class="Keyword">open</a> <a id="59" class="Keyword">import</a> <a id="66" href="Categories.Category.html" class="Module">Categories.Category</a> <a id="86" class="Keyword">using</a> <a id="92" class="Symbol">(</a><a id="93" href="Categories.Category.Core.html#442" class="Record">Category</a><a id="101" class="Symbol">)</a>
<a id="104" class="Keyword">module</a> <a id="111" href="Categories.NaturalTransformation.Hom.html" class="Module">Categories.NaturalTransformation.Hom</a> <a id="148" class="Symbol">{</a><a id="149" href="Categories.NaturalTransformation.Hom.html#149" class="Bound">o</a> <a id="151" href="Categories.NaturalTransformation.Hom.html#151" class="Bound"></a> <a id="153" href="Categories.NaturalTransformation.Hom.html#153" class="Bound">e</a> <a id="155" class="Symbol">:</a> <a id="157" href="Agda.Primitive.html#742" class="Postulate">Level</a><a id="162" class="Symbol">}</a> <a id="164" class="Symbol">(</a><a id="165" href="Categories.NaturalTransformation.Hom.html#165" class="Bound">C</a> <a id="167" class="Symbol">:</a> <a id="169" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="178" href="Categories.NaturalTransformation.Hom.html#149" class="Bound">o</a> <a id="180" href="Categories.NaturalTransformation.Hom.html#151" class="Bound"></a> <a id="182" href="Categories.NaturalTransformation.Hom.html#153" class="Bound">e</a><a id="183" class="Symbol">)</a> <a id="185" class="Keyword">where</a>
<a id="192" class="Keyword">open</a> <a id="197" class="Keyword">import</a> <a id="204" href="Categories.Category.Instance.Setoids.html" class="Module">Categories.Category.Instance.Setoids</a>
<a id="241" class="Keyword">open</a> <a id="246" class="Keyword">import</a> <a id="253" href="Categories.Functor.Hom.html" class="Module">Categories.Functor.Hom</a> <a id="276" class="Keyword">using</a> <a id="282" class="Symbol">(</a><a id="283" class="Keyword">module</a> <a id="290" href="Categories.Functor.Hom.html#625" class="Module">Hom</a><a id="293" class="Symbol">;</a> <a id="295" href="Categories.Functor.Hom.html#1738" class="Function Operator">Hom[_][-,_]</a><a id="306" class="Symbol">;</a> <a id="308" href="Categories.Functor.Hom.html#1662" class="Function Operator">Hom[_][_,-]</a><a id="319" class="Symbol">;</a> <a id="321" href="Categories.Functor.Hom.html#1578" class="Function Operator">Hom[_][-,-]</a><a id="332" class="Symbol">)</a>
<a id="334" class="Keyword">open</a> <a id="339" class="Keyword">import</a> <a id="346" href="Categories.NaturalTransformation.html" class="Module">Categories.NaturalTransformation</a> <a id="379" class="Keyword">using</a> <a id="385" class="Symbol">(</a><a id="386" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a><a id="407" class="Symbol">;</a> <a id="409" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a><a id="417" class="Symbol">)</a> <a id="419" class="Keyword">renaming</a> <a id="428" class="Symbol">(</a><a id="429" href="Categories.NaturalTransformation.Core.html#2132" class="Function">id</a> <a id="432" class="Symbol">to</a> <a id="435" class="Function">idN</a><a id="438" class="Symbol">)</a>
<a id="441" class="Keyword">import</a> <a id="448" href="Categories.Morphism.Reasoning.html" class="Module">Categories.Morphism.Reasoning</a> <a id="478" class="Symbol">as</a> <a id="481" class="Module">MR</a>
<a id="485" class="Keyword">open</a> <a id="490" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="499" href="Categories.NaturalTransformation.Hom.html#165" class="Bound">C</a>
<a id="501" class="Keyword">open</a> <a id="506" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
<a id="519" class="Keyword">open</a> <a id="524" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="527" href="Categories.NaturalTransformation.Hom.html#165" class="Bound">C</a>
<a id="529" class="Keyword">open</a> <a id="534" href="Categories.NaturalTransformation.Core.html#466" class="Module">NaturalTransformation</a>
<a id="556" class="Keyword">private</a>
<a id="566" class="Keyword">module</a> <a id="CE"></a><a id="573" href="Categories.NaturalTransformation.Hom.html#573" class="Module">CE</a> <a id="576" class="Symbol">=</a> <a id="578" href="Categories.Category.Core.html#1530" class="Module">Category.Equiv</a> <a id="593" href="Categories.NaturalTransformation.Hom.html#165" class="Bound">C</a>
<a id="597" class="Keyword">module</a> <a id="C"></a><a id="604" href="Categories.NaturalTransformation.Hom.html#604" class="Module">C</a> <a id="606" class="Symbol">=</a> <a id="608" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="617" href="Categories.NaturalTransformation.Hom.html#165" class="Bound">C</a>
<a id="Hom[A,C]⇒Hom[B,C]"></a><a id="620" href="Categories.NaturalTransformation.Hom.html#620" class="Function">Hom[A,C]⇒Hom[B,C]</a> <a id="638" class="Symbol">:</a> <a id="640" class="Symbol">{</a><a id="641" href="Categories.NaturalTransformation.Hom.html#641" class="Bound">A</a> <a id="643" href="Categories.NaturalTransformation.Hom.html#643" class="Bound">B</a> <a id="645" class="Symbol">:</a> <a id="647" href="Categories.Category.Core.html#559" class="Field">Obj</a><a id="650" class="Symbol">}</a> <a id="652" class="Symbol"></a> <a id="654" class="Symbol">(</a><a id="655" href="Categories.NaturalTransformation.Hom.html#641" class="Bound">A</a> <a id="657" href="Categories.Category.Core.html#575" class="Field Operator"></a> <a id="659" href="Categories.NaturalTransformation.Hom.html#643" class="Bound">B</a><a id="660" class="Symbol">)</a> <a id="662" class="Symbol"></a> <a id="664" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="686" href="Categories.Functor.Hom.html#1738" class="Function Operator">Hom[</a> <a id="691" href="Categories.NaturalTransformation.Hom.html#165" class="Bound">C</a> <a id="693" href="Categories.Functor.Hom.html#1738" class="Function Operator">][-,</a> <a id="698" href="Categories.NaturalTransformation.Hom.html#641" class="Bound">A</a> <a id="700" href="Categories.Functor.Hom.html#1738" class="Function Operator">]</a> <a id="702" href="Categories.Functor.Hom.html#1738" class="Function Operator">Hom[</a> <a id="707" href="Categories.NaturalTransformation.Hom.html#165" class="Bound">C</a> <a id="709" href="Categories.Functor.Hom.html#1738" class="Function Operator">][-,</a> <a id="714" href="Categories.NaturalTransformation.Hom.html#643" class="Bound">B</a> <a id="716" href="Categories.Functor.Hom.html#1738" class="Function Operator">]</a>
<a id="718" href="Categories.NaturalTransformation.Hom.html#620" class="Function">Hom[A,C]⇒Hom[B,C]</a> <a id="736" class="Symbol">{</a><a id="737" href="Categories.NaturalTransformation.Hom.html#737" class="Bound">A</a><a id="738" class="Symbol">}</a> <a id="740" href="Categories.NaturalTransformation.Hom.html#740" class="Bound">A⇒B</a> <a id="744" class="Symbol">=</a> <a id="746" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="755" class="Keyword">record</a>
<a id="764" class="Symbol">{</a> <a id="766" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="774" class="Symbol">=</a> <a id="776" class="Symbol">λ</a> <a id="778" href="Categories.NaturalTransformation.Hom.html#778" class="Bound">X</a> <a id="780" class="Symbol"></a> <a id="782" class="Keyword">record</a> <a id="789" class="Symbol">{</a> <a id="791" href="Function.Bundles.html#2094" class="Field">to</a> <a id="794" class="Symbol">=</a> <a id="796" class="Symbol">λ</a> <a id="798" href="Categories.NaturalTransformation.Hom.html#798" class="Bound">X⇒A</a> <a id="802" class="Symbol"></a> <a id="804" href="Categories.NaturalTransformation.Hom.html#740" class="Bound">A⇒B</a> <a id="808" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="810" href="Categories.NaturalTransformation.Hom.html#798" class="Bound">X⇒A</a> <a id="814" class="Symbol">;</a> <a id="816" href="Function.Bundles.html#2113" class="Field">cong</a> <a id="821" class="Symbol">=</a> <a id="823" href="Categories.Category.Core.html#1706" class="Function">∘-resp-≈ʳ</a> <a id="833" class="Symbol">}</a>
<a id="837" class="Symbol">;</a> <a id="839" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="847" class="Symbol">=</a> <a id="849" class="Symbol">λ</a> <a id="851" href="Categories.NaturalTransformation.Hom.html#851" class="Bound">f</a> <a id="853" class="Symbol">{</a><a id="854" href="Categories.NaturalTransformation.Hom.html#854" class="Bound">g</a><a id="855" class="Symbol">}</a> <a id="857" class="Symbol"></a> <a id="859" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="871" href="Categories.NaturalTransformation.Hom.html#740" class="Bound">A⇒B</a> <a id="875" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="877" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="880" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="882" href="Categories.NaturalTransformation.Hom.html#854" class="Bound">g</a> <a id="884" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="886" href="Categories.NaturalTransformation.Hom.html#851" class="Bound">f</a> <a id="890" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="893" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="899" href="Categories.Morphism.Reasoning.Core.html#1202" class="Function">id-comm</a> <a id="907" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="915" class="Symbol">(</a><a id="916" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="919" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="921" href="Categories.NaturalTransformation.Hom.html#740" class="Bound">A⇒B</a><a id="924" class="Symbol">)</a> <a id="926" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="928" href="Categories.NaturalTransformation.Hom.html#854" class="Bound">g</a> <a id="930" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="932" href="Categories.NaturalTransformation.Hom.html#851" class="Bound">f</a> <a id="934" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="937" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="943" href="Categories.Category.Core.html#1004" class="Field">sym-assoc</a> <a id="953" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="961" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="964" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="966" class="Symbol">(</a><a id="967" href="Categories.NaturalTransformation.Hom.html#740" class="Bound">A⇒B</a> <a id="971" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="973" href="Categories.NaturalTransformation.Hom.html#854" class="Bound">g</a><a id="974" class="Symbol">)</a> <a id="976" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="978" href="Categories.NaturalTransformation.Hom.html#851" class="Bound">f</a> <a id="980" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="984" class="Symbol">}</a>
<a id="Hom[C,A]⇒Hom[C,B]"></a><a id="987" href="Categories.NaturalTransformation.Hom.html#987" class="Function">Hom[C,A]⇒Hom[C,B]</a> <a id="1005" class="Symbol">:</a> <a id="1007" class="Symbol">{</a><a id="1008" href="Categories.NaturalTransformation.Hom.html#1008" class="Bound">A</a> <a id="1010" href="Categories.NaturalTransformation.Hom.html#1010" class="Bound">B</a> <a id="1012" class="Symbol">:</a> <a id="1014" href="Categories.Category.Core.html#559" class="Field">Obj</a><a id="1017" class="Symbol">}</a> <a id="1019" class="Symbol"></a> <a id="1021" class="Symbol">(</a><a id="1022" href="Categories.NaturalTransformation.Hom.html#1010" class="Bound">B</a> <a id="1024" href="Categories.Category.Core.html#575" class="Field Operator"></a> <a id="1026" href="Categories.NaturalTransformation.Hom.html#1008" class="Bound">A</a><a id="1027" class="Symbol">)</a> <a id="1029" class="Symbol"></a> <a id="1031" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="1053" href="Categories.Functor.Hom.html#1662" class="Function Operator">Hom[</a> <a id="1058" href="Categories.NaturalTransformation.Hom.html#165" class="Bound">C</a> <a id="1060" href="Categories.Functor.Hom.html#1662" class="Function Operator">][</a> <a id="1063" href="Categories.NaturalTransformation.Hom.html#1008" class="Bound">A</a> <a id="1065" href="Categories.Functor.Hom.html#1662" class="Function Operator">,-]</a> <a id="1069" href="Categories.Functor.Hom.html#1662" class="Function Operator">Hom[</a> <a id="1074" href="Categories.NaturalTransformation.Hom.html#165" class="Bound">C</a> <a id="1076" href="Categories.Functor.Hom.html#1662" class="Function Operator">][</a> <a id="1079" href="Categories.NaturalTransformation.Hom.html#1010" class="Bound">B</a> <a id="1081" href="Categories.Functor.Hom.html#1662" class="Function Operator">,-]</a>
<a id="1085" href="Categories.NaturalTransformation.Hom.html#987" class="Function">Hom[C,A]⇒Hom[C,B]</a> <a id="1103" class="Symbol">{</a><a id="1104" href="Categories.NaturalTransformation.Hom.html#1104" class="Bound">A</a><a id="1105" class="Symbol">}</a> <a id="1107" href="Categories.NaturalTransformation.Hom.html#1107" class="Bound">B⇒A</a> <a id="1111" class="Symbol">=</a> <a id="1113" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="1122" class="Keyword">record</a>
<a id="1131" class="Symbol">{</a> <a id="1133" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="1135" class="Symbol">=</a> <a id="1137" class="Symbol">λ</a> <a id="1139" href="Categories.NaturalTransformation.Hom.html#1139" class="Bound">X</a> <a id="1141" class="Symbol"></a> <a id="1143" class="Keyword">record</a> <a id="1150" class="Symbol">{</a> <a id="1152" href="Function.Bundles.html#2094" class="Field">to</a> <a id="1155" class="Symbol">=</a> <a id="1157" class="Symbol">λ</a> <a id="1159" href="Categories.NaturalTransformation.Hom.html#1159" class="Bound">A⇒X</a> <a id="1163" class="Symbol"></a> <a id="1165" href="Categories.NaturalTransformation.Hom.html#1159" class="Bound">A⇒X</a> <a id="1169" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1171" href="Categories.NaturalTransformation.Hom.html#1107" class="Bound">B⇒A</a> <a id="1175" class="Symbol">;</a> <a id="1177" href="Function.Bundles.html#2113" class="Field">cong</a> <a id="1182" class="Symbol">=</a> <a id="1184" href="Categories.Category.Core.html#1597" class="Function">∘-resp-≈ˡ</a> <a id="1194" class="Symbol">}</a>
<a id="1198" class="Symbol">;</a> <a id="1200" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="1208" class="Symbol">=</a> <a id="1210" class="Symbol">λ</a> <a id="1212" href="Categories.NaturalTransformation.Hom.html#1212" class="Bound">f</a> <a id="1214" class="Symbol">{</a><a id="1215" href="Categories.NaturalTransformation.Hom.html#1215" class="Bound">g</a><a id="1216" class="Symbol">}</a> <a id="1218" class="Symbol"></a> <a id="1220" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="1232" class="Symbol">(</a><a id="1233" href="Categories.NaturalTransformation.Hom.html#1212" class="Bound">f</a> <a id="1235" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1237" href="Categories.NaturalTransformation.Hom.html#1215" class="Bound">g</a> <a id="1239" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1241" href="Categories.Category.Core.html#630" class="Field">id</a><a id="1243" class="Symbol">)</a> <a id="1245" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1247" href="Categories.NaturalTransformation.Hom.html#1107" class="Bound">B⇒A</a> <a id="1251" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="1254" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="1260" class="Symbol">(</a><a id="1261" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="1267" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a><a id="1278" class="Symbol">)</a> <a id="1280" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="1288" href="Categories.NaturalTransformation.Hom.html#1212" class="Bound">f</a> <a id="1290" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1292" href="Categories.NaturalTransformation.Hom.html#1215" class="Bound">g</a> <a id="1294" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1296" href="Categories.NaturalTransformation.Hom.html#1107" class="Bound">B⇒A</a> <a id="1300" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1302" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="1307" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="1310" class="Symbol">(</a><a id="1311" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="1319" href="Categories.Category.Core.html#1004" class="Field">sym-assoc</a><a id="1328" class="Symbol">)</a> <a id="1330" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="1338" href="Categories.NaturalTransformation.Hom.html#1212" class="Bound">f</a> <a id="1340" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1342" class="Symbol">(</a><a id="1343" href="Categories.NaturalTransformation.Hom.html#1215" class="Bound">g</a> <a id="1345" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1347" href="Categories.NaturalTransformation.Hom.html#1107" class="Bound">B⇒A</a><a id="1350" class="Symbol">)</a> <a id="1352" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1354" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="1357" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="1361" class="Symbol">}</a>
</pre></body></html>