mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
66 lines
20 KiB
HTML
66 lines
20 KiB
HTML
|
<!DOCTYPE HTML>
|
|||
|
<html><head><meta charset="utf-8"><title>Categories.Functor.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">module</a> <a id="43" href="Categories.Functor.Hom.html" class="Module">Categories.Functor.Hom</a> <a id="66" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="73" class="Comment">-- The Hom Functor from C.op × C to Setoids,</a>
|
|||
|
<a id="118" class="Comment">-- the two 1-argument version fixing one object</a>
|
|||
|
<a id="166" class="Comment">-- and some notation for the version where the category must be made explicit</a>
|
|||
|
|
|||
|
<a id="245" class="Keyword">open</a> <a id="250" class="Keyword">import</a> <a id="257" href="Data.Product.html" class="Module">Data.Product</a>
|
|||
|
<a id="270" class="Keyword">open</a> <a id="275" class="Keyword">import</a> <a id="282" href="Function.html" class="Module">Function</a> <a id="291" class="Keyword">using</a> <a id="297" class="Symbol">()</a> <a id="300" class="Keyword">renaming</a> <a id="309" class="Symbol">(</a><a id="310" href="Function.Base.html#1115" class="Function Operator">_∘_</a> <a id="314" class="Symbol">to</a> <a id="317" class="Function Operator">_∙_</a><a id="320" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="323" class="Keyword">open</a> <a id="328" class="Keyword">import</a> <a id="335" href="Categories.Category.html" class="Module">Categories.Category</a>
|
|||
|
<a id="355" class="Keyword">open</a> <a id="360" class="Keyword">import</a> <a id="367" href="Categories.Functor.html" class="Module">Categories.Functor</a> <a id="386" class="Keyword">hiding</a> <a id="393" class="Symbol">(</a><a id="394" href="Categories.Functor.html#349" class="Function">id</a><a id="396" class="Symbol">)</a>
|
|||
|
<a id="398" class="Keyword">open</a> <a id="403" class="Keyword">import</a> <a id="410" href="Categories.Functor.Properties.html" class="Module">Categories.Functor.Properties</a>
|
|||
|
<a id="440" class="Keyword">open</a> <a id="445" class="Keyword">import</a> <a id="452" href="Categories.Functor.Bifunctor.html" class="Module">Categories.Functor.Bifunctor</a>
|
|||
|
<a id="481" class="Keyword">open</a> <a id="486" class="Keyword">import</a> <a id="493" href="Categories.Category.Instance.Setoids.html" class="Module">Categories.Category.Instance.Setoids</a>
|
|||
|
<a id="530" class="Keyword">import</a> <a id="537" href="Categories.Morphism.Reasoning.html" class="Module">Categories.Morphism.Reasoning</a> <a id="567" class="Symbol">as</a> <a id="570" class="Module">MR</a>
|
|||
|
|
|||
|
<a id="574" class="Keyword">open</a> <a id="579" class="Keyword">import</a> <a id="586" href="Relation.Binary.html" class="Module">Relation.Binary</a> <a id="602" class="Keyword">using</a> <a id="608" class="Symbol">(</a><a id="609" href="Relation.Binary.Bundles.html#1080" class="Record">Setoid</a><a id="615" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="618" class="Keyword">module</a> <a id="Hom"></a><a id="625" href="Categories.Functor.Hom.html#625" class="Module">Hom</a> <a id="629" class="Symbol">{</a><a id="630" href="Categories.Functor.Hom.html#630" class="Bound">o</a> <a id="632" href="Categories.Functor.Hom.html#632" class="Bound">ℓ</a> <a id="634" href="Categories.Functor.Hom.html#634" class="Bound">e</a><a id="635" class="Symbol">}</a> <a id="637" class="Symbol">(</a><a id="638" href="Categories.Functor.Hom.html#638" class="Bound">C</a> <a id="640" class="Symbol">:</a> <a id="642" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="651" href="Categories.Functor.Hom.html#630" class="Bound">o</a> <a id="653" href="Categories.Functor.Hom.html#632" class="Bound">ℓ</a> <a id="655" href="Categories.Functor.Hom.html#634" class="Bound">e</a><a id="656" class="Symbol">)</a> <a id="658" class="Keyword">where</a>
|
|||
|
<a id="666" class="Keyword">open</a> <a id="671" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="680" href="Categories.Functor.Hom.html#638" class="Bound">C</a>
|
|||
|
<a id="684" class="Keyword">open</a> <a id="689" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="692" href="Categories.Functor.Hom.html#638" class="Bound">C</a>
|
|||
|
|
|||
|
<a id="Hom.Hom[-,-]"></a><a id="697" href="Categories.Functor.Hom.html#697" class="Function">Hom[-,-]</a> <a id="706" class="Symbol">:</a> <a id="708" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="718" class="Symbol">(</a><a id="719" href="Categories.Category.Core.html#3132" class="Function">Category.op</a> <a id="731" href="Categories.Functor.Hom.html#638" class="Bound">C</a><a id="732" class="Symbol">)</a> <a id="734" href="Categories.Functor.Hom.html#638" class="Bound">C</a> <a id="736" class="Symbol">(</a><a id="737" href="Categories.Category.Instance.Setoids.html#555" class="Function">Setoids</a> <a id="745" href="Categories.Functor.Hom.html#632" class="Bound">ℓ</a> <a id="747" href="Categories.Functor.Hom.html#634" class="Bound">e</a><a id="748" class="Symbol">)</a>
|
|||
|
<a id="752" href="Categories.Functor.Hom.html#697" class="Function">Hom[-,-]</a> <a id="761" class="Symbol">=</a> <a id="763" class="Keyword">record</a>
|
|||
|
<a id="774" class="Symbol">{</a> <a id="776" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="789" class="Symbol">=</a> <a id="791" href="Categories.Functor.Hom.html#1106" class="Function">F₀′</a>
|
|||
|
<a id="799" class="Symbol">;</a> <a id="801" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="814" class="Symbol">=</a> <a id="816" class="Symbol">λ</a> <a id="818" class="Keyword">where</a>
|
|||
|
<a id="830" class="Symbol">(</a><a id="831" href="Categories.Functor.Hom.html#831" class="Bound">f</a> <a id="833" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="835" href="Categories.Functor.Hom.html#835" class="Bound">g</a><a id="836" class="Symbol">)</a> <a id="838" class="Symbol">→</a> <a id="840" class="Keyword">record</a>
|
|||
|
<a id="855" class="Symbol">{</a> <a id="857" href="Function.Bundles.html#2094" class="Field">to</a> <a id="860" class="Symbol">=</a> <a id="862" class="Symbol">λ</a> <a id="864" href="Categories.Functor.Hom.html#864" class="Bound">h</a> <a id="866" class="Symbol">→</a> <a id="868" href="Categories.Functor.Hom.html#835" class="Bound">g</a> <a id="870" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="872" href="Categories.Functor.Hom.html#864" class="Bound">h</a> <a id="874" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="876" href="Categories.Functor.Hom.html#831" class="Bound">f</a>
|
|||
|
<a id="886" class="Symbol">;</a> <a id="888" href="Function.Bundles.html#2113" class="Field">cong</a> <a id="893" class="Symbol">=</a> <a id="895" href="Categories.Category.Core.html#1706" class="Function">∘-resp-≈ʳ</a> <a id="905" href="Categories.Functor.Hom.html#317" class="Function Operator">∙</a> <a id="907" href="Categories.Category.Core.html#1597" class="Function">∘-resp-≈ˡ</a>
|
|||
|
<a id="925" class="Symbol">}</a>
|
|||
|
<a id="931" class="Symbol">;</a> <a id="933" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="946" class="Symbol">=</a> <a id="948" href="Categories.Category.Core.html#1096" class="Field">identityˡ</a> <a id="958" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="960" href="Categories.Category.Core.html#1145" class="Field">identityʳ</a>
|
|||
|
<a id="974" class="Symbol">;</a> <a id="976" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="989" class="Symbol">=</a> <a id="991" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="999" href="Categories.Category.Core.html#1004" class="Field">sym-assoc</a> <a id="1009" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="1011" href="Categories.Category.Core.html#3005" class="Function">⟺</a> <a id="1013" href="Categories.Morphism.Reasoning.Core.html#1650" class="Function">assoc²''</a>
|
|||
|
<a id="1026" class="Symbol">;</a> <a id="1028" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="1041" class="Symbol">=</a> <a id="1043" class="Symbol">λ</a> <a id="1045" class="Symbol">{</a> <a id="1047" class="Symbol">(</a><a id="1048" href="Categories.Functor.Hom.html#1048" class="Bound">f₁≈g₁</a> <a id="1054" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="1056" href="Categories.Functor.Hom.html#1056" class="Bound">f₂≈g₂</a><a id="1061" class="Symbol">)</a> <a id="1063" class="Symbol">→</a> <a id="1065" href="Categories.Functor.Hom.html#1056" class="Bound">f₂≈g₂</a> <a id="1071" href="Categories.Category.Core.html#2634" class="Function Operator">⟩∘⟨</a> <a id="1075" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="1083" href="Categories.Functor.Hom.html#1048" class="Bound">f₁≈g₁</a><a id="1088" class="Symbol">}</a>
|
|||
|
<a id="1094" class="Symbol">}</a>
|
|||
|
<a id="1100" class="Keyword">where</a> <a id="1106" href="Categories.Functor.Hom.html#1106" class="Function">F₀′</a> <a id="1110" class="Symbol">:</a> <a id="1112" href="Categories.Category.Core.html#559" class="Field">Obj</a> <a id="1116" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="1118" href="Categories.Category.Core.html#559" class="Field">Obj</a> <a id="1122" class="Symbol">→</a> <a id="1124" href="Relation.Binary.Bundles.html#1080" class="Record">Setoid</a> <a id="1131" href="Categories.Functor.Hom.html#632" class="Bound">ℓ</a> <a id="1133" href="Categories.Functor.Hom.html#634" class="Bound">e</a>
|
|||
|
<a id="1145" href="Categories.Functor.Hom.html#1106" class="Function">F₀′</a> <a id="1149" class="Symbol">(</a><a id="1150" href="Categories.Functor.Hom.html#1150" class="Bound">A</a> <a id="1152" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="1154" href="Categories.Functor.Hom.html#1154" class="Bound">B</a><a id="1155" class="Symbol">)</a> <a id="1157" class="Symbol">=</a> <a id="1159" href="Categories.Category.Core.html#1815" class="Function">hom-setoid</a> <a id="1170" class="Symbol">{</a><a id="1171" href="Categories.Functor.Hom.html#1150" class="Bound">A</a><a id="1172" class="Symbol">}</a> <a id="1174" class="Symbol">{</a><a id="1175" href="Categories.Functor.Hom.html#1154" class="Bound">B</a><a id="1176" class="Symbol">}</a>
|
|||
|
<a id="1188" class="Keyword">open</a> <a id="1193" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
|
|||
|
|
|||
|
<a id="Hom.Hom[_,-]"></a><a id="1209" href="Categories.Functor.Hom.html#1209" class="Function Operator">Hom[_,-]</a> <a id="1218" class="Symbol">:</a> <a id="1220" href="Categories.Category.Core.html#559" class="Field">Obj</a> <a id="1224" class="Symbol">→</a> <a id="1226" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1234" href="Categories.Functor.Hom.html#638" class="Bound">C</a> <a id="1236" class="Symbol">(</a><a id="1237" href="Categories.Category.Instance.Setoids.html#555" class="Function">Setoids</a> <a id="1245" href="Categories.Functor.Hom.html#632" class="Bound">ℓ</a> <a id="1247" href="Categories.Functor.Hom.html#634" class="Bound">e</a><a id="1248" class="Symbol">)</a>
|
|||
|
<a id="1252" href="Categories.Functor.Hom.html#1209" class="Function Operator">Hom[_,-]</a> <a id="1261" class="Symbol">=</a> <a id="1263" href="Categories.Functor.Bifunctor.html#874" class="Function">appˡ</a> <a id="1268" href="Categories.Functor.Hom.html#697" class="Function">Hom[-,-]</a>
|
|||
|
|
|||
|
<a id="Hom.Hom[-,_]"></a><a id="1280" href="Categories.Functor.Hom.html#1280" class="Function Operator">Hom[-,_]</a> <a id="1289" class="Symbol">:</a> <a id="1291" href="Categories.Category.Core.html#559" class="Field">Obj</a> <a id="1295" class="Symbol">→</a> <a id="1297" href="Categories.Functor.Properties.html#869" class="Function">Contravariant</a> <a id="1311" href="Categories.Functor.Hom.html#638" class="Bound">C</a> <a id="1313" class="Symbol">(</a><a id="1314" href="Categories.Category.Instance.Setoids.html#555" class="Function">Setoids</a> <a id="1322" href="Categories.Functor.Hom.html#632" class="Bound">ℓ</a> <a id="1324" href="Categories.Functor.Hom.html#634" class="Bound">e</a><a id="1325" class="Symbol">)</a>
|
|||
|
<a id="1329" href="Categories.Functor.Hom.html#1280" class="Function Operator">Hom[-,_]</a> <a id="1338" class="Symbol">=</a> <a id="1340" href="Categories.Functor.Bifunctor.html#938" class="Function">appʳ</a> <a id="1345" href="Categories.Functor.Hom.html#697" class="Function">Hom[-,-]</a>
|
|||
|
|
|||
|
<a id="Hom.Hom[_,_]"></a><a id="1357" href="Categories.Functor.Hom.html#1357" class="Function Operator">Hom[_,_]</a> <a id="1366" class="Symbol">:</a> <a id="1368" href="Categories.Category.Core.html#559" class="Field">Obj</a> <a id="1372" class="Symbol">→</a> <a id="1374" href="Categories.Category.Core.html#559" class="Field">Obj</a> <a id="1378" class="Symbol">→</a> <a id="1380" href="Relation.Binary.Bundles.html#1080" class="Record">Setoid</a> <a id="1387" href="Categories.Functor.Hom.html#632" class="Bound">ℓ</a> <a id="1389" href="Categories.Functor.Hom.html#634" class="Bound">e</a>
|
|||
|
<a id="1393" href="Categories.Functor.Hom.html#1357" class="Function Operator">Hom[</a> <a id="1398" href="Categories.Functor.Hom.html#1398" class="Bound">A</a> <a id="1400" href="Categories.Functor.Hom.html#1357" class="Function Operator">,</a> <a id="1402" href="Categories.Functor.Hom.html#1402" class="Bound">B</a> <a id="1404" href="Categories.Functor.Hom.html#1357" class="Function Operator">]</a> <a id="1406" class="Symbol">=</a> <a id="1408" href="Categories.Category.Core.html#1815" class="Function">hom-setoid</a> <a id="1419" class="Symbol">{</a><a id="1420" href="Categories.Functor.Hom.html#1398" class="Bound">A</a><a id="1421" class="Symbol">}</a> <a id="1423" class="Symbol">{</a><a id="1424" href="Categories.Functor.Hom.html#1402" class="Bound">B</a><a id="1425" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="1428" class="Comment">-- Notation for when the ambient Category must be specified explicitly.</a>
|
|||
|
<a id="1500" class="Keyword">module</a> <a id="1507" href="Categories.Functor.Hom.html#1507" class="Module">_</a> <a id="1509" class="Symbol">{</a><a id="1510" href="Categories.Functor.Hom.html#1510" class="Bound">o</a> <a id="1512" href="Categories.Functor.Hom.html#1512" class="Bound">ℓ</a> <a id="1514" href="Categories.Functor.Hom.html#1514" class="Bound">e</a><a id="1515" class="Symbol">}</a> <a id="1517" class="Symbol">(</a><a id="1518" href="Categories.Functor.Hom.html#1518" class="Bound">C</a> <a id="1520" class="Symbol">:</a> <a id="1522" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="1531" href="Categories.Functor.Hom.html#1510" class="Bound">o</a> <a id="1533" href="Categories.Functor.Hom.html#1512" class="Bound">ℓ</a> <a id="1535" href="Categories.Functor.Hom.html#1514" class="Bound">e</a><a id="1536" class="Symbol">)</a> <a id="1538" class="Keyword">where</a>
|
|||
|
<a id="1546" class="Keyword">open</a> <a id="1551" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="1560" href="Categories.Functor.Hom.html#1518" class="Bound">C</a>
|
|||
|
<a id="1564" class="Keyword">open</a> <a id="1569" href="Categories.Functor.Hom.html#625" class="Module">Hom</a> <a id="1573" href="Categories.Functor.Hom.html#1518" class="Bound">C</a>
|
|||
|
|
|||
|
<a id="1578" href="Categories.Functor.Hom.html#1578" class="Function Operator">Hom[_][-,-]</a> <a id="1590" class="Symbol">:</a> <a id="1592" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="1602" class="Symbol">(</a><a id="1603" href="Categories.Category.Core.html#3132" class="Function">Category.op</a> <a id="1615" href="Categories.Functor.Hom.html#1518" class="Bound">C</a><a id="1616" class="Symbol">)</a> <a id="1618" href="Categories.Functor.Hom.html#1518" class="Bound">C</a> <a id="1620" class="Symbol">(</a><a id="1621" href="Categories.Category.Instance.Setoids.html#555" class="Function">Setoids</a> <a id="1629" href="Categories.Functor.Hom.html#1512" class="Bound">ℓ</a> <a id="1631" href="Categories.Functor.Hom.html#1514" class="Bound">e</a><a id="1632" class="Symbol">)</a>
|
|||
|
<a id="1636" href="Categories.Functor.Hom.html#1578" class="Function Operator">Hom[_][-,-]</a> <a id="1648" class="Symbol">=</a> <a id="1650" href="Categories.Functor.Hom.html#697" class="Function">Hom[-,-]</a>
|
|||
|
|
|||
|
<a id="1662" href="Categories.Functor.Hom.html#1662" class="Function Operator">Hom[_][_,-]</a> <a id="1674" class="Symbol">:</a> <a id="1676" href="Categories.Category.Core.html#559" class="Field">Obj</a> <a id="1680" class="Symbol">→</a> <a id="1682" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1690" href="Categories.Functor.Hom.html#1518" class="Bound">C</a> <a id="1692" class="Symbol">(</a><a id="1693" href="Categories.Category.Instance.Setoids.html#555" class="Function">Setoids</a> <a id="1701" href="Categories.Functor.Hom.html#1512" class="Bound">ℓ</a> <a id="1703" href="Categories.Functor.Hom.html#1514" class="Bound">e</a><a id="1704" class="Symbol">)</a>
|
|||
|
<a id="1708" href="Categories.Functor.Hom.html#1662" class="Function Operator">Hom[_][_,-]</a> <a id="1720" href="Categories.Functor.Hom.html#1720" class="Bound">B</a> <a id="1722" class="Symbol">=</a> <a id="1724" href="Categories.Functor.Hom.html#1209" class="Function Operator">Hom[</a> <a id="1729" href="Categories.Functor.Hom.html#1720" class="Bound">B</a> <a id="1731" href="Categories.Functor.Hom.html#1209" class="Function Operator">,-]</a>
|
|||
|
|
|||
|
<a id="1738" href="Categories.Functor.Hom.html#1738" class="Function Operator">Hom[_][-,_]</a> <a id="1750" class="Symbol">:</a> <a id="1752" href="Categories.Category.Core.html#559" class="Field">Obj</a> <a id="1756" class="Symbol">→</a> <a id="1758" href="Categories.Functor.Properties.html#869" class="Function">Contravariant</a> <a id="1772" href="Categories.Functor.Hom.html#1518" class="Bound">C</a> <a id="1774" class="Symbol">(</a><a id="1775" href="Categories.Category.Instance.Setoids.html#555" class="Function">Setoids</a> <a id="1783" href="Categories.Functor.Hom.html#1512" class="Bound">ℓ</a> <a id="1785" href="Categories.Functor.Hom.html#1514" class="Bound">e</a><a id="1786" class="Symbol">)</a>
|
|||
|
<a id="1790" href="Categories.Functor.Hom.html#1738" class="Function Operator">Hom[_][-,_]</a> <a id="1802" href="Categories.Functor.Hom.html#1802" class="Bound">B</a> <a id="1804" class="Symbol">=</a> <a id="1806" href="Categories.Functor.Hom.html#1280" class="Function Operator">Hom[-,</a> <a id="1813" href="Categories.Functor.Hom.html#1802" class="Bound">B</a> <a id="1815" href="Categories.Functor.Hom.html#1280" class="Function Operator">]</a>
|
|||
|
|
|||
|
<a id="1820" href="Categories.Functor.Hom.html#1820" class="Function Operator">Hom[_][_,_]</a> <a id="1832" class="Symbol">:</a> <a id="1834" href="Categories.Category.Core.html#559" class="Field">Obj</a> <a id="1838" class="Symbol">→</a> <a id="1840" href="Categories.Category.Core.html#559" class="Field">Obj</a> <a id="1844" class="Symbol">→</a> <a id="1846" href="Relation.Binary.Bundles.html#1080" class="Record">Setoid</a> <a id="1853" href="Categories.Functor.Hom.html#1512" class="Bound">ℓ</a> <a id="1855" href="Categories.Functor.Hom.html#1514" class="Bound">e</a>
|
|||
|
<a id="1859" href="Categories.Functor.Hom.html#1820" class="Function Operator">Hom[_][_,_]</a> <a id="1871" href="Categories.Functor.Hom.html#1871" class="Bound">A</a> <a id="1873" href="Categories.Functor.Hom.html#1873" class="Bound">B</a> <a id="1875" class="Symbol">=</a> <a id="1877" href="Categories.Category.Core.html#1815" class="Function">hom-setoid</a> <a id="1888" class="Symbol">{</a><a id="1889" href="Categories.Functor.Hom.html#1871" class="Bound">A</a><a id="1890" class="Symbol">}</a> <a id="1892" class="Symbol">{</a><a id="1893" href="Categories.Functor.Hom.html#1873" class="Bound">B</a><a id="1894" class="Symbol">}</a>
|
|||
|
</pre></body></html>
|