bsc-leon-vatthauer/agda/bsc-thesis/Categories.FreeObjects.Free.html
2024-02-09 17:53:52 +01:00

258 lines
No EOL
178 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Categories.FreeObjects.Free</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Symbol">{-#</a> <a id="5" class="Keyword">OPTIONS</a> <a id="13" class="Pragma">--without-K</a> <a id="25" class="Pragma">--safe</a> <a id="32" class="Symbol">#-}</a>
<a id="37" class="Keyword">module</a> <a id="44" href="Categories.FreeObjects.Free.html" class="Module">Categories.FreeObjects.Free</a> <a id="72" class="Keyword">where</a>
<a id="79" class="Keyword">open</a> <a id="84" class="Keyword">import</a> <a id="91" href="Level.html" class="Module">Level</a>
<a id="97" class="Keyword">open</a> <a id="102" class="Keyword">import</a> <a id="109" href="Relation.Binary.PropositionalEquality.html" class="Module">Relation.Binary.PropositionalEquality</a> <a id="147" class="Keyword">using</a> <a id="153" class="Symbol">(</a><a id="154" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a><a id="157" class="Symbol">;</a> <a id="159" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a><a id="163" class="Symbol">;</a> <a id="165" href="Relation.Binary.PropositionalEquality.Core.html#1158" class="Function">cong</a><a id="169" class="Symbol">)</a>
<a id="171" class="Keyword">open</a> <a id="176" class="Keyword">import</a> <a id="183" href="Relation.Binary.html" class="Module">Relation.Binary</a> <a id="199" class="Keyword">using</a> <a id="205" class="Symbol">(</a><a id="206" href="Relation.Binary.Structures.html#1550" class="Record">IsEquivalence</a><a id="219" class="Symbol">)</a>
<a id="221" class="Keyword">open</a> <a id="226" class="Keyword">import</a> <a id="233" href="Categories.Functor.html" class="Module">Categories.Functor</a> <a id="252" class="Keyword">renaming</a> <a id="261" class="Symbol">(</a><a id="262" href="Categories.Functor.html#349" class="Function">id</a> <a id="265" class="Symbol">to</a> <a id="268" class="Function">idF</a><a id="271" class="Symbol">)</a>
<a id="273" class="Keyword">open</a> <a id="278" class="Keyword">import</a> <a id="285" href="Categories.Category.html" class="Module">Categories.Category</a>
<a id="305" class="Keyword">open</a> <a id="310" class="Keyword">import</a> <a id="317" href="Categories.Adjoint.html" class="Module">Categories.Adjoint</a>
<a id="336" class="Keyword">open</a> <a id="341" class="Keyword">import</a> <a id="348" href="Categories.NaturalTransformation.Core.html" class="Module">Categories.NaturalTransformation.Core</a>
<a id="387" class="Keyword">import</a> <a id="394" href="Categories.Morphism.Reasoning.html" class="Module">Categories.Morphism.Reasoning</a> <a id="424" class="Symbol">as</a> <a id="427" class="Module">MR</a>
<a id="431" class="Keyword">private</a>
<a id="441" class="Keyword">variable</a>
<a id="454" href="Categories.FreeObjects.Free.html#454" class="Generalizable">o</a> <a id="456" href="Categories.FreeObjects.Free.html#456" class="Generalizable"></a> <a id="458" href="Categories.FreeObjects.Free.html#458" class="Generalizable">e</a> <a id="460" href="Categories.FreeObjects.Free.html#460" class="Generalizable">o&#39;</a> <a id="463" href="Categories.FreeObjects.Free.html#463" class="Generalizable">&#39;</a> <a id="466" href="Categories.FreeObjects.Free.html#466" class="Generalizable">e&#39;</a> <a id="469" class="Symbol">:</a> <a id="471" href="Agda.Primitive.html#742" class="Postulate">Level</a>
<a id="478" class="Keyword">record</a> <a id="FreeObject"></a><a id="485" href="Categories.FreeObjects.Free.html#485" class="Record">FreeObject</a> <a id="496" class="Symbol">{</a><a id="497" href="Categories.FreeObjects.Free.html#497" class="Bound">C</a> <a id="499" class="Symbol">:</a> <a id="501" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="510" href="Categories.FreeObjects.Free.html#454" class="Generalizable">o</a> <a id="512" href="Categories.FreeObjects.Free.html#456" class="Generalizable"></a> <a id="514" href="Categories.FreeObjects.Free.html#458" class="Generalizable">e</a><a id="515" class="Symbol">}</a> <a id="517" class="Symbol">{</a><a id="518" href="Categories.FreeObjects.Free.html#518" class="Bound">D</a> <a id="520" class="Symbol">:</a> <a id="522" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="531" href="Categories.FreeObjects.Free.html#460" class="Generalizable">o&#39;</a> <a id="534" href="Categories.FreeObjects.Free.html#463" class="Generalizable">&#39;</a> <a id="537" href="Categories.FreeObjects.Free.html#466" class="Generalizable">e&#39;</a><a id="539" class="Symbol">}</a> <a id="541" class="Symbol">(</a><a id="542" href="Categories.FreeObjects.Free.html#542" class="Bound">U</a> <a id="544" class="Symbol">:</a> <a id="546" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="554" href="Categories.FreeObjects.Free.html#518" class="Bound">D</a> <a id="556" href="Categories.FreeObjects.Free.html#497" class="Bound">C</a><a id="557" class="Symbol">)</a> <a id="559" class="Symbol">(</a><a id="560" href="Categories.FreeObjects.Free.html#560" class="Bound">X</a> <a id="562" class="Symbol">:</a> <a id="564" href="Categories.Category.Core.html#559" class="Field">Category.Obj</a> <a id="577" href="Categories.FreeObjects.Free.html#497" class="Bound">C</a><a id="578" class="Symbol">)</a> <a id="580" class="Symbol">:</a> <a id="582" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="586" class="Symbol">(</a><a id="587" href="Agda.Primitive.html#931" class="Primitive">suc</a> <a id="591" class="Symbol">(</a><a id="592" href="Categories.FreeObjects.Free.html#514" class="Bound">e</a> <a id="594" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="596" href="Categories.FreeObjects.Free.html#537" class="Bound">e&#39;</a> <a id="599" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="601" href="Categories.FreeObjects.Free.html#510" class="Bound">o</a> <a id="603" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="605" href="Categories.FreeObjects.Free.html#512" class="Bound"></a> <a id="607" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="609" href="Categories.FreeObjects.Free.html#531" class="Bound">o&#39;</a> <a id="612" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="614" href="Categories.FreeObjects.Free.html#534" class="Bound">&#39;</a><a id="616" class="Symbol">))</a> <a id="619" class="Keyword">where</a>
<a id="628" class="Keyword">private</a>
<a id="640" class="Keyword">module</a> <a id="FreeObject.C"></a><a id="647" href="Categories.FreeObjects.Free.html#647" class="Module">C</a> <a id="649" class="Symbol">=</a> <a id="651" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="660" href="Categories.FreeObjects.Free.html#497" class="Bound">C</a> <a id="662" class="Keyword">using</a> <a id="668" class="Symbol">(</a><a id="669" href="Categories.Category.Core.html#559" class="Field">Obj</a><a id="672" class="Symbol">;</a> <a id="674" href="Categories.Category.Core.html#630" class="Field">id</a><a id="676" class="Symbol">;</a> <a id="678" href="Categories.Category.Core.html#1145" class="Field">identityʳ</a><a id="687" class="Symbol">;</a> <a id="689" href="Categories.Category.Core.html#1096" class="Field">identityˡ</a><a id="698" class="Symbol">;</a> <a id="700" href="Categories.Category.Core.html#575" class="Field Operator">_⇒_</a><a id="703" class="Symbol">;</a> <a id="705" href="Categories.Category.Core.html#656" class="Field Operator">_∘_</a><a id="708" class="Symbol">;</a> <a id="710" href="Categories.Category.Core.html#1384" class="Field">equiv</a><a id="715" class="Symbol">;</a> <a id="717" class="Keyword">module</a> <a id="724" href="Categories.Category.Core.html#1530" class="Module">Equiv</a><a id="729" class="Symbol">)</a>
<a id="735" class="Keyword">module</a> <a id="FreeObject.D"></a><a id="742" href="Categories.FreeObjects.Free.html#742" class="Module">D</a> <a id="744" class="Symbol">=</a> <a id="746" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="755" href="Categories.FreeObjects.Free.html#518" class="Bound">D</a> <a id="757" class="Keyword">using</a> <a id="763" class="Symbol">(</a><a id="764" href="Categories.Category.Core.html#559" class="Field">Obj</a><a id="767" class="Symbol">;</a> <a id="769" href="Categories.Category.Core.html#575" class="Field Operator">_⇒_</a><a id="772" class="Symbol">;</a> <a id="774" href="Categories.Category.Core.html#656" class="Field Operator">_∘_</a><a id="777" class="Symbol">;</a> <a id="779" href="Categories.Category.Core.html#1384" class="Field">equiv</a><a id="784" class="Symbol">)</a>
<a id="790" class="Keyword">module</a> <a id="FreeObject.U"></a><a id="797" href="Categories.FreeObjects.Free.html#797" class="Module">U</a> <a id="799" class="Symbol">=</a> <a id="801" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="809" href="Categories.FreeObjects.Free.html#542" class="Bound">U</a> <a id="811" class="Keyword">using</a> <a id="817" class="Symbol">(</a><a id="818" href="Categories.Functor.Core.html#797" class="Function"></a><a id="819" class="Symbol">;</a> <a id="821" href="Categories.Functor.Core.html#806" class="Function"></a><a id="822" class="Symbol">)</a>
<a id="827" class="Keyword">field</a>
<a id="FreeObject.FX"></a><a id="838" href="Categories.FreeObjects.Free.html#838" class="Field">FX</a> <a id="841" class="Symbol">:</a> <a id="843" href="Categories.Category.Core.html#559" class="Function">D.Obj</a>
<a id="FreeObject.η"></a><a id="854" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="856" class="Symbol">:</a> <a id="858" href="Categories.FreeObjects.Free.html#497" class="Bound">C</a> <a id="860" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="862" href="Categories.FreeObjects.Free.html#560" class="Bound">X</a> <a id="864" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="866" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="870" href="Categories.FreeObjects.Free.html#838" class="Field">FX</a> <a id="873" href="Categories.Category.html#502" class="Function Operator">]</a>
<a id="FreeObject._*"></a><a id="880" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a> <a id="883" class="Symbol">:</a> <a id="885" class="Symbol"></a> <a id="887" class="Symbol">{</a><a id="888" href="Categories.FreeObjects.Free.html#888" class="Bound">A</a> <a id="890" class="Symbol">:</a> <a id="892" href="Categories.Category.Core.html#559" class="Function">D.Obj</a><a id="897" class="Symbol">}</a> <a id="899" class="Symbol"></a> <a id="901" href="Categories.FreeObjects.Free.html#497" class="Bound">C</a> <a id="903" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="905" href="Categories.FreeObjects.Free.html#560" class="Bound">X</a> <a id="907" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="909" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="913" href="Categories.FreeObjects.Free.html#888" class="Bound">A</a> <a id="915" href="Categories.Category.html#502" class="Function Operator">]</a> <a id="917" class="Symbol"></a> <a id="919" href="Categories.FreeObjects.Free.html#518" class="Bound">D</a> <a id="921" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="923" href="Categories.FreeObjects.Free.html#838" class="Field">FX</a> <a id="926" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="928" href="Categories.FreeObjects.Free.html#888" class="Bound">A</a> <a id="930" href="Categories.Category.html#502" class="Function Operator">]</a>
<a id="FreeObject.*-lift"></a><a id="937" href="Categories.FreeObjects.Free.html#937" class="Field">*-lift</a> <a id="944" class="Symbol">:</a> <a id="946" class="Symbol"></a> <a id="948" class="Symbol">{</a><a id="949" href="Categories.FreeObjects.Free.html#949" class="Bound">A</a> <a id="951" class="Symbol">:</a> <a id="953" href="Categories.Category.Core.html#559" class="Function">D.Obj</a><a id="958" class="Symbol">}</a> <a id="960" class="Symbol">(</a><a id="961" href="Categories.FreeObjects.Free.html#961" class="Bound">f</a> <a id="963" class="Symbol">:</a> <a id="965" href="Categories.FreeObjects.Free.html#497" class="Bound">C</a> <a id="967" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="969" href="Categories.FreeObjects.Free.html#560" class="Bound">X</a> <a id="971" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="973" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="977" href="Categories.FreeObjects.Free.html#949" class="Bound">A</a> <a id="979" href="Categories.Category.html#502" class="Function Operator">]</a><a id="980" class="Symbol">)</a> <a id="982" class="Symbol"></a> <a id="984" href="Categories.FreeObjects.Free.html#497" class="Bound">C</a> <a id="986" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="988" class="Symbol">(</a><a id="989" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="993" class="Symbol">(</a><a id="994" href="Categories.FreeObjects.Free.html#961" class="Bound">f</a> <a id="996" href="Categories.FreeObjects.Free.html#880" class="Field Operator">*</a><a id="997" class="Symbol">)</a> <a id="999" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="1003" href="Categories.FreeObjects.Free.html#854" class="Field">η</a><a id="1004" class="Symbol">)</a> <a id="1006" href="Categories.Category.html#609" class="Function Operator"></a> <a id="1008" href="Categories.FreeObjects.Free.html#961" class="Bound">f</a> <a id="1010" href="Categories.Category.html#609" class="Function Operator">]</a>
<a id="FreeObject.*-uniq"></a><a id="1017" href="Categories.FreeObjects.Free.html#1017" class="Field">*-uniq</a> <a id="1024" class="Symbol">:</a> <a id="1026" class="Symbol"></a> <a id="1028" class="Symbol">{</a><a id="1029" href="Categories.FreeObjects.Free.html#1029" class="Bound">A</a> <a id="1031" class="Symbol">:</a> <a id="1033" href="Categories.Category.Core.html#559" class="Function">D.Obj</a><a id="1038" class="Symbol">}</a> <a id="1040" class="Symbol">(</a><a id="1041" href="Categories.FreeObjects.Free.html#1041" class="Bound">f</a> <a id="1043" class="Symbol">:</a> <a id="1045" href="Categories.FreeObjects.Free.html#497" class="Bound">C</a> <a id="1047" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="1049" href="Categories.FreeObjects.Free.html#560" class="Bound">X</a> <a id="1051" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="1053" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="1057" href="Categories.FreeObjects.Free.html#1029" class="Bound">A</a> <a id="1059" href="Categories.Category.html#502" class="Function Operator">]</a><a id="1060" class="Symbol">)</a> <a id="1062" class="Symbol">(</a><a id="1063" href="Categories.FreeObjects.Free.html#1063" class="Bound">g</a> <a id="1065" class="Symbol">:</a> <a id="1067" href="Categories.FreeObjects.Free.html#518" class="Bound">D</a> <a id="1069" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="1071" href="Categories.FreeObjects.Free.html#838" class="Field">FX</a> <a id="1074" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="1076" href="Categories.FreeObjects.Free.html#1029" class="Bound">A</a> <a id="1078" href="Categories.Category.html#502" class="Function Operator">]</a><a id="1079" class="Symbol">)</a> <a id="1081" class="Symbol"></a> <a id="1083" href="Categories.FreeObjects.Free.html#497" class="Bound">C</a> <a id="1085" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="1087" class="Symbol">(</a><a id="1088" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="1092" href="Categories.FreeObjects.Free.html#1063" class="Bound">g</a><a id="1093" class="Symbol">)</a> <a id="1095" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="1099" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="1101" href="Categories.Category.html#609" class="Function Operator"></a> <a id="1103" href="Categories.FreeObjects.Free.html#1041" class="Bound">f</a> <a id="1105" href="Categories.Category.html#609" class="Function Operator">]</a> <a id="1107" class="Symbol"></a> <a id="1109" href="Categories.FreeObjects.Free.html#518" class="Bound">D</a> <a id="1111" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="1113" href="Categories.FreeObjects.Free.html#1063" class="Bound">g</a> <a id="1115" href="Categories.Category.html#609" class="Function Operator"></a> <a id="1117" href="Categories.FreeObjects.Free.html#1041" class="Bound">f</a> <a id="1119" href="Categories.FreeObjects.Free.html#880" class="Field Operator">*</a> <a id="1121" href="Categories.Category.html#609" class="Function Operator">]</a>
<a id="FreeObject.*-cong"></a><a id="1126" href="Categories.FreeObjects.Free.html#1126" class="Function">*-cong</a> <a id="1133" class="Symbol">:</a> <a id="1135" class="Symbol"></a> <a id="1137" class="Symbol">{</a><a id="1138" href="Categories.FreeObjects.Free.html#1138" class="Bound">A</a> <a id="1140" class="Symbol">:</a> <a id="1142" href="Categories.Category.Core.html#559" class="Function">D.Obj</a><a id="1147" class="Symbol">}</a> <a id="1149" class="Symbol">{</a><a id="1150" href="Categories.FreeObjects.Free.html#1150" class="Bound">f</a> <a id="1152" href="Categories.FreeObjects.Free.html#1152" class="Bound">g</a> <a id="1154" class="Symbol">:</a> <a id="1156" href="Categories.FreeObjects.Free.html#497" class="Bound">C</a> <a id="1158" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="1160" href="Categories.FreeObjects.Free.html#560" class="Bound">X</a> <a id="1162" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="1164" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="1168" href="Categories.FreeObjects.Free.html#1138" class="Bound">A</a> <a id="1170" href="Categories.Category.html#502" class="Function Operator">]</a><a id="1171" class="Symbol">}</a> <a id="1173" class="Symbol"></a> <a id="1175" href="Categories.FreeObjects.Free.html#497" class="Bound">C</a> <a id="1177" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="1179" href="Categories.FreeObjects.Free.html#1150" class="Bound">f</a> <a id="1181" href="Categories.Category.html#609" class="Function Operator"></a> <a id="1183" href="Categories.FreeObjects.Free.html#1152" class="Bound">g</a> <a id="1185" href="Categories.Category.html#609" class="Function Operator">]</a> <a id="1187" class="Symbol"></a> <a id="1189" href="Categories.FreeObjects.Free.html#518" class="Bound">D</a> <a id="1191" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="1193" href="Categories.FreeObjects.Free.html#1150" class="Bound">f</a> <a id="1195" href="Categories.FreeObjects.Free.html#880" class="Field Operator">*</a> <a id="1197" href="Categories.Category.html#609" class="Function Operator"></a> <a id="1199" href="Categories.FreeObjects.Free.html#1152" class="Bound">g</a> <a id="1201" href="Categories.FreeObjects.Free.html#880" class="Field Operator">*</a> <a id="1203" href="Categories.Category.html#609" class="Function Operator">]</a>
<a id="1207" href="Categories.FreeObjects.Free.html#1126" class="Function">*-cong</a> <a id="1214" class="Symbol">{</a><a id="1215" href="Categories.FreeObjects.Free.html#1215" class="Bound">A</a><a id="1216" class="Symbol">}</a> <a id="1218" class="Symbol">{</a><a id="1219" href="Categories.FreeObjects.Free.html#1219" class="Bound">f</a><a id="1220" class="Symbol">}</a> <a id="1222" class="Symbol">{</a><a id="1223" href="Categories.FreeObjects.Free.html#1223" class="Bound">g</a><a id="1224" class="Symbol">}</a> <a id="1226" href="Categories.FreeObjects.Free.html#1226" class="Bound">f≈g</a> <a id="1230" class="Symbol">=</a> <a id="1232" href="Categories.FreeObjects.Free.html#1017" class="Field">*-uniq</a> <a id="1239" href="Categories.FreeObjects.Free.html#1223" class="Bound">g</a> <a id="1241" class="Symbol">(</a><a id="1242" href="Categories.FreeObjects.Free.html#1219" class="Bound">f</a> <a id="1244" href="Categories.FreeObjects.Free.html#880" class="Field Operator">*</a><a id="1245" class="Symbol">)</a> <a id="1247" class="Symbol">(</a><a id="1248" href="Relation.Binary.Structures.html#1648" class="Function">trans</a> <a id="1254" class="Symbol">(</a><a id="1255" href="Categories.FreeObjects.Free.html#937" class="Field">*-lift</a> <a id="1262" href="Categories.FreeObjects.Free.html#1219" class="Bound">f</a><a id="1263" class="Symbol">)</a> <a id="1265" href="Categories.FreeObjects.Free.html#1226" class="Bound">f≈g</a><a id="1268" class="Symbol">)</a> <a id="1273" class="Keyword">where</a> <a id="1279" class="Keyword">open</a> <a id="1284" href="Categories.Category.Core.html#1530" class="Module">C.Equiv</a>
<a id="1294" class="Keyword">open</a> <a id="1299" href="Categories.FreeObjects.Free.html#485" class="Module">FreeObject</a>
<a id="1312" class="Keyword">module</a> <a id="1319" href="Categories.FreeObjects.Free.html#1319" class="Module">_</a> <a id="1322" class="Symbol">{</a><a id="1323" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a> <a id="1325" class="Symbol">:</a> <a id="1327" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="1336" href="Categories.FreeObjects.Free.html#454" class="Generalizable">o</a> <a id="1338" href="Categories.FreeObjects.Free.html#456" class="Generalizable"></a> <a id="1340" href="Categories.FreeObjects.Free.html#458" class="Generalizable">e</a><a id="1341" class="Symbol">}</a> <a id="1343" class="Symbol">{</a><a id="1344" href="Categories.FreeObjects.Free.html#1344" class="Bound">D</a> <a id="1346" class="Symbol">:</a> <a id="1348" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="1357" href="Categories.FreeObjects.Free.html#460" class="Generalizable">o&#39;</a> <a id="1360" href="Categories.FreeObjects.Free.html#463" class="Generalizable">&#39;</a> <a id="1363" href="Categories.FreeObjects.Free.html#466" class="Generalizable">e&#39;</a><a id="1365" class="Symbol">}</a> <a id="1367" class="Symbol">(</a><a id="1368" href="Categories.FreeObjects.Free.html#1368" class="Bound">U</a> <a id="1370" class="Symbol">:</a> <a id="1372" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1380" href="Categories.FreeObjects.Free.html#1344" class="Bound">D</a> <a id="1382" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a><a id="1383" class="Symbol">)</a> <a id="1385" class="Keyword">where</a>
<a id="1394" class="Keyword">private</a>
<a id="1406" class="Keyword">module</a> <a id="1413" href="Categories.FreeObjects.Free.html#1413" class="Module">C</a> <a id="1415" class="Symbol">=</a> <a id="1417" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="1426" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a> <a id="1428" class="Keyword">using</a> <a id="1434" class="Symbol">(</a><a id="1435" href="Categories.Category.Core.html#559" class="Field">Obj</a><a id="1438" class="Symbol">;</a> <a id="1440" href="Categories.Category.Core.html#630" class="Field">id</a><a id="1442" class="Symbol">;</a> <a id="1444" href="Categories.Category.Core.html#575" class="Field Operator">_⇒_</a><a id="1447" class="Symbol">;</a> <a id="1449" href="Categories.Category.Core.html#656" class="Field Operator">_∘_</a><a id="1452" class="Symbol">;</a> <a id="1454" href="Categories.Category.Core.html#1145" class="Field">identityʳ</a><a id="1463" class="Symbol">;</a> <a id="1465" href="Categories.Category.Core.html#1096" class="Field">identityˡ</a><a id="1474" class="Symbol">;</a> <a id="1476" href="Categories.Category.Core.html#715" class="Field">assoc</a><a id="1481" class="Symbol">;</a> <a id="1483" href="Categories.Category.Core.html#1384" class="Field">equiv</a><a id="1488" class="Symbol">;</a> <a id="1490" class="Keyword">module</a> <a id="1497" href="Categories.Category.Core.html#1530" class="Module">Equiv</a><a id="1502" class="Symbol">;</a> <a id="1504" class="Keyword">module</a> <a id="1511" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a><a id="1523" class="Symbol">)</a>
<a id="1529" class="Keyword">module</a> <a id="1536" href="Categories.FreeObjects.Free.html#1536" class="Module">D</a> <a id="1538" class="Symbol">=</a> <a id="1540" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="1549" href="Categories.FreeObjects.Free.html#1344" class="Bound">D</a> <a id="1551" class="Keyword">using</a> <a id="1557" class="Symbol">(</a><a id="1558" href="Categories.Category.Core.html#559" class="Field">Obj</a><a id="1561" class="Symbol">;</a> <a id="1563" href="Categories.Category.Core.html#630" class="Field">id</a><a id="1565" class="Symbol">;</a> <a id="1567" href="Categories.Category.Core.html#575" class="Field Operator">_⇒_</a><a id="1570" class="Symbol">;</a> <a id="1572" href="Categories.Category.Core.html#656" class="Field Operator">_∘_</a><a id="1575" class="Symbol">;</a> <a id="1577" href="Categories.Category.Core.html#1145" class="Field">identityʳ</a><a id="1586" class="Symbol">;</a> <a id="1588" href="Categories.Category.Core.html#1096" class="Field">identityˡ</a><a id="1597" class="Symbol">;</a> <a id="1599" href="Categories.Category.Core.html#715" class="Field">assoc</a><a id="1604" class="Symbol">;</a> <a id="1606" href="Categories.Category.Core.html#1384" class="Field">equiv</a><a id="1611" class="Symbol">;</a> <a id="1613" class="Keyword">module</a> <a id="1620" href="Categories.Category.Core.html#1530" class="Module">Equiv</a><a id="1625" class="Symbol">;</a> <a id="1627" class="Keyword">module</a> <a id="1634" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a><a id="1646" class="Symbol">)</a>
<a id="1652" class="Keyword">module</a> <a id="1659" href="Categories.FreeObjects.Free.html#1659" class="Module">U</a> <a id="1661" class="Symbol">=</a> <a id="1663" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="1671" href="Categories.FreeObjects.Free.html#1368" class="Bound">U</a> <a id="1673" class="Keyword">using</a> <a id="1679" class="Symbol">(</a><a id="1680" href="Categories.Functor.Core.html#797" class="Function"></a><a id="1681" class="Symbol">;</a> <a id="1683" href="Categories.Functor.Core.html#806" class="Function"></a><a id="1684" class="Symbol">;</a> <a id="1686" href="Categories.Functor.Core.html#511" class="Field">identity</a><a id="1694" class="Symbol">;</a> <a id="1696" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a><a id="1708" class="Symbol">)</a>
<a id="1714" class="Comment">-- free object construction is functorial</a>
<a id="1758" href="Categories.FreeObjects.Free.html#1758" class="Function">FO⇒Functor</a> <a id="1769" class="Symbol">:</a> <a id="1771" class="Symbol">(</a><a id="1772" href="Categories.FreeObjects.Free.html#1772" class="Bound">F</a> <a id="1774" class="Symbol">:</a> <a id="1776" class="Symbol">((</a><a id="1778" href="Categories.FreeObjects.Free.html#1778" class="Bound">X</a> <a id="1780" class="Symbol">:</a> <a id="1782" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="1787" class="Symbol">)</a> <a id="1789" class="Symbol"></a> <a id="1791" href="Categories.FreeObjects.Free.html#485" class="Record">FreeObject</a> <a id="1802" href="Categories.FreeObjects.Free.html#1368" class="Bound">U</a> <a id="1804" href="Categories.FreeObjects.Free.html#1778" class="Bound">X</a><a id="1805" class="Symbol">))</a> <a id="1808" class="Symbol"></a> <a id="1810" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1818" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a> <a id="1820" href="Categories.FreeObjects.Free.html#1344" class="Bound">D</a>
<a id="1824" href="Categories.FreeObjects.Free.html#1758" class="Function">FO⇒Functor</a> <a id="1835" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="1837" class="Symbol">=</a>
<a id="1843" class="Keyword">record</a>
<a id="1856" class="Symbol">{</a> <a id="1858" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="1861" class="Symbol">=</a> <a id="1863" class="Symbol">λ</a> <a id="1865" href="Categories.FreeObjects.Free.html#1865" class="Bound">X</a> <a id="1867" class="Symbol"></a> <a id="1869" href="Categories.FreeObjects.Free.html#838" class="Field">FX</a> <a id="1872" class="Symbol">(</a><a id="1873" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="1875" href="Categories.FreeObjects.Free.html#1865" class="Bound">X</a><a id="1876" class="Symbol">)</a>
<a id="1884" class="Symbol">;</a> <a id="1886" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="1889" class="Symbol">=</a> <a id="1891" class="Symbol">λ</a> <a id="1893" class="Symbol">{</a><a id="1894" href="Categories.FreeObjects.Free.html#1894" class="Bound">X</a><a id="1895" class="Symbol">}</a> <a id="1897" class="Symbol">{</a><a id="1898" href="Categories.FreeObjects.Free.html#1898" class="Bound">Y</a><a id="1899" class="Symbol">}</a> <a id="1901" href="Categories.FreeObjects.Free.html#1901" class="Bound">f</a> <a id="1903" class="Symbol"></a> <a id="1905" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a> <a id="1908" class="Symbol">(</a><a id="1909" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="1911" href="Categories.FreeObjects.Free.html#1894" class="Bound">X</a><a id="1912" class="Symbol">)</a> <a id="1914" class="Symbol">(</a><a id="1915" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="1917" class="Symbol">(</a><a id="1918" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="1920" href="Categories.FreeObjects.Free.html#1898" class="Bound">Y</a><a id="1921" class="Symbol">)</a> <a id="1923" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="1927" href="Categories.FreeObjects.Free.html#1901" class="Bound">f</a><a id="1928" class="Symbol">)</a>
<a id="1936" class="Symbol">;</a> <a id="1938" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="1947" class="Symbol">=</a> <a id="1949" class="Symbol">λ</a> <a id="1951" class="Symbol">{</a><a id="1952" href="Categories.FreeObjects.Free.html#1952" class="Bound">X</a><a id="1953" class="Symbol">}</a> <a id="1955" class="Symbol"></a> <a id="1957" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="1961" class="Symbol">(</a><a id="1962" href="Categories.FreeObjects.Free.html#1017" class="Field">*-uniq</a> <a id="1969" class="Symbol">(</a><a id="1970" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="1972" href="Categories.FreeObjects.Free.html#1952" class="Bound">X</a><a id="1973" class="Symbol">)</a> <a id="1975" class="Symbol">(</a><a id="1976" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="1978" class="Symbol">(</a><a id="1979" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="1981" href="Categories.FreeObjects.Free.html#1952" class="Bound">X</a><a id="1982" class="Symbol">)</a> <a id="1984" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="1988" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="1992" class="Symbol">)</a> <a id="1994" href="Categories.Category.Core.html#630" class="Function">D.id</a> <a id="1999" class="Symbol">(</a><a id="2000" href="Categories.FreeObjects.Free.html#2456" class="Function">id-proof</a> <a id="2009" class="Symbol">{</a><a id="2010" href="Categories.FreeObjects.Free.html#1952" class="Bound">X</a><a id="2011" class="Symbol">}))</a>
<a id="2021" class="Symbol">;</a> <a id="2023" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="2036" class="Symbol">=</a> <a id="2038" class="Symbol">λ</a> <a id="2040" class="Symbol">{</a><a id="2041" href="Categories.FreeObjects.Free.html#2041" class="Bound">X</a><a id="2042" class="Symbol">}</a> <a id="2044" class="Symbol">{</a><a id="2045" href="Categories.FreeObjects.Free.html#2045" class="Bound">Y</a><a id="2046" class="Symbol">}</a> <a id="2048" class="Symbol">{</a><a id="2049" href="Categories.FreeObjects.Free.html#2049" class="Bound">Z</a><a id="2050" class="Symbol">}</a> <a id="2052" class="Symbol">{</a><a id="2053" href="Categories.FreeObjects.Free.html#2053" class="Bound">f</a><a id="2054" class="Symbol">}</a> <a id="2056" class="Symbol">{</a><a id="2057" href="Categories.FreeObjects.Free.html#2057" class="Bound">g</a><a id="2058" class="Symbol">}</a> <a id="2060" class="Symbol"></a>
<a id="2072" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="2076" class="Symbol">(</a><a id="2077" href="Categories.FreeObjects.Free.html#1017" class="Field">*-uniq</a> <a id="2084" class="Symbol">(</a><a id="2085" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="2087" href="Categories.FreeObjects.Free.html#2041" class="Bound">X</a><a id="2088" class="Symbol">)</a> <a id="2090" class="Symbol">(</a><a id="2091" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="2093" class="Symbol">(</a><a id="2094" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="2096" href="Categories.FreeObjects.Free.html#2049" class="Bound">Z</a><a id="2097" class="Symbol">)</a> <a id="2099" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2103" class="Symbol">(</a><a id="2104" href="Categories.FreeObjects.Free.html#2057" class="Bound">g</a> <a id="2106" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2110" href="Categories.FreeObjects.Free.html#2053" class="Bound">f</a><a id="2111" class="Symbol">))</a>
<a id="2128" class="Symbol">((</a><a id="2130" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a> <a id="2133" class="Symbol">(</a><a id="2134" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="2136" href="Categories.FreeObjects.Free.html#2045" class="Bound">Y</a><a id="2137" class="Symbol">)</a> <a id="2139" class="Symbol">(</a><a id="2140" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="2142" class="Symbol">(</a><a id="2143" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="2145" href="Categories.FreeObjects.Free.html#2049" class="Bound">Z</a><a id="2146" class="Symbol">)</a> <a id="2148" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2152" href="Categories.FreeObjects.Free.html#2057" class="Bound">g</a><a id="2153" class="Symbol">))</a> <a id="2156" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="2160" class="Symbol">(</a><a id="2161" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a> <a id="2164" class="Symbol">(</a><a id="2165" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="2167" href="Categories.FreeObjects.Free.html#2041" class="Bound">X</a><a id="2168" class="Symbol">)</a> <a id="2170" class="Symbol">(</a><a id="2171" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="2173" class="Symbol">(</a><a id="2174" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="2176" href="Categories.FreeObjects.Free.html#2045" class="Bound">Y</a><a id="2177" class="Symbol">)</a> <a id="2179" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2183" href="Categories.FreeObjects.Free.html#2053" class="Bound">f</a><a id="2184" class="Symbol">)))</a>
<a id="2202" class="Symbol">(</a><a id="2203" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="2205" class="Symbol">(</a><a id="2206" href="Categories.FreeObjects.Free.html#2818" class="Function">hom-proof</a> <a id="2216" class="Symbol">{</a><a id="2217" href="Categories.FreeObjects.Free.html#2041" class="Bound">X</a><a id="2218" class="Symbol">}</a> <a id="2220" class="Symbol">{</a><a id="2221" href="Categories.FreeObjects.Free.html#2045" class="Bound">Y</a><a id="2222" class="Symbol">}</a> <a id="2224" class="Symbol">{</a><a id="2225" href="Categories.FreeObjects.Free.html#2049" class="Bound">Z</a><a id="2226" class="Symbol">}</a> <a id="2228" class="Symbol">{</a><a id="2229" href="Categories.FreeObjects.Free.html#2053" class="Bound">f</a><a id="2230" class="Symbol">}</a> <a id="2232" class="Symbol">{</a><a id="2233" href="Categories.FreeObjects.Free.html#2057" class="Bound">g</a><a id="2234" class="Symbol">}))</a>
<a id="2252" class="Symbol">)</a>
<a id="2260" class="Symbol">;</a> <a id="2262" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="2271" class="Symbol">=</a> <a id="2273" class="Symbol">λ</a> <a id="2275" class="Symbol">{</a><a id="2276" href="Categories.FreeObjects.Free.html#2276" class="Bound">X</a><a id="2277" class="Symbol">}</a> <a id="2279" class="Symbol">{</a><a id="2280" href="Categories.FreeObjects.Free.html#2280" class="Bound">Y</a><a id="2281" class="Symbol">}</a> <a id="2283" class="Symbol">{</a><a id="2284" href="Categories.FreeObjects.Free.html#2284" class="Bound">f</a><a id="2285" class="Symbol">}</a> <a id="2287" class="Symbol">{</a><a id="2288" href="Categories.FreeObjects.Free.html#2288" class="Bound">g</a><a id="2289" class="Symbol">}</a> <a id="2291" href="Categories.FreeObjects.Free.html#2291" class="Bound">f≈g</a> <a id="2295" class="Symbol"></a> <a id="2297" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="2301" class="Symbol">(</a><a id="2302" href="Categories.FreeObjects.Free.html#1017" class="Field">*-uniq</a> <a id="2309" class="Symbol">(</a><a id="2310" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="2312" href="Categories.FreeObjects.Free.html#2276" class="Bound">X</a><a id="2313" class="Symbol">)</a> <a id="2315" class="Symbol">(</a><a id="2316" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="2318" class="Symbol">(</a><a id="2319" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="2321" href="Categories.FreeObjects.Free.html#2280" class="Bound">Y</a><a id="2322" class="Symbol">)</a> <a id="2324" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2328" href="Categories.FreeObjects.Free.html#2284" class="Bound">f</a><a id="2329" class="Symbol">)</a> <a id="2331" class="Symbol">(</a><a id="2332" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a> <a id="2335" class="Symbol">(</a><a id="2336" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="2338" href="Categories.FreeObjects.Free.html#2276" class="Bound">X</a><a id="2339" class="Symbol">)</a> <a id="2341" class="Symbol">(</a><a id="2342" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="2344" class="Symbol">(</a><a id="2345" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="2347" href="Categories.FreeObjects.Free.html#2280" class="Bound">Y</a><a id="2348" class="Symbol">)</a> <a id="2350" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2354" href="Categories.FreeObjects.Free.html#2288" class="Bound">g</a><a id="2355" class="Symbol">))</a> <a id="2358" class="Symbol">(</a><a id="2359" href="Categories.FreeObjects.Free.html#3760" class="Function">resp-proof</a> <a id="2371" href="Categories.FreeObjects.Free.html#2291" class="Bound">f≈g</a><a id="2374" class="Symbol">))</a>
<a id="2384" class="Symbol">}</a>
<a id="2392" class="Keyword">where</a>
<a id="2406" class="Keyword">open</a> <a id="2411" href="Categories.Category.Core.html#2462" class="Module">C.HomReasoning</a>
<a id="2434" class="Keyword">open</a> <a id="2439" href="Categories.Category.Core.html#1530" class="Module">D.Equiv</a>
<a id="2456" href="Categories.FreeObjects.Free.html#2456" class="Function">id-proof</a> <a id="2465" class="Symbol">:</a> <a id="2467" class="Symbol"></a> <a id="2469" class="Symbol">{</a><a id="2470" href="Categories.FreeObjects.Free.html#2470" class="Bound">X</a> <a id="2472" class="Symbol">:</a> <a id="2474" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="2479" class="Symbol">}</a> <a id="2481" class="Symbol"></a> <a id="2483" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a> <a id="2485" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="2487" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="2491" href="Categories.Category.Core.html#630" class="Function">D.id</a> <a id="2496" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2500" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="2502" class="Symbol">(</a><a id="2503" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="2505" href="Categories.FreeObjects.Free.html#2470" class="Bound">X</a><a id="2506" class="Symbol">)</a> <a id="2508" href="Categories.Category.html#609" class="Function Operator"></a> <a id="2510" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="2512" class="Symbol">(</a><a id="2513" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="2515" href="Categories.FreeObjects.Free.html#2470" class="Bound">X</a><a id="2516" class="Symbol">)</a> <a id="2518" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2522" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="2527" href="Categories.Category.html#609" class="Function Operator">]</a>
<a id="2537" href="Categories.FreeObjects.Free.html#2456" class="Function">id-proof</a> <a id="2546" class="Symbol">{</a><a id="2547" href="Categories.FreeObjects.Free.html#2547" class="Bound">X</a><a id="2548" class="Symbol">}</a> <a id="2550" class="Symbol">=</a> <a id="2552" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="2569" class="Symbol">(</a><a id="2570" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="2574" href="Categories.Category.Core.html#630" class="Function">D.id</a><a id="2578" class="Symbol">)</a> <a id="2580" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2584" href="Categories.FreeObjects.Free.html#854" class="Function">FX.η</a> <a id="2597" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2600" href="Categories.Functor.Core.html#511" class="Field">U.identity</a> <a id="2611" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="2619" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2632" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="2637" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2641" href="Categories.FreeObjects.Free.html#854" class="Function">FX.η</a> <a id="2660" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2663" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a> <a id="2675" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2688" href="Categories.FreeObjects.Free.html#854" class="Function">FX.η</a> <a id="2693" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2697" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="2716" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="2729" class="Keyword">where</a>
<a id="2747" class="Keyword">open</a> <a id="2752" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="2755" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a>
<a id="2769" class="Keyword">module</a> <a id="2776" href="Categories.FreeObjects.Free.html#2776" class="Module">FX</a> <a id="2779" class="Symbol">=</a> <a id="2781" href="Categories.FreeObjects.Free.html#485" class="Module">FreeObject</a> <a id="2792" class="Symbol">(</a><a id="2793" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="2795" href="Categories.FreeObjects.Free.html#2547" class="Bound">X</a><a id="2796" class="Symbol">)</a> <a id="2798" class="Keyword">using</a> <a id="2804" class="Symbol">(</a><a id="2805" href="Categories.FreeObjects.Free.html#854" class="Field">η</a><a id="2806" class="Symbol">)</a>
<a id="2818" href="Categories.FreeObjects.Free.html#2818" class="Function">hom-proof</a> <a id="2828" class="Symbol">:</a> <a id="2830" class="Symbol"></a> <a id="2832" class="Symbol">{</a><a id="2833" href="Categories.FreeObjects.Free.html#2833" class="Bound">X</a> <a id="2835" class="Symbol">:</a> <a id="2837" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="2842" class="Symbol">}</a> <a id="2844" class="Symbol">{</a><a id="2845" href="Categories.FreeObjects.Free.html#2845" class="Bound">Y</a> <a id="2847" class="Symbol">:</a> <a id="2849" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="2854" class="Symbol">}</a> <a id="2856" class="Symbol">{</a><a id="2857" href="Categories.FreeObjects.Free.html#2857" class="Bound">Z</a> <a id="2859" class="Symbol">:</a> <a id="2861" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="2866" class="Symbol">}</a> <a id="2868" class="Symbol">{</a><a id="2869" href="Categories.FreeObjects.Free.html#2869" class="Bound">f</a> <a id="2871" class="Symbol">:</a> <a id="2873" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a> <a id="2875" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="2877" href="Categories.FreeObjects.Free.html#2833" class="Bound">X</a> <a id="2879" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="2881" href="Categories.FreeObjects.Free.html#2845" class="Bound">Y</a> <a id="2883" href="Categories.Category.html#502" class="Function Operator">]</a><a id="2884" class="Symbol">}</a> <a id="2886" class="Symbol">{</a><a id="2887" href="Categories.FreeObjects.Free.html#2887" class="Bound">g</a> <a id="2889" class="Symbol">:</a> <a id="2891" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a> <a id="2893" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="2895" href="Categories.FreeObjects.Free.html#2845" class="Bound">Y</a> <a id="2897" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="2899" href="Categories.FreeObjects.Free.html#2857" class="Bound">Z</a> <a id="2901" href="Categories.Category.html#502" class="Function Operator">]</a><a id="2902" class="Symbol">}</a> <a id="2904" class="Symbol"></a>
<a id="2918" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a> <a id="2920" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="2922" class="Symbol">(</a><a id="2923" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="2925" class="Symbol">(</a><a id="2926" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="2928" href="Categories.FreeObjects.Free.html#2857" class="Bound">Z</a><a id="2929" class="Symbol">)</a> <a id="2931" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2935" class="Symbol">(</a><a id="2936" href="Categories.FreeObjects.Free.html#2887" class="Bound">g</a> <a id="2938" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2942" href="Categories.FreeObjects.Free.html#2869" class="Bound">f</a><a id="2943" class="Symbol">))</a> <a id="2946" href="Categories.Category.html#609" class="Function Operator"></a> <a id="2948" class="Symbol">(</a><a id="2949" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="2953" class="Symbol">(</a><a id="2954" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a> <a id="2957" class="Symbol">(</a><a id="2958" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="2960" href="Categories.FreeObjects.Free.html#2845" class="Bound">Y</a><a id="2961" class="Symbol">)</a> <a id="2963" class="Symbol">(</a><a id="2964" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="2966" class="Symbol">(</a><a id="2967" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="2969" href="Categories.FreeObjects.Free.html#2857" class="Bound">Z</a><a id="2970" class="Symbol">)</a> <a id="2972" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2976" href="Categories.FreeObjects.Free.html#2887" class="Bound">g</a><a id="2977" class="Symbol">)</a> <a id="2979" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="2983" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a> <a id="2986" class="Symbol">(</a><a id="2987" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="2989" href="Categories.FreeObjects.Free.html#2833" class="Bound">X</a><a id="2990" class="Symbol">)</a> <a id="2992" class="Symbol">(</a><a id="2993" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="2995" class="Symbol">(</a><a id="2996" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="2998" href="Categories.FreeObjects.Free.html#2845" class="Bound">Y</a><a id="2999" class="Symbol">)</a> <a id="3001" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3005" href="Categories.FreeObjects.Free.html#2869" class="Bound">f</a><a id="3006" class="Symbol">)</a> <a id="3008" class="Symbol">)</a> <a id="3010" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3014" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="3016" class="Symbol">(</a><a id="3017" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="3019" href="Categories.FreeObjects.Free.html#2833" class="Bound">X</a><a id="3020" class="Symbol">))</a> <a id="3023" href="Categories.Category.html#609" class="Function Operator">]</a>
<a id="3033" href="Categories.FreeObjects.Free.html#2818" class="Function">hom-proof</a> <a id="3043" class="Symbol">{</a><a id="3044" href="Categories.FreeObjects.Free.html#3044" class="Bound">X</a><a id="3045" class="Symbol">}</a> <a id="3047" class="Symbol">{</a><a id="3048" href="Categories.FreeObjects.Free.html#3048" class="Bound">Y</a><a id="3049" class="Symbol">}</a> <a id="3051" class="Symbol">{</a><a id="3052" href="Categories.FreeObjects.Free.html#3052" class="Bound">Z</a><a id="3053" class="Symbol">}</a> <a id="3055" class="Symbol">{</a><a id="3056" href="Categories.FreeObjects.Free.html#3056" class="Bound">f</a><a id="3057" class="Symbol">}</a> <a id="3059" class="Symbol">{</a><a id="3060" href="Categories.FreeObjects.Free.html#3060" class="Bound">g</a><a id="3061" class="Symbol">}</a> <a id="3063" class="Symbol">=</a> <a id="3066" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="3082" href="Categories.FreeObjects.Free.html#854" class="Function">FZ.η</a> <a id="3087" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3091" class="Symbol">(</a><a id="3092" href="Categories.FreeObjects.Free.html#3060" class="Bound">g</a> <a id="3094" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3098" href="Categories.FreeObjects.Free.html#3056" class="Bound">f</a><a id="3099" class="Symbol">)</a> <a id="3153" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="3157" href="Categories.Morphism.Reasoning.Core.html#2485" class="Function">pushˡ</a> <a id="3163" class="Symbol">(</a><a id="3164" href="Categories.FreeObjects.Free.html#937" class="Function">FY.*-lift</a> <a id="3174" class="Symbol">(</a><a id="3175" href="Categories.FreeObjects.Free.html#854" class="Function">FZ.η</a> <a id="3180" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3184" href="Categories.FreeObjects.Free.html#3060" class="Bound">g</a><a id="3185" class="Symbol">))</a> <a id="3188" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="3202" class="Symbol">(</a><a id="3203" href="Categories.Functor.Core.html#806" class="Function">U.₁</a><a id="3206" class="Symbol">((</a><a id="3208" href="Categories.FreeObjects.Free.html#854" class="Function">FZ.η</a> <a id="3213" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3217" href="Categories.FreeObjects.Free.html#3060" class="Bound">g</a><a id="3218" class="Symbol">)</a> <a id="3220" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FY.*</a><a id="3224" class="Symbol">)</a> <a id="3226" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3230" href="Categories.FreeObjects.Free.html#854" class="Function">FY.η</a><a id="3234" class="Symbol">)</a> <a id="3236" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3240" href="Categories.FreeObjects.Free.html#3056" class="Bound">f</a> <a id="3273" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="3277" href="Categories.Morphism.Reasoning.Core.html#2347" class="Function">pushʳ</a> <a id="3283" class="Symbol">(</a><a id="3284" href="Categories.FreeObjects.Free.html#937" class="Function">FX.*-lift</a> <a id="3294" class="Symbol">(</a><a id="3295" href="Categories.FreeObjects.Free.html#854" class="Function">FY.η</a> <a id="3300" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3304" href="Categories.FreeObjects.Free.html#3056" class="Bound">f</a><a id="3305" class="Symbol">))</a> <a id="3308" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="3321" href="Categories.Functor.Core.html#806" class="Function">U.₁</a><a id="3324" class="Symbol">((</a><a id="3326" href="Categories.FreeObjects.Free.html#854" class="Function">FZ.η</a> <a id="3331" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3335" href="Categories.FreeObjects.Free.html#3060" class="Bound">g</a><a id="3336" class="Symbol">)</a> <a id="3338" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FY.*</a><a id="3342" class="Symbol">)</a> <a id="3344" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3348" class="Symbol">(</a><a id="3349" href="Categories.Functor.Core.html#806" class="Function">U.₁</a><a id="3352" class="Symbol">((</a><a id="3354" href="Categories.FreeObjects.Free.html#854" class="Function">FY.η</a> <a id="3359" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3363" href="Categories.FreeObjects.Free.html#3056" class="Bound">f</a><a id="3364" class="Symbol">)</a> <a id="3366" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FX.*</a><a id="3370" class="Symbol">)</a> <a id="3372" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3376" href="Categories.FreeObjects.Free.html#854" class="Function">FX.η</a><a id="3380" class="Symbol">)</a> <a id="3392" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="3396" href="Categories.Morphism.Reasoning.Core.html#2485" class="Function">pushˡ</a> <a id="3402" href="Categories.Functor.Core.html#565" class="Field">U.homomorphism</a> <a id="3417" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="3434" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="3438" class="Symbol">((</a><a id="3440" href="Categories.FreeObjects.Free.html#854" class="Function">FZ.η</a> <a id="3445" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3449" href="Categories.FreeObjects.Free.html#3060" class="Bound">g</a><a id="3450" class="Symbol">)</a> <a id="3452" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FY.*</a> <a id="3457" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="3461" class="Symbol">(</a><a id="3462" href="Categories.FreeObjects.Free.html#854" class="Function">FY.η</a> <a id="3467" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3471" href="Categories.FreeObjects.Free.html#3056" class="Bound">f</a><a id="3472" class="Symbol">)</a> <a id="3474" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FX.*</a><a id="3478" class="Symbol">)</a> <a id="3480" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3484" href="Categories.FreeObjects.Free.html#854" class="Function">FX.η</a> <a id="3505" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="3517" class="Keyword">where</a>
<a id="3535" class="Keyword">open</a> <a id="3540" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="3543" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a>
<a id="3557" class="Keyword">open</a> <a id="3562" href="Categories.Category.Core.html#1530" class="Module">C.Equiv</a>
<a id="3582" class="Keyword">module</a> <a id="3589" href="Categories.FreeObjects.Free.html#3589" class="Module">FX</a> <a id="3592" class="Symbol">=</a> <a id="3595" href="Categories.FreeObjects.Free.html#485" class="Module">FreeObject</a> <a id="3606" class="Symbol">(</a><a id="3607" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="3609" href="Categories.FreeObjects.Free.html#3044" class="Bound">X</a><a id="3610" class="Symbol">)</a> <a id="3612" class="Keyword">using</a> <a id="3618" class="Symbol">(</a><a id="3619" href="Categories.FreeObjects.Free.html#854" class="Field">η</a><a id="3620" class="Symbol">;</a> <a id="3622" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a><a id="3624" class="Symbol">;</a> <a id="3626" href="Categories.FreeObjects.Free.html#937" class="Field">*-lift</a><a id="3632" class="Symbol">)</a>
<a id="3646" class="Keyword">module</a> <a id="3653" href="Categories.FreeObjects.Free.html#3653" class="Module">FY</a> <a id="3656" class="Symbol">=</a> <a id="3659" href="Categories.FreeObjects.Free.html#485" class="Module">FreeObject</a> <a id="3670" class="Symbol">(</a><a id="3671" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="3673" href="Categories.FreeObjects.Free.html#3048" class="Bound">Y</a><a id="3674" class="Symbol">)</a> <a id="3676" class="Keyword">using</a> <a id="3682" class="Symbol">(</a><a id="3683" href="Categories.FreeObjects.Free.html#854" class="Field">η</a><a id="3684" class="Symbol">;</a> <a id="3686" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a><a id="3688" class="Symbol">;</a> <a id="3690" href="Categories.FreeObjects.Free.html#937" class="Field">*-lift</a><a id="3696" class="Symbol">)</a>
<a id="3710" class="Keyword">module</a> <a id="3717" href="Categories.FreeObjects.Free.html#3717" class="Module">FZ</a> <a id="3720" class="Symbol">=</a> <a id="3723" href="Categories.FreeObjects.Free.html#485" class="Module">FreeObject</a> <a id="3734" class="Symbol">(</a><a id="3735" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="3737" href="Categories.FreeObjects.Free.html#3052" class="Bound">Z</a><a id="3738" class="Symbol">)</a> <a id="3740" class="Keyword">using</a> <a id="3746" class="Symbol">(</a><a id="3747" href="Categories.FreeObjects.Free.html#854" class="Field">η</a><a id="3748" class="Symbol">)</a>
<a id="3760" href="Categories.FreeObjects.Free.html#3760" class="Function">resp-proof</a> <a id="3771" class="Symbol">:{</a><a id="3773" href="Categories.FreeObjects.Free.html#3773" class="Bound">X</a> <a id="3775" href="Categories.FreeObjects.Free.html#3775" class="Bound">Y</a> <a id="3777" class="Symbol">:</a> <a id="3779" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="3784" class="Symbol">}</a> <a id="3786" class="Symbol">{</a><a id="3787" href="Categories.FreeObjects.Free.html#3787" class="Bound">f</a> <a id="3789" href="Categories.FreeObjects.Free.html#3789" class="Bound">g</a> <a id="3791" class="Symbol">:</a> <a id="3793" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a> <a id="3795" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="3797" href="Categories.FreeObjects.Free.html#3773" class="Bound">X</a> <a id="3799" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="3801" href="Categories.FreeObjects.Free.html#3775" class="Bound">Y</a> <a id="3803" href="Categories.Category.html#502" class="Function Operator">]</a><a id="3804" class="Symbol">}</a> <a id="3806" class="Symbol"></a> <a id="3808" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a> <a id="3810" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="3812" href="Categories.FreeObjects.Free.html#3787" class="Bound">f</a> <a id="3814" href="Categories.Category.html#609" class="Function Operator"></a> <a id="3816" href="Categories.FreeObjects.Free.html#3789" class="Bound">g</a> <a id="3818" href="Categories.Category.html#609" class="Function Operator">]</a> <a id="3820" class="Symbol"></a> <a id="3822" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a> <a id="3824" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="3826" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="3830" class="Symbol">((</a><a id="3832" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="3834" href="Categories.FreeObjects.Free.html#3773" class="Bound">X</a> <a id="3836" href="Categories.FreeObjects.Free.html#880" class="Field Operator">*</a><a id="3837" class="Symbol">)</a> <a id="3839" class="Symbol">(</a><a id="3840" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="3842" class="Symbol">(</a><a id="3843" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="3845" href="Categories.FreeObjects.Free.html#3775" class="Bound">Y</a><a id="3846" class="Symbol">)</a> <a id="3848" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3852" href="Categories.FreeObjects.Free.html#3789" class="Bound">g</a><a id="3853" class="Symbol">))</a> <a id="3856" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3860" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="3862" class="Symbol">(</a><a id="3863" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="3865" href="Categories.FreeObjects.Free.html#3773" class="Bound">X</a><a id="3866" class="Symbol">)</a> <a id="3868" href="Categories.Category.html#609" class="Function Operator"></a> <a id="3870" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="3872" class="Symbol">(</a><a id="3873" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="3875" href="Categories.FreeObjects.Free.html#3775" class="Bound">Y</a><a id="3876" class="Symbol">)</a> <a id="3878" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3882" href="Categories.FreeObjects.Free.html#3787" class="Bound">f</a> <a id="3884" href="Categories.Category.html#609" class="Function Operator">]</a>
<a id="3894" href="Categories.FreeObjects.Free.html#3760" class="Function">resp-proof</a> <a id="3905" class="Symbol">{</a><a id="3906" href="Categories.FreeObjects.Free.html#3906" class="Bound">X</a><a id="3907" class="Symbol">}</a> <a id="3909" class="Symbol">{</a><a id="3910" href="Categories.FreeObjects.Free.html#3910" class="Bound">Y</a><a id="3911" class="Symbol">}</a> <a id="3913" class="Symbol">{</a><a id="3914" href="Categories.FreeObjects.Free.html#3914" class="Bound">f</a><a id="3915" class="Symbol">}</a> <a id="3917" class="Symbol">{</a><a id="3918" href="Categories.FreeObjects.Free.html#3918" class="Bound">g</a><a id="3919" class="Symbol">}</a> <a id="3921" href="Categories.FreeObjects.Free.html#3921" class="Bound">f≈g</a> <a id="3925" class="Symbol">=</a> <a id="3928" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="3946" href="Categories.Functor.Core.html#806" class="Function">U.₁</a><a id="3949" class="Symbol">((</a><a id="3951" href="Categories.FreeObjects.Free.html#854" class="Function">FY.η</a> <a id="3956" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3960" href="Categories.FreeObjects.Free.html#3918" class="Bound">g</a><a id="3961" class="Symbol">)</a> <a id="3963" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FX.*</a><a id="3967" class="Symbol">)</a> <a id="3969" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="3973" href="Categories.FreeObjects.Free.html#854" class="Function">FX.η</a> <a id="3983" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="3986" href="Categories.FreeObjects.Free.html#937" class="Function">FX.*-lift</a> <a id="3996" class="Symbol">(</a><a id="3997" href="Categories.FreeObjects.Free.html#854" class="Function">FY.η</a> <a id="4002" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="4006" href="Categories.FreeObjects.Free.html#3918" class="Bound">g</a><a id="4007" class="Symbol">)</a> <a id="4009" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="4023" class="Symbol">(</a><a id="4024" href="Categories.FreeObjects.Free.html#854" class="Function">FY.η</a> <a id="4029" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="4033" href="Categories.FreeObjects.Free.html#3918" class="Bound">g</a><a id="4034" class="Symbol">)</a> <a id="4060" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="4064" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="4072" href="Categories.FreeObjects.Free.html#3921" class="Bound">f≈g</a> <a id="4076" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="4090" class="Symbol">(</a><a id="4091" href="Categories.FreeObjects.Free.html#854" class="Function">FY.η</a> <a id="4096" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="4100" href="Categories.FreeObjects.Free.html#3914" class="Bound">f</a><a id="4101" class="Symbol">)</a> <a id="4127" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="4141" class="Keyword">where</a>
<a id="4161" class="Keyword">module</a> <a id="4168" href="Categories.FreeObjects.Free.html#4168" class="Module">FX</a> <a id="4171" class="Symbol">=</a> <a id="4173" href="Categories.FreeObjects.Free.html#485" class="Module">FreeObject</a> <a id="4184" class="Symbol">(</a><a id="4185" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="4187" href="Categories.FreeObjects.Free.html#3906" class="Bound">X</a><a id="4188" class="Symbol">)</a> <a id="4190" class="Keyword">using</a> <a id="4196" class="Symbol">(</a><a id="4197" href="Categories.FreeObjects.Free.html#854" class="Field">η</a><a id="4198" class="Symbol">;</a> <a id="4200" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a><a id="4202" class="Symbol">;</a> <a id="4204" href="Categories.FreeObjects.Free.html#937" class="Field">*-lift</a><a id="4210" class="Symbol">)</a>
<a id="4226" class="Keyword">module</a> <a id="4233" href="Categories.FreeObjects.Free.html#4233" class="Module">FY</a> <a id="4236" class="Symbol">=</a> <a id="4238" href="Categories.FreeObjects.Free.html#485" class="Module">FreeObject</a> <a id="4249" class="Symbol">(</a><a id="4250" href="Categories.FreeObjects.Free.html#1835" class="Bound">F</a> <a id="4252" href="Categories.FreeObjects.Free.html#3910" class="Bound">Y</a><a id="4253" class="Symbol">)</a> <a id="4255" class="Keyword">using</a> <a id="4261" class="Symbol">(</a><a id="4262" href="Categories.FreeObjects.Free.html#854" class="Field">η</a><a id="4263" class="Symbol">;</a> <a id="4265" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a><a id="4267" class="Symbol">;</a> <a id="4269" href="Categories.FreeObjects.Free.html#937" class="Field">*-lift</a><a id="4275" class="Symbol">)</a>
<a id="4283" href="Categories.FreeObjects.Free.html#4283" class="Function">FO⇒unit</a> <a id="4291" class="Symbol">:</a> <a id="4293" class="Symbol">(</a><a id="4294" href="Categories.FreeObjects.Free.html#4294" class="Bound">F</a> <a id="4296" class="Symbol">:</a> <a id="4298" class="Symbol">((</a><a id="4300" href="Categories.FreeObjects.Free.html#4300" class="Bound">X</a> <a id="4302" class="Symbol">:</a> <a id="4304" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="4309" class="Symbol">)</a> <a id="4311" class="Symbol"></a> <a id="4313" href="Categories.FreeObjects.Free.html#485" class="Record">FreeObject</a> <a id="4324" href="Categories.FreeObjects.Free.html#1368" class="Bound">U</a> <a id="4326" href="Categories.FreeObjects.Free.html#4300" class="Bound">X</a><a id="4327" class="Symbol">))</a> <a id="4330" class="Symbol"></a> <a id="4332" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="4354" href="Categories.FreeObjects.Free.html#268" class="Function">idF</a> <a id="4358" class="Symbol">(</a><a id="4359" href="Categories.FreeObjects.Free.html#1368" class="Bound">U</a> <a id="4361" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="4364" href="Categories.FreeObjects.Free.html#1758" class="Function">FO⇒Functor</a> <a id="4375" href="Categories.FreeObjects.Free.html#4294" class="Bound">F</a><a id="4376" class="Symbol">)</a>
<a id="4380" href="Categories.FreeObjects.Free.html#4283" class="Function">FO⇒unit</a> <a id="4388" href="Categories.FreeObjects.Free.html#4388" class="Bound">F</a> <a id="4390" class="Symbol">=</a> <a id="4392" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="4401" class="Symbol">(</a><a id="4402" class="Keyword">record</a> <a id="4409" class="Symbol">{</a> <a id="4411" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="4413" class="Symbol">=</a> <a id="4415" class="Symbol">λ</a> <a id="4417" href="Categories.FreeObjects.Free.html#4417" class="Bound">X</a> <a id="4419" class="Symbol"></a> <a id="4421" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="4423" class="Symbol">(</a><a id="4424" href="Categories.FreeObjects.Free.html#4388" class="Bound">F</a> <a id="4426" href="Categories.FreeObjects.Free.html#4417" class="Bound">X</a><a id="4427" class="Symbol">)</a> <a id="4429" class="Symbol">;</a> <a id="4431" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="4439" class="Symbol">=</a> <a id="4441" class="Symbol">λ</a> <a id="4443" class="Symbol">{</a><a id="4444" href="Categories.FreeObjects.Free.html#4444" class="Bound">X</a><a id="4445" class="Symbol">}</a> <a id="4447" class="Symbol">{</a><a id="4448" href="Categories.FreeObjects.Free.html#4448" class="Bound">Y</a><a id="4449" class="Symbol">}</a> <a id="4451" href="Categories.FreeObjects.Free.html#4451" class="Bound">f</a> <a id="4453" class="Symbol"></a> <a id="4455" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="4459" class="Symbol">(</a><a id="4460" href="Categories.FreeObjects.Free.html#937" class="Field">*-lift</a> <a id="4467" class="Symbol">(</a><a id="4468" href="Categories.FreeObjects.Free.html#4388" class="Bound">F</a> <a id="4470" href="Categories.FreeObjects.Free.html#4444" class="Bound">X</a><a id="4471" class="Symbol">)</a> <a id="4473" class="Symbol">(</a><a id="4474" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="4476" class="Symbol">(</a><a id="4477" href="Categories.FreeObjects.Free.html#4388" class="Bound">F</a> <a id="4479" href="Categories.FreeObjects.Free.html#4448" class="Bound">Y</a><a id="4480" class="Symbol">)</a> <a id="4482" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="4486" href="Categories.FreeObjects.Free.html#4451" class="Bound">f</a><a id="4487" class="Symbol">))</a> <a id="4490" class="Symbol">})</a> <a id="4493" class="Keyword">where</a> <a id="4499" class="Keyword">open</a> <a id="4504" href="Categories.Category.Core.html#1530" class="Module">C.Equiv</a>
<a id="4516" class="Comment">-- define a counit</a>
<a id="4537" href="Categories.FreeObjects.Free.html#4537" class="Function">FO⇒counit</a> <a id="4547" class="Symbol">:</a> <a id="4549" class="Symbol">(</a><a id="4550" href="Categories.FreeObjects.Free.html#4550" class="Bound">F</a> <a id="4552" class="Symbol">:</a> <a id="4554" class="Symbol">((</a><a id="4556" href="Categories.FreeObjects.Free.html#4556" class="Bound">X</a> <a id="4558" class="Symbol">:</a> <a id="4560" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="4565" class="Symbol">)</a> <a id="4567" class="Symbol"></a> <a id="4569" href="Categories.FreeObjects.Free.html#485" class="Record">FreeObject</a> <a id="4580" href="Categories.FreeObjects.Free.html#1368" class="Bound">U</a> <a id="4582" href="Categories.FreeObjects.Free.html#4556" class="Bound">X</a><a id="4583" class="Symbol">))</a> <a id="4586" class="Symbol"></a> <a id="4588" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="4610" class="Symbol">(</a><a id="4611" href="Categories.FreeObjects.Free.html#1758" class="Function">FO⇒Functor</a> <a id="4622" href="Categories.FreeObjects.Free.html#4550" class="Bound">F</a> <a id="4624" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="4627" href="Categories.FreeObjects.Free.html#1368" class="Bound">U</a><a id="4628" class="Symbol">)</a> <a id="4630" href="Categories.FreeObjects.Free.html#268" class="Function">idF</a>
<a id="4636" href="Categories.FreeObjects.Free.html#4537" class="Function">FO⇒counit</a> <a id="4646" href="Categories.FreeObjects.Free.html#4646" class="Bound">F</a> <a id="4648" class="Symbol">=</a> <a id="4650" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="4659" class="Symbol">(</a><a id="4660" class="Keyword">record</a> <a id="4667" class="Symbol">{</a> <a id="4669" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="4671" class="Symbol">=</a> <a id="4673" class="Symbol">λ</a> <a id="4675" href="Categories.FreeObjects.Free.html#4675" class="Bound">X</a> <a id="4677" class="Symbol"></a> <a id="4679" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a> <a id="4682" class="Symbol">(</a><a id="4683" href="Categories.FreeObjects.Free.html#4646" class="Bound">F</a> <a id="4685" class="Symbol">(</a><a id="4686" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="4690" href="Categories.FreeObjects.Free.html#4675" class="Bound">X</a><a id="4691" class="Symbol">))</a> <a id="4694" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="4699" class="Symbol">;</a> <a id="4701" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="4709" class="Symbol">=</a> <a id="4711" class="Symbol">λ</a> <a id="4713" class="Symbol">{</a><a id="4714" href="Categories.FreeObjects.Free.html#4714" class="Bound">X</a><a id="4715" class="Symbol">}</a> <a id="4717" class="Symbol">{</a><a id="4718" href="Categories.FreeObjects.Free.html#4718" class="Bound">Y</a><a id="4719" class="Symbol">}</a> <a id="4721" href="Categories.FreeObjects.Free.html#4721" class="Bound">f</a> <a id="4723" class="Symbol"></a> <a id="4725" href="Categories.FreeObjects.Free.html#4866" class="Function">counit-comm</a> <a id="4737" class="Symbol">{</a><a id="4738" href="Categories.FreeObjects.Free.html#4714" class="Bound">X</a><a id="4739" class="Symbol">}</a> <a id="4741" class="Symbol">{</a><a id="4742" href="Categories.FreeObjects.Free.html#4718" class="Bound">Y</a><a id="4743" class="Symbol">}</a> <a id="4745" href="Categories.FreeObjects.Free.html#4721" class="Bound">f</a> <a id="4747" class="Symbol">})</a>
<a id="4757" class="Keyword">where</a>
<a id="4769" class="Keyword">open</a> <a id="4774" href="Categories.Category.Core.html#1530" class="Module">D.Equiv</a>
<a id="4788" class="Keyword">module</a> <a id="4795" href="Categories.FreeObjects.Free.html#4795" class="Module">F</a> <a id="4797" class="Symbol">=</a> <a id="4799" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="4807" class="Symbol">(</a><a id="4808" href="Categories.FreeObjects.Free.html#1758" class="Function">FO⇒Functor</a> <a id="4819" href="Categories.FreeObjects.Free.html#4646" class="Bound">F</a><a id="4820" class="Symbol">)</a> <a id="4822" class="Keyword">using</a> <a id="4828" class="Symbol">(</a><a id="4829" href="Categories.Functor.Core.html#797" class="Function"></a><a id="4830" class="Symbol">;</a> <a id="4832" href="Categories.Functor.Core.html#806" class="Function"></a><a id="4833" class="Symbol">;</a> <a id="4835" href="Categories.Functor.Core.html#511" class="Field">identity</a><a id="4843" class="Symbol">;</a> <a id="4845" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a><a id="4857" class="Symbol">)</a>
<a id="4866" href="Categories.FreeObjects.Free.html#4866" class="Function">counit-comm</a> <a id="4878" class="Symbol">:</a> <a id="4880" class="Symbol">{</a><a id="4881" href="Categories.FreeObjects.Free.html#4881" class="Bound">X</a> <a id="4883" href="Categories.FreeObjects.Free.html#4883" class="Bound">Y</a> <a id="4885" class="Symbol">:</a> <a id="4887" href="Categories.Category.Core.html#559" class="Function">D.Obj</a><a id="4892" class="Symbol">}</a> <a id="4894" class="Symbol">(</a><a id="4895" href="Categories.FreeObjects.Free.html#4895" class="Bound">f</a> <a id="4897" class="Symbol">:</a> <a id="4899" href="Categories.FreeObjects.Free.html#1344" class="Bound">D</a> <a id="4901" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="4903" href="Categories.FreeObjects.Free.html#4881" class="Bound">X</a> <a id="4905" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="4907" href="Categories.FreeObjects.Free.html#4883" class="Bound">Y</a> <a id="4909" href="Categories.Category.html#502" class="Function Operator">]</a><a id="4910" class="Symbol">)</a> <a id="4912" class="Symbol"></a> <a id="4914" href="Categories.FreeObjects.Free.html#1344" class="Bound">D</a> <a id="4916" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="4918" class="Symbol">(</a><a id="4919" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a> <a id="4922" class="Symbol">(</a><a id="4923" href="Categories.FreeObjects.Free.html#4646" class="Bound">F</a> <a id="4925" class="Symbol">(</a><a id="4926" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="4930" href="Categories.FreeObjects.Free.html#4883" class="Bound">Y</a><a id="4931" class="Symbol">))</a> <a id="4934" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="4939" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="4943" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="4947" class="Symbol">(</a><a id="4948" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="4952" href="Categories.FreeObjects.Free.html#4895" class="Bound">f</a><a id="4953" class="Symbol">))</a> <a id="4956" href="Categories.Category.html#609" class="Function Operator"></a> <a id="4958" class="Symbol">(</a><a id="4959" href="Categories.FreeObjects.Free.html#4895" class="Bound">f</a> <a id="4961" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="4965" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a> <a id="4968" class="Symbol">(</a><a id="4969" href="Categories.FreeObjects.Free.html#4646" class="Bound">F</a> <a id="4971" class="Symbol">(</a><a id="4972" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="4976" href="Categories.FreeObjects.Free.html#4881" class="Bound">X</a><a id="4977" class="Symbol">))</a> <a id="4980" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="4984" class="Symbol">)</a> <a id="4986" href="Categories.Category.html#609" class="Function Operator">]</a>
<a id="4996" class="Comment">-- proof idea: id* ∘ FU f ≈ (U f)* ≈ f ∘ id* using *-uniq two times</a>
<a id="5073" class="Comment">-- left identity</a>
<a id="5096" href="Categories.FreeObjects.Free.html#5096" class="Function">counit-comm-left</a> <a id="5113" class="Symbol">:</a> <a id="5115" class="Symbol">{</a><a id="5116" href="Categories.FreeObjects.Free.html#5116" class="Bound">X</a> <a id="5118" href="Categories.FreeObjects.Free.html#5118" class="Bound">Y</a> <a id="5120" class="Symbol">:</a> <a id="5122" href="Categories.Category.Core.html#559" class="Function">D.Obj</a><a id="5127" class="Symbol">}</a> <a id="5129" class="Symbol">(</a><a id="5130" href="Categories.FreeObjects.Free.html#5130" class="Bound">f</a> <a id="5132" class="Symbol">:</a> <a id="5134" href="Categories.FreeObjects.Free.html#1344" class="Bound">D</a> <a id="5136" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="5138" href="Categories.FreeObjects.Free.html#5116" class="Bound">X</a> <a id="5140" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="5142" href="Categories.FreeObjects.Free.html#5118" class="Bound">Y</a> <a id="5144" href="Categories.Category.html#502" class="Function Operator">]</a><a id="5145" class="Symbol">)</a> <a id="5147" class="Symbol"></a> <a id="5149" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a> <a id="5151" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="5153" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="5157" class="Symbol">((</a><a id="5159" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a> <a id="5162" class="Symbol">(</a><a id="5163" href="Categories.FreeObjects.Free.html#4646" class="Bound">F</a> <a id="5165" class="Symbol">(</a><a id="5166" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="5170" href="Categories.FreeObjects.Free.html#5118" class="Bound">Y</a><a id="5171" class="Symbol">))</a> <a id="5174" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="5178" class="Symbol">)</a> <a id="5180" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="5184" class="Symbol">(</a><a id="5185" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="5189" class="Symbol">(</a><a id="5190" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="5194" href="Categories.FreeObjects.Free.html#5130" class="Bound">f</a><a id="5195" class="Symbol">))</a> <a id="5198" class="Symbol">)</a> <a id="5200" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="5204" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="5206" class="Symbol">(</a><a id="5207" href="Categories.FreeObjects.Free.html#4646" class="Bound">F</a> <a id="5209" class="Symbol">(</a><a id="5210" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="5214" href="Categories.FreeObjects.Free.html#5116" class="Bound">X</a><a id="5215" class="Symbol">))</a> <a id="5219" href="Categories.Category.html#609" class="Function Operator"></a> <a id="5221" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="5225" href="Categories.FreeObjects.Free.html#5130" class="Bound">f</a> <a id="5227" href="Categories.Category.html#609" class="Function Operator">]</a>
<a id="5235" href="Categories.FreeObjects.Free.html#5096" class="Function">counit-comm-left</a> <a id="5252" class="Symbol">{</a><a id="5253" href="Categories.FreeObjects.Free.html#5253" class="Bound">X</a><a id="5254" class="Symbol">}</a> <a id="5256" class="Symbol">{</a><a id="5257" href="Categories.FreeObjects.Free.html#5257" class="Bound">Y</a><a id="5258" class="Symbol">}</a> <a id="5260" href="Categories.FreeObjects.Free.html#5260" class="Bound">f</a> <a id="5262" class="Symbol">=</a> <a id="5265" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="5279" href="Categories.Functor.Core.html#806" class="Function">U.₁</a><a id="5282" class="Symbol">(</a><a id="5283" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="5288" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FUY.*</a> <a id="5294" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="5298" href="Categories.Functor.Core.html#806" class="Function">F.₁</a><a id="5301" class="Symbol">(</a><a id="5302" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="5306" href="Categories.FreeObjects.Free.html#5260" class="Bound">f</a><a id="5307" class="Symbol">))</a> <a id="5310" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="5314" href="Categories.FreeObjects.Free.html#854" class="Function">FUX.η</a> <a id="5334" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5337" href="Categories.Functor.Core.html#565" class="Field">U.homomorphism</a> <a id="5352" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="5360" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="5370" class="Symbol">(</a><a id="5371" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="5375" class="Symbol">(</a><a id="5376" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="5381" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FUY.*</a><a id="5386" class="Symbol">)</a> <a id="5388" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="5392" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="5396" class="Symbol">(</a><a id="5397" href="Categories.Functor.Core.html#806" class="Function">F.₁</a><a id="5400" class="Symbol">(</a><a id="5401" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="5405" href="Categories.FreeObjects.Free.html#5260" class="Bound">f</a><a id="5406" class="Symbol">)))</a> <a id="5410" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="5414" href="Categories.FreeObjects.Free.html#854" class="Function">FUX.η</a> <a id="5425" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5428" href="Categories.Category.Core.html#715" class="Function">C.assoc</a> <a id="5436" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="5446" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="5450" class="Symbol">(</a><a id="5451" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="5456" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FUY.*</a><a id="5461" class="Symbol">)</a> <a id="5463" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="5467" class="Symbol">(</a><a id="5468" href="Categories.Functor.Core.html#806" class="Function">U.₁</a><a id="5471" class="Symbol">(</a><a id="5472" href="Categories.Functor.Core.html#806" class="Function">F.₁</a><a id="5475" class="Symbol">(</a><a id="5476" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="5480" href="Categories.FreeObjects.Free.html#5260" class="Bound">f</a><a id="5481" class="Symbol">))</a> <a id="5484" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="5488" href="Categories.FreeObjects.Free.html#854" class="Function">FUX.η</a><a id="5493" class="Symbol">)</a> <a id="5501" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5504" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="5512" href="Categories.FreeObjects.Free.html#937" class="Function">FUX.*-lift</a> <a id="5523" class="Symbol">(</a><a id="5524" href="Categories.FreeObjects.Free.html#854" class="Function">FUY.η</a> <a id="5530" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="5534" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="5538" href="Categories.FreeObjects.Free.html#5260" class="Bound">f</a><a id="5539" class="Symbol">)</a> <a id="5541" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="5551" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="5555" class="Symbol">(</a><a id="5556" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="5561" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FUY.*</a><a id="5566" class="Symbol">)</a> <a id="5568" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="5572" class="Symbol">(</a><a id="5573" href="Categories.FreeObjects.Free.html#854" class="Function">FUY.η</a> <a id="5579" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="5583" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="5587" href="Categories.FreeObjects.Free.html#5260" class="Bound">f</a><a id="5588" class="Symbol">)</a> <a id="5606" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="5610" href="Categories.Category.Core.html#715" class="Function">C.assoc</a> <a id="5618" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="5628" class="Symbol">(</a><a id="5629" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="5633" class="Symbol">(</a><a id="5634" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="5639" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FUY.*</a><a id="5644" class="Symbol">)</a> <a id="5646" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="5650" href="Categories.FreeObjects.Free.html#854" class="Function">FUY.η</a><a id="5655" class="Symbol">)</a> <a id="5657" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="5661" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="5665" href="Categories.FreeObjects.Free.html#5260" class="Bound">f</a> <a id="5683" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5686" href="Categories.FreeObjects.Free.html#937" class="Function">FUY.*-lift</a> <a id="5697" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="5702" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="5710" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="5720" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="5725" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="5729" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="5733" href="Categories.FreeObjects.Free.html#5260" class="Bound">f</a> <a id="5775" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5778" href="Categories.Category.Core.html#1096" class="Function">C.identityˡ</a> <a id="5790" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="5800" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="5804" href="Categories.FreeObjects.Free.html#5260" class="Bound">f</a> <a id="5855" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="5867" class="Keyword">where</a>
<a id="5885" class="Keyword">open</a> <a id="5890" href="Categories.Category.Core.html#2462" class="Module">C.HomReasoning</a>
<a id="5917" class="Keyword">module</a> <a id="5924" href="Categories.FreeObjects.Free.html#5924" class="Module">FUX</a> <a id="5928" class="Symbol">=</a> <a id="5930" href="Categories.FreeObjects.Free.html#485" class="Module">FreeObject</a> <a id="5941" class="Symbol">(</a><a id="5942" href="Categories.FreeObjects.Free.html#4646" class="Bound">F</a> <a id="5944" class="Symbol">(</a><a id="5945" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="5949" href="Categories.FreeObjects.Free.html#5253" class="Bound">X</a><a id="5950" class="Symbol">))</a> <a id="5953" class="Keyword">using</a> <a id="5959" class="Symbol">(</a><a id="5960" href="Categories.FreeObjects.Free.html#854" class="Field">η</a><a id="5961" class="Symbol">;</a> <a id="5963" href="Categories.FreeObjects.Free.html#937" class="Field">*-lift</a><a id="5969" class="Symbol">)</a>
<a id="5983" class="Keyword">module</a> <a id="5990" href="Categories.FreeObjects.Free.html#5990" class="Module">FUY</a> <a id="5994" class="Symbol">=</a> <a id="5996" href="Categories.FreeObjects.Free.html#485" class="Module">FreeObject</a> <a id="6007" class="Symbol">(</a><a id="6008" href="Categories.FreeObjects.Free.html#4646" class="Bound">F</a> <a id="6010" class="Symbol">(</a><a id="6011" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="6015" href="Categories.FreeObjects.Free.html#5257" class="Bound">Y</a><a id="6016" class="Symbol">))</a> <a id="6019" class="Keyword">using</a> <a id="6025" class="Symbol">(</a><a id="6026" href="Categories.FreeObjects.Free.html#854" class="Field">η</a><a id="6027" class="Symbol">;</a> <a id="6029" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a><a id="6031" class="Symbol">;</a> <a id="6033" href="Categories.FreeObjects.Free.html#937" class="Field">*-lift</a><a id="6039" class="Symbol">)</a>
<a id="6050" class="Comment">-- right identity</a>
<a id="6074" href="Categories.FreeObjects.Free.html#6074" class="Function">counit-comm-right</a> <a id="6092" class="Symbol">:</a> <a id="6094" class="Symbol">{</a><a id="6095" href="Categories.FreeObjects.Free.html#6095" class="Bound">X</a> <a id="6097" href="Categories.FreeObjects.Free.html#6097" class="Bound">Y</a> <a id="6099" class="Symbol">:</a> <a id="6101" href="Categories.Category.Core.html#559" class="Function">D.Obj</a><a id="6106" class="Symbol">}</a> <a id="6108" class="Symbol">(</a><a id="6109" href="Categories.FreeObjects.Free.html#6109" class="Bound">f</a> <a id="6111" class="Symbol">:</a> <a id="6113" href="Categories.FreeObjects.Free.html#1344" class="Bound">D</a> <a id="6115" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="6117" href="Categories.FreeObjects.Free.html#6095" class="Bound">X</a> <a id="6119" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="6121" href="Categories.FreeObjects.Free.html#6097" class="Bound">Y</a> <a id="6123" href="Categories.Category.html#502" class="Function Operator">]</a><a id="6124" class="Symbol">)</a> <a id="6126" class="Symbol"></a> <a id="6128" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a> <a id="6130" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="6132" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="6136" class="Symbol">(</a><a id="6137" href="Categories.FreeObjects.Free.html#6109" class="Bound">f</a> <a id="6139" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="6143" class="Symbol">(</a><a id="6144" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a> <a id="6147" class="Symbol">(</a><a id="6148" href="Categories.FreeObjects.Free.html#4646" class="Bound">F</a> <a id="6150" class="Symbol">(</a><a id="6151" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="6155" href="Categories.FreeObjects.Free.html#6095" class="Bound">X</a><a id="6156" class="Symbol">))</a> <a id="6159" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="6163" class="Symbol">))</a> <a id="6166" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="6170" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="6172" class="Symbol">(</a><a id="6173" href="Categories.FreeObjects.Free.html#4646" class="Bound">F</a> <a id="6175" class="Symbol">(</a><a id="6176" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="6180" href="Categories.FreeObjects.Free.html#6095" class="Bound">X</a><a id="6181" class="Symbol">))</a> <a id="6184" href="Categories.Category.html#609" class="Function Operator"></a> <a id="6186" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="6190" href="Categories.FreeObjects.Free.html#6109" class="Bound">f</a> <a id="6192" href="Categories.Category.html#609" class="Function Operator">]</a>
<a id="6200" href="Categories.FreeObjects.Free.html#6074" class="Function">counit-comm-right</a> <a id="6218" class="Symbol">{</a><a id="6219" href="Categories.FreeObjects.Free.html#6219" class="Bound">X</a><a id="6220" class="Symbol">}</a> <a id="6222" class="Symbol">{</a><a id="6223" href="Categories.FreeObjects.Free.html#6223" class="Bound">Y</a><a id="6224" class="Symbol">}</a> <a id="6226" href="Categories.FreeObjects.Free.html#6226" class="Bound">f</a> <a id="6228" class="Symbol">=</a> <a id="6231" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="6245" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="6249" class="Symbol">(</a><a id="6250" href="Categories.FreeObjects.Free.html#6226" class="Bound">f</a> <a id="6252" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="6256" class="Symbol">(</a><a id="6257" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="6262" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FUX.*</a><a id="6267" class="Symbol">))</a> <a id="6270" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="6274" href="Categories.FreeObjects.Free.html#854" class="Function">FUX.η</a> <a id="6295" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="6298" href="Categories.Functor.Core.html#565" class="Field">U.homomorphism</a> <a id="6313" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="6321" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="6331" class="Symbol">(</a><a id="6332" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="6336" href="Categories.FreeObjects.Free.html#6226" class="Bound">f</a> <a id="6338" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="6342" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="6346" class="Symbol">(</a><a id="6347" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="6352" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FUX.*</a><a id="6357" class="Symbol">))</a> <a id="6360" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="6364" href="Categories.FreeObjects.Free.html#854" class="Function">FUX.η</a> <a id="6381" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="6384" href="Categories.Category.Core.html#715" class="Function">C.assoc</a> <a id="6392" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="6402" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="6406" href="Categories.FreeObjects.Free.html#6226" class="Bound">f</a> <a id="6408" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="6412" class="Symbol">(</a><a id="6413" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="6417" class="Symbol">(</a><a id="6418" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="6423" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FUX.*</a><a id="6428" class="Symbol">)</a> <a id="6430" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="6434" href="Categories.FreeObjects.Free.html#854" class="Function">FUX.η</a><a id="6439" class="Symbol">)</a> <a id="6452" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="6455" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="6463" href="Categories.FreeObjects.Free.html#937" class="Function">FUX.*-lift</a> <a id="6474" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="6479" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="6489" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="6493" href="Categories.FreeObjects.Free.html#6226" class="Bound">f</a> <a id="6495" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="6499" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="6539" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="6542" href="Categories.Category.Core.html#1145" class="Function">C.identityʳ</a> <a id="6554" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="6564" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="6568" href="Categories.FreeObjects.Free.html#6226" class="Bound">f</a> <a id="6614" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="6624" class="Keyword">where</a>
<a id="6640" class="Keyword">open</a> <a id="6645" href="Categories.Category.Core.html#2462" class="Module">C.HomReasoning</a>
<a id="6670" class="Keyword">module</a> <a id="6677" href="Categories.FreeObjects.Free.html#6677" class="Module">FUX</a> <a id="6681" class="Symbol">=</a> <a id="6683" href="Categories.FreeObjects.Free.html#485" class="Module">FreeObject</a> <a id="6694" class="Symbol">(</a><a id="6695" href="Categories.FreeObjects.Free.html#4646" class="Bound">F</a> <a id="6697" class="Symbol">(</a><a id="6698" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="6702" href="Categories.FreeObjects.Free.html#6219" class="Bound">X</a><a id="6703" class="Symbol">))</a> <a id="6706" class="Keyword">using</a> <a id="6712" class="Symbol">(</a><a id="6713" href="Categories.FreeObjects.Free.html#854" class="Field">η</a><a id="6714" class="Symbol">;</a> <a id="6716" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a><a id="6718" class="Symbol">;</a> <a id="6720" href="Categories.FreeObjects.Free.html#937" class="Field">*-lift</a><a id="6726" class="Symbol">)</a>
<a id="6736" href="Categories.FreeObjects.Free.html#4866" class="Function">counit-comm</a> <a id="6748" class="Symbol">{</a><a id="6749" href="Categories.FreeObjects.Free.html#6749" class="Bound">X</a><a id="6750" class="Symbol">}</a> <a id="6752" class="Symbol">{</a><a id="6753" href="Categories.FreeObjects.Free.html#6753" class="Bound">Y</a><a id="6754" class="Symbol">}</a> <a id="6756" href="Categories.FreeObjects.Free.html#6756" class="Bound">f</a> <a id="6758" class="Symbol">=</a> <a id="6761" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="6775" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="6780" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FUY.*</a> <a id="6786" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="6790" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="6794" class="Symbol">(</a><a id="6795" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="6799" href="Categories.FreeObjects.Free.html#6756" class="Bound">f</a><a id="6800" class="Symbol">)</a> <a id="6809" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="6812" href="Categories.FreeObjects.Free.html#1017" class="Function">FUX.*-uniq</a> <a id="6823" class="Symbol">(</a><a id="6824" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="6828" href="Categories.FreeObjects.Free.html#6756" class="Bound">f</a><a id="6829" class="Symbol">)</a> <a id="6831" class="Symbol">(</a><a id="6832" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="6837" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FUY.*</a> <a id="6843" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="6847" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="6851" class="Symbol">(</a><a id="6852" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="6856" href="Categories.FreeObjects.Free.html#6756" class="Bound">f</a><a id="6857" class="Symbol">))</a> <a id="6860" class="Symbol">(</a><a id="6861" href="Categories.FreeObjects.Free.html#5096" class="Function">counit-comm-left</a> <a id="6878" class="Symbol">{</a><a id="6879" href="Categories.FreeObjects.Free.html#6749" class="Bound">X</a><a id="6880" class="Symbol">}</a> <a id="6882" class="Symbol">{</a><a id="6883" href="Categories.FreeObjects.Free.html#6753" class="Bound">Y</a><a id="6884" class="Symbol">}</a> <a id="6886" href="Categories.FreeObjects.Free.html#6756" class="Bound">f</a><a id="6887" class="Symbol">)</a> <a id="6889" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="6899" class="Symbol">(</a><a id="6900" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="6904" href="Categories.FreeObjects.Free.html#6756" class="Bound">f</a><a id="6905" class="Symbol">)</a> <a id="6907" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FUX.*</a> <a id="6933" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="6937" href="Categories.FreeObjects.Free.html#1017" class="Function">FUX.*-uniq</a> <a id="6948" class="Symbol">(</a><a id="6949" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="6953" href="Categories.FreeObjects.Free.html#6756" class="Bound">f</a><a id="6954" class="Symbol">)</a> <a id="6956" class="Symbol">(</a><a id="6957" href="Categories.FreeObjects.Free.html#6756" class="Bound">f</a> <a id="6959" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="6963" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="6968" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FUX.*</a><a id="6973" class="Symbol">)</a> <a id="6975" class="Symbol">(</a><a id="6976" href="Categories.FreeObjects.Free.html#6074" class="Function">counit-comm-right</a> <a id="6994" class="Symbol">{</a><a id="6995" href="Categories.FreeObjects.Free.html#6749" class="Bound">X</a><a id="6996" class="Symbol">}</a> <a id="6998" class="Symbol">{</a><a id="6999" href="Categories.FreeObjects.Free.html#6753" class="Bound">Y</a><a id="7000" class="Symbol">}</a> <a id="7002" href="Categories.FreeObjects.Free.html#6756" class="Bound">f</a><a id="7003" class="Symbol">)</a> <a id="7005" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="7015" href="Categories.FreeObjects.Free.html#6756" class="Bound">f</a> <a id="7017" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="7021" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="7026" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FUX.*</a> <a id="7049" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="7059" class="Keyword">where</a>
<a id="7075" class="Keyword">open</a> <a id="7080" href="Categories.Category.Core.html#2462" class="Module">D.HomReasoning</a>
<a id="7105" class="Keyword">module</a> <a id="7112" href="Categories.FreeObjects.Free.html#7112" class="Module">FUX</a> <a id="7116" class="Symbol">=</a> <a id="7118" href="Categories.FreeObjects.Free.html#485" class="Module">FreeObject</a> <a id="7129" class="Symbol">(</a><a id="7130" href="Categories.FreeObjects.Free.html#4646" class="Bound">F</a> <a id="7132" class="Symbol">(</a><a id="7133" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="7137" href="Categories.FreeObjects.Free.html#6749" class="Bound">X</a><a id="7138" class="Symbol">))</a> <a id="7141" class="Keyword">using</a> <a id="7147" class="Symbol">(</a><a id="7148" href="Categories.FreeObjects.Free.html#854" class="Field">η</a><a id="7149" class="Symbol">;</a> <a id="7151" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a><a id="7153" class="Symbol">;</a> <a id="7155" href="Categories.FreeObjects.Free.html#937" class="Field">*-lift</a><a id="7161" class="Symbol">;</a> <a id="7163" href="Categories.FreeObjects.Free.html#1017" class="Field">*-uniq</a><a id="7169" class="Symbol">)</a>
<a id="7181" class="Keyword">module</a> <a id="7188" href="Categories.FreeObjects.Free.html#7188" class="Module">FUY</a> <a id="7192" class="Symbol">=</a> <a id="7194" href="Categories.FreeObjects.Free.html#485" class="Module">FreeObject</a> <a id="7205" class="Symbol">(</a><a id="7206" href="Categories.FreeObjects.Free.html#4646" class="Bound">F</a> <a id="7208" class="Symbol">(</a><a id="7209" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="7213" href="Categories.FreeObjects.Free.html#6753" class="Bound">Y</a><a id="7214" class="Symbol">))</a> <a id="7217" class="Keyword">using</a> <a id="7223" class="Symbol">(</a><a id="7224" href="Categories.FreeObjects.Free.html#854" class="Field">η</a><a id="7225" class="Symbol">;</a> <a id="7227" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a><a id="7229" class="Symbol">;</a> <a id="7231" href="Categories.FreeObjects.Free.html#937" class="Field">*-lift</a><a id="7237" class="Symbol">)</a>
<a id="7243" class="Comment">-- Free object functor is left adjoint to the forgetful functor</a>
<a id="7309" href="Categories.FreeObjects.Free.html#7309" class="Function">FO⇒LAdj</a> <a id="7317" class="Symbol">:</a> <a id="7319" class="Symbol">(</a><a id="7320" href="Categories.FreeObjects.Free.html#7320" class="Bound">F</a> <a id="7322" class="Symbol">:</a> <a id="7324" class="Symbol">((</a><a id="7326" href="Categories.FreeObjects.Free.html#7326" class="Bound">X</a> <a id="7328" class="Symbol">:</a> <a id="7330" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="7335" class="Symbol">)</a> <a id="7337" class="Symbol"></a> <a id="7339" href="Categories.FreeObjects.Free.html#485" class="Record">FreeObject</a> <a id="7350" href="Categories.FreeObjects.Free.html#1368" class="Bound">U</a> <a id="7352" href="Categories.FreeObjects.Free.html#7326" class="Bound">X</a><a id="7353" class="Symbol">))</a> <a id="7356" class="Symbol"></a> <a id="7358" class="Symbol">(</a><a id="7359" href="Categories.FreeObjects.Free.html#1758" class="Function">FO⇒Functor</a> <a id="7370" href="Categories.FreeObjects.Free.html#7320" class="Bound">F</a><a id="7371" class="Symbol">)</a> <a id="7373" href="Categories.Adjoint.html#7818" class="Function Operator"></a> <a id="7375" href="Categories.FreeObjects.Free.html#1368" class="Bound">U</a>
<a id="7379" href="Categories.FreeObjects.Free.html#7309" class="Function">FO⇒LAdj</a> <a id="7387" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a> <a id="7389" class="Symbol">=</a> <a id="7392" class="Keyword">record</a>
<a id="7403" class="Symbol">{</a> <a id="7405" href="Categories.Adjoint.html#1473" class="Field">unit</a> <a id="7410" class="Symbol">=</a> <a id="7412" href="Categories.FreeObjects.Free.html#4283" class="Function">FO⇒unit</a> <a id="7420" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a>
<a id="7426" class="Symbol">;</a> <a id="7428" href="Categories.Adjoint.html#1521" class="Field">counit</a> <a id="7435" class="Symbol">=</a> <a id="7437" href="Categories.FreeObjects.Free.html#4537" class="Function">FO⇒counit</a> <a id="7447" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a>
<a id="7453" class="Symbol">;</a> <a id="7455" href="Categories.Adjoint.html#1669" class="Field">zig</a> <a id="7459" class="Symbol">=</a> <a id="7461" href="Categories.FreeObjects.Free.html#9196" class="Function">zig</a>
<a id="7469" class="Symbol">;</a> <a id="7471" href="Categories.Adjoint.html#1742" class="Field">zag</a> <a id="7475" class="Symbol">=</a> <a id="7477" href="Categories.FreeObjects.Free.html#9345" class="Function">zag</a>
<a id="7485" class="Symbol">}</a>
<a id="7491" class="Keyword">where</a>
<a id="7503" class="Keyword">module</a> <a id="7510" href="Categories.FreeObjects.Free.html#7510" class="Module">F</a> <a id="7512" class="Symbol">=</a> <a id="7514" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="7522" class="Symbol">(</a><a id="7523" href="Categories.FreeObjects.Free.html#1758" class="Function">FO⇒Functor</a> <a id="7534" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a><a id="7535" class="Symbol">)</a> <a id="7537" class="Keyword">using</a> <a id="7543" class="Symbol">(</a><a id="7544" href="Categories.Functor.Core.html#797" class="Function"></a><a id="7545" class="Symbol">;</a> <a id="7547" href="Categories.Functor.Core.html#806" class="Function"></a><a id="7548" class="Symbol">;</a> <a id="7550" href="Categories.Functor.Core.html#511" class="Field">identity</a><a id="7558" class="Symbol">;</a> <a id="7560" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a><a id="7572" class="Symbol">)</a>
<a id="7582" href="Categories.FreeObjects.Free.html#7582" class="Function">zig-comm1</a> <a id="7592" class="Symbol">:</a> <a id="7594" class="Symbol">{</a><a id="7595" href="Categories.FreeObjects.Free.html#7595" class="Bound">X</a> <a id="7597" class="Symbol">:</a> <a id="7599" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="7604" class="Symbol">}</a> <a id="7606" class="Symbol"></a> <a id="7608" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a> <a id="7610" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="7612" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="7616" href="Categories.Category.Core.html#630" class="Function">D.id</a> <a id="7621" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="7625" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="7627" class="Symbol">(</a><a id="7628" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a> <a id="7630" href="Categories.FreeObjects.Free.html#7595" class="Bound">X</a><a id="7631" class="Symbol">)</a> <a id="7633" href="Categories.Category.html#609" class="Function Operator"></a> <a id="7635" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="7637" class="Symbol">(</a><a id="7638" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a> <a id="7640" href="Categories.FreeObjects.Free.html#7595" class="Bound">X</a><a id="7641" class="Symbol">)</a> <a id="7643" href="Categories.Category.html#609" class="Function Operator">]</a>
<a id="7651" href="Categories.FreeObjects.Free.html#7582" class="Function">zig-comm1</a> <a id="7661" class="Symbol">{</a><a id="7662" href="Categories.FreeObjects.Free.html#7662" class="Bound">X</a><a id="7663" class="Symbol">}</a> <a id="7665" class="Symbol">=</a> <a id="7668" href="Categories.Morphism.Reasoning.Core.html#2948" class="Function">elimˡ</a> <a id="7674" class="Symbol">(</a><a id="7675" href="Categories.Functor.Core.html#511" class="Field">U.identity</a><a id="7685" class="Symbol">)</a> <a id="7688" class="Keyword">where</a> <a id="7694" class="Keyword">open</a> <a id="7699" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="7702" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a>
<a id="7711" href="Categories.FreeObjects.Free.html#7711" class="Function">zig-helper1</a> <a id="7723" class="Symbol">:</a> <a id="7725" class="Symbol">{</a><a id="7726" href="Categories.FreeObjects.Free.html#7726" class="Bound">X</a> <a id="7728" class="Symbol">:</a> <a id="7730" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="7735" class="Symbol">}</a> <a id="7737" class="Symbol"></a> <a id="7739" href="Categories.FreeObjects.Free.html#1344" class="Bound">D</a> <a id="7741" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="7743" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a> <a id="7746" class="Symbol">(</a><a id="7747" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a> <a id="7749" href="Categories.FreeObjects.Free.html#7726" class="Bound">X</a><a id="7750" class="Symbol">)</a> <a id="7752" class="Symbol">(</a><a id="7753" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="7755" class="Symbol">(</a><a id="7756" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a> <a id="7758" href="Categories.FreeObjects.Free.html#7726" class="Bound">X</a><a id="7759" class="Symbol">))</a> <a id="7762" href="Categories.Category.html#609" class="Function Operator"></a> <a id="7764" href="Categories.Category.Core.html#630" class="Function">D.id</a> <a id="7769" href="Categories.Category.html#609" class="Function Operator">]</a>
<a id="7777" href="Categories.FreeObjects.Free.html#7711" class="Function">zig-helper1</a> <a id="7789" class="Symbol">{</a><a id="7790" href="Categories.FreeObjects.Free.html#7790" class="Bound">X</a><a id="7791" class="Symbol">}</a> <a id="7793" class="Symbol">=</a> <a id="7796" href="Relation.Binary.Structures.html#1622" class="Function">sym</a> <a id="7800" class="Symbol">(</a><a id="7801" href="Categories.FreeObjects.Free.html#1017" class="Function">FX.*-uniq</a> <a id="7811" href="Categories.FreeObjects.Free.html#854" class="Function">FX.η</a> <a id="7816" href="Categories.Category.Core.html#630" class="Function">D.id</a> <a id="7821" class="Symbol">(</a><a id="7822" href="Categories.FreeObjects.Free.html#7582" class="Function">zig-comm1</a> <a id="7832" class="Symbol">{</a><a id="7833" href="Categories.FreeObjects.Free.html#7790" class="Bound">X</a><a id="7834" class="Symbol">}))</a>
<a id="7846" class="Keyword">where</a>
<a id="7862" class="Keyword">open</a> <a id="7867" href="Categories.Category.Core.html#1530" class="Module">D.Equiv</a>
<a id="7885" class="Keyword">module</a> <a id="7892" href="Categories.FreeObjects.Free.html#7892" class="Module">FX</a> <a id="7895" class="Symbol">=</a> <a id="7897" href="Categories.FreeObjects.Free.html#485" class="Module">FreeObject</a> <a id="7908" class="Symbol">(</a><a id="7909" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a> <a id="7911" href="Categories.FreeObjects.Free.html#7790" class="Bound">X</a><a id="7912" class="Symbol">)</a> <a id="7914" class="Keyword">using</a> <a id="7920" class="Symbol">(</a><a id="7921" href="Categories.FreeObjects.Free.html#854" class="Field">η</a><a id="7922" class="Symbol">;</a> <a id="7924" href="Categories.FreeObjects.Free.html#1017" class="Field">*-uniq</a><a id="7930" class="Symbol">)</a>
<a id="7939" href="Categories.FreeObjects.Free.html#7939" class="Function">zig-comm2</a> <a id="7949" class="Symbol">:</a> <a id="7951" class="Symbol">{</a><a id="7952" href="Categories.FreeObjects.Free.html#7952" class="Bound">X</a> <a id="7954" class="Symbol">:</a> <a id="7956" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="7961" class="Symbol">}</a> <a id="7963" class="Symbol"></a> <a id="7965" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a> <a id="7967" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="7969" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="7973" class="Symbol">(</a><a id="7974" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a> <a id="7977" class="Symbol">(</a><a id="7978" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a> <a id="7980" class="Symbol">(</a><a id="7981" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="7985" class="Symbol">(</a><a id="7986" href="Categories.Functor.Core.html#797" class="Function">F.₀</a> <a id="7990" href="Categories.FreeObjects.Free.html#7952" class="Bound">X</a><a id="7991" class="Symbol">)))</a> <a id="7995" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="8000" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="8004" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="8008" class="Symbol">(</a><a id="8009" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="8011" class="Symbol">(</a><a id="8012" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a> <a id="8014" href="Categories.FreeObjects.Free.html#7952" class="Bound">X</a><a id="8015" class="Symbol">))</a> <a id="8018" class="Symbol">)</a> <a id="8020" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="8024" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="8026" class="Symbol">(</a><a id="8027" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a> <a id="8029" href="Categories.FreeObjects.Free.html#7952" class="Bound">X</a><a id="8030" class="Symbol">)</a> <a id="8032" href="Categories.Category.html#609" class="Function Operator"></a> <a id="8034" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="8036" class="Symbol">(</a><a id="8037" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a> <a id="8039" href="Categories.FreeObjects.Free.html#7952" class="Bound">X</a><a id="8040" class="Symbol">)</a> <a id="8042" href="Categories.Category.html#609" class="Function Operator">]</a>
<a id="8050" href="Categories.FreeObjects.Free.html#7939" class="Function">zig-comm2</a> <a id="8060" class="Symbol">{</a><a id="8061" href="Categories.FreeObjects.Free.html#8061" class="Bound">X</a><a id="8062" class="Symbol">}</a> <a id="8064" class="Symbol">=</a> <a id="8066" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="8080" href="Categories.Functor.Core.html#806" class="Function">U.₁</a><a id="8083" class="Symbol">(</a><a id="8084" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="8089" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FUFX.*</a> <a id="8096" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="8100" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="8104" href="Categories.FreeObjects.Free.html#854" class="Function">FX.η</a><a id="8108" class="Symbol">)</a> <a id="8110" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="8114" href="Categories.FreeObjects.Free.html#854" class="Function">FX.η</a> <a id="8137" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="8140" href="Categories.Functor.Core.html#565" class="Field">U.homomorphism</a> <a id="8155" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="8163" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="8173" class="Symbol">(</a><a id="8174" href="Categories.Functor.Core.html#806" class="Function">U.₁</a><a id="8177" class="Symbol">(</a><a id="8178" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="8183" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FUFX.*</a><a id="8189" class="Symbol">)</a> <a id="8191" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="8195" href="Categories.Functor.Core.html#806" class="Function">U.₁</a><a id="8198" class="Symbol">(</a><a id="8199" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="8203" href="Categories.FreeObjects.Free.html#854" class="Function">FX.η</a><a id="8207" class="Symbol">))</a> <a id="8210" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="8214" href="Categories.FreeObjects.Free.html#854" class="Function">FX.η</a> <a id="8230" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="8233" href="Categories.Category.Core.html#715" class="Function">C.assoc</a> <a id="8241" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="8251" href="Categories.Functor.Core.html#806" class="Function">U.₁</a><a id="8254" class="Symbol">(</a><a id="8255" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="8260" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FUFX.*</a><a id="8266" class="Symbol">)</a> <a id="8268" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="8272" class="Symbol">(</a><a id="8273" href="Categories.Functor.Core.html#806" class="Function">U.₁</a><a id="8276" class="Symbol">(</a><a id="8277" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="8281" href="Categories.FreeObjects.Free.html#854" class="Function">FX.η</a><a id="8285" class="Symbol">)</a> <a id="8287" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="8291" href="Categories.FreeObjects.Free.html#854" class="Function">FX.η</a><a id="8295" class="Symbol">)</a> <a id="8308" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="8312" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="8320" href="Categories.NaturalTransformation.Core.html#827" class="Field">NaturalTransformation.commute</a> <a id="8350" class="Symbol">(</a><a id="8351" href="Categories.FreeObjects.Free.html#4283" class="Function">FO⇒unit</a> <a id="8359" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a><a id="8360" class="Symbol">)</a> <a id="8362" href="Categories.FreeObjects.Free.html#854" class="Function">FX.η</a> <a id="8367" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="8377" href="Categories.Functor.Core.html#806" class="Function">U.₁</a><a id="8380" class="Symbol">(</a><a id="8381" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="8386" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FUFX.*</a><a id="8392" class="Symbol">)</a> <a id="8394" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="8398" class="Symbol">(</a><a id="8399" href="Categories.FreeObjects.Free.html#854" class="Function">FUFX.η</a> <a id="8406" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="8410" href="Categories.FreeObjects.Free.html#854" class="Function">FX.η</a><a id="8414" class="Symbol">)</a> <a id="8434" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="8438" href="Categories.Category.Core.html#715" class="Function">C.assoc</a> <a id="8446" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="8456" class="Symbol">(</a><a id="8457" href="Categories.Functor.Core.html#806" class="Function">U.₁</a><a id="8460" class="Symbol">(</a><a id="8461" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="8466" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FUFX.*</a><a id="8472" class="Symbol">)</a> <a id="8474" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="8478" href="Categories.FreeObjects.Free.html#854" class="Function">FUFX.η</a><a id="8484" class="Symbol">)</a> <a id="8486" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="8490" href="Categories.FreeObjects.Free.html#854" class="Function">FX.η</a> <a id="8513" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="8516" href="Categories.FreeObjects.Free.html#937" class="Function">FUFX.*-lift</a> <a id="8528" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="8533" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="8541" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="8551" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="8556" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="8560" href="Categories.FreeObjects.Free.html#854" class="Function">FX.η</a> <a id="8608" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="8611" href="Categories.Category.Core.html#1096" class="Function">C.identityˡ</a> <a id="8623" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="8633" href="Categories.FreeObjects.Free.html#854" class="Function">FX.η</a> <a id="8690" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="8700" class="Keyword">where</a>
<a id="8716" class="Keyword">open</a> <a id="8721" href="Categories.Category.Core.html#2462" class="Module">C.HomReasoning</a>
<a id="8746" class="Keyword">module</a> <a id="8753" href="Categories.FreeObjects.Free.html#8753" class="Module">FX</a> <a id="8756" class="Symbol">=</a> <a id="8758" href="Categories.FreeObjects.Free.html#485" class="Module">FreeObject</a> <a id="8769" class="Symbol">(</a><a id="8770" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a> <a id="8772" href="Categories.FreeObjects.Free.html#8061" class="Bound">X</a><a id="8773" class="Symbol">)</a> <a id="8775" class="Keyword">using</a> <a id="8781" class="Symbol">(</a><a id="8782" href="Categories.FreeObjects.Free.html#854" class="Field">η</a><a id="8783" class="Symbol">)</a>
<a id="8795" class="Keyword">module</a> <a id="8802" href="Categories.FreeObjects.Free.html#8802" class="Module">FUFX</a> <a id="8807" class="Symbol">=</a> <a id="8809" href="Categories.FreeObjects.Free.html#485" class="Module">FreeObject</a> <a id="8820" class="Symbol">(</a><a id="8821" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a> <a id="8823" class="Symbol">(</a><a id="8824" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="8828" class="Symbol">(</a><a id="8829" href="Categories.Functor.Core.html#797" class="Function">F.₀</a> <a id="8833" href="Categories.FreeObjects.Free.html#8061" class="Bound">X</a><a id="8834" class="Symbol">))</a> <a id="8837" class="Symbol">)</a> <a id="8839" class="Keyword">using</a> <a id="8845" class="Symbol">(</a><a id="8846" href="Categories.FreeObjects.Free.html#854" class="Field">η</a><a id="8847" class="Symbol">;</a> <a id="8849" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a><a id="8851" class="Symbol">;</a> <a id="8853" href="Categories.FreeObjects.Free.html#937" class="Field">*-lift</a><a id="8859" class="Symbol">)</a>
<a id="8869" href="Categories.FreeObjects.Free.html#8869" class="Function">zig-helper2</a> <a id="8881" class="Symbol">:</a> <a id="8883" class="Symbol">{</a><a id="8884" href="Categories.FreeObjects.Free.html#8884" class="Bound">X</a> <a id="8886" class="Symbol">:</a> <a id="8888" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="8893" class="Symbol">}</a> <a id="8895" class="Symbol"></a> <a id="8897" href="Categories.FreeObjects.Free.html#1344" class="Bound">D</a> <a id="8899" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="8901" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a> <a id="8904" class="Symbol">(</a><a id="8905" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a> <a id="8907" class="Symbol">(</a><a id="8908" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="8912" class="Symbol">(</a><a id="8913" href="Categories.Functor.Core.html#797" class="Function">F.₀</a> <a id="8917" href="Categories.FreeObjects.Free.html#8884" class="Bound">X</a><a id="8918" class="Symbol">)))</a> <a id="8922" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="8927" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="8931" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="8935" class="Symbol">(</a><a id="8936" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="8938" class="Symbol">(</a><a id="8939" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a> <a id="8941" href="Categories.FreeObjects.Free.html#8884" class="Bound">X</a><a id="8942" class="Symbol">))</a> <a id="8945" href="Categories.Category.html#609" class="Function Operator"></a> <a id="8947" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a> <a id="8950" class="Symbol">(</a><a id="8951" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a> <a id="8953" href="Categories.FreeObjects.Free.html#8884" class="Bound">X</a><a id="8954" class="Symbol">)</a> <a id="8956" class="Symbol">(</a><a id="8957" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="8959" class="Symbol">(</a><a id="8960" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a> <a id="8962" href="Categories.FreeObjects.Free.html#8884" class="Bound">X</a><a id="8963" class="Symbol">))</a> <a id="8966" href="Categories.Category.html#609" class="Function Operator">]</a>
<a id="8974" href="Categories.FreeObjects.Free.html#8869" class="Function">zig-helper2</a> <a id="8986" class="Symbol">{</a><a id="8987" href="Categories.FreeObjects.Free.html#8987" class="Bound">X</a><a id="8988" class="Symbol">}</a> <a id="8990" class="Symbol">=</a> <a id="8992" href="Categories.FreeObjects.Free.html#1017" class="Function">FX.*-uniq</a> <a id="9002" href="Categories.FreeObjects.Free.html#854" class="Function">FX.η</a> <a id="9007" class="Symbol">(</a><a id="9008" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="9013" href="Categories.FreeObjects.Free.html#880" class="Function Operator">FUFX.*</a> <a id="9020" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="9024" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="9028" href="Categories.FreeObjects.Free.html#854" class="Function">FX.η</a><a id="9032" class="Symbol">)</a> <a id="9034" class="Symbol">(</a><a id="9035" href="Categories.FreeObjects.Free.html#7939" class="Function">zig-comm2</a> <a id="9045" class="Symbol">{</a><a id="9046" href="Categories.FreeObjects.Free.html#8987" class="Bound">X</a><a id="9047" class="Symbol">})</a>
<a id="9058" class="Keyword">where</a>
<a id="9074" class="Keyword">module</a> <a id="9081" href="Categories.FreeObjects.Free.html#9081" class="Module">FX</a> <a id="9084" class="Symbol">=</a> <a id="9086" href="Categories.FreeObjects.Free.html#485" class="Module">FreeObject</a> <a id="9097" class="Symbol">(</a><a id="9098" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a> <a id="9100" href="Categories.FreeObjects.Free.html#8987" class="Bound">X</a><a id="9101" class="Symbol">)</a> <a id="9103" class="Keyword">using</a> <a id="9109" class="Symbol">(</a><a id="9110" href="Categories.FreeObjects.Free.html#854" class="Field">η</a><a id="9111" class="Symbol">;</a> <a id="9113" href="Categories.FreeObjects.Free.html#1017" class="Field">*-uniq</a><a id="9119" class="Symbol">)</a>
<a id="9131" class="Keyword">module</a> <a id="9138" href="Categories.FreeObjects.Free.html#9138" class="Module">FUFX</a> <a id="9143" class="Symbol">=</a> <a id="9145" href="Categories.FreeObjects.Free.html#485" class="Module">FreeObject</a> <a id="9156" class="Symbol">(</a><a id="9157" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a> <a id="9159" class="Symbol">(</a><a id="9160" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="9164" class="Symbol">(</a><a id="9165" href="Categories.Functor.Core.html#797" class="Function">F.₀</a> <a id="9169" href="Categories.FreeObjects.Free.html#8987" class="Bound">X</a><a id="9170" class="Symbol">)))</a> <a id="9174" class="Keyword">using</a> <a id="9180" class="Symbol">(</a><a id="9181" href="Categories.FreeObjects.Free.html#854" class="Field">η</a><a id="9182" class="Symbol">;</a> <a id="9184" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a><a id="9186" class="Symbol">)</a>
<a id="9196" href="Categories.FreeObjects.Free.html#9196" class="Function">zig</a> <a id="9200" class="Symbol">:</a> <a id="9202" class="Symbol">{</a><a id="9203" href="Categories.FreeObjects.Free.html#9203" class="Bound">X</a> <a id="9205" class="Symbol">:</a> <a id="9207" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="9212" class="Symbol">}</a> <a id="9214" class="Symbol"></a> <a id="9216" href="Categories.FreeObjects.Free.html#1344" class="Bound">D</a> <a id="9218" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="9220" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a> <a id="9223" class="Symbol">(</a><a id="9224" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a> <a id="9226" class="Symbol">(</a><a id="9227" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="9231" class="Symbol">(</a><a id="9232" href="Categories.Functor.Core.html#797" class="Function">F.₀</a> <a id="9236" href="Categories.FreeObjects.Free.html#9203" class="Bound">X</a><a id="9237" class="Symbol">)))</a> <a id="9241" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="9246" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="9250" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="9254" class="Symbol">(</a><a id="9255" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="9257" class="Symbol">(</a><a id="9258" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a> <a id="9260" href="Categories.FreeObjects.Free.html#9203" class="Bound">X</a><a id="9261" class="Symbol">))</a> <a id="9264" href="Categories.Category.html#609" class="Function Operator"></a> <a id="9266" href="Categories.Category.Core.html#630" class="Function">D.id</a> <a id="9271" href="Categories.Category.html#609" class="Function Operator">]</a>
<a id="9279" href="Categories.FreeObjects.Free.html#9196" class="Function">zig</a> <a id="9283" class="Symbol">{</a><a id="9284" href="Categories.FreeObjects.Free.html#9284" class="Bound">X</a><a id="9285" class="Symbol">}</a> <a id="9287" class="Symbol">=</a> <a id="9289" href="Relation.Binary.Structures.html#1648" class="Function">trans</a> <a id="9295" href="Categories.FreeObjects.Free.html#8869" class="Function">zig-helper2</a> <a id="9307" href="Categories.FreeObjects.Free.html#7711" class="Function">zig-helper1</a> <a id="9319" class="Keyword">where</a> <a id="9325" class="Keyword">open</a> <a id="9330" href="Categories.Category.Core.html#1530" class="Module">D.Equiv</a>
<a id="9345" href="Categories.FreeObjects.Free.html#9345" class="Function">zag</a> <a id="9349" class="Symbol">:</a> <a id="9351" class="Symbol">{</a><a id="9352" href="Categories.FreeObjects.Free.html#9352" class="Bound">B</a> <a id="9354" class="Symbol">:</a> <a id="9356" href="Categories.Category.Core.html#559" class="Function">D.Obj</a><a id="9361" class="Symbol">}</a> <a id="9363" class="Symbol"></a> <a id="9365" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a> <a id="9367" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="9369" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="9373" class="Symbol">(</a><a id="9374" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a> <a id="9377" class="Symbol">(</a><a id="9378" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a> <a id="9380" class="Symbol">(</a><a id="9381" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="9385" href="Categories.FreeObjects.Free.html#9352" class="Bound">B</a><a id="9386" class="Symbol">))</a> <a id="9389" href="Categories.Category.Core.html#630" class="Function">C.id</a><a id="9393" class="Symbol">)</a> <a id="9395" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="9399" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="9401" class="Symbol">(</a><a id="9402" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a> <a id="9404" class="Symbol">(</a><a id="9405" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="9409" href="Categories.FreeObjects.Free.html#9352" class="Bound">B</a><a id="9410" class="Symbol">))</a> <a id="9413" href="Categories.Category.html#609" class="Function Operator"></a> <a id="9415" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="9420" href="Categories.Category.html#609" class="Function Operator">]</a>
<a id="9428" href="Categories.FreeObjects.Free.html#9345" class="Function">zag</a> <a id="9432" class="Symbol">{</a><a id="9433" href="Categories.FreeObjects.Free.html#9433" class="Bound">B</a><a id="9434" class="Symbol">}</a> <a id="9436" class="Symbol">=</a> <a id="9438" href="Categories.FreeObjects.Free.html#937" class="Function">FUB.*-lift</a> <a id="9449" href="Categories.Category.Core.html#630" class="Function">C.id</a>
<a id="9462" class="Keyword">where</a> <a id="9468" class="Keyword">module</a> <a id="9475" href="Categories.FreeObjects.Free.html#9475" class="Module">FUB</a> <a id="9479" class="Symbol">=</a> <a id="9481" href="Categories.FreeObjects.Free.html#485" class="Module">FreeObject</a> <a id="9492" class="Symbol">(</a><a id="9493" href="Categories.FreeObjects.Free.html#7387" class="Bound">F</a> <a id="9495" class="Symbol">(</a><a id="9496" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="9500" href="Categories.FreeObjects.Free.html#9433" class="Bound">B</a><a id="9501" class="Symbol">))</a> <a id="9504" class="Keyword">using</a> <a id="9510" class="Symbol">(</a><a id="9511" href="Categories.FreeObjects.Free.html#937" class="Field">*-lift</a><a id="9517" class="Symbol">)</a>
<a id="9524" class="Comment">-- left adjoints yield free objects</a>
<a id="9562" href="Categories.FreeObjects.Free.html#9562" class="Function">LAdj⇒FO</a> <a id="9570" class="Symbol">:</a> <a id="9572" class="Symbol">(</a><a id="9573" href="Categories.FreeObjects.Free.html#9573" class="Bound">Free</a> <a id="9578" class="Symbol">:</a> <a id="9580" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="9588" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a> <a id="9590" href="Categories.FreeObjects.Free.html#1344" class="Bound">D</a><a id="9591" class="Symbol">)</a> <a id="9593" class="Symbol"></a> <a id="9595" class="Symbol">(</a><a id="9596" href="Categories.FreeObjects.Free.html#9573" class="Bound">Free</a> <a id="9601" href="Categories.Adjoint.html#7818" class="Function Operator"></a> <a id="9603" href="Categories.FreeObjects.Free.html#1368" class="Bound">U</a><a id="9604" class="Symbol">)</a> <a id="9606" class="Symbol"></a> <a id="9608" class="Symbol">(</a><a id="9609" href="Categories.FreeObjects.Free.html#9609" class="Bound">X</a> <a id="9611" class="Symbol">:</a> <a id="9613" href="Categories.Category.Core.html#559" class="Function">C.Obj</a><a id="9618" class="Symbol">)</a> <a id="9620" class="Symbol"></a> <a id="9622" href="Categories.FreeObjects.Free.html#485" class="Record">FreeObject</a> <a id="9633" href="Categories.FreeObjects.Free.html#1368" class="Bound">U</a> <a id="9635" href="Categories.FreeObjects.Free.html#9609" class="Bound">X</a>
<a id="9639" href="Categories.FreeObjects.Free.html#9562" class="Function">LAdj⇒FO</a> <a id="9647" href="Categories.FreeObjects.Free.html#9647" class="Bound">Free</a> <a id="9652" href="Categories.FreeObjects.Free.html#9652" class="Bound">Free⊣U</a> <a id="9659" href="Categories.FreeObjects.Free.html#9659" class="Bound">X</a> <a id="9661" class="Symbol">=</a> <a id="9663" class="Keyword">record</a>
<a id="9676" class="Symbol">{</a> <a id="9678" href="Categories.FreeObjects.Free.html#838" class="Field">FX</a> <a id="9681" class="Symbol">=</a> <a id="9683" href="Categories.Functor.Core.html#797" class="Function">F.₀</a> <a id="9687" href="Categories.FreeObjects.Free.html#9659" class="Bound">X</a>
<a id="9695" class="Symbol">;</a> <a id="9697" href="Categories.FreeObjects.Free.html#854" class="Field">η</a> <a id="9699" class="Symbol">=</a> <a id="9701" href="Categories.FreeObjects.Free.html#10017" class="Function">η₁</a> <a id="9704" href="Categories.FreeObjects.Free.html#9659" class="Bound">X</a>
<a id="9712" class="Symbol">;</a> <a id="9714" href="Categories.FreeObjects.Free.html#880" class="Field Operator">_*</a> <a id="9717" class="Symbol">=</a>  <a id="9720" class="Symbol">λ</a> <a id="9722" class="Symbol">{</a><a id="9723" href="Categories.FreeObjects.Free.html#9723" class="Bound">A</a> <a id="9725" class="Symbol">:</a> <a id="9727" href="Categories.Category.Core.html#559" class="Function">D.Obj</a><a id="9732" class="Symbol">}</a> <a id="9734" href="Categories.FreeObjects.Free.html#9734" class="Bound">f</a> <a id="9736" class="Symbol"></a> <a id="9738" href="Categories.FreeObjects.Free.html#10108" class="Function">ε</a> <a id="9740" href="Categories.FreeObjects.Free.html#9723" class="Bound">A</a> <a id="9742" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="9746" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="9750" href="Categories.FreeObjects.Free.html#9734" class="Bound">f</a>
<a id="9758" class="Symbol">;</a> <a id="9760" href="Categories.FreeObjects.Free.html#937" class="Field">*-lift</a> <a id="9767" class="Symbol">=</a> <a id="9769" href="Categories.FreeObjects.Free.html#10143" class="Function">*-lift&#39;</a>
<a id="9783" class="Symbol">;</a> <a id="9785" href="Categories.FreeObjects.Free.html#1017" class="Field">*-uniq</a> <a id="9792" class="Symbol">=</a> <a id="9794" href="Categories.FreeObjects.Free.html#11624" class="Function">*-uniq&#39;</a>
<a id="9808" class="Symbol">}</a>
<a id="9816" class="Keyword">where</a>
<a id="9830" class="Keyword">module</a> <a id="9837" href="Categories.FreeObjects.Free.html#9837" class="Module">F</a> <a id="9839" class="Symbol">=</a> <a id="9841" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="9849" href="Categories.FreeObjects.Free.html#9647" class="Bound">Free</a> <a id="9854" class="Keyword">using</a> <a id="9860" class="Symbol">(</a><a id="9861" href="Categories.Functor.Core.html#797" class="Function"></a><a id="9862" class="Symbol">;</a> <a id="9864" href="Categories.Functor.Core.html#806" class="Function"></a><a id="9865" class="Symbol">;</a> <a id="9867" href="Categories.Functor.Core.html#511" class="Field">identity</a><a id="9875" class="Symbol">;</a> <a id="9877" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a><a id="9889" class="Symbol">;</a> <a id="9891" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a><a id="9899" class="Symbol">)</a>
<a id="9909" class="Keyword">open</a> <a id="9914" href="Categories.Adjoint.html#1260" class="Module">Adjoint</a> <a id="9922" class="Symbol">(</a><a id="9923" href="Categories.FreeObjects.Free.html#9652" class="Bound">Free⊣U</a><a id="9929" class="Symbol">)</a> <a id="9931" class="Keyword">using</a> <a id="9937" class="Symbol">(</a><a id="9938" href="Categories.Adjoint.html#1473" class="Field">unit</a><a id="9942" class="Symbol">;</a> <a id="9944" href="Categories.Adjoint.html#1521" class="Field">counit</a><a id="9950" class="Symbol">;</a> <a id="9952" href="Categories.Adjoint.html#1669" class="Field">zig</a><a id="9955" class="Symbol">;</a> <a id="9957" href="Categories.Adjoint.html#1742" class="Field">zag</a><a id="9960" class="Symbol">)</a>
<a id="9970" class="Keyword">open</a> <a id="9975" href="Categories.NaturalTransformation.Core.html#466" class="Module">NaturalTransformation</a> <a id="9997" href="Categories.Adjoint.html#1473" class="Function">unit</a> <a id="10002" class="Keyword">renaming</a> <a id="10011" class="Symbol">(</a><a id="10012" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="10014" class="Symbol">to</a> <a id="10017" class="Field">η₁</a><a id="10019" class="Symbol">;</a> <a id="10021" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="10033" class="Symbol">to</a> <a id="10036" class="Field">η-sym-commute</a><a id="10049" class="Symbol">)</a>
<a id="10059" class="Keyword">open</a> <a id="10064" href="Categories.NaturalTransformation.Core.html#466" class="Module">NaturalTransformation</a> <a id="10086" href="Categories.Adjoint.html#1521" class="Function">counit</a> <a id="10093" class="Keyword">renaming</a> <a id="10102" class="Symbol">(</a><a id="10103" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="10105" class="Symbol">to</a> <a id="10108" class="Field">ε</a><a id="10109" class="Symbol">;</a> <a id="10111" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="10119" class="Symbol">to</a> <a id="10122" class="Field">ε-commute</a><a id="10131" class="Symbol">)</a>
<a id="10143" href="Categories.FreeObjects.Free.html#10143" class="Function">*-lift&#39;</a> <a id="10151" class="Symbol">:</a> <a id="10153" class="Symbol">{</a><a id="10154" href="Categories.FreeObjects.Free.html#10154" class="Bound">A</a> <a id="10156" class="Symbol">:</a> <a id="10158" href="Categories.Category.Core.html#559" class="Function">D.Obj</a><a id="10163" class="Symbol">}</a> <a id="10165" class="Symbol">(</a><a id="10166" href="Categories.FreeObjects.Free.html#10166" class="Bound">f</a> <a id="10168" class="Symbol">:</a> <a id="10170" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a> <a id="10172" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="10174" href="Categories.FreeObjects.Free.html#9659" class="Bound">X</a> <a id="10176" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="10178" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="10182" href="Categories.FreeObjects.Free.html#10154" class="Bound">A</a> <a id="10184" href="Categories.Category.html#502" class="Function Operator">]</a><a id="10185" class="Symbol">)</a> <a id="10187" class="Symbol"></a> <a id="10189" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a> <a id="10191" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="10193" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="10197" class="Symbol">(</a><a id="10198" href="Categories.FreeObjects.Free.html#10108" class="Function">ε</a> <a id="10200" href="Categories.FreeObjects.Free.html#10154" class="Bound">A</a> <a id="10202" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="10206" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="10210" href="Categories.FreeObjects.Free.html#10166" class="Bound">f</a><a id="10211" class="Symbol">)</a> <a id="10213" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="10217" href="Categories.FreeObjects.Free.html#10017" class="Function">η₁</a> <a id="10220" href="Categories.FreeObjects.Free.html#9659" class="Bound">X</a> <a id="10222" href="Categories.Category.html#609" class="Function Operator"></a> <a id="10224" href="Categories.FreeObjects.Free.html#10166" class="Bound">f</a> <a id="10226" href="Categories.Category.html#609" class="Function Operator">]</a>
<a id="10236" href="Categories.FreeObjects.Free.html#10143" class="Function">*-lift&#39;</a> <a id="10244" class="Symbol">{</a><a id="10245" href="Categories.FreeObjects.Free.html#10245" class="Bound">A</a><a id="10246" class="Symbol">}</a> <a id="10248" href="Categories.FreeObjects.Free.html#10248" class="Bound">f</a> <a id="10250" class="Symbol">=</a> <a id="10253" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="10269" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="10273" class="Symbol">(</a><a id="10274" href="Categories.FreeObjects.Free.html#10108" class="Function">ε</a> <a id="10276" href="Categories.FreeObjects.Free.html#10245" class="Bound">A</a> <a id="10278" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="10282" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="10286" href="Categories.FreeObjects.Free.html#10248" class="Bound">f</a><a id="10287" class="Symbol">)</a> <a id="10289" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="10293" href="Categories.FreeObjects.Free.html#10017" class="Function">η₁</a> <a id="10296" href="Categories.FreeObjects.Free.html#9659" class="Bound">X</a> <a id="10313" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="10316" href="Categories.Functor.Core.html#565" class="Field">U.homomorphism</a> <a id="10331" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="10339" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="10351" class="Symbol">(</a><a id="10352" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="10356" class="Symbol">(</a><a id="10357" href="Categories.FreeObjects.Free.html#10108" class="Function">ε</a> <a id="10359" href="Categories.FreeObjects.Free.html#10245" class="Bound">A</a><a id="10360" class="Symbol">)</a> <a id="10362" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="10366" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="10370" class="Symbol">(</a><a id="10371" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="10375" href="Categories.FreeObjects.Free.html#10248" class="Bound">f</a><a id="10376" class="Symbol">))</a> <a id="10379" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="10383" href="Categories.FreeObjects.Free.html#10017" class="Function">η₁</a> <a id="10386" href="Categories.FreeObjects.Free.html#9659" class="Bound">X</a> <a id="10395" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="10398" href="Categories.Category.Core.html#715" class="Function">C.assoc</a> <a id="10406" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="10418" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="10422" class="Symbol">(</a><a id="10423" href="Categories.FreeObjects.Free.html#10108" class="Function">ε</a> <a id="10425" href="Categories.FreeObjects.Free.html#10245" class="Bound">A</a><a id="10426" class="Symbol">)</a> <a id="10428" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="10432" class="Symbol">(</a><a id="10433" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="10437" class="Symbol">(</a><a id="10438" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="10442" href="Categories.FreeObjects.Free.html#10248" class="Bound">f</a><a id="10443" class="Symbol">)</a> <a id="10445" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="10449" href="Categories.FreeObjects.Free.html#10017" class="Function">η₁</a> <a id="10452" href="Categories.FreeObjects.Free.html#9659" class="Bound">X</a><a id="10453" class="Symbol">)</a> <a id="10462" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="10465" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="10473" href="Categories.FreeObjects.Free.html#10036" class="Function">η-sym-commute</a> <a id="10487" href="Categories.FreeObjects.Free.html#10248" class="Bound">f</a> <a id="10489" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="10501" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="10505" class="Symbol">(</a><a id="10506" href="Categories.FreeObjects.Free.html#10108" class="Function">ε</a> <a id="10508" href="Categories.FreeObjects.Free.html#10245" class="Bound">A</a><a id="10509" class="Symbol">)</a> <a id="10511" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="10515" class="Symbol">(</a><a id="10516" href="Categories.FreeObjects.Free.html#10017" class="Function">η₁</a> <a id="10519" class="Symbol">(</a><a id="10520" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="10524" href="Categories.FreeObjects.Free.html#10245" class="Bound">A</a><a id="10525" class="Symbol">)</a> <a id="10527" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="10531" href="Categories.FreeObjects.Free.html#10248" class="Bound">f</a><a id="10532" class="Symbol">)</a> <a id="10545" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="10549" href="Categories.Category.Core.html#715" class="Function">C.assoc</a> <a id="10557" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="10569" class="Symbol">(</a><a id="10570" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="10574" class="Symbol">(</a><a id="10575" href="Categories.FreeObjects.Free.html#10108" class="Function">ε</a> <a id="10577" href="Categories.FreeObjects.Free.html#10245" class="Bound">A</a><a id="10578" class="Symbol">)</a> <a id="10580" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="10584" href="Categories.FreeObjects.Free.html#10017" class="Function">η₁</a> <a id="10587" class="Symbol">(</a><a id="10588" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="10592" href="Categories.FreeObjects.Free.html#10245" class="Bound">A</a><a id="10593" class="Symbol">))</a> <a id="10596" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="10600" href="Categories.FreeObjects.Free.html#10248" class="Bound">f</a> <a id="10613" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="10616" href="Categories.Adjoint.html#1742" class="Function">zag</a> <a id="10620" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="10628" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="10640" href="Categories.Category.Core.html#630" class="Function">C.id</a> <a id="10645" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="10649" href="Categories.FreeObjects.Free.html#10248" class="Bound">f</a> <a id="10684" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="10687" href="Categories.Category.Core.html#1096" class="Function">C.identityˡ</a> <a id="10699" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="10711" href="Categories.FreeObjects.Free.html#10248" class="Bound">f</a> <a id="10755" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="10767" class="Keyword">where</a>
<a id="10785" class="Keyword">open</a> <a id="10790" href="Categories.Category.Core.html#2462" class="Module">C.HomReasoning</a>
<a id="10815" href="Categories.FreeObjects.Free.html#10815" class="Function">*-uniq-sym</a> <a id="10826" class="Symbol">:</a> <a id="10828" class="Symbol">{</a><a id="10829" href="Categories.FreeObjects.Free.html#10829" class="Bound">A</a> <a id="10831" class="Symbol">:</a> <a id="10833" href="Categories.Category.Core.html#559" class="Function">D.Obj</a><a id="10838" class="Symbol">}</a> <a id="10840" class="Symbol">(</a><a id="10841" href="Categories.FreeObjects.Free.html#10841" class="Bound">f</a> <a id="10843" class="Symbol">:</a> <a id="10845" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a> <a id="10847" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="10849" href="Categories.FreeObjects.Free.html#9659" class="Bound">X</a> <a id="10851" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="10853" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="10857" href="Categories.FreeObjects.Free.html#10829" class="Bound">A</a> <a id="10859" href="Categories.Category.html#502" class="Function Operator">]</a><a id="10860" class="Symbol">)</a> <a id="10862" class="Symbol">(</a><a id="10863" href="Categories.FreeObjects.Free.html#10863" class="Bound">g</a> <a id="10865" class="Symbol">:</a> <a id="10867" href="Categories.FreeObjects.Free.html#1344" class="Bound">D</a> <a id="10869" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="10871" href="Categories.Functor.Core.html#797" class="Function">F.₀</a> <a id="10875" href="Categories.FreeObjects.Free.html#9659" class="Bound">X</a> <a id="10877" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="10879" href="Categories.FreeObjects.Free.html#10829" class="Bound">A</a> <a id="10881" href="Categories.Category.html#502" class="Function Operator">]</a><a id="10882" class="Symbol">)</a> <a id="10884" class="Symbol"></a> <a id="10886" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a> <a id="10888" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="10890" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="10894" href="Categories.FreeObjects.Free.html#10863" class="Bound">g</a> <a id="10896" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="10900" href="Categories.FreeObjects.Free.html#10017" class="Function">η₁</a> <a id="10903" href="Categories.FreeObjects.Free.html#9659" class="Bound">X</a> <a id="10905" href="Categories.Category.html#609" class="Function Operator"></a> <a id="10907" href="Categories.FreeObjects.Free.html#10841" class="Bound">f</a> <a id="10909" href="Categories.Category.html#609" class="Function Operator">]</a> <a id="10911" class="Symbol"></a> <a id="10913" href="Categories.FreeObjects.Free.html#1344" class="Bound">D</a> <a id="10915" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="10917" href="Categories.FreeObjects.Free.html#10108" class="Function">ε</a> <a id="10919" href="Categories.FreeObjects.Free.html#10829" class="Bound">A</a> <a id="10921" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="10925" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="10929" href="Categories.FreeObjects.Free.html#10841" class="Bound">f</a> <a id="10931" href="Categories.Category.html#609" class="Function Operator"></a> <a id="10933" href="Categories.FreeObjects.Free.html#10863" class="Bound">g</a> <a id="10935" href="Categories.Category.html#609" class="Function Operator">]</a>
<a id="10945" href="Categories.FreeObjects.Free.html#10815" class="Function">*-uniq-sym</a> <a id="10956" class="Symbol">{</a><a id="10957" href="Categories.FreeObjects.Free.html#10957" class="Bound">A</a><a id="10958" class="Symbol">}</a> <a id="10960" href="Categories.FreeObjects.Free.html#10960" class="Bound">f</a> <a id="10962" href="Categories.FreeObjects.Free.html#10962" class="Bound">g</a> <a id="10964" href="Categories.FreeObjects.Free.html#10964" class="Bound Operator">comm_proof</a> <a id="10975" class="Symbol">=</a> <a id="10977" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="10993" href="Categories.FreeObjects.Free.html#10108" class="Function">ε</a> <a id="10995" href="Categories.FreeObjects.Free.html#10957" class="Bound">A</a> <a id="10997" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="11001" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="11005" href="Categories.FreeObjects.Free.html#10960" class="Bound">f</a> <a id="11037" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="11041" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="11049" href="Categories.Functor.Core.html#696" class="Function">F.F-resp-≈</a> <a id="11060" href="Categories.FreeObjects.Free.html#10964" class="Bound Operator">comm_proof</a> <a id="11071" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="11083" href="Categories.FreeObjects.Free.html#10108" class="Function">ε</a> <a id="11085" href="Categories.FreeObjects.Free.html#10957" class="Bound">A</a> <a id="11087" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="11091" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="11095" class="Symbol">(</a><a id="11096" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="11100" href="Categories.FreeObjects.Free.html#10962" class="Bound">g</a> <a id="11102" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="11106" href="Categories.FreeObjects.Free.html#10017" class="Function">η₁</a> <a id="11109" href="Categories.FreeObjects.Free.html#9659" class="Bound">X</a><a id="11110" class="Symbol">)</a> <a id="11127" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="11130" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="11138" href="Categories.Functor.Core.html#565" class="Function">F.homomorphism</a> <a id="11153" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="11165" href="Categories.FreeObjects.Free.html#10108" class="Function">ε</a> <a id="11167" href="Categories.FreeObjects.Free.html#10957" class="Bound">A</a> <a id="11169" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="11173" class="Symbol">(</a> <a id="11175" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="11179" class="Symbol">(</a><a id="11180" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="11184" href="Categories.FreeObjects.Free.html#10962" class="Bound">g</a><a id="11185" class="Symbol">)</a> <a id="11187" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="11191" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="11195" class="Symbol">(</a><a id="11196" href="Categories.FreeObjects.Free.html#10017" class="Function">η₁</a> <a id="11199" href="Categories.FreeObjects.Free.html#9659" class="Bound">X</a><a id="11200" class="Symbol">)</a> <a id="11202" class="Symbol">)</a> <a id="11209" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="11213" href="Categories.Category.Core.html#715" class="Function">D.assoc</a> <a id="11221" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="11233" class="Symbol">(</a><a id="11234" href="Categories.FreeObjects.Free.html#10108" class="Function">ε</a> <a id="11236" href="Categories.FreeObjects.Free.html#10957" class="Bound">A</a> <a id="11238" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="11242" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="11246" class="Symbol">(</a><a id="11247" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="11251" href="Categories.FreeObjects.Free.html#10962" class="Bound">g</a><a id="11252" class="Symbol">))</a> <a id="11255" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="11259" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="11263" class="Symbol">(</a><a id="11264" href="Categories.FreeObjects.Free.html#10017" class="Function">η₁</a> <a id="11267" href="Categories.FreeObjects.Free.html#9659" class="Bound">X</a><a id="11268" class="Symbol">)</a> <a id="11277" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="11280" href="Categories.FreeObjects.Free.html#10122" class="Function">ε-commute</a> <a id="11290" href="Categories.FreeObjects.Free.html#10962" class="Bound">g</a> <a id="11292" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="11300" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="11312" class="Symbol">(</a><a id="11313" href="Categories.FreeObjects.Free.html#10962" class="Bound">g</a> <a id="11315" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="11319" href="Categories.FreeObjects.Free.html#10108" class="Function">ε</a> <a id="11321" class="Symbol">(</a><a id="11322" href="Categories.Functor.Core.html#797" class="Function">F.₀</a> <a id="11326" href="Categories.FreeObjects.Free.html#9659" class="Bound">X</a><a id="11327" class="Symbol">))</a> <a id="11330" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="11334" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="11338" class="Symbol">(</a><a id="11339" href="Categories.FreeObjects.Free.html#10017" class="Function">η₁</a> <a id="11342" href="Categories.FreeObjects.Free.html#9659" class="Bound">X</a><a id="11343" class="Symbol">)</a> <a id="11356" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="11359" href="Categories.Category.Core.html#715" class="Function">D.assoc</a> <a id="11367" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="11379" class="Symbol">(</a><a id="11380" href="Categories.FreeObjects.Free.html#10962" class="Bound">g</a> <a id="11382" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="11386" class="Symbol">(</a><a id="11387" href="Categories.FreeObjects.Free.html#10108" class="Function">ε</a> <a id="11389" class="Symbol">(</a><a id="11390" href="Categories.Functor.Core.html#797" class="Function">F.₀</a> <a id="11394" href="Categories.FreeObjects.Free.html#9659" class="Bound">X</a><a id="11395" class="Symbol">)</a> <a id="11397" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="11401" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="11405" class="Symbol">(</a><a id="11406" href="Categories.FreeObjects.Free.html#10017" class="Function">η₁</a> <a id="11409" href="Categories.FreeObjects.Free.html#9659" class="Bound">X</a><a id="11410" class="Symbol">)))</a> <a id="11423" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="11426" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="11434" href="Categories.Adjoint.html#1669" class="Function">zig</a> <a id="11438" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="11450" href="Categories.FreeObjects.Free.html#10962" class="Bound">g</a> <a id="11452" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="11456" href="Categories.Category.Core.html#630" class="Function">D.id</a> <a id="11494" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="11497" href="Categories.Category.Core.html#1145" class="Function">D.identityʳ</a> <a id="11509" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="11521" href="Categories.FreeObjects.Free.html#10962" class="Bound">g</a> <a id="11565" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="11577" class="Keyword">where</a>
<a id="11595" class="Keyword">open</a> <a id="11600" href="Categories.Category.Core.html#2462" class="Module">D.HomReasoning</a>
<a id="11624" href="Categories.FreeObjects.Free.html#11624" class="Function">*-uniq&#39;</a> <a id="11632" class="Symbol">:</a> <a id="11634" class="Symbol">{</a><a id="11635" href="Categories.FreeObjects.Free.html#11635" class="Bound">A</a> <a id="11637" class="Symbol">:</a> <a id="11639" href="Categories.Category.Core.html#559" class="Function">D.Obj</a><a id="11644" class="Symbol">}</a> <a id="11646" class="Symbol">(</a><a id="11647" href="Categories.FreeObjects.Free.html#11647" class="Bound">f</a> <a id="11649" class="Symbol">:</a> <a id="11651" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a> <a id="11653" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="11655" href="Categories.FreeObjects.Free.html#9659" class="Bound">X</a> <a id="11657" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="11659" href="Categories.Functor.Core.html#797" class="Function">U.₀</a> <a id="11663" href="Categories.FreeObjects.Free.html#11635" class="Bound">A</a> <a id="11665" href="Categories.Category.html#502" class="Function Operator">]</a><a id="11666" class="Symbol">)</a> <a id="11668" class="Symbol">(</a><a id="11669" href="Categories.FreeObjects.Free.html#11669" class="Bound">g</a> <a id="11671" class="Symbol">:</a> <a id="11673" href="Categories.FreeObjects.Free.html#1344" class="Bound">D</a> <a id="11675" href="Categories.Category.html#502" class="Function Operator">[</a> <a id="11677" href="Categories.Functor.Core.html#797" class="Function">F.₀</a> <a id="11681" href="Categories.FreeObjects.Free.html#9659" class="Bound">X</a> <a id="11683" href="Categories.Category.html#502" class="Function Operator">,</a> <a id="11685" href="Categories.FreeObjects.Free.html#11635" class="Bound">A</a> <a id="11687" href="Categories.Category.html#502" class="Function Operator">]</a><a id="11688" class="Symbol">)</a> <a id="11690" class="Symbol"></a> <a id="11692" href="Categories.FreeObjects.Free.html#1323" class="Bound">C</a> <a id="11694" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="11696" href="Categories.Functor.Core.html#806" class="Function">U.₁</a> <a id="11700" href="Categories.FreeObjects.Free.html#11669" class="Bound">g</a> <a id="11702" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="11706" href="Categories.FreeObjects.Free.html#10017" class="Function">η₁</a> <a id="11709" href="Categories.FreeObjects.Free.html#9659" class="Bound">X</a> <a id="11711" href="Categories.Category.html#609" class="Function Operator"></a> <a id="11713" href="Categories.FreeObjects.Free.html#11647" class="Bound">f</a> <a id="11715" href="Categories.Category.html#609" class="Function Operator">]</a> <a id="11717" class="Symbol"></a> <a id="11719" href="Categories.FreeObjects.Free.html#1344" class="Bound">D</a> <a id="11721" href="Categories.Category.html#609" class="Function Operator">[</a> <a id="11723" href="Categories.FreeObjects.Free.html#11669" class="Bound">g</a> <a id="11725" href="Categories.Category.html#609" class="Function Operator"></a> <a id="11727" href="Categories.FreeObjects.Free.html#10108" class="Function">ε</a> <a id="11729" href="Categories.FreeObjects.Free.html#11635" class="Bound">A</a> <a id="11731" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="11735" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="11739" href="Categories.FreeObjects.Free.html#11647" class="Bound">f</a> <a id="11741" href="Categories.Category.html#609" class="Function Operator">]</a>
<a id="11751" href="Categories.FreeObjects.Free.html#11624" class="Function">*-uniq&#39;</a> <a id="11759" class="Symbol">{</a><a id="11760" href="Categories.FreeObjects.Free.html#11760" class="Bound">A</a><a id="11761" class="Symbol">}</a> <a id="11763" href="Categories.FreeObjects.Free.html#11763" class="Bound">f</a> <a id="11765" href="Categories.FreeObjects.Free.html#11765" class="Bound">g</a> <a id="11767" href="Categories.FreeObjects.Free.html#11767" class="Bound Operator">comm_proof</a> <a id="11778" class="Symbol">=</a> <a id="11781" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="11797" href="Categories.FreeObjects.Free.html#11765" class="Bound">g</a> <a id="11827" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">≈˘⟨</a> <a id="11831" href="Categories.FreeObjects.Free.html#10815" class="Function">*-uniq-sym</a> <a id="11842" href="Categories.FreeObjects.Free.html#11763" class="Bound">f</a> <a id="11844" href="Categories.FreeObjects.Free.html#11765" class="Bound">g</a> <a id="11846" href="Categories.FreeObjects.Free.html#11767" class="Bound Operator">comm_proof</a> <a id="11857" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function"></a>
<a id="11869" href="Categories.FreeObjects.Free.html#10108" class="Function">ε</a> <a id="11871" href="Categories.FreeObjects.Free.html#11760" class="Bound">A</a> <a id="11873" href="Categories.Category.Core.html#656" class="Function Operator">D.∘</a> <a id="11877" href="Categories.Functor.Core.html#806" class="Function">F.₁</a> <a id="11881" href="Categories.FreeObjects.Free.html#11763" class="Bound">f</a> <a id="11899" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="11911" class="Keyword">where</a>
<a id="11929" class="Keyword">open</a> <a id="11934" href="Categories.Category.Core.html#2462" class="Module">D.HomReasoning</a>
</pre></body></html>