bsc-leon-vatthauer/public/Categories.Functor.Bifunctor.html

75 lines
42 KiB
HTML
Raw Normal View History

2023-08-19 16:11:22 +02:00
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Categories.Functor.Bifunctor</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.Bifunctor.html" class="Module">Categories.Functor.Bifunctor</a> <a id="72" class="Keyword">where</a>
<a id="79" class="Comment">-- Bifunctor, aka a Functor from C × D to E</a>
<a id="123" class="Keyword">open</a> <a id="128" class="Keyword">import</a> <a id="135" href="Level.html" class="Module">Level</a>
<a id="141" class="Keyword">open</a> <a id="146" class="Keyword">import</a> <a id="153" href="Data.Product.html" class="Module">Data.Product</a> <a id="166" class="Keyword">using</a> <a id="172" class="Symbol">(</a><a id="173" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">_,_</a><a id="176" class="Symbol">)</a>
<a id="179" class="Keyword">open</a> <a id="184" class="Keyword">import</a> <a id="191" href="Categories.Category.html" class="Module">Categories.Category</a>
<a id="211" class="Keyword">open</a> <a id="216" class="Keyword">import</a> <a id="223" href="Categories.Functor.html" class="Module">Categories.Functor</a>
<a id="242" class="Keyword">open</a> <a id="247" class="Keyword">import</a> <a id="254" href="Categories.Functor.Construction.Constant.html" class="Module">Categories.Functor.Construction.Constant</a>
<a id="295" class="Keyword">open</a> <a id="300" class="Keyword">import</a> <a id="307" href="Categories.Category.Product.html" class="Module">Categories.Category.Product</a>
<a id="336" class="Keyword">private</a>
<a id="346" class="Keyword">variable</a>
<a id="359" href="Categories.Functor.Bifunctor.html#359" class="Generalizable">o</a> <a id="361" href="Categories.Functor.Bifunctor.html#361" class="Generalizable"></a> <a id="363" href="Categories.Functor.Bifunctor.html#363" class="Generalizable">e</a> <a id="365" href="Categories.Functor.Bifunctor.html#365" class="Generalizable">o</a> <a id="368" href="Categories.Functor.Bifunctor.html#368" class="Generalizable"></a> <a id="371" href="Categories.Functor.Bifunctor.html#371" class="Generalizable">e</a> <a id="374" href="Categories.Functor.Bifunctor.html#374" class="Generalizable">o″</a> <a id="377" href="Categories.Functor.Bifunctor.html#377" class="Generalizable">ℓ″</a> <a id="380" href="Categories.Functor.Bifunctor.html#380" class="Generalizable">e″</a> <a id="383" href="Categories.Functor.Bifunctor.html#383" class="Generalizable">o‴</a> <a id="386" href="Categories.Functor.Bifunctor.html#386" class="Generalizable">ℓ‴</a> <a id="389" href="Categories.Functor.Bifunctor.html#389" class="Generalizable">e‴</a> <a id="392" href="Categories.Functor.Bifunctor.html#392" class="Generalizable">o⁗</a> <a id="395" href="Categories.Functor.Bifunctor.html#395" class="Generalizable">ℓ⁗</a> <a id="398" href="Categories.Functor.Bifunctor.html#398" class="Generalizable">e⁗</a> <a id="401" class="Symbol">:</a> <a id="403" href="Agda.Primitive.html#591" class="Postulate">Level</a>
<a id="413" href="Categories.Functor.Bifunctor.html#413" class="Generalizable">C</a> <a id="415" href="Categories.Functor.Bifunctor.html#415" class="Generalizable">D</a> <a id="417" href="Categories.Functor.Bifunctor.html#417" class="Generalizable">E</a> <a id="419" href="Categories.Functor.Bifunctor.html#419" class="Generalizable">A</a> <a id="421" href="Categories.Functor.Bifunctor.html#421" class="Generalizable">B</a> <a id="423" class="Symbol">:</a> <a id="425" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="434" href="Categories.Functor.Bifunctor.html#359" class="Generalizable">o</a> <a id="436" href="Categories.Functor.Bifunctor.html#361" class="Generalizable"></a> <a id="438" href="Categories.Functor.Bifunctor.html#363" class="Generalizable">e</a>
<a id="Bifunctor"></a><a id="441" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="451" class="Symbol">:</a> <a id="453" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="462" href="Categories.Functor.Bifunctor.html#359" class="Generalizable">o</a> <a id="464" href="Categories.Functor.Bifunctor.html#361" class="Generalizable"></a> <a id="466" href="Categories.Functor.Bifunctor.html#363" class="Generalizable">e</a> <a id="468" class="Symbol"></a> <a id="470" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="479" href="Categories.Functor.Bifunctor.html#365" class="Generalizable">o</a> <a id="482" href="Categories.Functor.Bifunctor.html#368" class="Generalizable"></a> <a id="485" href="Categories.Functor.Bifunctor.html#371" class="Generalizable">e</a> <a id="488" class="Symbol"></a> <a id="490" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="499" href="Categories.Functor.Bifunctor.html#374" class="Generalizable">o″</a> <a id="502" href="Categories.Functor.Bifunctor.html#377" class="Generalizable">ℓ″</a> <a id="505" href="Categories.Functor.Bifunctor.html#380" class="Generalizable">e″</a> <a id="508" class="Symbol"></a> <a id="510" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="514" class="Symbol">_</a>
<a id="516" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="526" href="Categories.Functor.Bifunctor.html#526" class="Bound">C</a> <a id="528" href="Categories.Functor.Bifunctor.html#528" class="Bound">D</a> <a id="530" href="Categories.Functor.Bifunctor.html#530" class="Bound">E</a> <a id="532" class="Symbol">=</a> <a id="534" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="542" class="Symbol">(</a><a id="543" href="Categories.Category.Product.html#745" class="Function">Product</a> <a id="551" href="Categories.Functor.Bifunctor.html#526" class="Bound">C</a> <a id="553" href="Categories.Functor.Bifunctor.html#528" class="Bound">D</a><a id="554" class="Symbol">)</a> <a id="556" href="Categories.Functor.Bifunctor.html#530" class="Bound">E</a>
<a id="559" class="Keyword">module</a> <a id="Bifunctor"></a><a id="566" href="Categories.Functor.Bifunctor.html#566" class="Module">Bifunctor</a> <a id="576" class="Symbol">(</a><a id="577" href="Categories.Functor.Bifunctor.html#577" class="Bound">H</a> <a id="579" class="Symbol">:</a> <a id="581" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="591" href="Categories.Functor.Bifunctor.html#413" class="Generalizable">C</a> <a id="593" href="Categories.Functor.Bifunctor.html#415" class="Generalizable">D</a> <a id="595" href="Categories.Functor.Bifunctor.html#417" class="Generalizable">E</a><a id="596" class="Symbol">)</a> <a id="598" class="Keyword">where</a>
<a id="606" class="Keyword">open</a> <a id="611" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="619" href="Categories.Functor.Bifunctor.html#577" class="Bound">H</a> <a id="621" class="Keyword">public</a>
<a id="Bifunctor.overlap-×"></a><a id="631" href="Categories.Functor.Bifunctor.html#631" class="Function">overlap-×</a> <a id="641" class="Symbol">:</a> <a id="643" class="Symbol"></a> <a id="645" class="Symbol">(</a><a id="646" href="Categories.Functor.Bifunctor.html#646" class="Bound">F</a> <a id="648" class="Symbol">:</a> <a id="650" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="658" href="Categories.Functor.Bifunctor.html#419" class="Generalizable">A</a> <a id="660" href="Categories.Functor.Bifunctor.html#591" class="Bound">C</a><a id="661" class="Symbol">)</a> <a id="663" class="Symbol">(</a><a id="664" href="Categories.Functor.Bifunctor.html#664" class="Bound">G</a> <a id="666" class="Symbol">:</a> <a id="668" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="676" href="Categories.Functor.Bifunctor.html#419" class="Generalizable">A</a> <a id="678" href="Categories.Functor.Bifunctor.html#593" class="Bound">D</a><a id="679" class="Symbol">)</a> <a id="681" class="Symbol"></a> <a id="683" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="691" href="Categories.Functor.Bifunctor.html#419" class="Generalizable">A</a> <a id="693" href="Categories.Functor.Bifunctor.html#595" class="Bound">E</a>
<a id="697" href="Categories.Functor.Bifunctor.html#631" class="Function">overlap-×</a> <a id="707" href="Categories.Functor.Bifunctor.html#707" class="Bound">F</a> <a id="709" href="Categories.Functor.Bifunctor.html#709" class="Bound">G</a> <a id="711" class="Symbol">=</a> <a id="713" href="Categories.Functor.Bifunctor.html#577" class="Bound">H</a> <a id="715" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="718" class="Symbol">(</a><a id="719" href="Categories.Functor.Bifunctor.html#707" class="Bound">F</a> <a id="721" href="Categories.Category.Product.html#1553" class="Function Operator"></a> <a id="723" href="Categories.Functor.Bifunctor.html#709" class="Bound">G</a><a id="724" class="Symbol">)</a>
<a id="Bifunctor.reduce-×"></a><a id="729" href="Categories.Functor.Bifunctor.html#729" class="Function">reduce-×</a> <a id="738" class="Symbol">:</a> <a id="740" class="Symbol"></a> <a id="742" class="Symbol">(</a><a id="743" href="Categories.Functor.Bifunctor.html#743" class="Bound">F</a> <a id="745" class="Symbol">:</a> <a id="747" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="755" href="Categories.Functor.Bifunctor.html#419" class="Generalizable">A</a> <a id="757" href="Categories.Functor.Bifunctor.html#591" class="Bound">C</a><a id="758" class="Symbol">)</a> <a id="760" class="Symbol">(</a><a id="761" href="Categories.Functor.Bifunctor.html#761" class="Bound">G</a> <a id="763" class="Symbol">:</a> <a id="765" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="773" href="Categories.Functor.Bifunctor.html#421" class="Generalizable">B</a> <a id="775" href="Categories.Functor.Bifunctor.html#593" class="Bound">D</a><a id="776" class="Symbol">)</a> <a id="778" class="Symbol"></a> <a id="780" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="790" href="Categories.Functor.Bifunctor.html#419" class="Generalizable">A</a> <a id="792" href="Categories.Functor.Bifunctor.html#421" class="Generalizable">B</a> <a id="794" href="Categories.Functor.Bifunctor.html#595" class="Bound">E</a>
<a id="798" href="Categories.Functor.Bifunctor.html#729" class="Function">reduce-×</a> <a id="807" href="Categories.Functor.Bifunctor.html#807" class="Bound">F</a> <a id="809" href="Categories.Functor.Bifunctor.html#809" class="Bound">G</a> <a id="811" class="Symbol">=</a> <a id="813" href="Categories.Functor.Bifunctor.html#577" class="Bound">H</a> <a id="815" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="818" class="Symbol">(</a><a id="819" href="Categories.Functor.Bifunctor.html#807" class="Bound">F</a> <a id="821" href="Categories.Category.Product.html#1962" class="Function Operator"></a> <a id="823" href="Categories.Functor.Bifunctor.html#809" class="Bound">G</a><a id="824" class="Symbol">)</a>
<a id="Bifunctor.flip"></a><a id="829" href="Categories.Functor.Bifunctor.html#829" class="Function">flip</a> <a id="834" class="Symbol">:</a> <a id="836" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="846" href="Categories.Functor.Bifunctor.html#593" class="Bound">D</a> <a id="848" href="Categories.Functor.Bifunctor.html#591" class="Bound">C</a> <a id="850" href="Categories.Functor.Bifunctor.html#595" class="Bound">E</a>
<a id="854" href="Categories.Functor.Bifunctor.html#829" class="Function">flip</a> <a id="859" class="Symbol">=</a> <a id="861" href="Categories.Functor.Bifunctor.html#577" class="Bound">H</a> <a id="863" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="866" href="Categories.Category.Product.html#6288" class="Function">Swap</a>
<a id="Bifunctor.appˡ"></a><a id="874" href="Categories.Functor.Bifunctor.html#874" class="Function">appˡ</a> <a id="879" class="Symbol">:</a> <a id="881" href="Categories.Category.Core.html#559" class="Field">Category.Obj</a> <a id="894" href="Categories.Functor.Bifunctor.html#591" class="Bound">C</a> <a id="896" class="Symbol"></a> <a id="898" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="906" href="Categories.Functor.Bifunctor.html#593" class="Bound">D</a> <a id="908" href="Categories.Functor.Bifunctor.html#595" class="Bound">E</a>
<a id="912" href="Categories.Functor.Bifunctor.html#874" class="Function">appˡ</a> <a id="917" href="Categories.Functor.Bifunctor.html#917" class="Bound">c</a> <a id="919" class="Symbol">=</a> <a id="921" href="Categories.Functor.Bifunctor.html#577" class="Bound">H</a> <a id="923" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="926" href="Categories.Functor.Construction.Constant.html#798" class="Function">constˡ</a> <a id="933" href="Categories.Functor.Bifunctor.html#917" class="Bound">c</a>
<a id="Bifunctor.appʳ"></a><a id="938" href="Categories.Functor.Bifunctor.html#938" class="Function">appʳ</a> <a id="943" class="Symbol">:</a> <a id="945" href="Categories.Category.Core.html#559" class="Field">Category.Obj</a> <a id="958" href="Categories.Functor.Bifunctor.html#593" class="Bound">D</a> <a id="960" class="Symbol"></a> <a id="962" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="970" href="Categories.Functor.Bifunctor.html#591" class="Bound">C</a> <a id="972" href="Categories.Functor.Bifunctor.html#595" class="Bound">E</a>
<a id="976" href="Categories.Functor.Bifunctor.html#938" class="Function">appʳ</a> <a id="981" href="Categories.Functor.Bifunctor.html#981" class="Bound">d</a> <a id="983" class="Symbol">=</a> <a id="985" href="Categories.Functor.Bifunctor.html#577" class="Bound">H</a> <a id="987" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="990" href="Categories.Functor.Construction.Constant.html#880" class="Function">constʳ</a> <a id="997" href="Categories.Functor.Bifunctor.html#981" class="Bound">d</a>
<a id="Bifunctor.₁ˡ"></a><a id="1002" href="Categories.Functor.Bifunctor.html#1002" class="Function">₁ˡ</a> <a id="1005" class="Symbol">:</a> <a id="1007" class="Symbol"></a> <a id="1009" class="Symbol">{</a><a id="1010" href="Categories.Functor.Bifunctor.html#1010" class="Bound">A</a> <a id="1012" href="Categories.Functor.Bifunctor.html#1012" class="Bound">B</a> <a id="1014" href="Categories.Functor.Bifunctor.html#1014" class="Bound">d</a><a id="1015" class="Symbol">}</a> <a id="1017" class="Symbol">(</a><a id="1018" href="Categories.Functor.Bifunctor.html#1018" class="Bound">f</a> <a id="1020" class="Symbol">:</a> <a id="1022" href="Categories.Functor.Bifunctor.html#591" class="Bound">C</a> <a id="1024" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="1026" href="Categories.Functor.Bifunctor.html#1010" class="Bound">A</a> <a id="1028" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="1030" href="Categories.Functor.Bifunctor.html#1012" class="Bound">B</a> <a id="1032" href="Categories.Category.html#502" class="Function Operator">]</a><a id="1033" class="Symbol">)</a> <a id="1035" class="Symbol"></a> <a id="1037" href="Categories.Functor.Bifunctor.html#595" class="Bound">E</a> <a id="1039" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="1041" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="1044" class="Symbol">(</a><a id="1045" href="Categories.Functor.Bifunctor.html#1010" class="Bound">A</a> <a id="1047" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1049" href="Categories.Functor.Bifunctor.html#1014" class="Bound">d</a><a id="1050" class="Symbol">)</a> <a id="1052" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="1054" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="1057" class="Symbol">(</a><a id="1058" href="Categories.Functor.Bifunctor.html#1012" class="Bound">B</a> <a id="1060" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1062" href="Categories.Functor.Bifunctor.html#1014" class="Bound">d</a><a id="1063" class="Symbol">)</a> <a id="1065" href="Categories.Category.html#502" class="Function Operator">]</a>
<a id="1069" href="Categories.Functor.Bifunctor.html#1002" class="Function">₁ˡ</a> <a id="1072" href="Categories.Functor.Bifunctor.html#1072" class="Bound">f</a> <a id="1074" class="Symbol">=</a> <a id="1076" href="Categories.Functor.Core.html#806" class="Function"></a> <a id="1078" class="Symbol">(</a><a id="1079" href="Categories.Functor.Bifunctor.html#1072" class="Bound">f</a> <a id="1081" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1083" href="Categories.Category.Core.html#630" class="Field">Category.id</a> <a id="1095" href="Categories.Functor.Bifunctor.html#593" class="Bound">D</a><a id="1096" class="Symbol">)</a>
<a id="Bifunctor.₁ʳ"></a><a id="1101" href="Categories.Functor.Bifunctor.html#1101" class="Function">₁ʳ</a> <a id="1104" class="Symbol">:</a> <a id="1106" class="Symbol"></a> <a id="1108" class="Symbol">{</a><a id="1109" href="Categories.Functor.Bifunctor.html#1109" class="Bound">A</a> <a id="1111" href="Categories.Functor.Bifunctor.html#1111" class="Bound">B</a> <a id="1113" href="Categories.Functor.Bifunctor.html#1113" class="Bound">c</a><a id="1114" class="Symbol">}</a> <a id="1116" class="Symbol">(</a><a id="1117" href="Categories.Functor.Bifunctor.html#1117" class="Bound">f</a> <a id="1119" class="Symbol">:</a> <a id="1121" href="Categories.Functor.Bifunctor.html#593" class="Bound">D</a> <a id="1123" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="1125" href="Categories.Functor.Bifunctor.html#1109" class="Bound">A</a> <a id="1127" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="1129" href="Categories.Functor.Bifunctor.html#1111" class="Bound">B</a> <a id="1131" href="Categories.Category.html#502" class="Function Operator">]</a><a id="1132" class="Symbol">)</a> <a id="1134" class="Symbol"></a> <a id="1136" href="Categories.Functor.Bifunctor.html#595" class="Bound">E</a> <a id="1138" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="1140" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="1143" class="Symbol">(</a><a id="1144" href="Categories.Functor.Bifunctor.html#1113" class="Bound">c</a> <a id="1146" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1148" href="Categories.Functor.Bifunctor.html#1109" class="Bound">A</a><a id="1149" class="Symbol">)</a> <a id="1151" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="1153" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="1156" class="Symbol">(</a><a id="1157" href="Categories.Functor.Bifunctor.html#1113" class="Bound">c</a> <a id="1159" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1161" href="Categories.Functor.Bifunctor.html#1111" class="Bound">B</a><a id="1162" class="Symbol">)</a> <a id="1164" href="Categories.Category.html#502" class="Function Operator">]</a>
<a id="1168" href="Categories.Functor.Bifunctor.html#1101" class="Function">₁ʳ</a> <a id="1171" href="Categories.Functor.Bifunctor.html#1171" class="Bound">f</a> <a id="1173" class="Symbol">=</a> <a id="1175" href="Categories.Functor.Core.html#806" class="Function"></a> <a id="1177" class="Symbol">(</a><a id="1178" href="Categories.Category.Core.html#630" class="Field">Category.id</a> <a id="1190" href="Categories.Functor.Bifunctor.html#591" class="Bound">C</a> <a id="1192" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1194" href="Categories.Functor.Bifunctor.html#1171" class="Bound">f</a><a id="1195" class="Symbol">)</a>
<a id="Bifunctor.homomorphismˡ"></a><a id="1200" href="Categories.Functor.Bifunctor.html#1200" class="Function">homomorphismˡ</a> <a id="1214" class="Symbol">:</a> <a id="1216" class="Symbol"></a> <a id="1218" class="Symbol">{</a><a id="1219" href="Categories.Functor.Bifunctor.html#1219" class="Bound">X</a> <a id="1221" href="Categories.Functor.Bifunctor.html#1221" class="Bound">Y</a> <a id="1223" href="Categories.Functor.Bifunctor.html#1223" class="Bound">Z</a> <a id="1225" href="Categories.Functor.Bifunctor.html#1225" class="Bound">d</a><a id="1226" class="Symbol">}</a> <a id="1228" class="Symbol">{</a><a id="1229" href="Categories.Functor.Bifunctor.html#1229" class="Bound">f</a> <a id="1231" class="Symbol">:</a> <a id="1233" href="Categories.Functor.Bifunctor.html#591" class="Bound">C</a> <a id="1235" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="1237" href="Categories.Functor.Bifunctor.html#1219" class="Bound">X</a> <a id="1239" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="1241" href="Categories.Functor.Bifunctor.html#1221" class="Bound">Y</a> <a id="1243" href="Categories.Category.html#502" class="Function Operator">]</a><a id="1244" class="Symbol">}</a> <a id="1246" class="Symbol">{</a><a id="1247" href="Categories.Functor.Bifunctor.html#1247" class="Bound">g</a> <a id="1249" class="Symbol">:</a> <a id="1251" href="Categories.Functor.Bifunctor.html#591" class="Bound">C</a> <a id="1253" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="1255" href="Categories.Functor.Bifunctor.html#1221" class="Bound">Y</a> <a id="1257" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="1259" href="Categories.Functor.Bifunctor.html#1223" class="Bound">Z</a> <a id="1261" href="Categories.Category.html#502" class="Function Operator">]</a><a id="1262" class="Symbol">}</a> <a id="1264" class="Symbol"></a>
<a id="1287" href="Categories.Functor.Bifunctor.html#595" class="Bound">E</a> <a id="1289" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="1291" href="Categories.Functor.Bifunctor.html#1002" class="Function">₁ˡ</a> <a id="1294" class="Symbol">{</a><a id="1295" class="Argument">d</a> <a id="1297" class="Symbol">=</a> <a id="1299" href="Categories.Functor.Bifunctor.html#1225" class="Bound">d</a><a id="1300" class="Symbol">}</a> <a id="1302" class="Symbol">(</a><a id="1303" href="Categories.Functor.Bifunctor.html#591" class="Bound">C</a> <a id="1305" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="1307" href="Categories.Functor.Bifunctor.html#1247" class="Bound">g</a> <a id="1309" href="Categories.Category.html#700" class="Function Operator"></a> <a id="1311" href="Categories.Functor.Bifunctor.html#1229" class="Bound">f</a> <a id="1313" href="Categories.Category.html#700" class="Function Operator">]</a><a id="1314" class="Symbol">)</a> <a id="1316" href="Categories.Category.html#609" class="Function Operator"></a> <a id="1318" href="Categories.Functor.Bifunctor.html#595" class="Bound">E</a> <a id="1320" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="1322" href="Categories.Functor.Bifunctor.html#1002" class="Function">₁ˡ</a> <a id="1325" href="Categories.Functor.Bifunctor.html#1247" class="Bound">g</a> <a id="1327" href="Categories.Category.html#700" class="Function Operator"></a> <a id="1329" href="Categories.Functor.Bifunctor.html#1002" class="Function">₁ˡ</a> <a id="1332" href="Categories.Functor.Bifunctor.html#1229" class="Bound">f</a> <a id="1334" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="1336" href="Categories.Category.html#609" class="Function Operator">]</a>
<a id="1340" href="Categories.Functor.Bifunctor.html#1200" class="Function">homomorphismˡ</a> <a id="1354" class="Symbol">=</a> <a id="1356" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="1362" href="Categories.Functor.Bifunctor.html#595" class="Bound">E</a>
<a id="1370" class="Symbol">(</a><a id="1371" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="1380" class="Symbol">(</a><a id="1381" href="Relation.Binary.Structures.html#1577" class="Function">refl</a> <a id="1386" href="Categories.Functor.Bifunctor.html#591" class="Bound">C</a> <a id="1388" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1390" href="Relation.Binary.Structures.html#1603" class="Function">sym</a> <a id="1394" href="Categories.Functor.Bifunctor.html#593" class="Bound">D</a> <a id="1396" class="Symbol">(</a><a id="1397" href="Categories.Category.Core.html#1339" class="Field">Category.identity²</a> <a id="1416" href="Categories.Functor.Bifunctor.html#593" class="Bound">D</a><a id="1417" class="Symbol">)))</a>
<a id="1427" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a>
<a id="1444" class="Keyword">where</a> <a id="1450" class="Keyword">open</a> <a id="1455" href="Categories.Category.Core.html#1530" class="Module">Category.Equiv</a>
<a id="Bifunctor.homomorphismʳ"></a><a id="1473" href="Categories.Functor.Bifunctor.html#1473" class="Function">homomorphismʳ</a> <a id="1487" class="Symbol">:</a> <a id="1489" class="Symbol"></a> <a id="1491" class="Symbol">{</a><a id="1492" href="Categories.Functor.Bifunctor.html#1492" class="Bound">X</a> <a id="1494" href="Categories.Functor.Bifunctor.html#1494" class="Bound">Y</a> <a id="1496" href="Categories.Functor.Bifunctor.html#1496" class="Bound">Z</a> <a id="1498" href="Categories.Functor.Bifunctor.html#1498" class="Bound">c</a><a id="1499" class="Symbol">}</a> <a id="1501" class="Symbol">{</a><a id="1502" href="Categories.Functor.Bifunctor.html#1502" class="Bound">f</a> <a id="1504" class="Symbol">:</a> <a id="1506" href="Categories.Functor.Bifunctor.html#593" class="Bound">D</a> <a id="1508" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="1510" href="Categories.Functor.Bifunctor.html#1492" class="Bound">X</a> <a id="1512" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="1514" href="Categories.Functor.Bifunctor.html#1494" class="Bound">Y</a> <a id="1516" href="Categories.Category.html#502" class="Function Operator">]</a><a id="1517" class="Symbol">}</a> <a id="1519" class="Symbol">{</a><a id="1520" href="Categories.Functor.Bifunctor.html#1520" class="Bound">g</a> <a id="1522" class="Symbol">:</a> <a id="1524" href="Categories.Functor.Bifunctor.html#593" class="Bound">D</a> <a id="1526" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="1528" href="Categories.Functor.Bifunctor.html#1494" class="Bound">Y</a> <a id="1530" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="1532" href="Categories.Functor.Bifunctor.html#1496" class="Bound">Z</a> <a id="1534" href="Categories.Category.html#502" class="Function Operator">]</a><a id="1535" class="Symbol">}</a> <a id="1537" class="Symbol"></a>
<a id="1560" href="Categories.Functor.Bifunctor.html#595" class="Bound">E</a> <a id="1562" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="1564" href="Categories.Functor.Bifunctor.html#1101" class="Function">₁ʳ</a> <a id="1567" class="Symbol">{</a><a id="1568" class="Argument">c</a> <a id="1570" class="Symbol">=</a> <a id="1572" href="Categories.Functor.Bifunctor.html#1498" class="Bound">c</a><a id="1573" class="Symbol">}</a> <a id="1575" class="Symbol">(</a><a id="1576" href="Categories.Functor.Bifunctor.html#593" class="Bound">D</a> <a id="1578" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="1580" href="Categories.Functor.Bifunctor.html#1520" class="Bound">g</a> <a id="1582" href="Categories.Category.html#700" class="Function Operator"></a> <a id="1584" href="Categories.Functor.Bifunctor.html#1502" class="Bound">f</a> <a id="1586" href="Categories.Category.html#700" class="Function Operator">]</a><a id="1587" class="Symbol">)</a> <a id="1589" href="Categories.Category.html#609" class="Function Operator"></a> <a id="1591" href="Categories.Functor.Bifunctor.html#595" class="Bound">E</a> <a id="1593" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="1595" href="Categories.Functor.Bifunctor.html#1101" class="Function">₁ʳ</a> <a id="1598" href="Categories.Functor.Bifunctor.html#1520" class="Bound">g</a> <a id="1600" href="Categories.Category.html#700" class="Function Operator"></a> <a id="1602" href="Categories.Functor.Bifunctor.html#1101" class="Function">₁ʳ</a> <a id="1605" href="Categories.Functor.Bifunctor.html#1502" class="Bound">f</a> <a id="1607" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="1609" href="Categories.Category.html#609" class="Function Operator">]</a>
<a id="1613" href="Categories.Functor.Bifunctor.html#1473" class="Function">homomorphismʳ</a> <a id="1627" class="Symbol">=</a> <a id="1629" href="Relation.Binary.Structures.html#1629" class="Function">trans</a> <a id="1635" href="Categories.Functor.Bifunctor.html#595" class="Bound">E</a>
<a id="1643" class="Symbol">(</a><a id="1644" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="1653" class="Symbol">(</a><a id="1654" href="Relation.Binary.Structures.html#1603" class="Function">sym</a> <a id="1658" href="Categories.Functor.Bifunctor.html#591" class="Bound">C</a> <a id="1660" class="Symbol">(</a><a id="1661" href="Categories.Category.Core.html#1339" class="Field">Category.identity²</a> <a id="1680" href="Categories.Functor.Bifunctor.html#591" class="Bound">C</a><a id="1681" class="Symbol">)</a> <a id="1683" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1685" href="Relation.Binary.Structures.html#1577" class="Function">refl</a> <a id="1690" href="Categories.Functor.Bifunctor.html#593" class="Bound">D</a><a id="1691" class="Symbol">))</a>
<a id="1700" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a>
<a id="1717" class="Keyword">where</a> <a id="1723" class="Keyword">open</a> <a id="1728" href="Categories.Category.Core.html#1530" class="Module">Category.Equiv</a>
<a id="Bifunctor.resp-≈ˡ"></a><a id="1746" href="Categories.Functor.Bifunctor.html#1746" class="Function">resp-≈ˡ</a> <a id="1754" class="Symbol">:</a> <a id="1756" class="Symbol"></a> <a id="1758" class="Symbol">{</a><a id="1759" href="Categories.Functor.Bifunctor.html#1759" class="Bound">A</a> <a id="1761" href="Categories.Functor.Bifunctor.html#1761" class="Bound">B</a> <a id="1763" href="Categories.Functor.Bifunctor.html#1763" class="Bound">d</a><a id="1764" class="Symbol">}</a> <a id="1766" class="Symbol">{</a><a id="1767" href="Categories.Functor.Bifunctor.html#1767" class="Bound">f</a> <a id="1769" href="Categories.Functor.Bifunctor.html#1769" class="Bound">g</a> <a id="1771" class="Symbol">:</a> <a id="1773" href="Categories.Functor.Bifunctor.html#591" class="Bound">C</a> <a id="1775" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="1777" href="Categories.Functor.Bifunctor.html#1759" class="Bound">A</a> <a id="1779" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="1781" href="Categories.Functor.Bifunctor.html#1761" class="Bound">B</a> <a id="1783" href="Categories.Category.html#502" class="Function Operator">]</a><a id="1784" class="Symbol">}</a> <a id="1786" class="Symbol"></a> <a id="1788" href="Categories.Functor.Bifunctor.html#591" class="Bound">C</a> <a id="1790" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="1792" href="Categories.Functor.Bifunctor.html#1767" class="Bound">f</a> <a id="1794" href="Categories.Category.html#609" class="Function Operator"></a> <a id="1796" href="Categories.Functor.Bifunctor.html#1769" class="Bound">g</a> <a id="1798" href="Categories.Category.html#609" class="Function Operator">]</a> <a id="1800" class="Symbol"></a>
<a id="1817" href="Categories.Functor.Bifunctor.html#595" class="Bound">E</a> <a id="1819" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="1821" href="Categories.Functor.Bifunctor.html#1002" class="Function">₁ˡ</a> <a id="1824" class="Symbol">{</a><a id="1825" class="Argument">d</a> <a id="1827" class="Symbol">=</a> <a id="1829" href="Categories.Functor.Bifunctor.html#1763" class="Bound">d</a><a id="1830" class="Symbol">}</a> <a id="1832" href="Categories.Functor.Bifunctor.html#1767" class="Bound">f</a> <a id="1834" href="Categories.Category.html#609" class="Function Operator"></a> <a id="1836" href="Categories.Functor.Bifunctor.html#1002" class="Function">₁ˡ</a> <a id="1839" href="Categories.Functor.Bifunctor.html#1769" class="Bound">g</a> <a id="1841" href="Categories.Category.html#609" class="Function Operator">]</a>
<a id="1845" href="Categories.Functor.Bifunctor.html#1746" class="Function">resp-≈ˡ</a> <a id="1853" href="Categories.Functor.Bifunctor.html#1853" class="Bound">f≈g</a> <a id="1857" class="Symbol">=</a> <a id="1859" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="1868" class="Symbol">(</a><a id="1869" href="Categories.Functor.Bifunctor.html#1853" class="Bound">f≈g</a> <a id="1873" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1875" href="Relation.Binary.Structures.html#1577" class="Function">Category.Equiv.refl</a> <a id="1895" href="Categories.Functor.Bifunctor.html#593" class="Bound">D</a><a id="1896" class="Symbol">)</a>
<a id="Bifunctor.resp-≈ʳ"></a><a id="1901" href="Categories.Functor.Bifunctor.html#1901" class="Function">resp-≈ʳ</a> <a id="1909" class="Symbol">:</a> <a id="1911" class="Symbol"></a> <a id="1913" class="Symbol">{</a><a id="1914" href="Categories.Functor.Bifunctor.html#1914" class="Bound">A</a> <a id="1916" href="Categories.Functor.Bifunctor.html#1916" class="Bound">B</a> <a id="1918" href="Categories.Functor.Bifunctor.html#1918" class="Bound">c</a><a id="1919" class="Symbol">}</a> <a id="1921" class="Symbol">{</a><a id="1922" href="Categories.Functor.Bifunctor.html#1922" class="Bound">f</a> <a id="1924" href="Categories.Functor.Bifunctor.html#1924" class="Bound">g</a> <a id="1926" class="Symbol">:</a> <a id="1928" href="Categories.Functor.Bifunctor.html#593" class="Bound">D</a> <a id="1930" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="1932" href="Categories.Functor.Bifunctor.html#1914" class="Bound">A</a> <a id="1934" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="1936" href="Categories.Functor.Bifunctor.html#1916" class="Bound">B</a> <a id="1938" href="Categories.Category.html#502" class="Function Operator">]</a><a id="1939" class="Symbol">}</a> <a id="1941" class="Symbol"></a> <a id="1943" href="Categories.Functor.Bifunctor.html#593" class="Bound">D</a> <a id="1945" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="1947" href="Categories.Functor.Bifunctor.html#1922" class="Bound">f</a> <a id="1949" href="Categories.Category.html#609" class="Function Operator"></a> <a id="1951" href="Categories.Functor.Bifunctor.html#1924" class="Bound">g</a> <a id="1953" href="Categories.Category.html#609" class="Function Operator">]</a> <a id="1955" class="Symbol"></a>
<a id="1972" href="Categories.Functor.Bifunctor.html#595" class="Bound">E</a> <a id="1974" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="1976" href="Categories.Functor.Bifunctor.html#1101" class="Function">₁ʳ</a> <a id="1979" class="Symbol">{</a><a id="1980" class="Argument">c</a> <a id="1982" class="Symbol">=</a> <a id="1984" href="Categories.Functor.Bifunctor.html#1918" class="Bound">c</a><a id="1985" class="Symbol">}</a> <a id="1987" href="Categories.Functor.Bifunctor.html#1922" class="Bound">f</a> <a id="1989" href="Categories.Category.html#609" class="Function Operator"></a> <a id="1991" href="Categories.Functor.Bifunctor.html#1101" class="Function">₁ʳ</a> <a id="1994" href="Categories.Functor.Bifunctor.html#1924" class="Bound">g</a> <a id="1996" href="Categories.Category.html#609" class="Function Operator">]</a>
<a id="2000" href="Categories.Functor.Bifunctor.html#1901" class="Function">resp-≈ʳ</a> <a id="2008" href="Categories.Functor.Bifunctor.html#2008" class="Bound">f≈g</a> <a id="2012" class="Symbol">=</a> <a id="2014" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="2023" class="Symbol">(</a><a id="2024" href="Relation.Binary.Structures.html#1577" class="Function">Category.Equiv.refl</a> <a id="2044" href="Categories.Functor.Bifunctor.html#591" class="Bound">C</a> <a id="2046" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2048" href="Categories.Functor.Bifunctor.html#2008" class="Bound">f≈g</a><a id="2051" class="Symbol">)</a>
<a id="2054" class="Keyword">open</a> <a id="2059" href="Categories.Functor.Bifunctor.html#566" class="Module">Bifunctor</a> <a id="2069" class="Keyword">public</a> <a id="2076" class="Keyword">using</a> <a id="2082" class="Symbol">(</a><a id="2083" href="Categories.Functor.Bifunctor.html#874" class="Function">appˡ</a><a id="2087" class="Symbol">;</a> <a id="2089" href="Categories.Functor.Bifunctor.html#938" class="Function">appʳ</a><a id="2093" class="Symbol">)</a> <a id="2095" class="Keyword">renaming</a> <a id="2104" class="Symbol">(</a><a id="2105" href="Categories.Functor.Bifunctor.html#829" class="Function">flip</a> <a id="2110" class="Symbol">to</a> <a id="2113" class="Function">flip-bifunctor</a><a id="2127" class="Symbol">)</a>
<a id="overlap-×"></a><a id="2130" href="Categories.Functor.Bifunctor.html#2130" class="Function">overlap-×</a> <a id="2140" class="Symbol">:</a> <a id="2142" class="Symbol"></a> <a id="2144" class="Symbol">(</a><a id="2145" href="Categories.Functor.Bifunctor.html#2145" class="Bound">H</a> <a id="2147" class="Symbol">:</a> <a id="2149" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="2159" href="Categories.Functor.Bifunctor.html#413" class="Generalizable">C</a> <a id="2161" href="Categories.Functor.Bifunctor.html#415" class="Generalizable">D</a> <a id="2163" href="Categories.Functor.Bifunctor.html#417" class="Generalizable">E</a><a id="2164" class="Symbol">)</a> <a id="2166" class="Symbol">(</a><a id="2167" href="Categories.Functor.Bifunctor.html#2167" class="Bound">F</a> <a id="2169" class="Symbol">:</a> <a id="2171" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="2179" href="Categories.Functor.Bifunctor.html#419" class="Generalizable">A</a> <a id="2181" href="Categories.Functor.Bifunctor.html#413" class="Generalizable">C</a><a id="2182" class="Symbol">)</a> <a id="2184" class="Symbol">(</a><a id="2185" href="Categories.Functor.Bifunctor.html#2185" class="Bound">G</a> <a id="2187" class="Symbol">:</a> <a id="2189" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="2197" href="Categories.Functor.Bifunctor.html#419" class="Generalizable">A</a> <a id="2199" href="Categories.Functor.Bifunctor.html#415" class="Generalizable">D</a><a id="2200" class="Symbol">)</a> <a id="2202" class="Symbol"></a> <a id="2204" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="2212" href="Categories.Functor.Bifunctor.html#419" class="Generalizable">A</a> <a id="2214" href="Categories.Functor.Bifunctor.html#417" class="Generalizable">E</a>
<a id="2216" href="Categories.Functor.Bifunctor.html#2130" class="Function">overlap-×</a> <a id="2226" href="Categories.Functor.Bifunctor.html#2226" class="Bound">H</a> <a id="2228" class="Symbol">=</a> <a id="2230" href="Categories.Functor.Bifunctor.html#631" class="Function">Bifunctor.overlap-×</a> <a id="2250" href="Categories.Functor.Bifunctor.html#2226" class="Bound">H</a>
<a id="reduce-×"></a><a id="2253" href="Categories.Functor.Bifunctor.html#2253" class="Function">reduce-×</a> <a id="2262" class="Symbol">:</a> <a id="2264" class="Symbol"></a> <a id="2266" class="Symbol">(</a><a id="2267" href="Categories.Functor.Bifunctor.html#2267" class="Bound">H</a> <a id="2269" class="Symbol">:</a> <a id="2271" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="2281" href="Categories.Functor.Bifunctor.html#413" class="Generalizable">C</a> <a id="2283" href="Categories.Functor.Bifunctor.html#415" class="Generalizable">D</a> <a id="2285" href="Categories.Functor.Bifunctor.html#417" class="Generalizable">E</a><a id="2286" class="Symbol">)</a> <a id="2288" class="Symbol">(</a><a id="2289" href="Categories.Functor.Bifunctor.html#2289" class="Bound">F</a> <a id="2291" class="Symbol">:</a> <a id="2293" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="2301" href="Categories.Functor.Bifunctor.html#419" class="Generalizable">A</a> <a id="2303" href="Categories.Functor.Bifunctor.html#413" class="Generalizable">C</a><a id="2304" class="Symbol">)</a> <a id="2306" class="Symbol">(</a><a id="2307" href="Categories.Functor.Bifunctor.html#2307" class="Bound">G</a> <a id="2309" class="Symbol">:</a> <a id="2311" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="2319" href="Categories.Functor.Bifunctor.html#421" class="Generalizable">B</a> <a id="2321" href="Categories.Functor.Bifunctor.html#415" class="Generalizable">D</a><a id="2322" class="Symbol">)</a> <a id="2324" class="Symbol">-&gt;</a> <a id="2327" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="2337" href="Categories.Functor.Bifunctor.html#419" class="Generalizable">A</a> <a id="2339" href="Categories.Functor.Bifunctor.html#421" class="Generalizable">B</a> <a id="2341" href="Categories.Functor.Bifunctor.html#417" class="Generalizable">E</a>
<a id="2343" href="Categories.Functor.Bifunctor.html#2253" class="Function">reduce-×</a> <a id="2352" href="Categories.Functor.Bifunctor.html#2352" class="Bound">H</a> <a id="2354" class="Symbol">=</a> <a id="2356" href="Categories.Functor.Bifunctor.html#729" class="Function">Bifunctor.reduce-×</a> <a id="2375" href="Categories.Functor.Bifunctor.html#2352" class="Bound">H</a>
</pre></body></html>