bsc-leon-vatthauer/public/Categories.Morphism.Reasoning.Core.html

290 lines
No EOL
148 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

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.Morphism.Reasoning.Core</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Symbol">{-#</a> <a id="5" class="Keyword">OPTIONS</a> <a id="13" class="Pragma">--without-K</a> <a id="25" class="Pragma">--safe</a> <a id="32" class="Symbol">#-}</a>
<a id="36" class="Keyword">open</a> <a id="41" class="Keyword">import</a> <a id="48" href="Categories.Category.html" class="Module">Categories.Category</a>
<a id="69" class="Comment">{-
Helper routines most often used in reasoning with commutative squares,
at the level of arrows in categories.
Identity : reasoning about identity
Assoc4 : associativity combinators for composites of 4 morphisms
Pulls : use a ∘ b ≈ c as left-to-right rewrite
Pushes : use c ≈ a ∘ b as a left-to-right rewrite
IntroElim : introduce/eliminate an equivalent-to-id arrow
Extend : &#39;extends&#39; a commutative square with an equality on left/right/both
Convention - in this file, extra parentheses are used to clearly show
associativity. This makes reading the source more pedagogical as to the
intent of each routine.
-}</a>
<a id="713" class="Keyword">module</a> <a id="720" href="Categories.Morphism.Reasoning.Core.html" class="Module">Categories.Morphism.Reasoning.Core</a> <a id="755" class="Symbol">{</a><a id="756" href="Categories.Morphism.Reasoning.Core.html#756" class="Bound">o</a> <a id="758" href="Categories.Morphism.Reasoning.Core.html#758" class="Bound"></a> <a id="760" href="Categories.Morphism.Reasoning.Core.html#760" class="Bound">e</a><a id="761" class="Symbol">}</a> <a id="763" class="Symbol">(</a><a id="764" href="Categories.Morphism.Reasoning.Core.html#764" class="Bound">C</a> <a id="766" class="Symbol">:</a> <a id="768" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="777" href="Categories.Morphism.Reasoning.Core.html#756" class="Bound">o</a> <a id="779" href="Categories.Morphism.Reasoning.Core.html#758" class="Bound"></a> <a id="781" href="Categories.Morphism.Reasoning.Core.html#760" class="Bound">e</a><a id="782" class="Symbol">)</a> <a id="784" class="Keyword">where</a>
<a id="791" class="Keyword">open</a> <a id="796" class="Keyword">import</a> <a id="803" href="Level.html" class="Module">Level</a>
<a id="809" class="Keyword">open</a> <a id="814" class="Keyword">import</a> <a id="821" href="Function.html" class="Module">Function</a> <a id="830" class="Keyword">renaming</a> <a id="839" class="Symbol">(</a><a id="840" href="Function.Base.html#624" class="Function">id</a> <a id="843" class="Symbol">to</a> <a id="846" class="Function">idᶠ</a><a id="849" class="Symbol">;</a> <a id="851" href="Function.Base.html#1040" class="Function Operator">_∘_</a> <a id="855" class="Symbol">to</a> <a id="858" class="Function Operator">_∙_</a><a id="861" class="Symbol">)</a>
<a id="864" class="Keyword">open</a> <a id="869" class="Keyword">import</a> <a id="876" href="Relation.Binary.html" class="Module">Relation.Binary</a> <a id="892" class="Keyword">hiding</a> <a id="899" class="Symbol">(</a><a id="900" href="Relation.Binary.Core.html#1263" class="Function Operator">_⇒_</a><a id="903" class="Symbol">)</a>
<a id="906" class="Keyword">open</a> <a id="911" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="920" href="Categories.Morphism.Reasoning.Core.html#764" class="Bound">C</a>
<a id="922" class="Keyword">open</a> <a id="927" href="Categories.Category.html#824" class="Module">Definitions</a> <a id="939" href="Categories.Morphism.Reasoning.Core.html#764" class="Bound">C</a>
<a id="942" class="Keyword">private</a>
<a id="952" class="Keyword">variable</a>
<a id="965" href="Categories.Morphism.Reasoning.Core.html#965" class="Generalizable">X</a> <a id="967" href="Categories.Morphism.Reasoning.Core.html#967" class="Generalizable">Y</a> <a id="969" class="Symbol">:</a> <a id="971" href="Categories.Category.Core.html#559" class="Field">Obj</a>
<a id="979" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="981" href="Categories.Morphism.Reasoning.Core.html#981" class="Generalizable">a</a> <a id="984" href="Categories.Morphism.Reasoning.Core.html#984" class="Generalizable">a″</a> <a id="987" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a> <a id="989" href="Categories.Morphism.Reasoning.Core.html#989" class="Generalizable">b</a> <a id="992" href="Categories.Morphism.Reasoning.Core.html#992" class="Generalizable">b″</a> <a id="995" href="Categories.Morphism.Reasoning.Core.html#995" class="Generalizable">c</a> <a id="997" href="Categories.Morphism.Reasoning.Core.html#997" class="Generalizable">c</a> <a id="1000" href="Categories.Morphism.Reasoning.Core.html#1000" class="Generalizable">c″</a> <a id="1003" class="Symbol">:</a> <a id="1005" href="Categories.Morphism.Reasoning.Core.html#965" class="Generalizable">X</a> <a id="1007" href="Categories.Category.Core.html#575" class="Field Operator"></a> <a id="1009" href="Categories.Morphism.Reasoning.Core.html#967" class="Generalizable">Y</a>
<a id="1015" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="1017" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a> <a id="1019" href="Categories.Morphism.Reasoning.Core.html#1019" class="Generalizable">h</a> <a id="1021" href="Categories.Morphism.Reasoning.Core.html#1021" class="Generalizable">i</a> <a id="1023" class="Symbol">:</a> <a id="1025" href="Categories.Morphism.Reasoning.Core.html#965" class="Generalizable">X</a> <a id="1027" href="Categories.Category.Core.html#575" class="Field Operator"></a> <a id="1029" href="Categories.Morphism.Reasoning.Core.html#967" class="Generalizable">Y</a>
<a id="1032" class="Keyword">open</a> <a id="1037" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
<a id="1051" class="Keyword">module</a> <a id="Identity"></a><a id="1058" href="Categories.Morphism.Reasoning.Core.html#1058" class="Module">Identity</a> <a id="1067" class="Keyword">where</a>
<a id="Identity.id-unique"></a><a id="1075" href="Categories.Morphism.Reasoning.Core.html#1075" class="Function">id-unique</a> <a id="1085" class="Symbol">:</a> <a id="1087" class="Symbol"></a> <a id="1089" class="Symbol">{</a><a id="1090" href="Categories.Morphism.Reasoning.Core.html#1090" class="Bound">o</a><a id="1091" class="Symbol">}</a> <a id="1093" class="Symbol">{</a><a id="1094" href="Categories.Morphism.Reasoning.Core.html#1094" class="Bound">f</a> <a id="1096" class="Symbol">:</a> <a id="1098" href="Categories.Morphism.Reasoning.Core.html#1090" class="Bound">o</a> <a id="1100" href="Categories.Category.Core.html#575" class="Field Operator"></a> <a id="1102" href="Categories.Morphism.Reasoning.Core.html#1090" class="Bound">o</a><a id="1103" class="Symbol">}</a> <a id="1105" class="Symbol"></a> <a id="1107" class="Symbol">(∀</a> <a id="1110" href="Categories.Morphism.Reasoning.Core.html#1110" class="Bound">g</a> <a id="1112" class="Symbol"></a> <a id="1114" href="Categories.Morphism.Reasoning.Core.html#1110" class="Bound">g</a> <a id="1116" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1118" href="Categories.Morphism.Reasoning.Core.html#1094" class="Bound">f</a> <a id="1120" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="1122" href="Categories.Morphism.Reasoning.Core.html#1110" class="Bound">g</a><a id="1123" class="Symbol">)</a> <a id="1125" class="Symbol"></a> <a id="1127" href="Categories.Morphism.Reasoning.Core.html#1094" class="Bound">f</a> <a id="1129" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="1131" href="Categories.Category.Core.html#630" class="Field">id</a>
<a id="1136" href="Categories.Morphism.Reasoning.Core.html#1075" class="Function">id-unique</a> <a id="1146" href="Categories.Morphism.Reasoning.Core.html#1146" class="Bound">g∘f≈g</a> <a id="1152" class="Symbol">=</a> <a id="1154" href="Relation.Binary.Structures.html#1629" class="Function">Equiv.trans</a> <a id="1166" class="Symbol">(</a><a id="1167" href="Relation.Binary.Structures.html#1603" class="Function">Equiv.sym</a> <a id="1177" href="Categories.Category.Core.html#1096" class="Field">identityˡ</a><a id="1186" class="Symbol">)</a> <a id="1188" class="Symbol">(</a><a id="1189" href="Categories.Morphism.Reasoning.Core.html#1146" class="Bound">g∘f≈g</a> <a id="1195" href="Categories.Category.Core.html#630" class="Field">id</a><a id="1197" class="Symbol">)</a>
<a id="Identity.id-comm"></a><a id="1202" href="Categories.Morphism.Reasoning.Core.html#1202" class="Function">id-comm</a> <a id="1210" class="Symbol">:</a> <a id="1212" class="Symbol"></a> <a id="1214" class="Symbol">{</a><a id="1215" href="Categories.Morphism.Reasoning.Core.html#1215" class="Bound">a</a> <a id="1217" href="Categories.Morphism.Reasoning.Core.html#1217" class="Bound">b</a><a id="1218" class="Symbol">}</a> <a id="1220" class="Symbol">{</a><a id="1221" href="Categories.Morphism.Reasoning.Core.html#1221" class="Bound">f</a> <a id="1223" class="Symbol">:</a> <a id="1225" href="Categories.Morphism.Reasoning.Core.html#1215" class="Bound">a</a> <a id="1227" href="Categories.Category.Core.html#575" class="Field Operator"></a> <a id="1229" href="Categories.Morphism.Reasoning.Core.html#1217" class="Bound">b</a><a id="1230" class="Symbol">}</a> <a id="1232" class="Symbol"></a> <a id="1234" href="Categories.Morphism.Reasoning.Core.html#1221" class="Bound">f</a> <a id="1236" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1238" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="1241" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="1243" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="1246" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1248" href="Categories.Morphism.Reasoning.Core.html#1221" class="Bound">f</a>
<a id="1252" href="Categories.Morphism.Reasoning.Core.html#1202" class="Function">id-comm</a> <a id="1260" class="Symbol">=</a> <a id="1262" href="Relation.Binary.Structures.html#1629" class="Function">Equiv.trans</a> <a id="1274" href="Categories.Category.Core.html#1145" class="Field">identityʳ</a> <a id="1284" class="Symbol">(</a><a id="1285" href="Relation.Binary.Structures.html#1603" class="Function">Equiv.sym</a> <a id="1295" href="Categories.Category.Core.html#1096" class="Field">identityˡ</a><a id="1304" class="Symbol">)</a>
<a id="Identity.id-comm-sym"></a><a id="1309" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a> <a id="1321" class="Symbol">:</a> <a id="1323" class="Symbol"></a> <a id="1325" class="Symbol">{</a><a id="1326" href="Categories.Morphism.Reasoning.Core.html#1326" class="Bound">a</a> <a id="1328" href="Categories.Morphism.Reasoning.Core.html#1328" class="Bound">b</a><a id="1329" class="Symbol">}</a> <a id="1331" class="Symbol">{</a><a id="1332" href="Categories.Morphism.Reasoning.Core.html#1332" class="Bound">f</a> <a id="1334" class="Symbol">:</a> <a id="1336" href="Categories.Morphism.Reasoning.Core.html#1326" class="Bound">a</a> <a id="1338" href="Categories.Category.Core.html#575" class="Field Operator"></a> <a id="1340" href="Categories.Morphism.Reasoning.Core.html#1328" class="Bound">b</a><a id="1341" class="Symbol">}</a> <a id="1343" class="Symbol"></a> <a id="1345" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="1348" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1350" href="Categories.Morphism.Reasoning.Core.html#1332" class="Bound">f</a> <a id="1352" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="1354" href="Categories.Morphism.Reasoning.Core.html#1332" class="Bound">f</a> <a id="1356" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1358" href="Categories.Category.Core.html#630" class="Field">id</a>
<a id="1363" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a> <a id="1375" class="Symbol">=</a> <a id="1377" href="Relation.Binary.Structures.html#1629" class="Function">Equiv.trans</a> <a id="1389" href="Categories.Category.Core.html#1096" class="Field">identityˡ</a> <a id="1399" class="Symbol">(</a><a id="1400" href="Relation.Binary.Structures.html#1603" class="Function">Equiv.sym</a> <a id="1410" href="Categories.Category.Core.html#1145" class="Field">identityʳ</a><a id="1419" class="Symbol">)</a>
<a id="1422" class="Keyword">open</a> <a id="1427" href="Categories.Morphism.Reasoning.Core.html#1058" class="Module">Identity</a> <a id="1436" class="Keyword">public</a>
<a id="1444" class="Keyword">module</a> <a id="Assoc4"></a><a id="1451" href="Categories.Morphism.Reasoning.Core.html#1451" class="Module">Assoc4</a> <a id="1458" class="Keyword">where</a>
<a id="Assoc4.assoc²"></a><a id="1466" href="Categories.Morphism.Reasoning.Core.html#1466" class="Function">assoc²</a> <a id="1473" class="Symbol">:</a> <a id="1475" class="Symbol">((</a><a id="1477" href="Categories.Morphism.Reasoning.Core.html#1021" class="Generalizable">i</a> <a id="1479" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1481" href="Categories.Morphism.Reasoning.Core.html#1019" class="Generalizable">h</a><a id="1482" class="Symbol">)</a> <a id="1484" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1486" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a><a id="1487" class="Symbol">)</a> <a id="1489" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1491" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="1493" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="1495" href="Categories.Morphism.Reasoning.Core.html#1021" class="Generalizable">i</a> <a id="1497" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1499" class="Symbol">(</a><a id="1500" href="Categories.Morphism.Reasoning.Core.html#1019" class="Generalizable">h</a> <a id="1502" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1504" class="Symbol">(</a><a id="1505" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a> <a id="1507" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1509" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a><a id="1510" class="Symbol">))</a>
<a id="1515" href="Categories.Morphism.Reasoning.Core.html#1466" class="Function">assoc²</a> <a id="1522" class="Symbol">=</a> <a id="1524" href="Relation.Binary.Structures.html#1629" class="Function">Equiv.trans</a> <a id="1536" href="Categories.Category.Core.html#715" class="Field">assoc</a> <a id="1542" href="Categories.Category.Core.html#715" class="Field">assoc</a>
<a id="Assoc4.assoc²&#39;"></a><a id="1551" href="Categories.Morphism.Reasoning.Core.html#1551" class="Function">assoc²&#39;</a> <a id="1559" class="Symbol">:</a> <a id="1561" class="Symbol">(</a><a id="1562" href="Categories.Morphism.Reasoning.Core.html#1021" class="Generalizable">i</a> <a id="1564" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1566" class="Symbol">(</a><a id="1567" href="Categories.Morphism.Reasoning.Core.html#1019" class="Generalizable">h</a> <a id="1569" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1571" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a><a id="1572" class="Symbol">))</a> <a id="1575" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1577" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="1579" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="1581" href="Categories.Morphism.Reasoning.Core.html#1021" class="Generalizable">i</a> <a id="1583" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1585" class="Symbol">(</a><a id="1586" href="Categories.Morphism.Reasoning.Core.html#1019" class="Generalizable">h</a> <a id="1588" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1590" class="Symbol">(</a><a id="1591" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a> <a id="1593" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1595" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a><a id="1596" class="Symbol">))</a>
<a id="1601" href="Categories.Morphism.Reasoning.Core.html#1551" class="Function">assoc²&#39;</a> <a id="1609" class="Symbol">=</a> <a id="1611" href="Relation.Binary.Structures.html#1629" class="Function">Equiv.trans</a> <a id="1623" href="Categories.Category.Core.html#715" class="Field">assoc</a> <a id="1629" class="Symbol">(</a><a id="1630" href="Categories.Category.Core.html#1706" class="Function">∘-resp-≈ʳ</a> <a id="1640" href="Categories.Category.Core.html#715" class="Field">assoc</a><a id="1645" class="Symbol">)</a>
<a id="Assoc4.assoc²&#39;&#39;"></a><a id="1650" href="Categories.Morphism.Reasoning.Core.html#1650" class="Function">assoc²&#39;&#39;</a> <a id="1659" class="Symbol">:</a> <a id="1661" href="Categories.Morphism.Reasoning.Core.html#1021" class="Generalizable">i</a> <a id="1663" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1665" class="Symbol">((</a><a id="1667" href="Categories.Morphism.Reasoning.Core.html#1019" class="Generalizable">h</a> <a id="1669" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1671" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a><a id="1672" class="Symbol">)</a> <a id="1674" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1676" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a><a id="1677" class="Symbol">)</a> <a id="1679" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="1681" class="Symbol">(</a><a id="1682" href="Categories.Morphism.Reasoning.Core.html#1021" class="Generalizable">i</a> <a id="1684" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1686" href="Categories.Morphism.Reasoning.Core.html#1019" class="Generalizable">h</a><a id="1687" class="Symbol">)</a> <a id="1689" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1691" class="Symbol">(</a><a id="1692" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a> <a id="1694" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1696" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a><a id="1697" class="Symbol">)</a>
<a id="1701" href="Categories.Morphism.Reasoning.Core.html#1650" class="Function">assoc²&#39;&#39;</a> <a id="1710" class="Symbol">=</a> <a id="1712" href="Relation.Binary.Structures.html#1629" class="Function">Equiv.trans</a> <a id="1724" class="Symbol">(</a><a id="1725" href="Categories.Category.Core.html#1706" class="Function">∘-resp-≈ʳ</a> <a id="1735" href="Categories.Category.Core.html#715" class="Field">assoc</a><a id="1740" class="Symbol">)</a> <a id="1742" href="Categories.Category.Core.html#1004" class="Field">sym-assoc</a>
<a id="1753" class="Keyword">open</a> <a id="1758" href="Categories.Morphism.Reasoning.Core.html#1451" class="Module">Assoc4</a> <a id="1765" class="Keyword">public</a>
<a id="1773" class="Comment">-- Pulls use &quot;a ∘ b ≈ c&quot; as left-to-right rewrite</a>
<a id="1823" class="Comment">-- pull to the right / left of something existing</a>
<a id="1873" class="Keyword">module</a> <a id="Pulls"></a><a id="1880" href="Categories.Morphism.Reasoning.Core.html#1880" class="Module">Pulls</a> <a id="1886" class="Symbol">(</a><a id="1887" href="Categories.Morphism.Reasoning.Core.html#1887" class="Bound">ab≡c</a> <a id="1892" class="Symbol">:</a> <a id="1894" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="1896" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1898" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a> <a id="1900" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="1902" href="Categories.Morphism.Reasoning.Core.html#995" class="Generalizable">c</a><a id="1903" class="Symbol">)</a> <a id="1905" class="Keyword">where</a>
<a id="Pulls.pullʳ"></a><a id="1914" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="1920" class="Symbol">:</a> <a id="1922" class="Symbol">(</a><a id="1923" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="1925" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1927" href="Categories.Morphism.Reasoning.Core.html#1894" class="Bound">a</a><a id="1928" class="Symbol">)</a> <a id="1930" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1932" href="Categories.Morphism.Reasoning.Core.html#1898" class="Bound">b</a> <a id="1934" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="1936" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="1938" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1940" href="Categories.Morphism.Reasoning.Core.html#1902" class="Bound">c</a>
<a id="1944" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="1950" class="Symbol">{</a><a id="1951" class="Argument">f</a> <a id="1953" class="Symbol">=</a> <a id="1955" href="Categories.Morphism.Reasoning.Core.html#1955" class="Bound">f</a><a id="1956" class="Symbol">}</a> <a id="1958" class="Symbol">=</a> <a id="1960" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="1970" class="Symbol">(</a><a id="1971" href="Categories.Morphism.Reasoning.Core.html#1955" class="Bound">f</a> <a id="1973" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1975" href="Categories.Morphism.Reasoning.Core.html#1894" class="Bound">a</a><a id="1976" class="Symbol">)</a> <a id="1978" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="1980" href="Categories.Morphism.Reasoning.Core.html#1898" class="Bound">b</a> <a id="1982" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="1985" href="Categories.Category.Core.html#715" class="Field">assoc</a> <a id="1991" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="1997" href="Categories.Morphism.Reasoning.Core.html#1955" class="Bound">f</a> <a id="1999" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2001" class="Symbol">(</a><a id="2002" href="Categories.Morphism.Reasoning.Core.html#1894" class="Bound">a</a> <a id="2004" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2006" href="Categories.Morphism.Reasoning.Core.html#1898" class="Bound">b</a><a id="2007" class="Symbol">)</a> <a id="2009" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2012" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="2020" href="Categories.Morphism.Reasoning.Core.html#1887" class="Bound">ab≡c</a> <a id="2025" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="2031" href="Categories.Morphism.Reasoning.Core.html#1955" class="Bound">f</a> <a id="2033" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2035" href="Categories.Morphism.Reasoning.Core.html#1902" class="Bound">c</a> <a id="2043" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="Pulls.pullˡ"></a><a id="2048" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="2054" class="Symbol">:</a> <a id="2056" href="Categories.Morphism.Reasoning.Core.html#1894" class="Bound">a</a> <a id="2058" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2060" class="Symbol">(</a><a id="2061" href="Categories.Morphism.Reasoning.Core.html#1898" class="Bound">b</a> <a id="2063" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2065" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a><a id="2066" class="Symbol">)</a> <a id="2068" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="2070" href="Categories.Morphism.Reasoning.Core.html#1902" class="Bound">c</a> <a id="2072" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2074" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a>
<a id="2078" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="2084" class="Symbol">{</a><a id="2085" class="Argument">f</a> <a id="2087" class="Symbol">=</a> <a id="2089" href="Categories.Morphism.Reasoning.Core.html#2089" class="Bound">f</a><a id="2090" class="Symbol">}</a> <a id="2092" class="Symbol">=</a> <a id="2094" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="2104" href="Categories.Morphism.Reasoning.Core.html#1894" class="Bound">a</a> <a id="2106" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2108" href="Categories.Morphism.Reasoning.Core.html#1898" class="Bound">b</a> <a id="2110" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2112" href="Categories.Morphism.Reasoning.Core.html#2089" class="Bound">f</a> <a id="2116" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2119" href="Categories.Category.Core.html#1004" class="Field">sym-assoc</a> <a id="2129" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="2135" class="Symbol">(</a><a id="2136" href="Categories.Morphism.Reasoning.Core.html#1894" class="Bound">a</a> <a id="2138" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2140" href="Categories.Morphism.Reasoning.Core.html#1898" class="Bound">b</a><a id="2141" class="Symbol">)</a> <a id="2143" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2145" href="Categories.Morphism.Reasoning.Core.html#2089" class="Bound">f</a> <a id="2147" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2150" href="Categories.Morphism.Reasoning.Core.html#1887" class="Bound">ab≡c</a> <a id="2155" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="2163" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="2169" href="Categories.Morphism.Reasoning.Core.html#1902" class="Bound">c</a> <a id="2171" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2173" href="Categories.Morphism.Reasoning.Core.html#2089" class="Bound">f</a> <a id="2181" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="2184" class="Keyword">open</a> <a id="2189" href="Categories.Morphism.Reasoning.Core.html#1880" class="Module">Pulls</a> <a id="2195" class="Keyword">public</a>
<a id="2203" class="Comment">-- Pushes use &quot;c ≈ a ∘ b&quot; as a left-to-right rewrite</a>
<a id="2256" class="Comment">-- push to the right / left of something existing</a>
<a id="2306" class="Keyword">module</a> <a id="Pushes"></a><a id="2313" href="Categories.Morphism.Reasoning.Core.html#2313" class="Module">Pushes</a> <a id="2320" class="Symbol">(</a><a id="2321" href="Categories.Morphism.Reasoning.Core.html#2321" class="Bound">c≡ab</a> <a id="2326" class="Symbol">:</a> <a id="2328" href="Categories.Morphism.Reasoning.Core.html#995" class="Generalizable">c</a> <a id="2330" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="2332" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="2334" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2336" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a><a id="2337" class="Symbol">)</a> <a id="2339" class="Keyword">where</a>
<a id="Pushes.pushʳ"></a><a id="2347" href="Categories.Morphism.Reasoning.Core.html#2347" class="Function">pushʳ</a> <a id="2353" class="Symbol">:</a> <a id="2355" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="2357" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2359" href="Categories.Morphism.Reasoning.Core.html#2328" class="Bound">c</a> <a id="2361" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="2363" class="Symbol">(</a><a id="2364" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="2366" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2368" href="Categories.Morphism.Reasoning.Core.html#2332" class="Bound">a</a><a id="2369" class="Symbol">)</a> <a id="2371" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2373" href="Categories.Morphism.Reasoning.Core.html#2336" class="Bound">b</a>
<a id="2377" href="Categories.Morphism.Reasoning.Core.html#2347" class="Function">pushʳ</a> <a id="2383" class="Symbol">{</a><a id="2384" class="Argument">f</a> <a id="2386" class="Symbol">=</a> <a id="2388" href="Categories.Morphism.Reasoning.Core.html#2388" class="Bound">f</a><a id="2389" class="Symbol">}</a> <a id="2391" class="Symbol">=</a> <a id="2393" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="2403" href="Categories.Morphism.Reasoning.Core.html#2388" class="Bound">f</a> <a id="2405" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2407" href="Categories.Morphism.Reasoning.Core.html#2328" class="Bound">c</a> <a id="2415" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2418" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="2426" href="Categories.Morphism.Reasoning.Core.html#2321" class="Bound">c≡ab</a> <a id="2431" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="2437" href="Categories.Morphism.Reasoning.Core.html#2388" class="Bound">f</a> <a id="2439" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2441" class="Symbol">(</a><a id="2442" href="Categories.Morphism.Reasoning.Core.html#2332" class="Bound">a</a> <a id="2444" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2446" href="Categories.Morphism.Reasoning.Core.html#2336" class="Bound">b</a><a id="2447" class="Symbol">)</a> <a id="2449" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2452" href="Categories.Category.Core.html#1004" class="Field">sym-assoc</a> <a id="2462" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="2468" class="Symbol">(</a><a id="2469" href="Categories.Morphism.Reasoning.Core.html#2388" class="Bound">f</a> <a id="2471" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2473" href="Categories.Morphism.Reasoning.Core.html#2332" class="Bound">a</a><a id="2474" class="Symbol">)</a> <a id="2476" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2478" href="Categories.Morphism.Reasoning.Core.html#2336" class="Bound">b</a> <a id="2480" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="Pushes.pushˡ"></a><a id="2485" href="Categories.Morphism.Reasoning.Core.html#2485" class="Function">pushˡ</a> <a id="2491" class="Symbol">:</a> <a id="2493" href="Categories.Morphism.Reasoning.Core.html#2328" class="Bound">c</a> <a id="2495" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2497" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="2499" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="2501" href="Categories.Morphism.Reasoning.Core.html#2332" class="Bound">a</a> <a id="2503" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2505" class="Symbol">(</a><a id="2506" href="Categories.Morphism.Reasoning.Core.html#2336" class="Bound">b</a> <a id="2508" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2510" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a><a id="2511" class="Symbol">)</a>
<a id="2515" href="Categories.Morphism.Reasoning.Core.html#2485" class="Function">pushˡ</a> <a id="2521" class="Symbol">{</a><a id="2522" class="Argument">f</a> <a id="2524" class="Symbol">=</a> <a id="2526" href="Categories.Morphism.Reasoning.Core.html#2526" class="Bound">f</a><a id="2527" class="Symbol">}</a> <a id="2529" class="Symbol">=</a> <a id="2531" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="2541" href="Categories.Morphism.Reasoning.Core.html#2328" class="Bound">c</a> <a id="2543" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2545" href="Categories.Morphism.Reasoning.Core.html#2526" class="Bound">f</a> <a id="2553" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2556" href="Categories.Morphism.Reasoning.Core.html#2321" class="Bound">c≡ab</a> <a id="2561" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="2569" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="2575" class="Symbol">(</a><a id="2576" href="Categories.Morphism.Reasoning.Core.html#2332" class="Bound">a</a> <a id="2578" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2580" href="Categories.Morphism.Reasoning.Core.html#2336" class="Bound">b</a><a id="2581" class="Symbol">)</a> <a id="2583" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2585" href="Categories.Morphism.Reasoning.Core.html#2526" class="Bound">f</a> <a id="2587" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2590" href="Categories.Category.Core.html#715" class="Field">assoc</a> <a id="2596" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="2602" href="Categories.Morphism.Reasoning.Core.html#2332" class="Bound">a</a> <a id="2604" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2606" class="Symbol">(</a><a id="2607" href="Categories.Morphism.Reasoning.Core.html#2336" class="Bound">b</a> <a id="2609" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2611" href="Categories.Morphism.Reasoning.Core.html#2526" class="Bound">f</a><a id="2612" class="Symbol">)</a> <a id="2614" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="2617" class="Keyword">open</a> <a id="2622" href="Categories.Morphism.Reasoning.Core.html#2313" class="Module">Pushes</a> <a id="2629" class="Keyword">public</a>
<a id="2637" class="Comment">-- Introduce/Elimilate an equivalent-to-identity</a>
<a id="2686" class="Comment">-- on left, right or &#39;in the middle&#39; of something existing</a>
<a id="2745" class="Keyword">module</a> <a id="IntroElim"></a><a id="2752" href="Categories.Morphism.Reasoning.Core.html#2752" class="Module">IntroElim</a> <a id="2762" class="Symbol">(</a><a id="2763" href="Categories.Morphism.Reasoning.Core.html#2763" class="Bound">a≡id</a> <a id="2768" class="Symbol">:</a> <a id="2770" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="2772" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="2774" href="Categories.Category.Core.html#630" class="Field">id</a><a id="2776" class="Symbol">)</a> <a id="2778" class="Keyword">where</a>
<a id="IntroElim.elimʳ"></a><a id="2786" href="Categories.Morphism.Reasoning.Core.html#2786" class="Function">elimʳ</a> <a id="2792" class="Symbol">:</a> <a id="2794" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="2796" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2798" href="Categories.Morphism.Reasoning.Core.html#2770" class="Bound">a</a> <a id="2800" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="2802" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a>
<a id="2806" href="Categories.Morphism.Reasoning.Core.html#2786" class="Function">elimʳ</a> <a id="2812" class="Symbol">{</a><a id="2813" class="Argument">f</a> <a id="2815" class="Symbol">=</a> <a id="2817" href="Categories.Morphism.Reasoning.Core.html#2817" class="Bound">f</a><a id="2818" class="Symbol">}</a> <a id="2820" class="Symbol">=</a> <a id="2822" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="2832" href="Categories.Morphism.Reasoning.Core.html#2817" class="Bound">f</a> <a id="2834" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2836" href="Categories.Morphism.Reasoning.Core.html#2770" class="Bound">a</a> <a id="2839" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2842" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="2850" href="Categories.Morphism.Reasoning.Core.html#2763" class="Bound">a≡id</a> <a id="2855" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="2861" href="Categories.Morphism.Reasoning.Core.html#2817" class="Bound">f</a> <a id="2863" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2865" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="2868" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2871" href="Categories.Category.Core.html#1145" class="Field">identityʳ</a> <a id="2881" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="2887" href="Categories.Morphism.Reasoning.Core.html#2817" class="Bound">f</a> <a id="2894" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="IntroElim.introʳ"></a><a id="2899" href="Categories.Morphism.Reasoning.Core.html#2899" class="Function">introʳ</a> <a id="2906" class="Symbol">:</a> <a id="2908" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="2910" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="2912" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="2914" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2916" href="Categories.Morphism.Reasoning.Core.html#2770" class="Bound">a</a>
<a id="2920" href="Categories.Morphism.Reasoning.Core.html#2899" class="Function">introʳ</a> <a id="2927" class="Symbol">=</a> <a id="2929" href="Relation.Binary.Structures.html#1603" class="Function">Equiv.sym</a> <a id="2939" href="Categories.Morphism.Reasoning.Core.html#2786" class="Function">elimʳ</a>
<a id="IntroElim.elimˡ"></a><a id="2948" href="Categories.Morphism.Reasoning.Core.html#2948" class="Function">elimˡ</a> <a id="2954" class="Symbol">:</a> <a id="2956" class="Symbol">(</a><a id="2957" href="Categories.Morphism.Reasoning.Core.html#2770" class="Bound">a</a> <a id="2959" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="2961" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a><a id="2962" class="Symbol">)</a> <a id="2964" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="2966" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a>
<a id="2970" href="Categories.Morphism.Reasoning.Core.html#2948" class="Function">elimˡ</a> <a id="2976" class="Symbol">{</a><a id="2977" class="Argument">f</a> <a id="2979" class="Symbol">=</a> <a id="2981" href="Categories.Morphism.Reasoning.Core.html#2981" class="Bound">f</a><a id="2982" class="Symbol">}</a> <a id="2984" class="Symbol">=</a> <a id="2986" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="2996" href="Categories.Morphism.Reasoning.Core.html#2770" class="Bound">a</a> <a id="2998" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3000" href="Categories.Morphism.Reasoning.Core.html#2981" class="Bound">f</a> <a id="3003" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3006" href="Categories.Morphism.Reasoning.Core.html#2763" class="Bound">a≡id</a> <a id="3011" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="3019" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="3025" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="3028" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3030" href="Categories.Morphism.Reasoning.Core.html#2981" class="Bound">f</a> <a id="3032" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3035" href="Categories.Category.Core.html#1096" class="Field">identityˡ</a> <a id="3045" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="3051" href="Categories.Morphism.Reasoning.Core.html#2981" class="Bound">f</a> <a id="3058" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="IntroElim.introˡ"></a><a id="3063" href="Categories.Morphism.Reasoning.Core.html#3063" class="Function">introˡ</a> <a id="3070" class="Symbol">:</a> <a id="3072" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="3074" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="3076" href="Categories.Morphism.Reasoning.Core.html#2770" class="Bound">a</a> <a id="3078" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3080" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a>
<a id="3084" href="Categories.Morphism.Reasoning.Core.html#3063" class="Function">introˡ</a> <a id="3091" class="Symbol">=</a> <a id="3093" href="Relation.Binary.Structures.html#1603" class="Function">Equiv.sym</a> <a id="3103" href="Categories.Morphism.Reasoning.Core.html#2948" class="Function">elimˡ</a>
<a id="IntroElim.intro-center"></a><a id="3112" href="Categories.Morphism.Reasoning.Core.html#3112" class="Function">intro-center</a> <a id="3125" class="Symbol">:</a> <a id="3127" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="3129" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3131" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a> <a id="3133" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="3135" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="3137" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3139" class="Symbol">(</a><a id="3140" href="Categories.Morphism.Reasoning.Core.html#2770" class="Bound">a</a> <a id="3142" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3144" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a><a id="3145" class="Symbol">)</a>
<a id="3149" href="Categories.Morphism.Reasoning.Core.html#3112" class="Function">intro-center</a> <a id="3162" class="Symbol">=</a> <a id="3164" href="Categories.Category.Core.html#1706" class="Function">∘-resp-≈ʳ</a> <a id="3174" href="Categories.Morphism.Reasoning.Core.html#3063" class="Function">introˡ</a>
<a id="IntroElim.elim-center"></a><a id="3184" href="Categories.Morphism.Reasoning.Core.html#3184" class="Function">elim-center</a> <a id="3196" class="Symbol">:</a> <a id="3198" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="3200" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3202" class="Symbol">(</a><a id="3203" href="Categories.Morphism.Reasoning.Core.html#2770" class="Bound">a</a> <a id="3205" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3207" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a><a id="3208" class="Symbol">)</a> <a id="3210" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="3212" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="3214" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3216" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a>
<a id="3220" href="Categories.Morphism.Reasoning.Core.html#3184" class="Function">elim-center</a> <a id="3232" class="Symbol">=</a> <a id="3234" href="Categories.Category.Core.html#1706" class="Function">∘-resp-≈ʳ</a> <a id="3244" href="Categories.Morphism.Reasoning.Core.html#2948" class="Function">elimˡ</a>
<a id="3251" class="Keyword">open</a> <a id="3256" href="Categories.Morphism.Reasoning.Core.html#2752" class="Module">IntroElim</a> <a id="3266" class="Keyword">public</a>
<a id="3274" class="Comment">-- given h ∘ f ≈ i ∘ g</a>
<a id="3297" class="Keyword">module</a> <a id="Extends"></a><a id="3304" href="Categories.Morphism.Reasoning.Core.html#3304" class="Module">Extends</a> <a id="3312" class="Symbol">(</a><a id="3313" href="Categories.Morphism.Reasoning.Core.html#3313" class="Bound">s</a> <a id="3315" class="Symbol">:</a> <a id="3317" href="Categories.Category.html#884" class="Function">CommutativeSquare</a> <a id="3335" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="3337" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a> <a id="3339" href="Categories.Morphism.Reasoning.Core.html#1019" class="Generalizable">h</a> <a id="3341" href="Categories.Morphism.Reasoning.Core.html#1021" class="Generalizable">i</a><a id="3342" class="Symbol">)</a> <a id="3344" class="Keyword">where</a>
<a id="3352" class="Comment">-- rewrite (a ∘ h) ∘ f to (a ∘ i) ∘ g</a>
<a id="Extends.extendˡ"></a><a id="3392" href="Categories.Morphism.Reasoning.Core.html#3392" class="Function">extendˡ</a> <a id="3400" class="Symbol">:</a> <a id="3402" href="Categories.Category.html#884" class="Function">CommutativeSquare</a> <a id="3420" href="Categories.Morphism.Reasoning.Core.html#3335" class="Bound">f</a> <a id="3422" href="Categories.Morphism.Reasoning.Core.html#3337" class="Bound">g</a> <a id="3424" class="Symbol">(</a><a id="3425" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="3427" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3429" href="Categories.Morphism.Reasoning.Core.html#3339" class="Bound">h</a><a id="3430" class="Symbol">)</a> <a id="3432" class="Symbol">(</a><a id="3433" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="3435" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3437" href="Categories.Morphism.Reasoning.Core.html#3341" class="Bound">i</a><a id="3438" class="Symbol">)</a>
<a id="3442" href="Categories.Morphism.Reasoning.Core.html#3392" class="Function">extendˡ</a> <a id="3450" class="Symbol">{</a><a id="3451" class="Argument">a</a> <a id="3453" class="Symbol">=</a> <a id="3455" href="Categories.Morphism.Reasoning.Core.html#3455" class="Bound">a</a><a id="3456" class="Symbol">}</a> <a id="3458" class="Symbol">=</a> <a id="3460" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="3470" class="Symbol">(</a><a id="3471" href="Categories.Morphism.Reasoning.Core.html#3455" class="Bound">a</a> <a id="3473" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3475" href="Categories.Morphism.Reasoning.Core.html#3339" class="Bound">h</a><a id="3476" class="Symbol">)</a> <a id="3478" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3480" href="Categories.Morphism.Reasoning.Core.html#3335" class="Bound">f</a> <a id="3482" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3485" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="3491" href="Categories.Morphism.Reasoning.Core.html#3313" class="Bound">s</a> <a id="3493" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="3499" href="Categories.Morphism.Reasoning.Core.html#3455" class="Bound">a</a> <a id="3501" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3503" class="Symbol">(</a><a id="3504" href="Categories.Morphism.Reasoning.Core.html#3341" class="Bound">i</a> <a id="3506" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3508" href="Categories.Morphism.Reasoning.Core.html#3337" class="Bound">g</a><a id="3509" class="Symbol">)</a> <a id="3511" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3514" href="Categories.Category.Core.html#1004" class="Field">sym-assoc</a> <a id="3524" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="3530" class="Symbol">(</a><a id="3531" href="Categories.Morphism.Reasoning.Core.html#3455" class="Bound">a</a> <a id="3533" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3535" href="Categories.Morphism.Reasoning.Core.html#3341" class="Bound">i</a><a id="3536" class="Symbol">)</a> <a id="3538" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3540" href="Categories.Morphism.Reasoning.Core.html#3337" class="Bound">g</a> <a id="3542" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="3547" class="Comment">-- rewrite h ∘ (f ∘ a) to i ∘ (g ∘ a)</a>
<a id="Extends.extendʳ"></a><a id="3587" href="Categories.Morphism.Reasoning.Core.html#3587" class="Function">extendʳ</a> <a id="3595" class="Symbol">:</a> <a id="3597" href="Categories.Category.html#884" class="Function">CommutativeSquare</a> <a id="3615" class="Symbol">(</a><a id="3616" href="Categories.Morphism.Reasoning.Core.html#3335" class="Bound">f</a> <a id="3618" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3620" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a><a id="3621" class="Symbol">)</a> <a id="3623" class="Symbol">(</a><a id="3624" href="Categories.Morphism.Reasoning.Core.html#3337" class="Bound">g</a> <a id="3626" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3628" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a><a id="3629" class="Symbol">)</a> <a id="3631" href="Categories.Morphism.Reasoning.Core.html#3339" class="Bound">h</a> <a id="3633" href="Categories.Morphism.Reasoning.Core.html#3341" class="Bound">i</a>
<a id="3637" href="Categories.Morphism.Reasoning.Core.html#3587" class="Function">extendʳ</a> <a id="3645" class="Symbol">{</a><a id="3646" class="Argument">a</a> <a id="3648" class="Symbol">=</a> <a id="3650" href="Categories.Morphism.Reasoning.Core.html#3650" class="Bound">a</a><a id="3651" class="Symbol">}</a> <a id="3653" class="Symbol">=</a> <a id="3655" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="3665" href="Categories.Morphism.Reasoning.Core.html#3339" class="Bound">h</a> <a id="3667" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3669" class="Symbol">(</a><a id="3670" href="Categories.Morphism.Reasoning.Core.html#3335" class="Bound">f</a> <a id="3672" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3674" href="Categories.Morphism.Reasoning.Core.html#3650" class="Bound">a</a><a id="3675" class="Symbol">)</a> <a id="3677" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3680" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="3686" href="Categories.Morphism.Reasoning.Core.html#3313" class="Bound">s</a> <a id="3688" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="3694" class="Symbol">(</a><a id="3695" href="Categories.Morphism.Reasoning.Core.html#3341" class="Bound">i</a> <a id="3697" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3699" href="Categories.Morphism.Reasoning.Core.html#3337" class="Bound">g</a><a id="3700" class="Symbol">)</a> <a id="3702" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3704" href="Categories.Morphism.Reasoning.Core.html#3650" class="Bound">a</a> <a id="3706" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3709" href="Categories.Category.Core.html#715" class="Field">assoc</a> <a id="3715" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="3721" href="Categories.Morphism.Reasoning.Core.html#3341" class="Bound">i</a> <a id="3723" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3725" class="Symbol">(</a><a id="3726" href="Categories.Morphism.Reasoning.Core.html#3337" class="Bound">g</a> <a id="3728" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3730" href="Categories.Morphism.Reasoning.Core.html#3650" class="Bound">a</a><a id="3731" class="Symbol">)</a> <a id="3733" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="3738" class="Comment">-- rewrite (a ∘ h) ∘ (f ∘ b) to (a ∘ i) ∘ (g ∘ b)</a>
<a id="Extends.extend²"></a><a id="3790" href="Categories.Morphism.Reasoning.Core.html#3790" class="Function">extend²</a> <a id="3798" class="Symbol">:</a> <a id="3800" href="Categories.Category.html#884" class="Function">CommutativeSquare</a> <a id="3818" class="Symbol">(</a><a id="3819" href="Categories.Morphism.Reasoning.Core.html#3335" class="Bound">f</a> <a id="3821" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3823" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a><a id="3824" class="Symbol">)</a> <a id="3826" class="Symbol">(</a><a id="3827" href="Categories.Morphism.Reasoning.Core.html#3337" class="Bound">g</a> <a id="3829" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3831" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a><a id="3832" class="Symbol">)</a> <a id="3834" class="Symbol">(</a><a id="3835" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="3837" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3839" href="Categories.Morphism.Reasoning.Core.html#3339" class="Bound">h</a><a id="3840" class="Symbol">)</a> <a id="3842" class="Symbol">(</a><a id="3843" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="3845" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3847" href="Categories.Morphism.Reasoning.Core.html#3341" class="Bound">i</a><a id="3848" class="Symbol">)</a>
<a id="3852" href="Categories.Morphism.Reasoning.Core.html#3790" class="Function">extend²</a> <a id="3860" class="Symbol">{</a><a id="3861" class="Argument">b</a> <a id="3863" class="Symbol">=</a> <a id="3865" href="Categories.Morphism.Reasoning.Core.html#3865" class="Bound">b</a><a id="3866" class="Symbol">}</a> <a id="3868" class="Symbol">{</a><a id="3869" class="Argument">a</a> <a id="3871" class="Symbol">=</a> <a id="3873" href="Categories.Morphism.Reasoning.Core.html#3873" class="Bound">a</a> <a id="3875" class="Symbol">}</a> <a id="3877" class="Symbol">=</a> <a id="3879" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="3889" class="Symbol">(</a><a id="3890" href="Categories.Morphism.Reasoning.Core.html#3873" class="Bound">a</a> <a id="3892" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3894" href="Categories.Morphism.Reasoning.Core.html#3339" class="Bound">h</a><a id="3895" class="Symbol">)</a> <a id="3897" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3899" class="Symbol">(</a><a id="3900" href="Categories.Morphism.Reasoning.Core.html#3335" class="Bound">f</a> <a id="3902" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3904" href="Categories.Morphism.Reasoning.Core.html#3865" class="Bound">b</a><a id="3905" class="Symbol">)</a> <a id="3907" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3910" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="3916" href="Categories.Morphism.Reasoning.Core.html#3587" class="Function">extendʳ</a> <a id="3924" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="3930" href="Categories.Morphism.Reasoning.Core.html#3873" class="Bound">a</a> <a id="3932" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3934" class="Symbol">(</a><a id="3935" href="Categories.Morphism.Reasoning.Core.html#3341" class="Bound">i</a> <a id="3937" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3939" class="Symbol">(</a><a id="3940" href="Categories.Morphism.Reasoning.Core.html#3337" class="Bound">g</a> <a id="3942" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3944" href="Categories.Morphism.Reasoning.Core.html#3865" class="Bound">b</a><a id="3945" class="Symbol">))</a> <a id="3948" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3951" href="Categories.Category.Core.html#1004" class="Field">sym-assoc</a> <a id="3961" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="3967" class="Symbol">(</a><a id="3968" href="Categories.Morphism.Reasoning.Core.html#3873" class="Bound">a</a> <a id="3970" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3972" href="Categories.Morphism.Reasoning.Core.html#3341" class="Bound">i</a><a id="3973" class="Symbol">)</a> <a id="3975" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3977" class="Symbol">(</a><a id="3978" href="Categories.Morphism.Reasoning.Core.html#3337" class="Bound">g</a> <a id="3980" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="3982" href="Categories.Morphism.Reasoning.Core.html#3865" class="Bound">b</a><a id="3983" class="Symbol">)</a> <a id="3985" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="3988" class="Keyword">open</a> <a id="3993" href="Categories.Morphism.Reasoning.Core.html#3304" class="Module">Extends</a> <a id="4001" class="Keyword">public</a>
<a id="4009" class="Comment">-- essentially composition in the arrow category</a>
<a id="4058" class="Comment">{-
A₁ -- c --&gt; B₁
| |
b comm b
| |
V V
A₂ -- c -&gt; B₂
| |
a comm a
| |
V V
A₃ -- c″ -&gt; B₃
then the whole diagram commutes
-}</a>
<a id="glue"></a><a id="4290" href="Categories.Morphism.Reasoning.Core.html#4290" class="Function">glue</a> <a id="4295" class="Symbol">:</a> <a id="4297" href="Categories.Category.html#884" class="Function">CommutativeSquare</a> <a id="4315" href="Categories.Morphism.Reasoning.Core.html#997" class="Generalizable">c</a> <a id="4318" href="Categories.Morphism.Reasoning.Core.html#981" class="Generalizable">a</a> <a id="4321" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="4323" href="Categories.Morphism.Reasoning.Core.html#1000" class="Generalizable">c″</a> <a id="4326" class="Symbol"></a>
<a id="4335" href="Categories.Category.html#884" class="Function">CommutativeSquare</a> <a id="4353" href="Categories.Morphism.Reasoning.Core.html#995" class="Generalizable">c</a> <a id="4355" href="Categories.Morphism.Reasoning.Core.html#989" class="Generalizable">b</a> <a id="4358" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a> <a id="4360" href="Categories.Morphism.Reasoning.Core.html#997" class="Generalizable">c</a> <a id="4363" class="Symbol"></a>
<a id="4372" href="Categories.Category.html#884" class="Function">CommutativeSquare</a> <a id="4390" href="Categories.Morphism.Reasoning.Core.html#995" class="Generalizable">c</a> <a id="4392" class="Symbol">(</a><a id="4393" href="Categories.Morphism.Reasoning.Core.html#981" class="Generalizable">a</a> <a id="4396" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="4398" href="Categories.Morphism.Reasoning.Core.html#989" class="Generalizable">b</a><a id="4400" class="Symbol">)</a> <a id="4402" class="Symbol">(</a><a id="4403" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="4405" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="4407" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a><a id="4408" class="Symbol">)</a> <a id="4410" href="Categories.Morphism.Reasoning.Core.html#1000" class="Generalizable">c″</a>
<a id="4413" href="Categories.Morphism.Reasoning.Core.html#4290" class="Function">glue</a> <a id="4418" class="Symbol">{</a><a id="4419" class="Argument">c</a> <a id="4422" class="Symbol">=</a> <a id="4424" href="Categories.Morphism.Reasoning.Core.html#4424" class="Bound">c</a><a id="4426" class="Symbol">}</a> <a id="4428" class="Symbol">{</a><a id="4429" class="Argument">a</a> <a id="4432" class="Symbol">=</a> <a id="4434" href="Categories.Morphism.Reasoning.Core.html#4434" class="Bound">a</a><a id="4436" class="Symbol">}</a> <a id="4438" class="Symbol">{</a><a id="4439" class="Argument">a</a> <a id="4441" class="Symbol">=</a> <a id="4443" href="Categories.Morphism.Reasoning.Core.html#4443" class="Bound">a</a><a id="4444" class="Symbol">}</a> <a id="4446" class="Symbol">{</a><a id="4447" class="Argument">c″</a> <a id="4450" class="Symbol">=</a> <a id="4452" href="Categories.Morphism.Reasoning.Core.html#4452" class="Bound">c″</a><a id="4454" class="Symbol">}</a> <a id="4456" class="Symbol">{</a><a id="4457" class="Argument">c</a> <a id="4459" class="Symbol">=</a> <a id="4461" href="Categories.Morphism.Reasoning.Core.html#4461" class="Bound">c</a><a id="4462" class="Symbol">}</a> <a id="4464" class="Symbol">{</a><a id="4465" class="Argument">b</a> <a id="4468" class="Symbol">=</a> <a id="4470" href="Categories.Morphism.Reasoning.Core.html#4470" class="Bound">b</a><a id="4472" class="Symbol">}</a> <a id="4474" class="Symbol">{</a><a id="4475" class="Argument">b</a> <a id="4477" class="Symbol">=</a> <a id="4479" href="Categories.Morphism.Reasoning.Core.html#4479" class="Bound">b</a><a id="4480" class="Symbol">}</a> <a id="4482" href="Categories.Morphism.Reasoning.Core.html#4482" class="Bound">sq-a</a> <a id="4487" href="Categories.Morphism.Reasoning.Core.html#4487" class="Bound">sq-b</a> <a id="4492" class="Symbol">=</a> <a id="4494" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="4502" class="Symbol">(</a><a id="4503" href="Categories.Morphism.Reasoning.Core.html#4443" class="Bound">a</a> <a id="4505" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="4507" href="Categories.Morphism.Reasoning.Core.html#4479" class="Bound">b</a><a id="4508" class="Symbol">)</a> <a id="4510" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="4512" href="Categories.Morphism.Reasoning.Core.html#4461" class="Bound">c</a> <a id="4517" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="4520" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="4526" href="Categories.Morphism.Reasoning.Core.html#4487" class="Bound">sq-b</a> <a id="4531" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="4535" href="Categories.Morphism.Reasoning.Core.html#4443" class="Bound">a</a> <a id="4537" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="4539" class="Symbol">(</a><a id="4540" href="Categories.Morphism.Reasoning.Core.html#4424" class="Bound">c</a> <a id="4543" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="4545" href="Categories.Morphism.Reasoning.Core.html#4470" class="Bound">b</a><a id="4547" class="Symbol">)</a> <a id="4550" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="4553" href="Categories.Morphism.Reasoning.Core.html#3587" class="Function">extendʳ</a> <a id="4561" href="Categories.Morphism.Reasoning.Core.html#4482" class="Bound">sq-a</a> <a id="4566" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="4570" href="Categories.Morphism.Reasoning.Core.html#4452" class="Bound">c″</a> <a id="4573" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="4575" class="Symbol">(</a><a id="4576" href="Categories.Morphism.Reasoning.Core.html#4434" class="Bound">a</a> <a id="4579" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="4581" href="Categories.Morphism.Reasoning.Core.html#4470" class="Bound">b</a><a id="4583" class="Symbol">)</a> <a id="4585" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="4588" class="Comment">-- A &quot;rotated&quot; version of glue. Equivalent to &#39;Equiv.sym (glue (Equiv.sym sq-a) (Equiv.sym sq-b))&#39;</a>
<a id="glue"></a><a id="4688" href="Categories.Morphism.Reasoning.Core.html#4688" class="Function">glue</a> <a id="4694" class="Symbol">:</a> <a id="4696" href="Categories.Category.html#884" class="Function">CommutativeSquare</a> <a id="4714" href="Categories.Morphism.Reasoning.Core.html#981" class="Generalizable">a</a> <a id="4717" href="Categories.Morphism.Reasoning.Core.html#997" class="Generalizable">c</a> <a id="4720" href="Categories.Morphism.Reasoning.Core.html#1000" class="Generalizable">c″</a> <a id="4723" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="4725" class="Symbol"></a>
<a id="4735" href="Categories.Category.html#884" class="Function">CommutativeSquare</a> <a id="4753" href="Categories.Morphism.Reasoning.Core.html#989" class="Generalizable">b</a> <a id="4756" href="Categories.Morphism.Reasoning.Core.html#995" class="Generalizable">c</a> <a id="4758" href="Categories.Morphism.Reasoning.Core.html#997" class="Generalizable">c</a> <a id="4761" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a> <a id="4763" class="Symbol"></a>
<a id="4773" href="Categories.Category.html#884" class="Function">CommutativeSquare</a> <a id="4791" class="Symbol">(</a><a id="4792" href="Categories.Morphism.Reasoning.Core.html#981" class="Generalizable">a</a> <a id="4795" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="4797" href="Categories.Morphism.Reasoning.Core.html#989" class="Generalizable">b</a><a id="4799" class="Symbol">)</a> <a id="4801" href="Categories.Morphism.Reasoning.Core.html#995" class="Generalizable">c</a> <a id="4803" href="Categories.Morphism.Reasoning.Core.html#1000" class="Generalizable">c″</a> <a id="4806" class="Symbol">(</a><a id="4807" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="4809" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="4811" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a><a id="4812" class="Symbol">)</a>
<a id="4814" href="Categories.Morphism.Reasoning.Core.html#4688" class="Function">glue</a> <a id="4820" class="Symbol">{</a><a id="4821" class="Argument">a</a> <a id="4824" class="Symbol">=</a> <a id="4826" href="Categories.Morphism.Reasoning.Core.html#4826" class="Bound">a</a><a id="4828" class="Symbol">}</a> <a id="4830" class="Symbol">{</a><a id="4831" class="Argument">c</a> <a id="4834" class="Symbol">=</a> <a id="4836" href="Categories.Morphism.Reasoning.Core.html#4836" class="Bound">c</a><a id="4838" class="Symbol">}</a> <a id="4840" class="Symbol">{</a><a id="4841" class="Argument">c″</a> <a id="4844" class="Symbol">=</a> <a id="4846" href="Categories.Morphism.Reasoning.Core.html#4846" class="Bound">c″</a><a id="4848" class="Symbol">}</a> <a id="4850" class="Symbol">{</a><a id="4851" class="Argument">a</a> <a id="4853" class="Symbol">=</a> <a id="4855" href="Categories.Morphism.Reasoning.Core.html#4855" class="Bound">a</a><a id="4856" class="Symbol">}</a> <a id="4858" class="Symbol">{</a><a id="4859" class="Argument">b</a> <a id="4862" class="Symbol">=</a> <a id="4864" href="Categories.Morphism.Reasoning.Core.html#4864" class="Bound">b</a><a id="4866" class="Symbol">}</a> <a id="4868" class="Symbol">{</a><a id="4869" class="Argument">c</a> <a id="4871" class="Symbol">=</a> <a id="4873" href="Categories.Morphism.Reasoning.Core.html#4873" class="Bound">c</a><a id="4874" class="Symbol">}</a> <a id="4876" class="Symbol">{</a><a id="4877" class="Argument">b</a> <a id="4879" class="Symbol">=</a> <a id="4881" href="Categories.Morphism.Reasoning.Core.html#4881" class="Bound">b</a><a id="4882" class="Symbol">}</a> <a id="4884" href="Categories.Morphism.Reasoning.Core.html#4884" class="Bound">sq-a</a> <a id="4889" href="Categories.Morphism.Reasoning.Core.html#4889" class="Bound">sq-b</a> <a id="4894" class="Symbol">=</a> <a id="4896" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="4904" href="Categories.Morphism.Reasoning.Core.html#4846" class="Bound">c″</a> <a id="4907" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="4909" class="Symbol">(</a><a id="4910" href="Categories.Morphism.Reasoning.Core.html#4826" class="Bound">a</a> <a id="4913" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="4915" href="Categories.Morphism.Reasoning.Core.html#4864" class="Bound">b</a><a id="4917" class="Symbol">)</a> <a id="4919" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="4922" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="4928" href="Categories.Morphism.Reasoning.Core.html#4884" class="Bound">sq-a</a> <a id="4933" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="4937" class="Symbol">(</a><a id="4938" href="Categories.Morphism.Reasoning.Core.html#4855" class="Bound">a</a> <a id="4940" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="4942" href="Categories.Morphism.Reasoning.Core.html#4836" class="Bound">c</a><a id="4944" class="Symbol">)</a> <a id="4946" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="4948" href="Categories.Morphism.Reasoning.Core.html#4864" class="Bound">b</a> <a id="4952" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="4955" href="Categories.Morphism.Reasoning.Core.html#3392" class="Function">extendˡ</a> <a id="4963" href="Categories.Morphism.Reasoning.Core.html#4889" class="Bound">sq-b</a> <a id="4968" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="4972" class="Symbol">(</a><a id="4973" href="Categories.Morphism.Reasoning.Core.html#4855" class="Bound">a</a> <a id="4975" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="4977" href="Categories.Morphism.Reasoning.Core.html#4881" class="Bound">b</a><a id="4978" class="Symbol">)</a> <a id="4980" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="4982" href="Categories.Morphism.Reasoning.Core.html#4873" class="Bound">c</a> <a id="4987" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="4990" class="Comment">-- Various gluings of triangles onto sides of squares</a>
<a id="glue◃◽"></a><a id="5044" href="Categories.Morphism.Reasoning.Core.html#5044" class="Function">glue◃◽</a> <a id="5051" class="Symbol">:</a> <a id="5053" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="5055" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5057" href="Categories.Morphism.Reasoning.Core.html#997" class="Generalizable">c</a> <a id="5060" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="5062" href="Categories.Morphism.Reasoning.Core.html#1000" class="Generalizable">c″</a> <a id="5065" class="Symbol"></a> <a id="5067" href="Categories.Category.html#884" class="Function">CommutativeSquare</a> <a id="5085" href="Categories.Morphism.Reasoning.Core.html#995" class="Generalizable">c</a> <a id="5087" href="Categories.Morphism.Reasoning.Core.html#989" class="Generalizable">b</a> <a id="5090" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a> <a id="5092" href="Categories.Morphism.Reasoning.Core.html#997" class="Generalizable">c</a> <a id="5095" class="Symbol"></a> <a id="5097" href="Categories.Category.html#884" class="Function">CommutativeSquare</a> <a id="5115" href="Categories.Morphism.Reasoning.Core.html#995" class="Generalizable">c</a> <a id="5117" href="Categories.Morphism.Reasoning.Core.html#989" class="Generalizable">b</a> <a id="5120" class="Symbol">(</a><a id="5121" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="5123" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5125" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a><a id="5126" class="Symbol">)</a> <a id="5128" href="Categories.Morphism.Reasoning.Core.html#1000" class="Generalizable">c″</a>
<a id="5131" href="Categories.Morphism.Reasoning.Core.html#5044" class="Function">glue◃◽</a> <a id="5138" class="Symbol">{</a><a id="5139" class="Argument">a</a> <a id="5141" class="Symbol">=</a> <a id="5143" href="Categories.Morphism.Reasoning.Core.html#5143" class="Bound">a</a><a id="5144" class="Symbol">}</a> <a id="5146" class="Symbol">{</a><a id="5147" class="Argument">c</a> <a id="5150" class="Symbol">=</a> <a id="5152" href="Categories.Morphism.Reasoning.Core.html#5152" class="Bound">c</a><a id="5154" class="Symbol">}</a> <a id="5156" class="Symbol">{</a><a id="5157" class="Argument">c″</a> <a id="5160" class="Symbol">=</a> <a id="5162" href="Categories.Morphism.Reasoning.Core.html#5162" class="Bound">c″</a><a id="5164" class="Symbol">}</a> <a id="5166" class="Symbol">{</a><a id="5167" class="Argument">c</a> <a id="5169" class="Symbol">=</a> <a id="5171" href="Categories.Morphism.Reasoning.Core.html#5171" class="Bound">c</a><a id="5172" class="Symbol">}</a> <a id="5174" class="Symbol">{</a><a id="5175" class="Argument">b</a> <a id="5178" class="Symbol">=</a> <a id="5180" href="Categories.Morphism.Reasoning.Core.html#5180" class="Bound">b</a><a id="5182" class="Symbol">}</a> <a id="5184" class="Symbol">{</a><a id="5185" class="Argument">b</a> <a id="5187" class="Symbol">=</a> <a id="5189" href="Categories.Morphism.Reasoning.Core.html#5189" class="Bound">b</a><a id="5190" class="Symbol">}</a> <a id="5192" href="Categories.Morphism.Reasoning.Core.html#5192" class="Bound">tri-a</a> <a id="5198" href="Categories.Morphism.Reasoning.Core.html#5198" class="Bound">sq-b</a> <a id="5203" class="Symbol">=</a> <a id="5205" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="5213" class="Symbol">(</a><a id="5214" href="Categories.Morphism.Reasoning.Core.html#5143" class="Bound">a</a> <a id="5216" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5218" href="Categories.Morphism.Reasoning.Core.html#5189" class="Bound">b</a><a id="5219" class="Symbol">)</a> <a id="5221" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5223" href="Categories.Morphism.Reasoning.Core.html#5171" class="Bound">c</a> <a id="5227" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="5230" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="5236" href="Categories.Morphism.Reasoning.Core.html#5198" class="Bound">sq-b</a> <a id="5241" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="5245" href="Categories.Morphism.Reasoning.Core.html#5143" class="Bound">a</a> <a id="5247" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5249" class="Symbol">(</a><a id="5250" href="Categories.Morphism.Reasoning.Core.html#5152" class="Bound">c</a> <a id="5253" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5255" href="Categories.Morphism.Reasoning.Core.html#5180" class="Bound">b</a><a id="5257" class="Symbol">)</a> <a id="5259" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="5262" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="5268" href="Categories.Morphism.Reasoning.Core.html#5192" class="Bound">tri-a</a> <a id="5274" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="5278" href="Categories.Morphism.Reasoning.Core.html#5162" class="Bound">c″</a> <a id="5281" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5283" href="Categories.Morphism.Reasoning.Core.html#5180" class="Bound">b</a> <a id="5292" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="glue◃◽"></a><a id="5295" href="Categories.Morphism.Reasoning.Core.html#5295" class="Function">glue◃◽</a> <a id="5303" class="Symbol">:</a> <a id="5305" href="Categories.Morphism.Reasoning.Core.html#995" class="Generalizable">c</a> <a id="5307" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5309" href="Categories.Morphism.Reasoning.Core.html#997" class="Generalizable">c</a> <a id="5312" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="5314" href="Categories.Morphism.Reasoning.Core.html#981" class="Generalizable">a</a> <a id="5317" class="Symbol"></a> <a id="5319" href="Categories.Category.html#884" class="Function">CommutativeSquare</a> <a id="5337" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="5339" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a> <a id="5341" href="Categories.Morphism.Reasoning.Core.html#981" class="Generalizable">a</a> <a id="5344" href="Categories.Morphism.Reasoning.Core.html#989" class="Generalizable">b</a> <a id="5347" class="Symbol"></a> <a id="5349" href="Categories.Category.html#884" class="Function">CommutativeSquare</a> <a id="5367" class="Symbol">(</a><a id="5368" href="Categories.Morphism.Reasoning.Core.html#997" class="Generalizable">c</a> <a id="5371" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5373" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a><a id="5374" class="Symbol">)</a> <a id="5376" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a> <a id="5378" href="Categories.Morphism.Reasoning.Core.html#995" class="Generalizable">c</a> <a id="5380" href="Categories.Morphism.Reasoning.Core.html#989" class="Generalizable">b</a>
<a id="5383" href="Categories.Morphism.Reasoning.Core.html#5295" class="Function">glue◃◽</a> <a id="5391" class="Symbol">{</a><a id="5392" class="Argument">c</a> <a id="5394" class="Symbol">=</a> <a id="5396" href="Categories.Morphism.Reasoning.Core.html#5396" class="Bound">c</a><a id="5397" class="Symbol">}</a> <a id="5399" class="Symbol">{</a><a id="5400" class="Argument">c</a> <a id="5403" class="Symbol">=</a> <a id="5405" href="Categories.Morphism.Reasoning.Core.html#5405" class="Bound">c</a><a id="5407" class="Symbol">}</a> <a id="5409" class="Symbol">{</a><a id="5410" class="Argument">a</a> <a id="5413" class="Symbol">=</a> <a id="5415" href="Categories.Morphism.Reasoning.Core.html#5415" class="Bound">a</a><a id="5417" class="Symbol">}</a> <a id="5419" class="Symbol">{</a><a id="5420" class="Argument">a</a> <a id="5422" class="Symbol">=</a> <a id="5424" href="Categories.Morphism.Reasoning.Core.html#5424" class="Bound">a</a><a id="5425" class="Symbol">}</a> <a id="5427" class="Symbol">{</a><a id="5428" class="Argument">b</a> <a id="5430" class="Symbol">=</a> <a id="5432" href="Categories.Morphism.Reasoning.Core.html#5432" class="Bound">b</a><a id="5433" class="Symbol">}</a> <a id="5435" class="Symbol">{</a><a id="5436" class="Argument">b</a> <a id="5439" class="Symbol">=</a> <a id="5441" href="Categories.Morphism.Reasoning.Core.html#5441" class="Bound">b</a><a id="5443" class="Symbol">}</a> <a id="5445" href="Categories.Morphism.Reasoning.Core.html#5445" class="Bound">tri</a> <a id="5449" href="Categories.Morphism.Reasoning.Core.html#5449" class="Bound">sq</a> <a id="5452" class="Symbol">=</a> <a id="5454" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="5462" href="Categories.Morphism.Reasoning.Core.html#5396" class="Bound">c</a> <a id="5464" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5466" class="Symbol">(</a><a id="5467" href="Categories.Morphism.Reasoning.Core.html#5405" class="Bound">c</a> <a id="5470" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5472" href="Categories.Morphism.Reasoning.Core.html#5424" class="Bound">a</a><a id="5473" class="Symbol">)</a> <a id="5475" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="5478" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="5484" href="Categories.Morphism.Reasoning.Core.html#5445" class="Bound">tri</a> <a id="5488" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="5492" href="Categories.Morphism.Reasoning.Core.html#5415" class="Bound">a</a> <a id="5495" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5497" href="Categories.Morphism.Reasoning.Core.html#5424" class="Bound">a</a> <a id="5505" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="5508" href="Categories.Morphism.Reasoning.Core.html#5449" class="Bound">sq</a> <a id="5511" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="5515" href="Categories.Morphism.Reasoning.Core.html#5441" class="Bound">b</a> <a id="5518" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5520" href="Categories.Morphism.Reasoning.Core.html#5432" class="Bound">b</a> <a id="5528" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="glue◽◃"></a><a id="5531" href="Categories.Morphism.Reasoning.Core.html#5531" class="Function">glue◽◃</a> <a id="5538" class="Symbol">:</a> <a id="5540" href="Categories.Category.html#884" class="Function">CommutativeSquare</a> <a id="5558" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="5560" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a> <a id="5562" href="Categories.Morphism.Reasoning.Core.html#981" class="Generalizable">a</a> <a id="5565" href="Categories.Morphism.Reasoning.Core.html#989" class="Generalizable">b</a> <a id="5568" class="Symbol"></a> <a id="5570" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a> <a id="5572" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5574" href="Categories.Morphism.Reasoning.Core.html#995" class="Generalizable">c</a> <a id="5576" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="5578" href="Categories.Morphism.Reasoning.Core.html#997" class="Generalizable">c</a> <a id="5581" class="Symbol"></a> <a id="5583" href="Categories.Category.html#884" class="Function">CommutativeSquare</a> <a id="5601" class="Symbol">(</a><a id="5602" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="5604" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5606" href="Categories.Morphism.Reasoning.Core.html#995" class="Generalizable">c</a><a id="5607" class="Symbol">)</a> <a id="5609" href="Categories.Morphism.Reasoning.Core.html#997" class="Generalizable">c</a> <a id="5612" href="Categories.Morphism.Reasoning.Core.html#981" class="Generalizable">a</a> <a id="5615" href="Categories.Morphism.Reasoning.Core.html#989" class="Generalizable">b</a>
<a id="5618" href="Categories.Morphism.Reasoning.Core.html#5531" class="Function">glue◽◃</a> <a id="5625" class="Symbol">{</a><a id="5626" class="Argument">a</a> <a id="5628" class="Symbol">=</a> <a id="5630" href="Categories.Morphism.Reasoning.Core.html#5630" class="Bound">a</a><a id="5631" class="Symbol">}</a> <a id="5633" class="Symbol">{</a><a id="5634" class="Argument">b</a> <a id="5636" class="Symbol">=</a> <a id="5638" href="Categories.Morphism.Reasoning.Core.html#5638" class="Bound">b</a><a id="5639" class="Symbol">}</a> <a id="5641" class="Symbol">{</a><a id="5642" class="Argument">a</a> <a id="5645" class="Symbol">=</a> <a id="5647" href="Categories.Morphism.Reasoning.Core.html#5647" class="Bound">a</a><a id="5649" class="Symbol">}</a> <a id="5651" class="Symbol">{</a><a id="5652" class="Argument">b</a> <a id="5655" class="Symbol">=</a> <a id="5657" href="Categories.Morphism.Reasoning.Core.html#5657" class="Bound">b</a><a id="5659" class="Symbol">}</a> <a id="5661" class="Symbol">{</a><a id="5662" class="Argument">c</a> <a id="5664" class="Symbol">=</a> <a id="5666" href="Categories.Morphism.Reasoning.Core.html#5666" class="Bound">c</a><a id="5667" class="Symbol">}</a> <a id="5669" class="Symbol">{</a><a id="5670" class="Argument">c</a> <a id="5673" class="Symbol">=</a> <a id="5675" href="Categories.Morphism.Reasoning.Core.html#5675" class="Bound">c</a><a id="5677" class="Symbol">}</a> <a id="5679" href="Categories.Morphism.Reasoning.Core.html#5679" class="Bound">sq</a> <a id="5682" href="Categories.Morphism.Reasoning.Core.html#5682" class="Bound">tri</a> <a id="5686" class="Symbol">=</a> <a id="5688" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="5696" href="Categories.Morphism.Reasoning.Core.html#5647" class="Bound">a</a> <a id="5699" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5701" href="Categories.Morphism.Reasoning.Core.html#5630" class="Bound">a</a> <a id="5703" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5705" href="Categories.Morphism.Reasoning.Core.html#5666" class="Bound">c</a> <a id="5709" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="5712" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="5718" href="Categories.Morphism.Reasoning.Core.html#5679" class="Bound">sq</a> <a id="5721" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="5725" class="Symbol">(</a><a id="5726" href="Categories.Morphism.Reasoning.Core.html#5657" class="Bound">b</a> <a id="5729" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5731" href="Categories.Morphism.Reasoning.Core.html#5638" class="Bound">b</a><a id="5732" class="Symbol">)</a> <a id="5734" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5736" href="Categories.Morphism.Reasoning.Core.html#5666" class="Bound">c</a> <a id="5738" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="5741" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="5747" href="Categories.Morphism.Reasoning.Core.html#5682" class="Bound">tri</a> <a id="5751" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="5755" href="Categories.Morphism.Reasoning.Core.html#5657" class="Bound">b</a> <a id="5758" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5760" href="Categories.Morphism.Reasoning.Core.html#5675" class="Bound">c</a> <a id="5768" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="glue▹◽"></a><a id="5771" href="Categories.Morphism.Reasoning.Core.html#5771" class="Function">glue▹◽</a> <a id="5778" class="Symbol">:</a> <a id="5780" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a> <a id="5782" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5784" href="Categories.Morphism.Reasoning.Core.html#984" class="Generalizable">a″</a> <a id="5787" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="5789" href="Categories.Morphism.Reasoning.Core.html#995" class="Generalizable">c</a> <a id="5791" class="Symbol"></a> <a id="5793" href="Categories.Category.html#884" class="Function">CommutativeSquare</a> <a id="5811" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="5813" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a> <a id="5815" href="Categories.Morphism.Reasoning.Core.html#981" class="Generalizable">a</a> <a id="5818" href="Categories.Morphism.Reasoning.Core.html#989" class="Generalizable">b</a> <a id="5821" class="Symbol"></a> <a id="5823" href="Categories.Category.html#884" class="Function">CommutativeSquare</a> <a id="5841" class="Symbol">(</a><a id="5842" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="5844" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5846" href="Categories.Morphism.Reasoning.Core.html#984" class="Generalizable">a″</a><a id="5848" class="Symbol">)</a> <a id="5850" href="Categories.Morphism.Reasoning.Core.html#995" class="Generalizable">c</a> <a id="5852" href="Categories.Morphism.Reasoning.Core.html#981" class="Generalizable">a</a> <a id="5855" href="Categories.Morphism.Reasoning.Core.html#989" class="Generalizable">b</a>
<a id="5858" href="Categories.Morphism.Reasoning.Core.html#5771" class="Function">glue▹◽</a> <a id="5865" class="Symbol">{</a><a id="5866" class="Argument">b</a> <a id="5868" class="Symbol">=</a> <a id="5870" href="Categories.Morphism.Reasoning.Core.html#5870" class="Bound">b</a><a id="5871" class="Symbol">}</a> <a id="5873" class="Symbol">{</a><a id="5874" class="Argument">a″</a> <a id="5877" class="Symbol">=</a> <a id="5879" href="Categories.Morphism.Reasoning.Core.html#5879" class="Bound">a″</a><a id="5881" class="Symbol">}</a> <a id="5883" class="Symbol">{</a><a id="5884" class="Argument">c</a> <a id="5886" class="Symbol">=</a> <a id="5888" href="Categories.Morphism.Reasoning.Core.html#5888" class="Bound">c</a><a id="5889" class="Symbol">}</a> <a id="5891" class="Symbol">{</a><a id="5892" class="Argument">a</a> <a id="5894" class="Symbol">=</a> <a id="5896" href="Categories.Morphism.Reasoning.Core.html#5896" class="Bound">a</a><a id="5897" class="Symbol">}</a> <a id="5899" class="Symbol">{</a><a id="5900" class="Argument">a</a> <a id="5903" class="Symbol">=</a> <a id="5905" href="Categories.Morphism.Reasoning.Core.html#5905" class="Bound">a</a><a id="5907" class="Symbol">}</a> <a id="5909" class="Symbol">{</a><a id="5910" class="Argument">b</a> <a id="5913" class="Symbol">=</a> <a id="5915" href="Categories.Morphism.Reasoning.Core.html#5915" class="Bound">b</a><a id="5917" class="Symbol">}</a> <a id="5919" href="Categories.Morphism.Reasoning.Core.html#5919" class="Bound">tri</a> <a id="5923" href="Categories.Morphism.Reasoning.Core.html#5923" class="Bound">sq</a> <a id="5926" class="Symbol">=</a> <a id="5928" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="5936" href="Categories.Morphism.Reasoning.Core.html#5905" class="Bound">a</a> <a id="5939" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5941" href="Categories.Morphism.Reasoning.Core.html#5896" class="Bound">a</a> <a id="5943" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5945" href="Categories.Morphism.Reasoning.Core.html#5879" class="Bound">a″</a> <a id="5950" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="5953" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="5959" href="Categories.Morphism.Reasoning.Core.html#5923" class="Bound">sq</a> <a id="5962" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="5966" class="Symbol">(</a><a id="5967" href="Categories.Morphism.Reasoning.Core.html#5915" class="Bound">b</a> <a id="5970" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5972" href="Categories.Morphism.Reasoning.Core.html#5870" class="Bound">b</a><a id="5973" class="Symbol">)</a> <a id="5975" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="5977" href="Categories.Morphism.Reasoning.Core.html#5879" class="Bound">a″</a> <a id="5980" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="5983" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="5989" href="Categories.Morphism.Reasoning.Core.html#5919" class="Bound">tri</a> <a id="5993" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="5997" href="Categories.Morphism.Reasoning.Core.html#5915" class="Bound">b</a> <a id="6000" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6002" href="Categories.Morphism.Reasoning.Core.html#5888" class="Bound">c</a> <a id="6011" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="6014" class="Comment">-- essentially composition in the over category</a>
<a id="glueTrianglesʳ"></a><a id="6062" href="Categories.Morphism.Reasoning.Core.html#6062" class="Function">glueTrianglesʳ</a> <a id="6077" class="Symbol">:</a> <a id="6079" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="6081" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6083" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a> <a id="6085" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="6087" href="Categories.Morphism.Reasoning.Core.html#981" class="Generalizable">a</a> <a id="6090" class="Symbol"></a> <a id="6092" href="Categories.Morphism.Reasoning.Core.html#981" class="Generalizable">a</a> <a id="6095" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6097" href="Categories.Morphism.Reasoning.Core.html#989" class="Generalizable">b</a> <a id="6100" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="6102" href="Categories.Morphism.Reasoning.Core.html#984" class="Generalizable">a″</a> <a id="6105" class="Symbol"></a> <a id="6107" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="6109" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6111" class="Symbol">(</a><a id="6112" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a> <a id="6114" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6116" href="Categories.Morphism.Reasoning.Core.html#989" class="Generalizable">b</a><a id="6118" class="Symbol">)</a> <a id="6120" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="6122" href="Categories.Morphism.Reasoning.Core.html#984" class="Generalizable">a″</a>
<a id="6125" href="Categories.Morphism.Reasoning.Core.html#6062" class="Function">glueTrianglesʳ</a> <a id="6140" class="Symbol">{</a><a id="6141" class="Argument">a</a> <a id="6143" class="Symbol">=</a> <a id="6145" href="Categories.Morphism.Reasoning.Core.html#6145" class="Bound">a</a><a id="6146" class="Symbol">}</a> <a id="6148" class="Symbol">{</a><a id="6149" class="Argument">b</a> <a id="6151" class="Symbol">=</a> <a id="6153" href="Categories.Morphism.Reasoning.Core.html#6153" class="Bound">b</a><a id="6154" class="Symbol">}</a> <a id="6156" class="Symbol">{</a><a id="6157" class="Argument">a</a> <a id="6160" class="Symbol">=</a> <a id="6162" href="Categories.Morphism.Reasoning.Core.html#6162" class="Bound">a</a><a id="6164" class="Symbol">}</a> <a id="6166" class="Symbol">{</a><a id="6167" class="Argument">b</a> <a id="6170" class="Symbol">=</a> <a id="6172" href="Categories.Morphism.Reasoning.Core.html#6172" class="Bound">b</a><a id="6174" class="Symbol">}</a> <a id="6176" class="Symbol">{</a><a id="6177" class="Argument">a″</a> <a id="6180" class="Symbol">=</a> <a id="6182" href="Categories.Morphism.Reasoning.Core.html#6182" class="Bound">a″</a><a id="6184" class="Symbol">}</a> <a id="6186" href="Categories.Morphism.Reasoning.Core.html#6186" class="Bound">a∘b≡a</a> <a id="6193" href="Categories.Morphism.Reasoning.Core.html#6193" class="Bound">a∘b≡a″</a> <a id="6202" class="Symbol">=</a> <a id="6204" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="6212" href="Categories.Morphism.Reasoning.Core.html#6145" class="Bound">a</a> <a id="6214" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6216" class="Symbol">(</a><a id="6217" href="Categories.Morphism.Reasoning.Core.html#6153" class="Bound">b</a> <a id="6219" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6221" href="Categories.Morphism.Reasoning.Core.html#6172" class="Bound">b</a><a id="6223" class="Symbol">)</a> <a id="6225" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="6228" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="6234" href="Categories.Morphism.Reasoning.Core.html#6186" class="Bound">a∘b≡a</a> <a id="6241" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="6245" href="Categories.Morphism.Reasoning.Core.html#6162" class="Bound">a</a> <a id="6248" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6250" href="Categories.Morphism.Reasoning.Core.html#6172" class="Bound">b</a> <a id="6258" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="6261" href="Categories.Morphism.Reasoning.Core.html#6193" class="Bound">a∘b≡a″</a> <a id="6270" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="6274" href="Categories.Morphism.Reasoning.Core.html#6182" class="Bound">a″</a> <a id="6287" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="6290" class="Comment">-- essentially composition in the under category</a>
<a id="glueTrianglesˡ"></a><a id="6339" href="Categories.Morphism.Reasoning.Core.html#6339" class="Function">glueTrianglesˡ</a> <a id="6354" class="Symbol">:</a> <a id="6356" href="Categories.Morphism.Reasoning.Core.html#981" class="Generalizable">a</a> <a id="6359" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6361" href="Categories.Morphism.Reasoning.Core.html#989" class="Generalizable">b</a> <a id="6364" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="6366" href="Categories.Morphism.Reasoning.Core.html#992" class="Generalizable">b″</a> <a id="6369" class="Symbol"></a> <a id="6371" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="6373" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6375" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a> <a id="6377" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="6379" href="Categories.Morphism.Reasoning.Core.html#989" class="Generalizable">b</a> <a id="6382" class="Symbol"></a> <a id="6384" class="Symbol">(</a><a id="6385" href="Categories.Morphism.Reasoning.Core.html#981" class="Generalizable">a</a> <a id="6388" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6390" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a><a id="6391" class="Symbol">)</a> <a id="6393" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6395" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a> <a id="6397" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="6399" href="Categories.Morphism.Reasoning.Core.html#992" class="Generalizable">b″</a>
<a id="6402" href="Categories.Morphism.Reasoning.Core.html#6339" class="Function">glueTrianglesˡ</a> <a id="6417" class="Symbol">{</a><a id="6418" class="Argument">a</a> <a id="6421" class="Symbol">=</a> <a id="6423" href="Categories.Morphism.Reasoning.Core.html#6423" class="Bound">a</a><a id="6425" class="Symbol">}</a> <a id="6427" class="Symbol">{</a><a id="6428" class="Argument">b</a> <a id="6431" class="Symbol">=</a> <a id="6433" href="Categories.Morphism.Reasoning.Core.html#6433" class="Bound">b</a><a id="6435" class="Symbol">}</a> <a id="6437" class="Symbol">{</a><a id="6438" class="Argument">b″</a> <a id="6441" class="Symbol">=</a> <a id="6443" href="Categories.Morphism.Reasoning.Core.html#6443" class="Bound">b″</a><a id="6445" class="Symbol">}</a> <a id="6447" class="Symbol">{</a><a id="6448" class="Argument">a</a> <a id="6450" class="Symbol">=</a> <a id="6452" href="Categories.Morphism.Reasoning.Core.html#6452" class="Bound">a</a><a id="6453" class="Symbol">}</a> <a id="6455" class="Symbol">{</a><a id="6456" class="Argument">b</a> <a id="6458" class="Symbol">=</a> <a id="6460" href="Categories.Morphism.Reasoning.Core.html#6460" class="Bound">b</a><a id="6461" class="Symbol">}</a> <a id="6463" href="Categories.Morphism.Reasoning.Core.html#6463" class="Bound">a∘b≡b″</a> <a id="6472" href="Categories.Morphism.Reasoning.Core.html#6472" class="Bound">a∘b≡b</a> <a id="6479" class="Symbol">=</a> <a id="6481" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="6489" class="Symbol">(</a><a id="6490" href="Categories.Morphism.Reasoning.Core.html#6423" class="Bound">a</a> <a id="6493" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6495" href="Categories.Morphism.Reasoning.Core.html#6452" class="Bound">a</a><a id="6496" class="Symbol">)</a> <a id="6498" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6500" href="Categories.Morphism.Reasoning.Core.html#6460" class="Bound">b</a> <a id="6502" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="6505" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="6511" href="Categories.Morphism.Reasoning.Core.html#6472" class="Bound">a∘b≡b</a> <a id="6518" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="6522" href="Categories.Morphism.Reasoning.Core.html#6423" class="Bound">a</a> <a id="6525" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6527" href="Categories.Morphism.Reasoning.Core.html#6433" class="Bound">b</a> <a id="6535" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="6538" href="Categories.Morphism.Reasoning.Core.html#6463" class="Bound">a∘b≡b″</a> <a id="6547" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="6551" href="Categories.Morphism.Reasoning.Core.html#6443" class="Bound">b″</a> <a id="6564" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="6567" class="Comment">-- Cancel (or insert) inverses on right/left/middle</a>
<a id="6619" class="Keyword">module</a> <a id="Cancellers"></a><a id="6626" href="Categories.Morphism.Reasoning.Core.html#6626" class="Module">Cancellers</a> <a id="6637" class="Symbol">(</a><a id="6638" href="Categories.Morphism.Reasoning.Core.html#6638" class="Bound">inv</a> <a id="6642" class="Symbol">:</a> <a id="6644" href="Categories.Morphism.Reasoning.Core.html#1019" class="Generalizable">h</a> <a id="6646" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6648" href="Categories.Morphism.Reasoning.Core.html#1021" class="Generalizable">i</a> <a id="6650" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="6652" href="Categories.Category.Core.html#630" class="Field">id</a><a id="6654" class="Symbol">)</a> <a id="6656" class="Keyword">where</a>
<a id="Cancellers.cancelʳ"></a><a id="6665" href="Categories.Morphism.Reasoning.Core.html#6665" class="Function">cancelʳ</a> <a id="6673" class="Symbol">:</a> <a id="6675" class="Symbol">(</a><a id="6676" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="6678" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6680" href="Categories.Morphism.Reasoning.Core.html#6644" class="Bound">h</a><a id="6681" class="Symbol">)</a> <a id="6683" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6685" href="Categories.Morphism.Reasoning.Core.html#6648" class="Bound">i</a> <a id="6687" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="6689" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a>
<a id="6693" href="Categories.Morphism.Reasoning.Core.html#6665" class="Function">cancelʳ</a> <a id="6701" class="Symbol">{</a><a id="6702" class="Argument">f</a> <a id="6704" class="Symbol">=</a> <a id="6706" href="Categories.Morphism.Reasoning.Core.html#6706" class="Bound">f</a><a id="6707" class="Symbol">}</a> <a id="6709" class="Symbol">=</a> <a id="6711" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="6721" class="Symbol">(</a><a id="6722" href="Categories.Morphism.Reasoning.Core.html#6706" class="Bound">f</a> <a id="6724" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6726" href="Categories.Morphism.Reasoning.Core.html#6644" class="Bound">h</a><a id="6727" class="Symbol">)</a> <a id="6729" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6731" href="Categories.Morphism.Reasoning.Core.html#6648" class="Bound">i</a> <a id="6733" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="6736" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="6742" href="Categories.Morphism.Reasoning.Core.html#6638" class="Bound">inv</a> <a id="6746" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="6752" href="Categories.Morphism.Reasoning.Core.html#6706" class="Bound">f</a> <a id="6754" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6756" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="6764" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="6767" href="Categories.Category.Core.html#1145" class="Field">identityʳ</a> <a id="6777" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="6783" href="Categories.Morphism.Reasoning.Core.html#6706" class="Bound">f</a> <a id="6795" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="Cancellers.insertʳ"></a><a id="6800" href="Categories.Morphism.Reasoning.Core.html#6800" class="Function">insertʳ</a> <a id="6808" class="Symbol">:</a> <a id="6810" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="6812" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="6814" class="Symbol">(</a><a id="6815" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="6817" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6819" href="Categories.Morphism.Reasoning.Core.html#6644" class="Bound">h</a><a id="6820" class="Symbol">)</a> <a id="6822" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6824" href="Categories.Morphism.Reasoning.Core.html#6648" class="Bound">i</a>
<a id="6828" href="Categories.Morphism.Reasoning.Core.html#6800" class="Function">insertʳ</a> <a id="6836" class="Symbol">=</a> <a id="6838" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="6840" href="Categories.Morphism.Reasoning.Core.html#6665" class="Function">cancelʳ</a>
<a id="Cancellers.cancelˡ"></a><a id="6851" href="Categories.Morphism.Reasoning.Core.html#6851" class="Function">cancelˡ</a> <a id="6859" class="Symbol">:</a> <a id="6861" href="Categories.Morphism.Reasoning.Core.html#6644" class="Bound">h</a> <a id="6863" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6865" class="Symbol">(</a><a id="6866" href="Categories.Morphism.Reasoning.Core.html#6648" class="Bound">i</a> <a id="6868" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6870" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a><a id="6871" class="Symbol">)</a> <a id="6873" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="6875" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a>
<a id="6879" href="Categories.Morphism.Reasoning.Core.html#6851" class="Function">cancelˡ</a> <a id="6887" class="Symbol">{</a><a id="6888" class="Argument">f</a> <a id="6890" class="Symbol">=</a> <a id="6892" href="Categories.Morphism.Reasoning.Core.html#6892" class="Bound">f</a><a id="6893" class="Symbol">}</a> <a id="6895" class="Symbol">=</a> <a id="6897" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="6907" href="Categories.Morphism.Reasoning.Core.html#6644" class="Bound">h</a> <a id="6909" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6911" class="Symbol">(</a><a id="6912" href="Categories.Morphism.Reasoning.Core.html#6648" class="Bound">i</a> <a id="6914" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6916" href="Categories.Morphism.Reasoning.Core.html#6892" class="Bound">f</a><a id="6917" class="Symbol">)</a> <a id="6919" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="6922" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="6928" href="Categories.Morphism.Reasoning.Core.html#6638" class="Bound">inv</a> <a id="6932" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="6938" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="6941" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="6943" href="Categories.Morphism.Reasoning.Core.html#6892" class="Bound">f</a> <a id="6950" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="6953" href="Categories.Category.Core.html#1096" class="Field">identityˡ</a> <a id="6963" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="6969" href="Categories.Morphism.Reasoning.Core.html#6892" class="Bound">f</a> <a id="6981" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="Cancellers.insertˡ"></a><a id="6986" href="Categories.Morphism.Reasoning.Core.html#6986" class="Function">insertˡ</a> <a id="6994" class="Symbol">:</a> <a id="6996" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="6998" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="7000" href="Categories.Morphism.Reasoning.Core.html#6644" class="Bound">h</a> <a id="7002" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7004" class="Symbol">(</a><a id="7005" href="Categories.Morphism.Reasoning.Core.html#6648" class="Bound">i</a> <a id="7007" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7009" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a><a id="7010" class="Symbol">)</a>
<a id="7014" href="Categories.Morphism.Reasoning.Core.html#6986" class="Function">insertˡ</a> <a id="7022" class="Symbol">=</a> <a id="7024" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="7026" href="Categories.Morphism.Reasoning.Core.html#6851" class="Function">cancelˡ</a>
<a id="Cancellers.cancelInner"></a><a id="7037" href="Categories.Morphism.Reasoning.Core.html#7037" class="Function">cancelInner</a> <a id="7049" class="Symbol">:</a> <a id="7051" class="Symbol">(</a><a id="7052" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="7054" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7056" href="Categories.Morphism.Reasoning.Core.html#6644" class="Bound">h</a><a id="7057" class="Symbol">)</a> <a id="7059" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7061" class="Symbol">(</a><a id="7062" href="Categories.Morphism.Reasoning.Core.html#6648" class="Bound">i</a> <a id="7064" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7066" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a><a id="7067" class="Symbol">)</a> <a id="7069" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="7071" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="7073" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7075" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a>
<a id="7079" href="Categories.Morphism.Reasoning.Core.html#7037" class="Function">cancelInner</a> <a id="7091" class="Symbol">=</a> <a id="7093" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="7099" href="Categories.Morphism.Reasoning.Core.html#6665" class="Function">cancelʳ</a>
<a id="Cancellers.insertInner"></a><a id="7110" href="Categories.Morphism.Reasoning.Core.html#7110" class="Function">insertInner</a> <a id="7122" class="Symbol">:</a> <a id="7124" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="7126" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7128" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a> <a id="7130" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="7132" class="Symbol">(</a><a id="7133" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="7135" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7137" href="Categories.Morphism.Reasoning.Core.html#6644" class="Bound">h</a><a id="7138" class="Symbol">)</a> <a id="7140" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7142" class="Symbol">(</a><a id="7143" href="Categories.Morphism.Reasoning.Core.html#6648" class="Bound">i</a> <a id="7145" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7147" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a><a id="7148" class="Symbol">)</a>
<a id="7152" href="Categories.Morphism.Reasoning.Core.html#7110" class="Function">insertInner</a> <a id="7164" class="Symbol">=</a> <a id="7166" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="7168" href="Categories.Morphism.Reasoning.Core.html#7037" class="Function">cancelInner</a>
<a id="7183" class="Keyword">open</a> <a id="7188" href="Categories.Morphism.Reasoning.Core.html#6626" class="Module">Cancellers</a> <a id="7199" class="Keyword">public</a>
<a id="7207" class="Comment">-- operate in the &#39;center&#39; instead (like pull/push)</a>
<a id="center"></a><a id="7259" href="Categories.Morphism.Reasoning.Core.html#7259" class="Function">center</a> <a id="7266" class="Symbol">:</a> <a id="7268" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a> <a id="7270" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7272" href="Categories.Morphism.Reasoning.Core.html#1019" class="Generalizable">h</a> <a id="7274" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="7276" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="7278" class="Symbol"></a> <a id="7280" class="Symbol">(</a><a id="7281" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="7283" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7285" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a><a id="7286" class="Symbol">)</a> <a id="7288" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7290" class="Symbol">(</a><a id="7291" href="Categories.Morphism.Reasoning.Core.html#1019" class="Generalizable">h</a> <a id="7293" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7295" href="Categories.Morphism.Reasoning.Core.html#1021" class="Generalizable">i</a><a id="7296" class="Symbol">)</a> <a id="7298" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="7300" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="7302" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7304" class="Symbol">(</a><a id="7305" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="7307" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7309" href="Categories.Morphism.Reasoning.Core.html#1021" class="Generalizable">i</a><a id="7310" class="Symbol">)</a>
<a id="7312" href="Categories.Morphism.Reasoning.Core.html#7259" class="Function">center</a> <a id="7319" href="Categories.Morphism.Reasoning.Core.html#7319" class="Bound">eq</a> <a id="7322" class="Symbol">=</a> <a id="7324" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="7330" class="Symbol">(</a><a id="7331" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="7337" href="Categories.Morphism.Reasoning.Core.html#7319" class="Bound">eq</a><a id="7339" class="Symbol">)</a>
<a id="7342" class="Comment">-- operate on the left part, then the right part</a>
<a id="center⁻¹"></a><a id="7391" href="Categories.Morphism.Reasoning.Core.html#7391" class="Function">center⁻¹</a> <a id="7400" class="Symbol">:</a> <a id="7402" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="7404" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7406" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a> <a id="7408" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="7410" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="7412" class="Symbol"></a> <a id="7414" href="Categories.Morphism.Reasoning.Core.html#1019" class="Generalizable">h</a> <a id="7416" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7418" href="Categories.Morphism.Reasoning.Core.html#1021" class="Generalizable">i</a> <a id="7420" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="7422" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a> <a id="7424" class="Symbol"></a> <a id="7427" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="7429" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7431" class="Symbol">((</a><a id="7433" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a> <a id="7435" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7437" href="Categories.Morphism.Reasoning.Core.html#1019" class="Generalizable">h</a><a id="7438" class="Symbol">)</a> <a id="7440" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7442" href="Categories.Morphism.Reasoning.Core.html#1021" class="Generalizable">i</a><a id="7443" class="Symbol">)</a> <a id="7445" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="7447" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="7449" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7451" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a>
<a id="7453" href="Categories.Morphism.Reasoning.Core.html#7391" class="Function">center⁻¹</a> <a id="7462" class="Symbol">{</a><a id="7463" class="Argument">f</a> <a id="7465" class="Symbol">=</a> <a id="7467" href="Categories.Morphism.Reasoning.Core.html#7467" class="Bound">f</a><a id="7468" class="Symbol">}</a> <a id="7470" class="Symbol">{</a><a id="7471" class="Argument">g</a> <a id="7473" class="Symbol">=</a> <a id="7475" href="Categories.Morphism.Reasoning.Core.html#7475" class="Bound">g</a><a id="7476" class="Symbol">}</a> <a id="7478" class="Symbol">{</a><a id="7479" class="Argument">a</a> <a id="7481" class="Symbol">=</a> <a id="7483" href="Categories.Morphism.Reasoning.Core.html#7483" class="Bound">a</a><a id="7484" class="Symbol">}</a> <a id="7486" class="Symbol">{</a><a id="7487" class="Argument">h</a> <a id="7489" class="Symbol">=</a> <a id="7491" href="Categories.Morphism.Reasoning.Core.html#7491" class="Bound">h</a><a id="7492" class="Symbol">}</a> <a id="7494" class="Symbol">{</a><a id="7495" class="Argument">i</a> <a id="7497" class="Symbol">=</a> <a id="7499" href="Categories.Morphism.Reasoning.Core.html#7499" class="Bound">i</a><a id="7500" class="Symbol">}</a> <a id="7502" class="Symbol">{</a><a id="7503" class="Argument">b</a> <a id="7505" class="Symbol">=</a> <a id="7507" href="Categories.Morphism.Reasoning.Core.html#7507" class="Bound">b</a><a id="7508" class="Symbol">}</a> <a id="7510" href="Categories.Morphism.Reasoning.Core.html#7510" class="Bound">eq</a> <a id="7513" href="Categories.Morphism.Reasoning.Core.html#7513" class="Bound">eq</a> <a id="7517" class="Symbol">=</a> <a id="7519" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="7527" href="Categories.Morphism.Reasoning.Core.html#7467" class="Bound">f</a> <a id="7529" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7531" class="Symbol">(</a><a id="7532" href="Categories.Morphism.Reasoning.Core.html#7475" class="Bound">g</a> <a id="7534" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7536" href="Categories.Morphism.Reasoning.Core.html#7491" class="Bound">h</a><a id="7537" class="Symbol">)</a> <a id="7539" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7541" href="Categories.Morphism.Reasoning.Core.html#7499" class="Bound">i</a> <a id="7543" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="7546" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="7554" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="7560" href="Categories.Morphism.Reasoning.Core.html#7513" class="Bound">eq</a> <a id="7564" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="7568" href="Categories.Morphism.Reasoning.Core.html#7467" class="Bound">f</a> <a id="7570" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7572" class="Symbol">(</a><a id="7573" href="Categories.Morphism.Reasoning.Core.html#7475" class="Bound">g</a> <a id="7575" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7577" href="Categories.Morphism.Reasoning.Core.html#7507" class="Bound">b</a><a id="7578" class="Symbol">)</a> <a id="7584" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="7587" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="7593" href="Categories.Morphism.Reasoning.Core.html#7510" class="Bound">eq</a> <a id="7596" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="7600" href="Categories.Morphism.Reasoning.Core.html#7483" class="Bound">a</a> <a id="7602" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7604" href="Categories.Morphism.Reasoning.Core.html#7507" class="Bound">b</a> <a id="7616" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="7619" class="Comment">-- could be called pull₃ʳ</a>
<a id="pull-last"></a><a id="7645" href="Categories.Morphism.Reasoning.Core.html#7645" class="Function">pull-last</a> <a id="7655" class="Symbol">:</a> <a id="7657" href="Categories.Morphism.Reasoning.Core.html#1019" class="Generalizable">h</a> <a id="7659" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7661" href="Categories.Morphism.Reasoning.Core.html#1021" class="Generalizable">i</a> <a id="7663" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="7665" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="7667" class="Symbol"></a> <a id="7669" class="Symbol">(</a><a id="7670" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="7672" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7674" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a> <a id="7676" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7678" href="Categories.Morphism.Reasoning.Core.html#1019" class="Generalizable">h</a><a id="7679" class="Symbol">)</a> <a id="7681" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7683" href="Categories.Morphism.Reasoning.Core.html#1021" class="Generalizable">i</a> <a id="7685" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="7687" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="7689" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7691" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a> <a id="7693" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7695" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a>
<a id="7697" href="Categories.Morphism.Reasoning.Core.html#7645" class="Function">pull-last</a> <a id="7707" href="Categories.Morphism.Reasoning.Core.html#7707" class="Bound">eq</a> <a id="7710" class="Symbol">=</a> <a id="7712" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="7718" class="Symbol">(</a><a id="7719" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="7725" href="Categories.Morphism.Reasoning.Core.html#7707" class="Bound">eq</a><a id="7727" class="Symbol">)</a>
<a id="pull-first"></a><a id="7730" href="Categories.Morphism.Reasoning.Core.html#7730" class="Function">pull-first</a> <a id="7741" class="Symbol">:</a> <a id="7743" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="7745" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7747" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a> <a id="7749" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="7751" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="7753" class="Symbol"></a> <a id="7755" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="7757" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7759" class="Symbol">((</a><a id="7761" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a> <a id="7763" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7765" href="Categories.Morphism.Reasoning.Core.html#1019" class="Generalizable">h</a><a id="7766" class="Symbol">)</a> <a id="7768" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7770" href="Categories.Morphism.Reasoning.Core.html#1021" class="Generalizable">i</a><a id="7771" class="Symbol">)</a> <a id="7773" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="7775" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="7777" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7779" class="Symbol">(</a><a id="7780" href="Categories.Morphism.Reasoning.Core.html#1019" class="Generalizable">h</a> <a id="7782" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7784" href="Categories.Morphism.Reasoning.Core.html#1021" class="Generalizable">i</a><a id="7785" class="Symbol">)</a>
<a id="7787" href="Categories.Morphism.Reasoning.Core.html#7730" class="Function">pull-first</a> <a id="7798" class="Symbol">{</a><a id="7799" class="Argument">f</a> <a id="7801" class="Symbol">=</a> <a id="7803" href="Categories.Morphism.Reasoning.Core.html#7803" class="Bound">f</a><a id="7804" class="Symbol">}</a> <a id="7806" class="Symbol">{</a><a id="7807" class="Argument">g</a> <a id="7809" class="Symbol">=</a> <a id="7811" href="Categories.Morphism.Reasoning.Core.html#7811" class="Bound">g</a><a id="7812" class="Symbol">}</a> <a id="7814" class="Symbol">{</a><a id="7815" class="Argument">a</a> <a id="7817" class="Symbol">=</a> <a id="7819" href="Categories.Morphism.Reasoning.Core.html#7819" class="Bound">a</a><a id="7820" class="Symbol">}</a> <a id="7822" class="Symbol">{</a><a id="7823" class="Argument">h</a> <a id="7825" class="Symbol">=</a> <a id="7827" href="Categories.Morphism.Reasoning.Core.html#7827" class="Bound">h</a><a id="7828" class="Symbol">}</a> <a id="7830" class="Symbol">{</a><a id="7831" class="Argument">i</a> <a id="7833" class="Symbol">=</a> <a id="7835" href="Categories.Morphism.Reasoning.Core.html#7835" class="Bound">i</a><a id="7836" class="Symbol">}</a> <a id="7838" href="Categories.Morphism.Reasoning.Core.html#7838" class="Bound">eq</a> <a id="7841" class="Symbol">=</a> <a id="7843" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="7851" href="Categories.Morphism.Reasoning.Core.html#7803" class="Bound">f</a> <a id="7853" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7855" class="Symbol">(</a><a id="7856" href="Categories.Morphism.Reasoning.Core.html#7811" class="Bound">g</a> <a id="7858" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7860" href="Categories.Morphism.Reasoning.Core.html#7827" class="Bound">h</a><a id="7861" class="Symbol">)</a> <a id="7863" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7865" href="Categories.Morphism.Reasoning.Core.html#7835" class="Bound">i</a> <a id="7867" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="7870" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="7878" href="Categories.Category.Core.html#715" class="Field">assoc</a> <a id="7884" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="7888" href="Categories.Morphism.Reasoning.Core.html#7803" class="Bound">f</a> <a id="7890" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7892" href="Categories.Morphism.Reasoning.Core.html#7811" class="Bound">g</a> <a id="7894" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7896" href="Categories.Morphism.Reasoning.Core.html#7827" class="Bound">h</a> <a id="7898" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7900" href="Categories.Morphism.Reasoning.Core.html#7835" class="Bound">i</a> <a id="7904" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="7907" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="7913" href="Categories.Morphism.Reasoning.Core.html#7838" class="Bound">eq</a> <a id="7916" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="7920" href="Categories.Morphism.Reasoning.Core.html#7819" class="Bound">a</a> <a id="7922" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7924" href="Categories.Morphism.Reasoning.Core.html#7827" class="Bound">h</a> <a id="7926" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7928" href="Categories.Morphism.Reasoning.Core.html#7835" class="Bound">i</a> <a id="7936" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="pull-center"></a><a id="7939" href="Categories.Morphism.Reasoning.Core.html#7939" class="Function">pull-center</a> <a id="7951" class="Symbol">:</a> <a id="7953" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a> <a id="7955" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7957" href="Categories.Morphism.Reasoning.Core.html#1019" class="Generalizable">h</a> <a id="7959" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="7961" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="7963" class="Symbol"></a> <a id="7965" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="7967" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7969" class="Symbol">(</a><a id="7970" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a> <a id="7972" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7974" class="Symbol">(</a><a id="7975" href="Categories.Morphism.Reasoning.Core.html#1019" class="Generalizable">h</a> <a id="7977" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7979" href="Categories.Morphism.Reasoning.Core.html#1021" class="Generalizable">i</a><a id="7980" class="Symbol">))</a> <a id="7983" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="7985" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="7987" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7989" class="Symbol">(</a><a id="7990" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="7992" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="7994" href="Categories.Morphism.Reasoning.Core.html#1021" class="Generalizable">i</a><a id="7995" class="Symbol">)</a>
<a id="7997" href="Categories.Morphism.Reasoning.Core.html#7939" class="Function">pull-center</a> <a id="8009" href="Categories.Morphism.Reasoning.Core.html#8009" class="Bound">eq</a> <a id="8012" class="Symbol">=</a> <a id="8014" href="Categories.Category.Core.html#1706" class="Function">∘-resp-≈ʳ</a> <a id="8024" class="Symbol">(</a><a id="8025" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="8031" href="Categories.Morphism.Reasoning.Core.html#8009" class="Bound">eq</a><a id="8033" class="Symbol">)</a>
<a id="push-center"></a><a id="8036" href="Categories.Morphism.Reasoning.Core.html#8036" class="Function">push-center</a> <a id="8048" class="Symbol">:</a> <a id="8050" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a> <a id="8052" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8054" href="Categories.Morphism.Reasoning.Core.html#1019" class="Generalizable">h</a> <a id="8056" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="8058" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="8060" class="Symbol"></a> <a id="8062" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="8064" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8066" class="Symbol">(</a><a id="8067" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="8069" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8071" href="Categories.Morphism.Reasoning.Core.html#1021" class="Generalizable">i</a><a id="8072" class="Symbol">)</a> <a id="8074" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="8076" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="8078" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8080" class="Symbol">(</a><a id="8081" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a> <a id="8083" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8085" class="Symbol">(</a><a id="8086" href="Categories.Morphism.Reasoning.Core.html#1019" class="Generalizable">h</a> <a id="8088" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8090" href="Categories.Morphism.Reasoning.Core.html#1021" class="Generalizable">i</a><a id="8091" class="Symbol">))</a>
<a id="8094" href="Categories.Morphism.Reasoning.Core.html#8036" class="Function">push-center</a> <a id="8106" href="Categories.Morphism.Reasoning.Core.html#8106" class="Bound">eq</a> <a id="8109" class="Symbol">=</a> <a id="8111" href="Relation.Binary.Structures.html#1603" class="Function">Equiv.sym</a> <a id="8121" class="Symbol">(</a><a id="8122" href="Categories.Morphism.Reasoning.Core.html#7939" class="Function">pull-center</a> <a id="8134" href="Categories.Morphism.Reasoning.Core.html#8106" class="Bound">eq</a><a id="8136" class="Symbol">)</a>
<a id="intro-first"></a><a id="8139" href="Categories.Morphism.Reasoning.Core.html#8139" class="Function">intro-first</a> <a id="8151" class="Symbol">:</a> <a id="8153" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="8155" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8157" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a> <a id="8159" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="8161" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="8164" class="Symbol"></a> <a id="8166" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="8168" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8170" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a> <a id="8172" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="8174" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="8176" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8178" class="Symbol">((</a><a id="8180" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a> <a id="8182" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8184" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a><a id="8185" class="Symbol">)</a> <a id="8187" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8189" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a><a id="8190" class="Symbol">)</a>
<a id="8192" href="Categories.Morphism.Reasoning.Core.html#8139" class="Function">intro-first</a> <a id="8204" class="Symbol">{</a><a id="8205" class="Argument">a</a> <a id="8207" class="Symbol">=</a> <a id="8209" href="Categories.Morphism.Reasoning.Core.html#8209" class="Bound">a</a><a id="8210" class="Symbol">}</a> <a id="8212" class="Symbol">{</a><a id="8213" class="Argument">b</a> <a id="8215" class="Symbol">=</a> <a id="8217" href="Categories.Morphism.Reasoning.Core.html#8217" class="Bound">b</a><a id="8218" class="Symbol">}</a> <a id="8220" class="Symbol">{</a><a id="8221" class="Argument">f</a> <a id="8223" class="Symbol">=</a> <a id="8225" href="Categories.Morphism.Reasoning.Core.html#8225" class="Bound">f</a><a id="8226" class="Symbol">}</a> <a id="8228" class="Symbol">{</a><a id="8229" class="Argument">g</a> <a id="8231" class="Symbol">=</a> <a id="8233" href="Categories.Morphism.Reasoning.Core.html#8233" class="Bound">g</a><a id="8234" class="Symbol">}</a> <a id="8236" href="Categories.Morphism.Reasoning.Core.html#8236" class="Bound">eq</a> <a id="8239" class="Symbol">=</a> <a id="8241" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="8249" href="Categories.Morphism.Reasoning.Core.html#8225" class="Bound">f</a> <a id="8251" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8253" href="Categories.Morphism.Reasoning.Core.html#8233" class="Bound">g</a> <a id="8267" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="8270" href="Categories.Morphism.Reasoning.Core.html#3063" class="Function">introˡ</a> <a id="8277" href="Categories.Morphism.Reasoning.Core.html#8236" class="Bound">eq</a> <a id="8280" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="8284" class="Symbol">(</a><a id="8285" href="Categories.Morphism.Reasoning.Core.html#8209" class="Bound">a</a> <a id="8287" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8289" href="Categories.Morphism.Reasoning.Core.html#8217" class="Bound">b</a><a id="8290" class="Symbol">)</a> <a id="8292" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8294" class="Symbol">(</a><a id="8295" href="Categories.Morphism.Reasoning.Core.html#8225" class="Bound">f</a> <a id="8297" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8299" href="Categories.Morphism.Reasoning.Core.html#8233" class="Bound">g</a><a id="8300" class="Symbol">)</a> <a id="8302" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="8305" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="8311" href="Categories.Category.Core.html#1004" class="Field">sym-assoc</a> <a id="8321" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="8325" href="Categories.Morphism.Reasoning.Core.html#8209" class="Bound">a</a> <a id="8327" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8329" class="Symbol">((</a><a id="8331" href="Categories.Morphism.Reasoning.Core.html#8217" class="Bound">b</a> <a id="8333" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8335" href="Categories.Morphism.Reasoning.Core.html#8225" class="Bound">f</a><a id="8336" class="Symbol">)</a> <a id="8338" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8340" href="Categories.Morphism.Reasoning.Core.html#8233" class="Bound">g</a><a id="8341" class="Symbol">)</a> <a id="8343" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
<a id="intro-last"></a><a id="8346" href="Categories.Morphism.Reasoning.Core.html#8346" class="Function">intro-last</a> <a id="8357" class="Symbol">:</a> <a id="8359" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a> <a id="8361" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8363" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a> <a id="8365" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="8367" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="8370" class="Symbol"></a> <a id="8372" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="8374" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8376" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a> <a id="8378" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="8380" href="Categories.Morphism.Reasoning.Core.html#1015" class="Generalizable">f</a> <a id="8382" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8384" class="Symbol">(</a><a id="8385" href="Categories.Morphism.Reasoning.Core.html#1017" class="Generalizable">g</a> <a id="8387" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8389" href="Categories.Morphism.Reasoning.Core.html#979" class="Generalizable">a</a><a id="8390" class="Symbol">)</a> <a id="8392" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8394" href="Categories.Morphism.Reasoning.Core.html#987" class="Generalizable">b</a>
<a id="8396" href="Categories.Morphism.Reasoning.Core.html#8346" class="Function">intro-last</a> <a id="8407" class="Symbol">{</a><a id="8408" class="Argument">a</a> <a id="8410" class="Symbol">=</a> <a id="8412" href="Categories.Morphism.Reasoning.Core.html#8412" class="Bound">a</a><a id="8413" class="Symbol">}</a> <a id="8415" class="Symbol">{</a><a id="8416" class="Argument">b</a> <a id="8418" class="Symbol">=</a> <a id="8420" href="Categories.Morphism.Reasoning.Core.html#8420" class="Bound">b</a><a id="8421" class="Symbol">}</a> <a id="8423" class="Symbol">{</a><a id="8424" class="Argument">f</a> <a id="8426" class="Symbol">=</a> <a id="8428" href="Categories.Morphism.Reasoning.Core.html#8428" class="Bound">f</a><a id="8429" class="Symbol">}</a> <a id="8431" class="Symbol">{</a><a id="8432" class="Argument">g</a> <a id="8434" class="Symbol">=</a> <a id="8436" href="Categories.Morphism.Reasoning.Core.html#8436" class="Bound">g</a><a id="8437" class="Symbol">}</a> <a id="8439" href="Categories.Morphism.Reasoning.Core.html#8439" class="Bound">eq</a> <a id="8442" class="Symbol">=</a> <a id="8444" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
<a id="8452" href="Categories.Morphism.Reasoning.Core.html#8428" class="Bound">f</a> <a id="8454" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8456" href="Categories.Morphism.Reasoning.Core.html#8436" class="Bound">g</a> <a id="8468" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="8471" href="Categories.Morphism.Reasoning.Core.html#2899" class="Function">introʳ</a> <a id="8478" href="Categories.Morphism.Reasoning.Core.html#8439" class="Bound">eq</a> <a id="8481" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="8485" class="Symbol">(</a><a id="8486" href="Categories.Morphism.Reasoning.Core.html#8428" class="Bound">f</a> <a id="8488" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8490" href="Categories.Morphism.Reasoning.Core.html#8436" class="Bound">g</a><a id="8491" class="Symbol">)</a> <a id="8493" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8495" href="Categories.Morphism.Reasoning.Core.html#8412" class="Bound">a</a> <a id="8497" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8499" href="Categories.Morphism.Reasoning.Core.html#8420" class="Bound">b</a> <a id="8501" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="8504" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="8510" href="Categories.Category.Core.html#1004" class="Field">sym-assoc</a> <a id="8520" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function"></a>
<a id="8524" href="Categories.Morphism.Reasoning.Core.html#8428" class="Bound">f</a> <a id="8526" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8528" class="Symbol">(</a><a id="8529" href="Categories.Morphism.Reasoning.Core.html#8436" class="Bound">g</a> <a id="8531" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8533" href="Categories.Morphism.Reasoning.Core.html#8412" class="Bound">a</a><a id="8534" class="Symbol">)</a> <a id="8536" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="8538" href="Categories.Morphism.Reasoning.Core.html#8420" class="Bound">b</a> <a id="8540" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator"></a>
</pre></body></html>