mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
171 lines
88 KiB
HTML
171 lines
88 KiB
HTML
|
<!DOCTYPE HTML>
|
|||
|
<html><head><meta charset="utf-8"><title>Categories.Functor.Properties</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.Properties.html" class="Module">Categories.Functor.Properties</a> <a id="73" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="80" class="Comment">-- Properties valid of all Functors</a>
|
|||
|
<a id="116" class="Keyword">open</a> <a id="121" class="Keyword">import</a> <a id="128" href="Level.html" class="Module">Level</a>
|
|||
|
<a id="134" class="Keyword">open</a> <a id="139" class="Keyword">import</a> <a id="146" href="Data.Product.html" class="Module">Data.Product</a> <a id="159" class="Keyword">using</a> <a id="165" class="Symbol">(</a><a id="166" href="Agda.Builtin.Sigma.html#234" class="Field">proj₁</a><a id="171" class="Symbol">;</a> <a id="173" href="Agda.Builtin.Sigma.html#246" class="Field">proj₂</a><a id="178" class="Symbol">;</a> <a id="180" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">_,_</a><a id="183" class="Symbol">;</a> <a id="185" href="Data.Product.html#1176" class="Function Operator">_×_</a><a id="188" class="Symbol">;</a> <a id="190" href="Agda.Builtin.Sigma.html#148" class="Record">Σ</a><a id="191" class="Symbol">)</a>
|
|||
|
<a id="193" class="Keyword">open</a> <a id="198" class="Keyword">import</a> <a id="205" href="Function.Surjection.html" class="Module">Function.Surjection</a> <a id="225" class="Keyword">using</a> <a id="231" class="Symbol">(</a><a id="232" href="Function.Surjection.html#1003" class="Record">Surjective</a><a id="242" class="Symbol">)</a>
|
|||
|
<a id="244" class="Keyword">open</a> <a id="249" class="Keyword">import</a> <a id="256" href="Function.Equivalence.html" class="Module">Function.Equivalence</a> <a id="277" class="Keyword">using</a> <a id="283" class="Symbol">(</a><a id="284" href="Function.Equivalence.html#838" class="Record">Equivalence</a><a id="295" class="Symbol">)</a>
|
|||
|
<a id="297" class="Keyword">open</a> <a id="302" class="Keyword">import</a> <a id="309" href="Function.Equality.html" class="Module">Function.Equality</a> <a id="327" class="Keyword">using</a> <a id="333" class="Symbol">(</a><a id="334" href="Function.Equality.html#898" class="Record">Π</a><a id="335" class="Symbol">;</a> <a id="337" href="Function.Equality.html#1227" class="Function Operator">_⟶_</a><a id="340" class="Symbol">;</a> <a id="342" href="Function.Equality.html#1073" class="Field Operator">_⟨$⟩_</a><a id="347" class="Symbol">;</a> <a id="349" href="Function.Equality.html#1140" class="Field">cong</a><a id="353" class="Symbol">)</a>
|
|||
|
<a id="355" class="Keyword">open</a> <a id="360" class="Keyword">import</a> <a id="367" href="Relation.Binary.html" class="Module">Relation.Binary</a> <a id="383" class="Keyword">using</a> <a id="389" class="Symbol">(</a><a id="390" href="Relation.Binary.Core.html#1572" class="Function Operator">_Preserves_⟶_</a><a id="403" class="Symbol">)</a>
|
|||
|
<a id="405" class="Keyword">open</a> <a id="410" class="Keyword">import</a> <a id="417" href="Relation.Nullary.html" class="Module">Relation.Nullary</a>
|
|||
|
|
|||
|
<a id="435" class="Keyword">open</a> <a id="440" class="Keyword">import</a> <a id="447" href="Categories.Category.html" class="Module">Categories.Category</a>
|
|||
|
<a id="467" class="Keyword">open</a> <a id="472" class="Keyword">import</a> <a id="479" href="Categories.Category.Construction.Core.html" class="Module">Categories.Category.Construction.Core</a> <a id="517" class="Keyword">using</a> <a id="523" class="Symbol">(</a><a id="524" class="Keyword">module</a> <a id="531" href="Categories.Category.Construction.Core.html#1314" class="Module">Shorthands</a><a id="541" class="Symbol">)</a>
|
|||
|
<a id="543" class="Keyword">open</a> <a id="548" class="Keyword">import</a> <a id="555" href="Categories.Functor.html" class="Module">Categories.Functor</a>
|
|||
|
<a id="574" class="Keyword">import</a> <a id="581" href="Categories.Morphism.html" class="Module">Categories.Morphism</a> <a id="601" class="Symbol">as</a> <a id="604" class="Module">Morphism</a>
|
|||
|
<a id="613" class="Keyword">import</a> <a id="620" href="Categories.Morphism.Reasoning.html" class="Module">Categories.Morphism.Reasoning</a> <a id="650" class="Symbol">as</a> <a id="653" class="Module">Reas</a>
|
|||
|
<a id="658" class="Keyword">open</a> <a id="663" class="Keyword">import</a> <a id="670" href="Categories.Morphism.IsoEquiv.html" class="Module">Categories.Morphism.IsoEquiv</a> <a id="699" class="Symbol">as</a> <a id="702" class="Module">IsoEquiv</a>
|
|||
|
<a id="711" class="Keyword">open</a> <a id="716" class="Keyword">import</a> <a id="723" href="Categories.Morphism.Notation.html" class="Module">Categories.Morphism.Notation</a>
|
|||
|
|
|||
|
<a id="753" class="Keyword">open</a> <a id="758" href="Categories.Category.Construction.Core.html#1314" class="Module">Shorthands</a> <a id="769" class="Keyword">using</a> <a id="775" class="Symbol">(</a><a id="776" href="Categories.Category.Core.html#656" class="Function Operator">_∘ᵢ_</a><a id="780" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="783" class="Keyword">private</a>
|
|||
|
<a id="793" class="Keyword">variable</a>
|
|||
|
<a id="806" href="Categories.Functor.Properties.html#806" class="Generalizable">o</a> <a id="808" href="Categories.Functor.Properties.html#808" class="Generalizable">ℓ</a> <a id="810" href="Categories.Functor.Properties.html#810" class="Generalizable">e</a> <a id="812" href="Categories.Functor.Properties.html#812" class="Generalizable">o′</a> <a id="815" href="Categories.Functor.Properties.html#815" class="Generalizable">ℓ′</a> <a id="818" href="Categories.Functor.Properties.html#818" class="Generalizable">e′</a> <a id="821" class="Symbol">:</a> <a id="823" href="Agda.Primitive.html#591" class="Postulate">Level</a>
|
|||
|
<a id="833" href="Categories.Functor.Properties.html#833" class="Generalizable">C</a> <a id="835" href="Categories.Functor.Properties.html#835" class="Generalizable">D</a> <a id="837" class="Symbol">:</a> <a id="839" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="848" href="Categories.Functor.Properties.html#806" class="Generalizable">o</a> <a id="850" href="Categories.Functor.Properties.html#808" class="Generalizable">ℓ</a> <a id="852" href="Categories.Functor.Properties.html#810" class="Generalizable">e</a>
|
|||
|
|
|||
|
<a id="Contravariant"></a><a id="855" href="Categories.Functor.Properties.html#855" class="Function">Contravariant</a> <a id="869" class="Symbol">:</a> <a id="871" class="Symbol">∀</a> <a id="873" class="Symbol">(</a><a id="874" href="Categories.Functor.Properties.html#874" class="Bound">C</a> <a id="876" class="Symbol">:</a> <a id="878" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="887" href="Categories.Functor.Properties.html#806" class="Generalizable">o</a> <a id="889" href="Categories.Functor.Properties.html#808" class="Generalizable">ℓ</a> <a id="891" href="Categories.Functor.Properties.html#810" class="Generalizable">e</a><a id="892" class="Symbol">)</a> <a id="894" class="Symbol">(</a><a id="895" href="Categories.Functor.Properties.html#895" class="Bound">D</a> <a id="897" class="Symbol">:</a> <a id="899" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="908" href="Categories.Functor.Properties.html#812" class="Generalizable">o′</a> <a id="911" href="Categories.Functor.Properties.html#815" class="Generalizable">ℓ′</a> <a id="914" href="Categories.Functor.Properties.html#818" class="Generalizable">e′</a><a id="916" class="Symbol">)</a> <a id="918" class="Symbol">→</a> <a id="920" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="924" class="Symbol">_</a>
|
|||
|
<a id="926" href="Categories.Functor.Properties.html#855" class="Function">Contravariant</a> <a id="940" href="Categories.Functor.Properties.html#940" class="Bound">C</a> <a id="942" href="Categories.Functor.Properties.html#942" class="Bound">D</a> <a id="944" class="Symbol">=</a> <a id="946" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="954" class="Symbol">(</a><a id="955" href="Categories.Category.Core.html#3132" class="Function">Category.op</a> <a id="967" href="Categories.Functor.Properties.html#940" class="Bound">C</a><a id="968" class="Symbol">)</a> <a id="970" href="Categories.Functor.Properties.html#942" class="Bound">D</a>
|
|||
|
|
|||
|
<a id="Faithful"></a><a id="973" href="Categories.Functor.Properties.html#973" class="Function">Faithful</a> <a id="982" class="Symbol">:</a> <a id="984" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="992" href="Categories.Functor.Properties.html#833" class="Generalizable">C</a> <a id="994" href="Categories.Functor.Properties.html#835" class="Generalizable">D</a> <a id="996" class="Symbol">→</a> <a id="998" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1002" class="Symbol">_</a>
|
|||
|
<a id="1004" href="Categories.Functor.Properties.html#973" class="Function">Faithful</a> <a id="1013" class="Symbol">{</a><a id="1014" class="Argument">C</a> <a id="1016" class="Symbol">=</a> <a id="1018" href="Categories.Functor.Properties.html#1018" class="Bound">C</a><a id="1019" class="Symbol">}</a> <a id="1021" class="Symbol">{</a><a id="1022" class="Argument">D</a> <a id="1024" class="Symbol">=</a> <a id="1026" href="Categories.Functor.Properties.html#1026" class="Bound">D</a><a id="1027" class="Symbol">}</a> <a id="1029" href="Categories.Functor.Properties.html#1029" class="Bound">F</a> <a id="1031" class="Symbol">=</a> <a id="1033" class="Symbol">∀</a> <a id="1035" class="Symbol">{</a><a id="1036" href="Categories.Functor.Properties.html#1036" class="Bound">X</a> <a id="1038" href="Categories.Functor.Properties.html#1038" class="Bound">Y</a><a id="1039" class="Symbol">}</a> <a id="1041" class="Symbol">→</a> <a id="1043" class="Symbol">(</a><a id="1044" href="Categories.Functor.Properties.html#1044" class="Bound">f</a> <a id="1046" href="Categories.Functor.Properties.html#1046" class="Bound">g</a> <a id="1048" class="Symbol">:</a> <a id="1050" href="Categories.Functor.Properties.html#1018" class="Bound">C</a> <a id="1052" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="1054" href="Categories.Functor.Properties.html#1036" class="Bound">X</a> <a id="1056" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="1058" href="Categories.Functor.Properties.html#1038" class="Bound">Y</a> <a id="1060" href="Categories.Category.html#502" class="Function Operator">]</a><a id="1061" class="Symbol">)</a> <a id="1063" class="Symbol">→</a> <a id="1065" href="Categories.Functor.Properties.html#1026" class="Bound">D</a> <a id="1067" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="1069" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="1072" href="Categories.Functor.Properties.html#1044" class="Bound">f</a> <a id="1074" href="Categories.Category.html#609" class="Function Operator">≈</a> <a id="1076" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="1079" href="Categories.Functor.Properties.html#1046" class="Bound">g</a> <a id="1081" href="Categories.Category.html#609" class="Function Operator">]</a> <a id="1083" class="Symbol">→</a> <a id="1085" href="Categories.Functor.Properties.html#1018" class="Bound">C</a> <a id="1087" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="1089" href="Categories.Functor.Properties.html#1044" class="Bound">f</a> <a id="1091" href="Categories.Category.html#609" class="Function Operator">≈</a> <a id="1093" href="Categories.Functor.Properties.html#1046" class="Bound">g</a> <a id="1095" href="Categories.Category.html#609" class="Function Operator">]</a>
|
|||
|
<a id="1099" class="Keyword">where</a> <a id="1105" class="Keyword">open</a> <a id="1110" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="1118" href="Categories.Functor.Properties.html#1029" class="Bound">F</a>
|
|||
|
|
|||
|
<a id="Full"></a><a id="1121" href="Categories.Functor.Properties.html#1121" class="Function">Full</a> <a id="1126" class="Symbol">:</a> <a id="1128" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1136" href="Categories.Functor.Properties.html#833" class="Generalizable">C</a> <a id="1138" href="Categories.Functor.Properties.html#835" class="Generalizable">D</a> <a id="1140" class="Symbol">→</a> <a id="1142" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1146" class="Symbol">_</a>
|
|||
|
<a id="1148" href="Categories.Functor.Properties.html#1121" class="Function">Full</a> <a id="1153" class="Symbol">{</a><a id="1154" class="Argument">C</a> <a id="1156" class="Symbol">=</a> <a id="1158" href="Categories.Functor.Properties.html#1158" class="Bound">C</a><a id="1159" class="Symbol">}</a> <a id="1161" class="Symbol">{</a><a id="1162" class="Argument">D</a> <a id="1164" class="Symbol">=</a> <a id="1166" href="Categories.Functor.Properties.html#1166" class="Bound">D</a><a id="1167" class="Symbol">}</a> <a id="1169" href="Categories.Functor.Properties.html#1169" class="Bound">F</a> <a id="1171" class="Symbol">=</a> <a id="1173" class="Symbol">∀</a> <a id="1175" class="Symbol">{</a><a id="1176" href="Categories.Functor.Properties.html#1176" class="Bound">X</a> <a id="1178" href="Categories.Functor.Properties.html#1178" class="Bound">Y</a><a id="1179" class="Symbol">}</a> <a id="1181" class="Symbol">→</a> <a id="1183" href="Function.Surjection.html#1003" class="Record">Surjective</a> <a id="1194" class="Symbol">{</a><a id="1195" class="Argument">To</a> <a id="1198" class="Symbol">=</a> <a id="1200" href="Categories.Category.Core.html#1815" class="Function">D.hom-setoid</a> <a id="1213" class="Symbol">{</a><a id="1214" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="1217" href="Categories.Functor.Properties.html#1176" class="Bound">X</a><a id="1218" class="Symbol">}</a> <a id="1220" class="Symbol">{</a><a id="1221" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="1224" href="Categories.Functor.Properties.html#1178" class="Bound">Y</a><a id="1225" class="Symbol">}}</a> <a id="1228" href="Categories.Functor.Properties.html#1313" class="Function">G</a>
|
|||
|
<a id="1232" class="Keyword">where</a>
|
|||
|
<a id="1242" class="Keyword">module</a> <a id="1249" href="Categories.Functor.Properties.html#1249" class="Module">C</a> <a id="1251" class="Symbol">=</a> <a id="1253" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="1262" href="Categories.Functor.Properties.html#1158" class="Bound">C</a>
|
|||
|
<a id="1268" class="Keyword">module</a> <a id="1275" href="Categories.Functor.Properties.html#1275" class="Module">D</a> <a id="1277" class="Symbol">=</a> <a id="1279" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="1288" href="Categories.Functor.Properties.html#1166" class="Bound">D</a>
|
|||
|
<a id="1294" class="Keyword">open</a> <a id="1299" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="1307" href="Categories.Functor.Properties.html#1169" class="Bound">F</a>
|
|||
|
<a id="1313" href="Categories.Functor.Properties.html#1313" class="Function">G</a> <a id="1315" class="Symbol">:</a> <a id="1317" class="Symbol">∀</a> <a id="1319" class="Symbol">{</a><a id="1320" href="Categories.Functor.Properties.html#1320" class="Bound">X</a> <a id="1322" href="Categories.Functor.Properties.html#1322" class="Bound">Y</a><a id="1323" class="Symbol">}</a> <a id="1325" class="Symbol">→</a> <a id="1327" class="Symbol">(</a><a id="1328" href="Categories.Category.Core.html#1815" class="Function">C.hom-setoid</a> <a id="1341" class="Symbol">{</a><a id="1342" href="Categories.Functor.Properties.html#1320" class="Bound">X</a><a id="1343" class="Symbol">}</a> <a id="1345" class="Symbol">{</a><a id="1346" href="Categories.Functor.Properties.html#1322" class="Bound">Y</a><a id="1347" class="Symbol">})</a> <a id="1350" href="Function.Equality.html#1227" class="Function Operator">⟶</a> <a id="1352" href="Categories.Category.Core.html#1815" class="Function">D.hom-setoid</a> <a id="1365" class="Symbol">{</a><a id="1366" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="1369" href="Categories.Functor.Properties.html#1320" class="Bound">X</a><a id="1370" class="Symbol">}</a> <a id="1372" class="Symbol">{</a><a id="1373" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="1376" href="Categories.Functor.Properties.html#1322" class="Bound">Y</a><a id="1377" class="Symbol">}</a>
|
|||
|
<a id="1383" href="Categories.Functor.Properties.html#1313" class="Function">G</a> <a id="1385" class="Symbol">=</a> <a id="1387" class="Keyword">record</a> <a id="1394" class="Symbol">{</a> <a id="1396" href="Function.Equality.html#1073" class="Field Operator">_⟨$⟩_</a> <a id="1402" class="Symbol">=</a> <a id="1404" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="1407" class="Symbol">;</a> <a id="1409" href="Function.Equality.html#1140" class="Field">cong</a> <a id="1414" class="Symbol">=</a> <a id="1416" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="1425" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="FullyFaithful"></a><a id="1428" href="Categories.Functor.Properties.html#1428" class="Function">FullyFaithful</a> <a id="1442" class="Symbol">:</a> <a id="1444" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1452" href="Categories.Functor.Properties.html#833" class="Generalizable">C</a> <a id="1454" href="Categories.Functor.Properties.html#835" class="Generalizable">D</a> <a id="1456" class="Symbol">→</a> <a id="1458" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1462" class="Symbol">_</a>
|
|||
|
<a id="1464" href="Categories.Functor.Properties.html#1428" class="Function">FullyFaithful</a> <a id="1478" href="Categories.Functor.Properties.html#1478" class="Bound">F</a> <a id="1480" class="Symbol">=</a> <a id="1482" href="Categories.Functor.Properties.html#1121" class="Function">Full</a> <a id="1487" href="Categories.Functor.Properties.html#1478" class="Bound">F</a> <a id="1489" href="Data.Product.html#1176" class="Function Operator">×</a> <a id="1491" href="Categories.Functor.Properties.html#973" class="Function">Faithful</a> <a id="1500" href="Categories.Functor.Properties.html#1478" class="Bound">F</a>
|
|||
|
|
|||
|
<a id="1503" class="Comment">-- Note that this is a constructive version of Essentially Surjective, which is</a>
|
|||
|
<a id="1583" class="Comment">-- quite a strong assumption.</a>
|
|||
|
<a id="EssentiallySurjective"></a><a id="1613" href="Categories.Functor.Properties.html#1613" class="Function">EssentiallySurjective</a> <a id="1635" class="Symbol">:</a> <a id="1637" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1645" href="Categories.Functor.Properties.html#833" class="Generalizable">C</a> <a id="1647" href="Categories.Functor.Properties.html#835" class="Generalizable">D</a> <a id="1649" class="Symbol">→</a> <a id="1651" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1655" class="Symbol">_</a>
|
|||
|
<a id="1657" href="Categories.Functor.Properties.html#1613" class="Function">EssentiallySurjective</a> <a id="1679" class="Symbol">{</a><a id="1680" class="Argument">C</a> <a id="1682" class="Symbol">=</a> <a id="1684" href="Categories.Functor.Properties.html#1684" class="Bound">C</a><a id="1685" class="Symbol">}</a> <a id="1687" class="Symbol">{</a><a id="1688" class="Argument">D</a> <a id="1690" class="Symbol">=</a> <a id="1692" href="Categories.Functor.Properties.html#1692" class="Bound">D</a><a id="1693" class="Symbol">}</a> <a id="1695" href="Categories.Functor.Properties.html#1695" class="Bound">F</a> <a id="1697" class="Symbol">=</a> <a id="1699" class="Symbol">(</a><a id="1700" href="Categories.Functor.Properties.html#1700" class="Bound">d</a> <a id="1702" class="Symbol">:</a> <a id="1704" href="Categories.Category.Core.html#559" class="Field">Category.Obj</a> <a id="1717" href="Categories.Functor.Properties.html#1692" class="Bound">D</a><a id="1718" class="Symbol">)</a> <a id="1720" class="Symbol">→</a> <a id="1722" href="Agda.Builtin.Sigma.html#148" class="Record">Σ</a> <a id="1724" href="Categories.Category.Core.html#559" class="Function">C.Obj</a> <a id="1730" class="Symbol">(λ</a> <a id="1733" href="Categories.Functor.Properties.html#1733" class="Bound">c</a> <a id="1735" class="Symbol">→</a> <a id="1737" href="Categories.Functor.Core.html#432" class="Field">Functor.F₀</a> <a id="1748" href="Categories.Functor.Properties.html#1695" class="Bound">F</a> <a id="1750" href="Categories.Functor.Properties.html#1733" class="Bound">c</a> <a id="1752" href="Categories.Morphism.html#1958" class="Record Operator">≅</a> <a id="1754" href="Categories.Functor.Properties.html#1700" class="Bound">d</a><a id="1755" class="Symbol">)</a>
|
|||
|
<a id="1759" class="Keyword">where</a>
|
|||
|
<a id="1767" class="Keyword">open</a> <a id="1772" href="Categories.Morphism.html" class="Module">Morphism</a> <a id="1781" href="Categories.Functor.Properties.html#1692" class="Bound">D</a>
|
|||
|
<a id="1785" class="Keyword">module</a> <a id="1792" href="Categories.Functor.Properties.html#1792" class="Module">C</a> <a id="1794" class="Symbol">=</a> <a id="1796" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="1805" href="Categories.Functor.Properties.html#1684" class="Bound">C</a>
|
|||
|
|
|||
|
<a id="Conservative"></a><a id="1808" href="Categories.Functor.Properties.html#1808" class="Function">Conservative</a> <a id="1821" class="Symbol">:</a> <a id="1823" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1831" href="Categories.Functor.Properties.html#833" class="Generalizable">C</a> <a id="1833" href="Categories.Functor.Properties.html#835" class="Generalizable">D</a> <a id="1835" class="Symbol">→</a> <a id="1837" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1841" class="Symbol">_</a>
|
|||
|
<a id="1843" href="Categories.Functor.Properties.html#1808" class="Function">Conservative</a> <a id="1856" class="Symbol">{</a><a id="1857" class="Argument">C</a> <a id="1859" class="Symbol">=</a> <a id="1861" href="Categories.Functor.Properties.html#1861" class="Bound">C</a><a id="1862" class="Symbol">}</a> <a id="1864" class="Symbol">{</a><a id="1865" class="Argument">D</a> <a id="1867" class="Symbol">=</a> <a id="1869" href="Categories.Functor.Properties.html#1869" class="Bound">D</a><a id="1870" class="Symbol">}</a> <a id="1872" href="Categories.Functor.Properties.html#1872" class="Bound">F</a> <a id="1874" class="Symbol">=</a> <a id="1876" class="Symbol">∀</a> <a id="1878" class="Symbol">{</a><a id="1879" href="Categories.Functor.Properties.html#1879" class="Bound">A</a> <a id="1881" href="Categories.Functor.Properties.html#1881" class="Bound">B</a><a id="1882" class="Symbol">}</a> <a id="1884" class="Symbol">{</a><a id="1885" href="Categories.Functor.Properties.html#1885" class="Bound">f</a> <a id="1887" class="Symbol">:</a> <a id="1889" href="Categories.Functor.Properties.html#1861" class="Bound">C</a> <a id="1891" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="1893" href="Categories.Functor.Properties.html#1879" class="Bound">A</a> <a id="1895" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="1897" href="Categories.Functor.Properties.html#1881" class="Bound">B</a> <a id="1899" href="Categories.Category.html#502" class="Function Operator">]</a><a id="1900" class="Symbol">}</a> <a id="1902" class="Symbol">{</a><a id="1903" href="Categories.Functor.Properties.html#1903" class="Bound">g</a> <a id="1905" class="Symbol">:</a> <a id="1907" href="Categories.Functor.Properties.html#1869" class="Bound">D</a> <a id="1909" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="1911" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="1914" href="Categories.Functor.Properties.html#1881" class="Bound">B</a> <a id="1916" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="1918" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="1921" href="Categories.Functor.Properties.html#1879" class="Bound">A</a> <a id="1923" href="Categories.Category.html#502" class="Function Operator">]</a><a id="1924" class="Symbol">}</a> <a id="1926" class="Symbol">→</a> <a id="1928" href="Categories.Morphism.html#1528" class="Record">Iso</a> <a id="1932" href="Categories.Functor.Properties.html#1869" class="Bound">D</a> <a id="1934" class="Symbol">(</a><a id="1935" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="1938" href="Categories.Functor.Properties.html#1885" class="Bound">f</a><a id="1939" class="Symbol">)</a> <a id="1941" href="Categories.Functor.Properties.html#1903" class="Bound">g</a> <a id="1943" class="Symbol">→</a> <a id="1945" href="Agda.Builtin.Sigma.html#148" class="Record">Σ</a> <a id="1947" class="Symbol">(</a><a id="1948" href="Categories.Functor.Properties.html#1861" class="Bound">C</a> <a id="1950" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="1952" href="Categories.Functor.Properties.html#1881" class="Bound">B</a> <a id="1954" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="1956" href="Categories.Functor.Properties.html#1879" class="Bound">A</a> <a id="1958" href="Categories.Category.html#502" class="Function Operator">]</a><a id="1959" class="Symbol">)</a> <a id="1961" class="Symbol">(λ</a> <a id="1964" href="Categories.Functor.Properties.html#1964" class="Bound">h</a> <a id="1966" class="Symbol">→</a> <a id="1968" href="Categories.Morphism.html#1528" class="Record">Iso</a> <a id="1972" href="Categories.Functor.Properties.html#1861" class="Bound">C</a> <a id="1974" href="Categories.Functor.Properties.html#1885" class="Bound">f</a> <a id="1976" href="Categories.Functor.Properties.html#1964" class="Bound">h</a><a id="1977" class="Symbol">)</a>
|
|||
|
<a id="1981" class="Keyword">where</a>
|
|||
|
<a id="1991" class="Keyword">open</a> <a id="1996" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="2004" href="Categories.Functor.Properties.html#1872" class="Bound">F</a>
|
|||
|
<a id="2010" class="Keyword">open</a> <a id="2015" href="Categories.Morphism.html" class="Module">Morphism</a>
|
|||
|
|
|||
|
<a id="2025" class="Comment">-- a series of [ Functor ]-respects-Thing combinators (with respects -> resp)</a>
|
|||
|
|
|||
|
<a id="2104" class="Keyword">module</a> <a id="2111" href="Categories.Functor.Properties.html#2111" class="Module">_</a> <a id="2113" class="Symbol">(</a><a id="2114" href="Categories.Functor.Properties.html#2114" class="Bound">F</a> <a id="2116" class="Symbol">:</a> <a id="2118" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="2126" href="Categories.Functor.Properties.html#833" class="Generalizable">C</a> <a id="2128" href="Categories.Functor.Properties.html#835" class="Generalizable">D</a><a id="2129" class="Symbol">)</a> <a id="2131" class="Keyword">where</a>
|
|||
|
<a id="2139" class="Keyword">private</a>
|
|||
|
<a id="2151" class="Keyword">module</a> <a id="2158" href="Categories.Functor.Properties.html#2158" class="Module">C</a> <a id="2160" class="Symbol">=</a> <a id="2162" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="2171" href="Categories.Functor.Properties.html#2126" class="Bound">C</a> <a id="2173" class="Keyword">using</a> <a id="2179" class="Symbol">(</a><a id="2180" href="Categories.Category.Core.html#559" class="Field">Obj</a><a id="2183" class="Symbol">;</a> <a id="2185" href="Categories.Category.Core.html#656" class="Field Operator">_∘_</a><a id="2188" class="Symbol">;</a> <a id="2190" href="Categories.Category.Core.html#575" class="Field Operator">_⇒_</a><a id="2193" class="Symbol">;</a> <a id="2195" href="Categories.Category.Core.html#630" class="Field">id</a><a id="2197" class="Symbol">;</a> <a id="2199" class="Keyword">module</a> <a id="2206" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a><a id="2218" class="Symbol">)</a>
|
|||
|
<a id="2224" class="Keyword">module</a> <a id="2231" href="Categories.Functor.Properties.html#2231" class="Module">D</a> <a id="2233" class="Symbol">=</a> <a id="2235" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="2244" href="Categories.Functor.Properties.html#2128" class="Bound">D</a>
|
|||
|
<a id="2250" class="Keyword">module</a> <a id="2257" href="Categories.Functor.Properties.html#2257" class="Module">IsoC</a> <a id="2262" class="Symbol">=</a> <a id="2264" href="Categories.Morphism.IsoEquiv.html" class="Module">IsoEquiv</a> <a id="2273" href="Categories.Functor.Properties.html#2126" class="Bound">C</a>
|
|||
|
<a id="2279" class="Keyword">module</a> <a id="2286" href="Categories.Functor.Properties.html#2286" class="Module">IsoD</a> <a id="2291" class="Symbol">=</a> <a id="2293" href="Categories.Morphism.IsoEquiv.html" class="Module">IsoEquiv</a> <a id="2302" href="Categories.Functor.Properties.html#2128" class="Bound">D</a>
|
|||
|
<a id="2306" class="Keyword">open</a> <a id="2311" href="Categories.Functor.Properties.html#2158" class="Module">C</a> <a id="2313" class="Keyword">hiding</a> <a id="2320" class="Symbol">(</a><a id="2321" href="Categories.Category.Core.html#656" class="Function Operator">_∘_</a><a id="2324" class="Symbol">)</a>
|
|||
|
<a id="2328" class="Keyword">open</a> <a id="2333" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="2341" href="Categories.Functor.Properties.html#2114" class="Bound">F</a>
|
|||
|
<a id="2345" class="Keyword">open</a> <a id="2350" href="Categories.Morphism.html" class="Module">Morphism</a>
|
|||
|
|
|||
|
<a id="2362" class="Keyword">private</a>
|
|||
|
<a id="2374" class="Keyword">variable</a>
|
|||
|
<a id="2389" href="Categories.Functor.Properties.html#2389" class="Generalizable">A</a> <a id="2391" href="Categories.Functor.Properties.html#2391" class="Generalizable">B</a> <a id="2393" href="Categories.Functor.Properties.html#2393" class="Generalizable">E</a> <a id="2395" class="Symbol">:</a> <a id="2397" href="Categories.Category.Core.html#559" class="Function">Obj</a>
|
|||
|
<a id="2407" href="Categories.Functor.Properties.html#2407" class="Generalizable">f</a> <a id="2409" href="Categories.Functor.Properties.html#2409" class="Generalizable">g</a> <a id="2411" href="Categories.Functor.Properties.html#2411" class="Generalizable">h</a> <a id="2413" href="Categories.Functor.Properties.html#2413" class="Generalizable">i</a> <a id="2415" class="Symbol">:</a> <a id="2417" href="Categories.Functor.Properties.html#2389" class="Generalizable">A</a> <a id="2419" href="Categories.Category.Core.html#575" class="Function Operator">⇒</a> <a id="2421" href="Categories.Functor.Properties.html#2391" class="Generalizable">B</a>
|
|||
|
|
|||
|
<a id="2426" href="Categories.Functor.Properties.html#2426" class="Function Operator">[_]-resp-∘</a> <a id="2437" class="Symbol">:</a> <a id="2439" href="Categories.Functor.Properties.html#2126" class="Bound">C</a> <a id="2441" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="2443" href="Categories.Functor.Properties.html#2126" class="Bound">C</a> <a id="2445" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="2447" href="Categories.Functor.Properties.html#2407" class="Generalizable">f</a> <a id="2449" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="2451" href="Categories.Functor.Properties.html#2409" class="Generalizable">g</a> <a id="2453" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="2455" href="Categories.Category.html#609" class="Function Operator">≈</a> <a id="2457" href="Categories.Functor.Properties.html#2411" class="Generalizable">h</a> <a id="2459" href="Categories.Category.html#609" class="Function Operator">]</a> <a id="2461" class="Symbol">→</a> <a id="2463" href="Categories.Functor.Properties.html#2128" class="Bound">D</a> <a id="2465" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="2467" href="Categories.Functor.Properties.html#2128" class="Bound">D</a> <a id="2469" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="2471" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2474" href="Categories.Functor.Properties.html#2407" class="Generalizable">f</a> <a id="2476" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="2478" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2481" href="Categories.Functor.Properties.html#2409" class="Generalizable">g</a> <a id="2483" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="2485" href="Categories.Category.html#609" class="Function Operator">≈</a> <a id="2487" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2490" href="Categories.Functor.Properties.html#2411" class="Generalizable">h</a> <a id="2492" href="Categories.Category.html#609" class="Function Operator">]</a>
|
|||
|
<a id="2496" href="Categories.Functor.Properties.html#2426" class="Function Operator">[_]-resp-∘</a> <a id="2507" class="Symbol">{</a><a id="2508" class="Argument">f</a> <a id="2510" class="Symbol">=</a> <a id="2512" href="Categories.Functor.Properties.html#2512" class="Bound">f</a><a id="2513" class="Symbol">}</a> <a id="2515" class="Symbol">{</a><a id="2516" class="Argument">g</a> <a id="2518" class="Symbol">=</a> <a id="2520" href="Categories.Functor.Properties.html#2520" class="Bound">g</a><a id="2521" class="Symbol">}</a> <a id="2523" class="Symbol">{</a><a id="2524" class="Argument">h</a> <a id="2526" class="Symbol">=</a> <a id="2528" href="Categories.Functor.Properties.html#2528" class="Bound">h</a><a id="2529" class="Symbol">}</a> <a id="2531" href="Categories.Functor.Properties.html#2531" class="Bound">eq</a> <a id="2534" class="Symbol">=</a> <a id="2536" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
|||
|
<a id="2546" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2549" href="Categories.Functor.Properties.html#2512" class="Bound">f</a> <a id="2551" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="2555" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2558" href="Categories.Functor.Properties.html#2520" class="Bound">g</a> <a id="2563" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="2567" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="2580" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
|||
|
<a id="2586" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2589" class="Symbol">(</a><a id="2590" href="Categories.Functor.Properties.html#2126" class="Bound">C</a> <a id="2592" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="2594" href="Categories.Functor.Properties.html#2512" class="Bound">f</a> <a id="2596" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="2598" href="Categories.Functor.Properties.html#2520" class="Bound">g</a> <a id="2600" href="Categories.Category.html#700" class="Function Operator">]</a><a id="2601" class="Symbol">)</a> <a id="2603" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2606" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="2615" href="Categories.Functor.Properties.html#2531" class="Bound">eq</a> <a id="2618" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="2624" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2627" href="Categories.Functor.Properties.html#2528" class="Bound">h</a> <a id="2641" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
|||
|
<a id="2647" class="Keyword">where</a> <a id="2653" class="Keyword">open</a> <a id="2658" href="Categories.Category.Core.html#2462" class="Module">D.HomReasoning</a>
|
|||
|
|
|||
|
<a id="2676" href="Categories.Functor.Properties.html#2676" class="Function Operator">[_]-resp-square</a> <a id="2692" class="Symbol">:</a> <a id="2694" href="Categories.Category.html#884" class="Function">Definitions.CommutativeSquare</a> <a id="2724" href="Categories.Functor.Properties.html#2126" class="Bound">C</a> <a id="2726" href="Categories.Functor.Properties.html#2407" class="Generalizable">f</a> <a id="2728" href="Categories.Functor.Properties.html#2409" class="Generalizable">g</a> <a id="2730" href="Categories.Functor.Properties.html#2411" class="Generalizable">h</a> <a id="2732" href="Categories.Functor.Properties.html#2413" class="Generalizable">i</a> <a id="2734" class="Symbol">→</a>
|
|||
|
<a id="2756" href="Categories.Category.html#884" class="Function">Definitions.CommutativeSquare</a> <a id="2786" href="Categories.Functor.Properties.html#2128" class="Bound">D</a> <a id="2788" class="Symbol">(</a><a id="2789" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2792" href="Categories.Functor.Properties.html#2407" class="Generalizable">f</a><a id="2793" class="Symbol">)</a> <a id="2795" class="Symbol">(</a><a id="2796" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2799" href="Categories.Functor.Properties.html#2409" class="Generalizable">g</a><a id="2800" class="Symbol">)</a> <a id="2802" class="Symbol">(</a><a id="2803" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2806" href="Categories.Functor.Properties.html#2411" class="Generalizable">h</a><a id="2807" class="Symbol">)</a> <a id="2809" class="Symbol">(</a><a id="2810" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2813" href="Categories.Functor.Properties.html#2413" class="Generalizable">i</a><a id="2814" class="Symbol">)</a>
|
|||
|
<a id="2818" href="Categories.Functor.Properties.html#2676" class="Function Operator">[_]-resp-square</a> <a id="2834" class="Symbol">{</a><a id="2835" class="Argument">f</a> <a id="2837" class="Symbol">=</a> <a id="2839" href="Categories.Functor.Properties.html#2839" class="Bound">f</a><a id="2840" class="Symbol">}</a> <a id="2842" class="Symbol">{</a><a id="2843" class="Argument">g</a> <a id="2845" class="Symbol">=</a> <a id="2847" href="Categories.Functor.Properties.html#2847" class="Bound">g</a><a id="2848" class="Symbol">}</a> <a id="2850" class="Symbol">{</a><a id="2851" class="Argument">h</a> <a id="2853" class="Symbol">=</a> <a id="2855" href="Categories.Functor.Properties.html#2855" class="Bound">h</a><a id="2856" class="Symbol">}</a> <a id="2858" class="Symbol">{</a><a id="2859" class="Argument">i</a> <a id="2861" class="Symbol">=</a> <a id="2863" href="Categories.Functor.Properties.html#2863" class="Bound">i</a><a id="2864" class="Symbol">}</a> <a id="2866" href="Categories.Functor.Properties.html#2866" class="Bound">sq</a> <a id="2869" class="Symbol">=</a> <a id="2871" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
|||
|
<a id="2881" href="Categories.Functor.Properties.html#2128" class="Bound">D</a> <a id="2883" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="2885" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2888" href="Categories.Functor.Properties.html#2855" class="Bound">h</a> <a id="2890" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="2892" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2895" href="Categories.Functor.Properties.html#2839" class="Bound">f</a> <a id="2897" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="2900" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="2904" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="2917" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
|||
|
<a id="2923" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2926" class="Symbol">(</a><a id="2927" href="Categories.Functor.Properties.html#2126" class="Bound">C</a> <a id="2929" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="2931" href="Categories.Functor.Properties.html#2855" class="Bound">h</a> <a id="2933" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="2935" href="Categories.Functor.Properties.html#2839" class="Bound">f</a> <a id="2937" href="Categories.Category.html#700" class="Function Operator">]</a><a id="2938" class="Symbol">)</a> <a id="2942" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2945" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="2954" href="Categories.Functor.Properties.html#2866" class="Bound">sq</a> <a id="2957" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="2963" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2966" class="Symbol">(</a><a id="2967" href="Categories.Functor.Properties.html#2126" class="Bound">C</a> <a id="2969" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="2971" href="Categories.Functor.Properties.html#2863" class="Bound">i</a> <a id="2973" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="2975" href="Categories.Functor.Properties.html#2847" class="Bound">g</a> <a id="2977" href="Categories.Category.html#700" class="Function Operator">]</a><a id="2978" class="Symbol">)</a> <a id="2982" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2985" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="2998" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="3004" href="Categories.Functor.Properties.html#2128" class="Bound">D</a> <a id="3006" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="3008" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3011" href="Categories.Functor.Properties.html#2863" class="Bound">i</a> <a id="3013" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="3015" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3018" href="Categories.Functor.Properties.html#2847" class="Bound">g</a> <a id="3020" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="3023" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
|||
|
<a id="3029" class="Keyword">where</a> <a id="3035" class="Keyword">open</a> <a id="3040" href="Categories.Category.Core.html#2462" class="Module">D.HomReasoning</a>
|
|||
|
|
|||
|
<a id="3058" href="Categories.Functor.Properties.html#3058" class="Function Operator">[_]-resp-Iso</a> <a id="3071" class="Symbol">:</a> <a id="3073" href="Categories.Morphism.html#1528" class="Record">Iso</a> <a id="3077" href="Categories.Functor.Properties.html#2126" class="Bound">C</a> <a id="3079" href="Categories.Functor.Properties.html#2407" class="Generalizable">f</a> <a id="3081" href="Categories.Functor.Properties.html#2409" class="Generalizable">g</a> <a id="3083" class="Symbol">→</a> <a id="3085" href="Categories.Morphism.html#1528" class="Record">Iso</a> <a id="3089" href="Categories.Functor.Properties.html#2128" class="Bound">D</a> <a id="3091" class="Symbol">(</a><a id="3092" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3095" href="Categories.Functor.Properties.html#2407" class="Generalizable">f</a><a id="3096" class="Symbol">)</a> <a id="3098" class="Symbol">(</a><a id="3099" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3102" href="Categories.Functor.Properties.html#2409" class="Generalizable">g</a><a id="3103" class="Symbol">)</a>
|
|||
|
<a id="3107" href="Categories.Functor.Properties.html#3058" class="Function Operator">[_]-resp-Iso</a> <a id="3120" class="Symbol">{</a><a id="3121" class="Argument">f</a> <a id="3123" class="Symbol">=</a> <a id="3125" href="Categories.Functor.Properties.html#3125" class="Bound">f</a><a id="3126" class="Symbol">}</a> <a id="3128" class="Symbol">{</a><a id="3129" class="Argument">g</a> <a id="3131" class="Symbol">=</a> <a id="3133" href="Categories.Functor.Properties.html#3133" class="Bound">g</a><a id="3134" class="Symbol">}</a> <a id="3136" href="Categories.Functor.Properties.html#3136" class="Bound">iso</a> <a id="3140" class="Symbol">=</a> <a id="3142" class="Keyword">record</a>
|
|||
|
<a id="3153" class="Symbol">{</a> <a id="3155" href="Categories.Morphism.html#1586" class="Field">isoˡ</a> <a id="3160" class="Symbol">=</a> <a id="3162" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
|||
|
<a id="3174" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3177" href="Categories.Functor.Properties.html#3133" class="Bound">g</a> <a id="3179" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="3183" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3186" href="Categories.Functor.Properties.html#3125" class="Bound">f</a> <a id="3191" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3194" href="Categories.Functor.Properties.html#2426" class="Function Operator">[</a> <a id="3196" href="Categories.Morphism.html#1586" class="Field">isoˡ</a> <a id="3201" href="Categories.Functor.Properties.html#2426" class="Function Operator">]-resp-∘</a> <a id="3210" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="3218" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3221" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="3235" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3238" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="3247" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="3255" href="Categories.Category.Core.html#630" class="Function">D.id</a> <a id="3272" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
|||
|
<a id="3278" class="Symbol">;</a> <a id="3280" href="Categories.Morphism.html#1612" class="Field">isoʳ</a> <a id="3285" class="Symbol">=</a> <a id="3287" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
|||
|
<a id="3299" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3302" href="Categories.Functor.Properties.html#3125" class="Bound">f</a> <a id="3304" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="3308" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3311" href="Categories.Functor.Properties.html#3133" class="Bound">g</a> <a id="3316" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3319" href="Categories.Functor.Properties.html#2426" class="Function Operator">[</a> <a id="3321" href="Categories.Morphism.html#1612" class="Field">isoʳ</a> <a id="3326" href="Categories.Functor.Properties.html#2426" class="Function Operator">]-resp-∘</a> <a id="3335" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="3343" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3346" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="3360" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3363" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="3372" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="3380" href="Categories.Category.Core.html#630" class="Function">D.id</a> <a id="3397" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
|||
|
<a id="3403" class="Symbol">}</a>
|
|||
|
<a id="3409" class="Keyword">where</a> <a id="3415" class="Keyword">open</a> <a id="3420" href="Categories.Morphism.html#1528" class="Module">Iso</a> <a id="3424" href="Categories.Functor.Properties.html#3136" class="Bound">iso</a>
|
|||
|
<a id="3438" class="Keyword">open</a> <a id="3443" href="Categories.Category.Core.html#2462" class="Module">D.HomReasoning</a>
|
|||
|
|
|||
|
<a id="3461" href="Categories.Functor.Properties.html#3461" class="Function Operator">[_]-resp-≅</a> <a id="3472" class="Symbol">:</a> <a id="3474" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="3477" href="Relation.Binary.Core.html#1572" class="Function Operator">Preserves</a> <a id="3487" href="Categories.Morphism.html#1958" class="Record Operator">_≅_</a> <a id="3491" href="Categories.Functor.Properties.html#2126" class="Bound">C</a> <a id="3493" href="Relation.Binary.Core.html#1572" class="Function Operator">⟶</a> <a id="3495" href="Categories.Morphism.html#1958" class="Record Operator">_≅_</a> <a id="3499" href="Categories.Functor.Properties.html#2128" class="Bound">D</a>
|
|||
|
<a id="3503" href="Categories.Functor.Properties.html#3461" class="Function Operator">[_]-resp-≅</a> <a id="3514" href="Categories.Functor.Properties.html#3514" class="Bound">i≅j</a> <a id="3518" class="Symbol">=</a> <a id="3520" class="Keyword">record</a>
|
|||
|
<a id="3531" class="Symbol">{</a> <a id="3533" href="Categories.Morphism.html#2006" class="Field">from</a> <a id="3544" class="Symbol">=</a> <a id="3546" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3549" href="Categories.Morphism.html#2006" class="Field">from</a>
|
|||
|
<a id="3558" class="Symbol">;</a> <a id="3560" href="Categories.Morphism.html#2023" class="Field">to</a> <a id="3571" class="Symbol">=</a> <a id="3573" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3576" href="Categories.Morphism.html#2023" class="Field">to</a>
|
|||
|
<a id="3583" class="Symbol">;</a> <a id="3585" href="Categories.Morphism.html#2040" class="Field">iso</a> <a id="3596" class="Symbol">=</a> <a id="3598" href="Categories.Functor.Properties.html#3058" class="Function Operator">[</a> <a id="3600" href="Categories.Morphism.html#2040" class="Field">iso</a> <a id="3604" href="Categories.Functor.Properties.html#3058" class="Function Operator">]-resp-Iso</a>
|
|||
|
<a id="3619" class="Symbol">}</a>
|
|||
|
<a id="3625" class="Keyword">where</a> <a id="3631" class="Keyword">open</a> <a id="3636" href="Categories.Morphism.html#1958" class="Module Operator">_≅_</a> <a id="3640" href="Categories.Functor.Properties.html#3514" class="Bound">i≅j</a>
|
|||
|
|
|||
|
<a id="3647" href="Categories.Functor.Properties.html#3647" class="Function Operator">[_]-resp-≃</a> <a id="3658" class="Symbol">:</a> <a id="3660" class="Symbol">∀</a> <a id="3662" class="Symbol">{</a><a id="3663" href="Categories.Functor.Properties.html#3663" class="Bound">f</a> <a id="3665" href="Categories.Functor.Properties.html#3665" class="Bound">g</a> <a id="3667" class="Symbol">:</a> <a id="3670" href="Categories.Morphism.html#1958" class="Record Operator">_≅_</a> <a id="3674" href="Categories.Functor.Properties.html#2126" class="Bound">C</a> <a id="3676" href="Categories.Functor.Properties.html#2389" class="Generalizable">A</a> <a id="3678" href="Categories.Functor.Properties.html#2391" class="Generalizable">B</a><a id="3679" class="Symbol">}</a> <a id="3681" class="Symbol">→</a> <a id="3683" href="Categories.Functor.Properties.html#3663" class="Bound">f</a> <a id="3685" href="Categories.Morphism.IsoEquiv.html#1761" class="Record Operator">IsoC.≃</a> <a id="3692" href="Categories.Functor.Properties.html#3665" class="Bound">g</a> <a id="3694" class="Symbol">→</a> <a id="3696" href="Categories.Functor.Properties.html#3461" class="Function Operator">[</a> <a id="3698" href="Categories.Functor.Properties.html#3663" class="Bound">f</a> <a id="3700" href="Categories.Functor.Properties.html#3461" class="Function Operator">]-resp-≅</a> <a id="3709" href="Categories.Morphism.IsoEquiv.html#1761" class="Record Operator">IsoD.≃</a> <a id="3716" href="Categories.Functor.Properties.html#3461" class="Function Operator">[</a> <a id="3718" href="Categories.Functor.Properties.html#3665" class="Bound">g</a> <a id="3720" href="Categories.Functor.Properties.html#3461" class="Function Operator">]-resp-≅</a>
|
|||
|
<a id="3731" href="Categories.Functor.Properties.html#3647" class="Function Operator">[_]-resp-≃</a> <a id="3742" href="Categories.Morphism.IsoEquiv.html#1807" class="InductiveConstructor Operator">⌞</a> <a id="3744" href="Categories.Functor.Properties.html#3744" class="Bound">eq</a> <a id="3747" href="Categories.Morphism.IsoEquiv.html#1807" class="InductiveConstructor Operator">⌟</a> <a id="3749" class="Symbol">=</a> <a id="3751" href="Categories.Morphism.IsoEquiv.html#1807" class="InductiveConstructor Operator">⌞</a> <a id="3753" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="3762" href="Categories.Functor.Properties.html#3744" class="Bound">eq</a> <a id="3765" href="Categories.Morphism.IsoEquiv.html#1807" class="InductiveConstructor Operator">⌟</a>
|
|||
|
|
|||
|
<a id="3770" href="Categories.Functor.Properties.html#3770" class="Function">homomorphismᵢ</a> <a id="3784" class="Symbol">:</a> <a id="3786" class="Symbol">∀</a> <a id="3788" class="Symbol">{</a><a id="3789" href="Categories.Functor.Properties.html#3789" class="Bound">f</a> <a id="3791" class="Symbol">:</a> <a id="3793" href="Categories.Morphism.html#1958" class="Record Operator">_≅_</a> <a id="3797" href="Categories.Functor.Properties.html#2126" class="Bound">C</a> <a id="3799" href="Categories.Functor.Properties.html#2391" class="Generalizable">B</a> <a id="3801" href="Categories.Functor.Properties.html#2393" class="Generalizable">E</a><a id="3802" class="Symbol">}</a> <a id="3804" class="Symbol">{</a><a id="3805" href="Categories.Functor.Properties.html#3805" class="Bound">g</a> <a id="3807" class="Symbol">:</a> <a id="3809" href="Categories.Morphism.html#1958" class="Record Operator">_≅_</a> <a id="3813" href="Categories.Functor.Properties.html#2126" class="Bound">C</a> <a id="3815" href="Categories.Functor.Properties.html#2389" class="Generalizable">A</a> <a id="3817" href="Categories.Functor.Properties.html#2391" class="Generalizable">B</a><a id="3818" class="Symbol">}</a> <a id="3820" class="Symbol">→</a> <a id="3822" href="Categories.Functor.Properties.html#3461" class="Function Operator">[</a> <a id="3824" href="Categories.Category.Core.html#656" class="Function Operator">_∘ᵢ_</a> <a id="3829" href="Categories.Functor.Properties.html#2126" class="Bound">C</a> <a id="3831" href="Categories.Functor.Properties.html#3789" class="Bound">f</a> <a id="3833" href="Categories.Functor.Properties.html#3805" class="Bound">g</a> <a id="3835" href="Categories.Functor.Properties.html#3461" class="Function Operator">]-resp-≅</a> <a id="3844" href="Categories.Morphism.IsoEquiv.html#1761" class="Record Operator">IsoD.≃</a> <a id="3851" class="Symbol">(</a><a id="3852" href="Categories.Category.Core.html#656" class="Function Operator">_∘ᵢ_</a> <a id="3857" href="Categories.Functor.Properties.html#2128" class="Bound">D</a> <a id="3859" href="Categories.Functor.Properties.html#3461" class="Function Operator">[</a> <a id="3861" href="Categories.Functor.Properties.html#3789" class="Bound">f</a> <a id="3863" href="Categories.Functor.Properties.html#3461" class="Function Operator">]-resp-≅</a> <a id="3872" href="Categories.Functor.Properties.html#3461" class="Function Operator">[</a> <a id="3874" href="Categories.Functor.Properties.html#3805" class="Bound">g</a> <a id="3876" href="Categories.Functor.Properties.html#3461" class="Function Operator">]-resp-≅</a> <a id="3885" class="Symbol">)</a>
|
|||
|
<a id="3889" href="Categories.Functor.Properties.html#3770" class="Function">homomorphismᵢ</a> <a id="3903" class="Symbol">=</a> <a id="3905" href="Categories.Morphism.IsoEquiv.html#1807" class="InductiveConstructor Operator">⌞</a> <a id="3907" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="3920" href="Categories.Morphism.IsoEquiv.html#1807" class="InductiveConstructor Operator">⌟</a>
|
|||
|
|
|||
|
<a id="3925" class="Comment">-- Uses a strong version of Essential Surjectivity.</a>
|
|||
|
<a id="3979" href="Categories.Functor.Properties.html#3979" class="Function">EssSurj×Full×Faithful⇒Invertible</a> <a id="4012" class="Symbol">:</a> <a id="4014" href="Categories.Functor.Properties.html#1613" class="Function">EssentiallySurjective</a> <a id="4036" href="Categories.Functor.Properties.html#2114" class="Bound">F</a> <a id="4038" class="Symbol">→</a> <a id="4040" href="Categories.Functor.Properties.html#1121" class="Function">Full</a> <a id="4045" href="Categories.Functor.Properties.html#2114" class="Bound">F</a> <a id="4047" class="Symbol">→</a> <a id="4049" href="Categories.Functor.Properties.html#973" class="Function">Faithful</a> <a id="4058" href="Categories.Functor.Properties.html#2114" class="Bound">F</a> <a id="4060" class="Symbol">→</a> <a id="4062" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="4070" href="Categories.Functor.Properties.html#2128" class="Bound">D</a> <a id="4072" href="Categories.Functor.Properties.html#2126" class="Bound">C</a>
|
|||
|
<a id="4076" href="Categories.Functor.Properties.html#3979" class="Function">EssSurj×Full×Faithful⇒Invertible</a> <a id="4109" href="Categories.Functor.Properties.html#4109" class="Bound">surj</a> <a id="4114" href="Categories.Functor.Properties.html#4114" class="Bound">full</a> <a id="4119" href="Categories.Functor.Properties.html#4119" class="Bound">faith</a> <a id="4125" class="Symbol">=</a> <a id="4127" class="Keyword">record</a>
|
|||
|
<a id="4138" class="Symbol">{</a> <a id="4140" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="4143" class="Symbol">=</a> <a id="4145" class="Symbol">λ</a> <a id="4147" href="Categories.Functor.Properties.html#4147" class="Bound">d</a> <a id="4149" class="Symbol">→</a> <a id="4151" href="Agda.Builtin.Sigma.html#234" class="Field">proj₁</a> <a id="4157" class="Symbol">(</a><a id="4158" href="Categories.Functor.Properties.html#4109" class="Bound">surj</a> <a id="4163" href="Categories.Functor.Properties.html#4147" class="Bound">d</a><a id="4164" class="Symbol">)</a>
|
|||
|
<a id="4170" class="Symbol">;</a> <a id="4172" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="4175" class="Symbol">=</a> <a id="4177" class="Symbol">λ</a> <a id="4179" class="Symbol">{</a><a id="4180" href="Categories.Functor.Properties.html#4180" class="Bound">A</a><a id="4181" class="Symbol">}</a> <a id="4183" class="Symbol">{</a><a id="4184" href="Categories.Functor.Properties.html#4184" class="Bound">B</a><a id="4185" class="Symbol">}</a> <a id="4187" href="Categories.Functor.Properties.html#4187" class="Bound">f</a> <a id="4189" class="Symbol">→</a>
|
|||
|
<a id="4197" class="Keyword">let</a> <a id="4201" class="Symbol">(</a><a id="4202" href="Categories.Functor.Properties.html#4202" class="Bound">a</a> <a id="4204" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4206" href="Categories.Functor.Properties.html#4206" class="Bound">sa</a><a id="4208" class="Symbol">)</a> <a id="4210" class="Symbol">=</a> <a id="4212" href="Categories.Functor.Properties.html#4109" class="Bound">surj</a> <a id="4217" href="Categories.Functor.Properties.html#4180" class="Bound">A</a> <a id="4219" class="Keyword">in</a>
|
|||
|
<a id="4228" class="Keyword">let</a> <a id="4232" class="Symbol">(</a><a id="4233" href="Categories.Functor.Properties.html#4233" class="Bound">b</a> <a id="4235" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4237" href="Categories.Functor.Properties.html#4237" class="Bound">sb</a><a id="4239" class="Symbol">)</a> <a id="4241" class="Symbol">=</a> <a id="4243" href="Categories.Functor.Properties.html#4109" class="Bound">surj</a> <a id="4248" href="Categories.Functor.Properties.html#4184" class="Bound">B</a> <a id="4250" class="Keyword">in</a>
|
|||
|
<a id="4259" class="Keyword">let</a> <a id="4263" class="Keyword">module</a> <a id="4270" href="Categories.Functor.Properties.html#4270" class="Module">S</a> <a id="4272" class="Symbol">=</a> <a id="4274" href="Function.Surjection.html#1003" class="Module">Surjective</a> <a id="4285" class="Symbol">(</a><a id="4286" href="Categories.Functor.Properties.html#4114" class="Bound">full</a> <a id="4291" class="Symbol">{</a><a id="4292" href="Categories.Functor.Properties.html#4202" class="Bound">a</a><a id="4293" class="Symbol">}</a> <a id="4295" class="Symbol">{</a><a id="4296" href="Categories.Functor.Properties.html#4233" class="Bound">b</a><a id="4297" class="Symbol">})</a> <a id="4300" class="Keyword">in</a>
|
|||
|
<a id="4309" href="Function.Surjection.html#1185" class="Function">S.from</a> <a id="4316" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="4320" class="Symbol">(</a><a id="4321" href="Categories.Morphism.html#2023" class="Field">_≅_.to</a> <a id="4328" href="Categories.Functor.Properties.html#4237" class="Bound">sb</a><a id="4330" class="Symbol">)</a> <a id="4332" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4334" href="Categories.Functor.Properties.html#4187" class="Bound">f</a> <a id="4336" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4338" class="Symbol">(</a><a id="4339" href="Categories.Morphism.html#2006" class="Field">_≅_.from</a> <a id="4348" href="Categories.Functor.Properties.html#4206" class="Bound">sa</a><a id="4350" class="Symbol">)</a>
|
|||
|
<a id="4356" class="Symbol">;</a> <a id="4358" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="4367" class="Symbol">=</a> <a id="4369" class="Symbol">λ</a> <a id="4371" class="Symbol">{</a><a id="4372" href="Categories.Functor.Properties.html#4372" class="Bound">A</a><a id="4373" class="Symbol">}</a> <a id="4375" class="Symbol">→</a>
|
|||
|
<a id="4383" class="Keyword">let</a> <a id="4387" href="Categories.Functor.Properties.html#4387" class="Bound">ff</a> <a id="4390" class="Symbol">=</a> <a id="4392" href="Function.Surjection.html#1185" class="Field">from</a> <a id="4397" href="Categories.Functor.Properties.html#4114" class="Bound">full</a>
|
|||
|
<a id="4412" class="Symbol">(</a><a id="4413" href="Categories.Functor.Properties.html#4413" class="Bound">a</a> <a id="4415" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4417" href="Categories.Functor.Properties.html#4417" class="Bound">sa</a><a id="4419" class="Symbol">)</a> <a id="4421" class="Symbol">=</a> <a id="4423" href="Categories.Functor.Properties.html#4109" class="Bound">surj</a> <a id="4428" href="Categories.Functor.Properties.html#4372" class="Bound">A</a> <a id="4430" class="Keyword">in</a> <a id="4433" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
|||
|
<a id="4445" href="Categories.Functor.Properties.html#4387" class="Bound">ff</a> <a id="4448" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="4452" href="Categories.Morphism.html#2023" class="Field">_≅_.to</a> <a id="4459" href="Categories.Functor.Properties.html#4417" class="Bound">sa</a> <a id="4462" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4464" href="Categories.Category.Core.html#630" class="Function">D.id</a> <a id="4469" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4471" href="Categories.Morphism.html#2006" class="Field">_≅_.from</a> <a id="4480" href="Categories.Functor.Properties.html#4417" class="Bound">sa</a> <a id="4483" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="4486" href="Function.Equality.html#1140" class="Field">cong</a> <a id="4491" href="Categories.Functor.Properties.html#4387" class="Bound">ff</a> <a id="4494" class="Symbol">(</a><a id="4495" href="Categories.Category.Core.html#2734" class="Function Operator">E.refl⟩∘⟨</a> <a id="4505" href="Categories.Category.Core.html#1096" class="Function">D.identityˡ</a><a id="4516" class="Symbol">)</a> <a id="4518" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="4526" href="Categories.Functor.Properties.html#4387" class="Bound">ff</a> <a id="4529" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="4533" href="Categories.Morphism.html#2023" class="Field">_≅_.to</a> <a id="4540" href="Categories.Functor.Properties.html#4417" class="Bound">sa</a> <a id="4543" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="4545" href="Categories.Morphism.html#2006" class="Field">_≅_.from</a> <a id="4554" href="Categories.Functor.Properties.html#4417" class="Bound">sa</a> <a id="4564" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="4567" href="Function.Equality.html#1140" class="Field">cong</a> <a id="4572" href="Categories.Functor.Properties.html#4387" class="Bound">ff</a> <a id="4575" class="Symbol">(</a><a id="4576" href="Categories.Morphism.html#1586" class="Field">_≅_.isoˡ</a> <a id="4585" href="Categories.Functor.Properties.html#4417" class="Bound">sa</a><a id="4587" class="Symbol">)</a> <a id="4589" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="4597" href="Categories.Functor.Properties.html#4387" class="Bound">ff</a> <a id="4600" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="4604" href="Categories.Category.Core.html#630" class="Function">D.id</a> <a id="4635" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="4639" href="Function.Equality.html#1140" class="Field">cong</a> <a id="4644" href="Categories.Functor.Properties.html#4387" class="Bound">ff</a> <a id="4647" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="4656" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
|||
|
<a id="4664" href="Categories.Functor.Properties.html#4387" class="Bound">ff</a> <a id="4667" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="4671" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="4674" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="4702" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="4705" href="Categories.Functor.Properties.html#4119" class="Bound">faith</a> <a id="4711" class="Symbol">_</a> <a id="4713" class="Symbol">_</a> <a id="4715" class="Symbol">(</a><a id="4716" href="Function.Surjection.html#1218" class="Field">right-inverse-of</a> <a id="4733" href="Categories.Functor.Properties.html#4114" class="Bound">full</a> <a id="4738" class="Symbol">(</a><a id="4739" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="4742" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="4746" class="Symbol">))</a> <a id="4749" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="4757" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="4762" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
|||
|
<a id="4768" class="Symbol">;</a> <a id="4770" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="4783" class="Symbol">=</a> <a id="4785" class="Symbol">λ</a> <a id="4787" class="Symbol">{</a><a id="4788" href="Categories.Functor.Properties.html#4788" class="Bound">X</a><a id="4789" class="Symbol">}</a> <a id="4791" class="Symbol">{</a><a id="4792" href="Categories.Functor.Properties.html#4792" class="Bound">Y</a><a id="4793" class="Symbol">}</a> <a id="4795" class="Symbol">{</a><a id="4796" href="Categories.Functor.Properties.html#4796" class="Bound">Z</a><a id="4797" class="Symbol">}</a> <a id="4799" class="Symbol">{</a><a id="4800" href="Categories.Functor.Properties.html#4800" class="Bound">f</a><a id="4801" class="Symbol">}</a> <a id="4803" class="Symbol">{</a><a id="4804" href="Categories.Functor.Properties.html#4804" class="Bound">g</a><a id="4805" class="Symbol">}</a> <a id="4807" class="Symbol">→</a>
|
|||
|
<a id="4815" class="Keyword">let</a>
|
|||
|
<a id="4829" class="Symbol">(</a><a id="4830" href="Categories.Functor.Properties.html#4830" class="Bound">x</a> <a id="4832" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4834" href="Categories.Functor.Properties.html#4834" class="Bound">sx</a><a id="4836" class="Symbol">)</a> <a id="4838" class="Symbol">=</a> <a id="4840" href="Categories.Functor.Properties.html#4109" class="Bound">surj</a> <a id="4845" href="Categories.Functor.Properties.html#4788" class="Bound">X</a>
|
|||
|
<a id="4857" class="Symbol">(</a><a id="4858" href="Categories.Functor.Properties.html#4858" class="Bound">y</a> <a id="4860" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4862" href="Categories.Functor.Properties.html#4862" class="Bound">sy</a><a id="4864" class="Symbol">)</a> <a id="4866" class="Symbol">=</a> <a id="4868" href="Categories.Functor.Properties.html#4109" class="Bound">surj</a> <a id="4873" href="Categories.Functor.Properties.html#4792" class="Bound">Y</a>
|
|||
|
<a id="4885" class="Symbol">(</a><a id="4886" href="Categories.Functor.Properties.html#4886" class="Bound">z</a> <a id="4888" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4890" href="Categories.Functor.Properties.html#4890" class="Bound">sz</a><a id="4892" class="Symbol">)</a> <a id="4894" class="Symbol">=</a> <a id="4896" href="Categories.Functor.Properties.html#4109" class="Bound">surj</a> <a id="4901" href="Categories.Functor.Properties.html#4796" class="Bound">Z</a>
|
|||
|
<a id="4913" href="Categories.Functor.Properties.html#4913" class="Bound">fsx</a> <a id="4922" class="Symbol">=</a> <a id="4924" href="Categories.Morphism.html#2006" class="Field">from</a> <a id="4929" href="Categories.Functor.Properties.html#4834" class="Bound">sx</a>
|
|||
|
<a id="4942" href="Categories.Functor.Properties.html#4942" class="Bound">tsz</a> <a id="4951" class="Symbol">=</a> <a id="4953" href="Categories.Morphism.html#2023" class="Field">to</a> <a id="4956" href="Categories.Functor.Properties.html#4890" class="Bound">sz</a>
|
|||
|
<a id="4969" href="Categories.Functor.Properties.html#4969" class="Bound">ff</a> <a id="4972" class="Symbol">{</a><a id="4973" href="Categories.Functor.Properties.html#4973" class="Bound">T₁</a><a id="4975" class="Symbol">}</a> <a id="4977" class="Symbol">{</a><a id="4978" href="Categories.Functor.Properties.html#4978" class="Bound">T₂</a><a id="4980" class="Symbol">}</a> <a id="4982" class="Symbol">=</a> <a id="4984" href="Function.Surjection.html#1185" class="Field">from</a> <a id="4989" class="Symbol">(</a><a id="4990" href="Categories.Functor.Properties.html#4114" class="Bound">full</a> <a id="4995" class="Symbol">{</a><a id="4996" href="Categories.Functor.Properties.html#4973" class="Bound">T₁</a><a id="4998" class="Symbol">}</a> <a id="5000" class="Symbol">{</a><a id="5001" href="Categories.Functor.Properties.html#4978" class="Bound">T₂</a><a id="5003" class="Symbol">})</a> <a id="5006" class="Keyword">in</a>
|
|||
|
<a id="5015" href="Categories.Functor.Properties.html#4119" class="Bound">faith</a> <a id="5021" class="Symbol">_</a> <a id="5023" class="Symbol">_</a> <a id="5025" class="Symbol">(</a><a id="5026" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">E.begin</a>
|
|||
|
<a id="5040" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5043" class="Symbol">(</a><a id="5044" href="Categories.Functor.Properties.html#4969" class="Bound">ff</a> <a id="5047" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="5051" href="Categories.Functor.Properties.html#4942" class="Bound">tsz</a> <a id="5055" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5057" class="Symbol">(</a><a id="5058" href="Categories.Functor.Properties.html#4804" class="Bound">g</a> <a id="5060" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5062" href="Categories.Functor.Properties.html#4800" class="Bound">f</a><a id="5063" class="Symbol">)</a> <a id="5065" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5067" href="Categories.Functor.Properties.html#4913" class="Bound">fsx</a><a id="5070" class="Symbol">)</a> <a id="5100" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">E.≈⟨</a> <a id="5105" href="Function.Surjection.html#1218" class="Field">right-inverse-of</a> <a id="5122" href="Categories.Functor.Properties.html#4114" class="Bound">full</a> <a id="5127" class="Symbol">_</a> <a id="5129" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="5137" class="Symbol">(</a><a id="5138" href="Categories.Functor.Properties.html#4942" class="Bound">tsz</a> <a id="5142" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5144" class="Symbol">(</a><a id="5145" href="Categories.Functor.Properties.html#4804" class="Bound">g</a> <a id="5147" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5149" href="Categories.Functor.Properties.html#4800" class="Bound">f</a><a id="5150" class="Symbol">)</a> <a id="5152" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5154" href="Categories.Functor.Properties.html#4913" class="Bound">fsx</a><a id="5157" class="Symbol">)</a> <a id="5196" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">E.≈⟨</a> <a id="5201" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="5207" class="Symbol">(</a><a id="5208" href="Categories.Category.Core.html#2734" class="Function Operator">E.refl⟩∘⟨</a> <a id="5218" class="Symbol">(</a><a id="5219" href="Categories.Category.Core.html#2734" class="Function Operator">E.refl⟩∘⟨</a> <a id="5229" href="Categories.Morphism.Reasoning.Core.html#3063" class="Function">introˡ</a> <a id="5236" class="Symbol">(</a><a id="5237" href="Categories.Morphism.html#1612" class="Function">isoʳ</a> <a id="5242" href="Categories.Functor.Properties.html#4862" class="Bound">sy</a><a id="5244" class="Symbol">)))</a> <a id="5248" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="5256" class="Symbol">(</a><a id="5257" href="Categories.Functor.Properties.html#4942" class="Bound">tsz</a> <a id="5261" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5263" href="Categories.Functor.Properties.html#4804" class="Bound">g</a> <a id="5265" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5267" class="Symbol">((</a><a id="5269" href="Categories.Morphism.html#2006" class="Field">from</a> <a id="5274" href="Categories.Functor.Properties.html#4862" class="Bound">sy</a> <a id="5277" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5279" href="Categories.Morphism.html#2023" class="Field">to</a> <a id="5282" href="Categories.Functor.Properties.html#4862" class="Bound">sy</a><a id="5284" class="Symbol">)</a> <a id="5286" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5288" href="Categories.Functor.Properties.html#4800" class="Bound">f</a><a id="5289" class="Symbol">))</a> <a id="5292" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5294" href="Categories.Functor.Properties.html#4913" class="Bound">fsx</a> <a id="5315" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">E.≈⟨</a> <a id="5320" href="Categories.Morphism.Reasoning.Core.html#2347" class="Function">pushʳ</a> <a id="5326" class="Symbol">(</a><a id="5327" href="Categories.Category.Core.html#2734" class="Function Operator">E.refl⟩∘⟨</a> <a id="5337" href="Categories.Category.Core.html#715" class="Function">D.assoc</a><a id="5344" class="Symbol">)</a> <a id="5346" href="Categories.Category.Core.html#2837" class="Function Operator">E.⟩∘⟨refl</a> <a id="5356" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="5364" class="Symbol">((</a><a id="5366" href="Categories.Functor.Properties.html#4942" class="Bound">tsz</a> <a id="5370" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5372" href="Categories.Functor.Properties.html#4804" class="Bound">g</a><a id="5373" class="Symbol">)</a> <a id="5375" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5377" class="Symbol">(</a><a id="5378" href="Categories.Morphism.html#2006" class="Field">from</a> <a id="5383" href="Categories.Functor.Properties.html#4862" class="Bound">sy</a> <a id="5386" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5388" class="Symbol">(</a><a id="5389" href="Categories.Morphism.html#2023" class="Field">to</a> <a id="5392" href="Categories.Functor.Properties.html#4862" class="Bound">sy</a> <a id="5395" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5397" href="Categories.Functor.Properties.html#4800" class="Bound">f</a><a id="5398" class="Symbol">)))</a> <a id="5402" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5404" href="Categories.Functor.Properties.html#4913" class="Bound">fsx</a> <a id="5423" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">E.≈⟨</a> <a id="5428" href="Categories.Category.Core.html#1004" class="Function">D.sym-assoc</a> <a id="5440" href="Categories.Category.Core.html#2837" class="Function Operator">E.⟩∘⟨refl</a> <a id="5450" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="5458" class="Symbol">(((</a><a id="5461" href="Categories.Functor.Properties.html#4942" class="Bound">tsz</a> <a id="5465" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5467" href="Categories.Functor.Properties.html#4804" class="Bound">g</a><a id="5468" class="Symbol">)</a> <a id="5470" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5472" href="Categories.Morphism.html#2006" class="Field">from</a> <a id="5477" href="Categories.Functor.Properties.html#4862" class="Bound">sy</a><a id="5479" class="Symbol">)</a> <a id="5481" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5483" class="Symbol">(</a><a id="5484" href="Categories.Morphism.html#2023" class="Field">to</a> <a id="5487" href="Categories.Functor.Properties.html#4862" class="Bound">sy</a> <a id="5490" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5492" href="Categories.Functor.Properties.html#4800" class="Bound">f</a><a id="5493" class="Symbol">))</a> <a id="5496" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5498" href="Categories.Functor.Properties.html#4913" class="Bound">fsx</a> <a id="5517" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">E.≈⟨</a> <a id="5522" href="Categories.Category.Core.html#715" class="Function">D.assoc</a> <a id="5530" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="5538" class="Symbol">((</a><a id="5540" href="Categories.Functor.Properties.html#4942" class="Bound">tsz</a> <a id="5544" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5546" href="Categories.Functor.Properties.html#4804" class="Bound">g</a><a id="5547" class="Symbol">)</a> <a id="5549" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5551" href="Categories.Morphism.html#2006" class="Field">from</a> <a id="5556" href="Categories.Functor.Properties.html#4862" class="Bound">sy</a><a id="5558" class="Symbol">)</a> <a id="5560" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5562" class="Symbol">((</a><a id="5564" href="Categories.Morphism.html#2023" class="Field">to</a> <a id="5567" href="Categories.Functor.Properties.html#4862" class="Bound">sy</a> <a id="5570" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5572" href="Categories.Functor.Properties.html#4800" class="Bound">f</a><a id="5573" class="Symbol">)</a> <a id="5575" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5577" href="Categories.Functor.Properties.html#4913" class="Bound">fsx</a><a id="5580" class="Symbol">)</a> <a id="5597" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">E.≈⟨</a> <a id="5602" href="Categories.Category.Core.html#715" class="Function">D.assoc</a> <a id="5610" href="Categories.Category.Core.html#2634" class="Function Operator">E.⟩∘⟨</a> <a id="5616" href="Categories.Category.Core.html#715" class="Function">D.assoc</a> <a id="5625" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
|||
|
<a id="5633" class="Symbol">(</a><a id="5634" href="Categories.Functor.Properties.html#4942" class="Bound">tsz</a> <a id="5638" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5640" href="Categories.Functor.Properties.html#4804" class="Bound">g</a> <a id="5642" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5644" href="Categories.Morphism.html#2006" class="Field">from</a> <a id="5649" href="Categories.Functor.Properties.html#4862" class="Bound">sy</a><a id="5651" class="Symbol">)</a> <a id="5653" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5655" class="Symbol">(</a><a id="5656" href="Categories.Morphism.html#2023" class="Field">to</a> <a id="5659" href="Categories.Functor.Properties.html#4862" class="Bound">sy</a> <a id="5662" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5664" href="Categories.Functor.Properties.html#4800" class="Bound">f</a> <a id="5666" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5668" href="Categories.Functor.Properties.html#4913" class="Bound">fsx</a><a id="5671" class="Symbol">)</a> <a id="5692" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">E.≈˘⟨</a> <a id="5698" href="Function.Surjection.html#1218" class="Field">right-inverse-of</a> <a id="5715" href="Categories.Functor.Properties.html#4114" class="Bound">full</a> <a id="5720" class="Symbol">_</a> <a id="5722" href="Categories.Category.Core.html#2634" class="Function Operator">E.⟩∘⟨</a> <a id="5728" href="Function.Surjection.html#1218" class="Field">right-inverse-of</a> <a id="5745" href="Categories.Functor.Properties.html#4114" class="Bound">full</a> <a id="5750" class="Symbol">_</a> <a id="5752" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
|||
|
<a id="5760" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5763" class="Symbol">(</a><a id="5764" href="Categories.Functor.Properties.html#4969" class="Bound">ff</a> <a id="5767" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="5771" href="Categories.Functor.Properties.html#4942" class="Bound">tsz</a> <a id="5775" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5777" href="Categories.Functor.Properties.html#4804" class="Bound">g</a> <a id="5779" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5781" href="Categories.Morphism.html#2006" class="Field">from</a> <a id="5786" href="Categories.Functor.Properties.html#4862" class="Bound">sy</a><a id="5788" class="Symbol">)</a> <a id="5790" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5792" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5795" class="Symbol">(</a><a id="5796" href="Categories.Functor.Properties.html#4969" class="Bound">ff</a> <a id="5799" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="5803" href="Categories.Morphism.html#2023" class="Field">to</a> <a id="5806" href="Categories.Functor.Properties.html#4862" class="Bound">sy</a> <a id="5809" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5811" href="Categories.Functor.Properties.html#4800" class="Bound">f</a> <a id="5813" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5815" href="Categories.Functor.Properties.html#4913" class="Bound">fsx</a><a id="5818" class="Symbol">)</a> <a id="5821" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">E.≈˘⟨</a> <a id="5827" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="5840" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
|||
|
<a id="5848" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5851" class="Symbol">((</a><a id="5853" href="Categories.Functor.Properties.html#4969" class="Bound">ff</a> <a id="5856" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="5860" href="Categories.Functor.Properties.html#4942" class="Bound">tsz</a> <a id="5864" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5866" href="Categories.Functor.Properties.html#4804" class="Bound">g</a> <a id="5868" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5870" href="Categories.Morphism.html#2006" class="Field">from</a> <a id="5875" href="Categories.Functor.Properties.html#4862" class="Bound">sy</a><a id="5877" class="Symbol">)</a> <a id="5879" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="5883" class="Symbol">(</a><a id="5884" href="Categories.Functor.Properties.html#4969" class="Bound">ff</a> <a id="5887" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="5891" href="Categories.Morphism.html#2023" class="Field">to</a> <a id="5894" href="Categories.Functor.Properties.html#4862" class="Bound">sy</a> <a id="5897" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5899" href="Categories.Functor.Properties.html#4800" class="Bound">f</a> <a id="5901" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="5903" href="Categories.Functor.Properties.html#4913" class="Bound">fsx</a><a id="5906" class="Symbol">))</a> <a id="5909" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">E.∎</a><a id="5912" class="Symbol">)</a>
|
|||
|
<a id="5918" class="Symbol">;</a> <a id="5920" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="5929" class="Symbol">=</a> <a id="5931" class="Symbol">λ</a> <a id="5933" href="Categories.Functor.Properties.html#5933" class="Bound">f≈g</a> <a id="5937" class="Symbol">→</a> <a id="5939" href="Function.Equality.html#1140" class="Field">cong</a> <a id="5944" class="Symbol">(</a><a id="5945" href="Function.Surjection.html#1185" class="Field">from</a> <a id="5950" href="Categories.Functor.Properties.html#4114" class="Bound">full</a><a id="5954" class="Symbol">)</a> <a id="5956" class="Symbol">(</a><a id="5957" href="Categories.Category.Core.html#1706" class="Function">D.∘-resp-≈ʳ</a> <a id="5969" class="Symbol">(</a><a id="5970" href="Categories.Category.Core.html#1597" class="Function">D.∘-resp-≈ˡ</a> <a id="5982" href="Categories.Functor.Properties.html#5933" class="Bound">f≈g</a><a id="5985" class="Symbol">))</a>
|
|||
|
<a id="5992" class="Symbol">}</a>
|
|||
|
<a id="5998" class="Keyword">where</a>
|
|||
|
<a id="6008" class="Keyword">open</a> <a id="6013" href="Categories.Morphism.html#1958" class="Module Operator">Morphism._≅_</a>
|
|||
|
<a id="6030" class="Keyword">open</a> <a id="6035" href="Categories.Morphism.html" class="Module">Morphism</a> <a id="6044" href="Categories.Functor.Properties.html#2128" class="Bound">D</a>
|
|||
|
<a id="6050" class="Keyword">open</a> <a id="6055" href="Categories.Morphism.Reasoning.html" class="Module">Reas</a> <a id="6060" href="Categories.Functor.Properties.html#2128" class="Bound">D</a>
|
|||
|
<a id="6066" class="Keyword">open</a> <a id="6071" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="6080" href="Categories.Functor.Properties.html#2128" class="Bound">D</a>
|
|||
|
<a id="6086" class="Keyword">open</a> <a id="6091" href="Function.Surjection.html#1003" class="Module">Surjective</a>
|
|||
|
<a id="6106" class="Keyword">open</a> <a id="6111" href="Categories.Category.Core.html#2462" class="Module">C.HomReasoning</a>
|
|||
|
<a id="6130" class="Keyword">module</a> <a id="6137" href="Categories.Functor.Properties.html#6137" class="Module">E</a> <a id="6139" class="Symbol">=</a> <a id="6141" href="Categories.Category.Core.html#2462" class="Module">D.HomReasoning</a>
|
|||
|
|
|||
|
<a id="6157" class="Comment">-- Functor Composition is Associative and the unit laws are found in</a>
|
|||
|
<a id="6226" class="Comment">-- NaturalTransformation.NaturalIsomorphism, reified as associator, unitorˡ and unitorʳ.</a>
|
|||
|
</pre></body></html>
|