bsc-leon-vatthauer/agda/bsc-thesis/Algebra.Consequences.Setoid.html
2024-02-09 17:53:52 +01:00

447 lines
No EOL
179 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>Algebra.Consequences.Setoid</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
<a id="74" class="Comment">-- The Agda standard library</a>
<a id="103" class="Comment">--</a>
<a id="106" class="Comment">-- Relations between properties of functions, such as associativity and</a>
<a id="178" class="Comment">-- commutativity, when the underlying relation is a setoid</a>
<a id="237" class="Comment">------------------------------------------------------------------------</a>
<a id="311" class="Symbol">{-#</a> <a id="315" class="Keyword">OPTIONS</a> <a id="323" class="Pragma">--cubical-compatible</a> <a id="344" class="Pragma">--safe</a> <a id="351" class="Symbol">#-}</a>
<a id="356" class="Keyword">open</a> <a id="361" class="Keyword">import</a> <a id="368" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a> <a id="389" class="Keyword">using</a> <a id="395" class="Symbol">(</a><a id="396" href="Relation.Binary.Core.html#896" class="Function">Rel</a><a id="399" class="Symbol">)</a>
<a id="401" class="Keyword">open</a> <a id="406" class="Keyword">import</a> <a id="413" href="Relation.Binary.Bundles.html" class="Module">Relation.Binary.Bundles</a> <a id="437" class="Keyword">using</a> <a id="443" class="Symbol">(</a><a id="444" href="Relation.Binary.Bundles.html#1080" class="Record">Setoid</a><a id="450" class="Symbol">)</a>
<a id="452" class="Keyword">open</a> <a id="457" class="Keyword">import</a> <a id="464" href="Relation.Binary.Definitions.html" class="Module">Relation.Binary.Definitions</a>
<a id="494" class="Keyword">using</a> <a id="500" class="Symbol">(</a><a id="501" href="Relation.Binary.Definitions.html#5955" class="Function">Substitutive</a><a id="513" class="Symbol">;</a> <a id="515" href="Relation.Binary.Definitions.html#1587" class="Function">Symmetric</a><a id="524" class="Symbol">;</a> <a id="526" href="Relation.Binary.Definitions.html#2910" class="Function">Total</a><a id="531" class="Symbol">)</a>
<a id="534" class="Keyword">module</a> <a id="541" href="Algebra.Consequences.Setoid.html" class="Module">Algebra.Consequences.Setoid</a> <a id="569" class="Symbol">{</a><a id="570" href="Algebra.Consequences.Setoid.html#570" class="Bound">a</a> <a id="572" href="Algebra.Consequences.Setoid.html#572" class="Bound"></a><a id="573" class="Symbol">}</a> <a id="575" class="Symbol">(</a><a id="576" href="Algebra.Consequences.Setoid.html#576" class="Bound">S</a> <a id="578" class="Symbol">:</a> <a id="580" href="Relation.Binary.Bundles.html#1080" class="Record">Setoid</a> <a id="587" href="Algebra.Consequences.Setoid.html#570" class="Bound">a</a> <a id="589" href="Algebra.Consequences.Setoid.html#572" class="Bound"></a><a id="590" class="Symbol">)</a> <a id="592" class="Keyword">where</a>
<a id="599" class="Keyword">open</a> <a id="604" href="Relation.Binary.Bundles.html#1080" class="Module">Setoid</a> <a id="611" href="Algebra.Consequences.Setoid.html#576" class="Bound">S</a> <a id="613" class="Keyword">renaming</a> <a id="622" class="Symbol">(</a><a id="623" href="Relation.Binary.Bundles.html#1143" class="Field">Carrier</a> <a id="631" class="Symbol">to</a> <a id="634" class="Field">A</a><a id="635" class="Symbol">)</a>
<a id="637" class="Keyword">open</a> <a id="642" class="Keyword">import</a> <a id="649" href="Algebra.Core.html" class="Module">Algebra.Core</a>
<a id="662" class="Keyword">open</a> <a id="667" class="Keyword">import</a> <a id="674" href="Algebra.Definitions.html" class="Module">Algebra.Definitions</a> <a id="694" href="Relation.Binary.Bundles.html#1169" class="Field Operator">_≈_</a>
<a id="698" class="Keyword">open</a> <a id="703" class="Keyword">import</a> <a id="710" href="Data.Sum.Base.html" class="Module">Data.Sum.Base</a> <a id="724" class="Keyword">using</a> <a id="730" class="Symbol">(</a><a id="731" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a><a id="735" class="Symbol">;</a> <a id="737" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a><a id="741" class="Symbol">)</a>
<a id="743" class="Keyword">open</a> <a id="748" class="Keyword">import</a> <a id="755" href="Data.Product.Base.html" class="Module">Data.Product.Base</a> <a id="773" class="Keyword">using</a> <a id="779" class="Symbol">(</a><a id="780" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">_,_</a><a id="783" class="Symbol">)</a>
<a id="785" class="Keyword">open</a> <a id="790" class="Keyword">import</a> <a id="797" href="Function.Base.html" class="Module">Function.Base</a> <a id="811" class="Keyword">using</a> <a id="817" class="Symbol">(</a><a id="818" href="Function.Base.html#1974" class="Function Operator">_$_</a><a id="821" class="Symbol">;</a> <a id="823" href="Function.Base.html#704" class="Function">id</a><a id="825" class="Symbol">;</a> <a id="827" href="Function.Base.html#1115" class="Function Operator">_∘_</a><a id="830" class="Symbol">)</a>
<a id="832" class="Keyword">open</a> <a id="837" class="Keyword">import</a> <a id="844" href="Function.Definitions.html" class="Module">Function.Definitions</a>
<a id="865" class="Keyword">import</a> <a id="872" href="Relation.Binary.Consequences.html" class="Module">Relation.Binary.Consequences</a> <a id="901" class="Symbol">as</a> <a id="904" class="Module">Bin</a>
<a id="908" class="Keyword">open</a> <a id="913" class="Keyword">import</a> <a id="920" href="Relation.Binary.Reasoning.Setoid.html" class="Module">Relation.Binary.Reasoning.Setoid</a> <a id="953" href="Algebra.Consequences.Setoid.html#576" class="Bound">S</a>
<a id="955" class="Keyword">open</a> <a id="960" class="Keyword">import</a> <a id="967" href="Relation.Unary.html" class="Module">Relation.Unary</a> <a id="982" class="Keyword">using</a> <a id="988" class="Symbol">(</a><a id="989" href="Relation.Unary.html#1232" class="Function">Pred</a><a id="993" class="Symbol">)</a>
<a id="996" class="Comment">------------------------------------------------------------------------</a>
<a id="1069" class="Comment">-- Re-exports</a>
<a id="1084" class="Comment">-- Export base lemmas that don&#39;t require the setoid</a>
<a id="1137" class="Keyword">open</a> <a id="1142" class="Keyword">import</a> <a id="1149" href="Algebra.Consequences.Base.html" class="Module">Algebra.Consequences.Base</a> <a id="1175" class="Keyword">public</a>
<a id="1183" class="Comment">------------------------------------------------------------------------</a>
<a id="1256" class="Comment">-- MiddleFourExchange</a>
<a id="1279" class="Keyword">module</a> <a id="1286" href="Algebra.Consequences.Setoid.html#1286" class="Module">_</a> <a id="1288" class="Symbol">{</a><a id="1289" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator">_∙_</a> <a id="1293" class="Symbol">:</a> <a id="1295" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="1299" href="Algebra.Consequences.Setoid.html#634" class="Field">A</a><a id="1300" class="Symbol">}</a> <a id="1302" class="Symbol">(</a><a id="1303" href="Algebra.Consequences.Setoid.html#1303" class="Bound">cong</a> <a id="1308" class="Symbol">:</a> <a id="1310" href="Algebra.Definitions.html#1302" class="Function">Congruent₂</a> <a id="1321" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator">_∙_</a><a id="1324" class="Symbol">)</a> <a id="1326" class="Keyword">where</a>
<a id="1335" href="Algebra.Consequences.Setoid.html#1335" class="Function">comm∧assoc⇒middleFour</a> <a id="1357" class="Symbol">:</a> <a id="1359" href="Algebra.Definitions.html#1635" class="Function">Commutative</a> <a id="1371" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator">_∙_</a> <a id="1375" class="Symbol"></a> <a id="1377" href="Algebra.Definitions.html#1548" class="Function">Associative</a> <a id="1389" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator">_∙_</a> <a id="1393" class="Symbol"></a>
<a id="1421" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator">_∙_</a> <a id="1425" href="Algebra.Definitions.html#3506" class="Function Operator">MiddleFourExchange</a> <a id="1444" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator">_∙_</a>
<a id="1450" href="Algebra.Consequences.Setoid.html#1335" class="Function">comm∧assoc⇒middleFour</a> <a id="1472" href="Algebra.Consequences.Setoid.html#1472" class="Bound">comm</a> <a id="1477" href="Algebra.Consequences.Setoid.html#1477" class="Bound">assoc</a> <a id="1483" href="Algebra.Consequences.Setoid.html#1483" class="Bound">w</a> <a id="1485" href="Algebra.Consequences.Setoid.html#1485" class="Bound">x</a> <a id="1487" href="Algebra.Consequences.Setoid.html#1487" class="Bound">y</a> <a id="1489" href="Algebra.Consequences.Setoid.html#1489" class="Bound">z</a> <a id="1491" class="Symbol">=</a> <a id="1493" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="1503" class="Symbol">(</a><a id="1504" href="Algebra.Consequences.Setoid.html#1483" class="Bound">w</a> <a id="1506" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="1508" href="Algebra.Consequences.Setoid.html#1485" class="Bound">x</a><a id="1509" class="Symbol">)</a> <a id="1511" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="1513" class="Symbol">(</a><a id="1514" href="Algebra.Consequences.Setoid.html#1487" class="Bound">y</a> <a id="1516" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="1518" href="Algebra.Consequences.Setoid.html#1489" class="Bound">z</a><a id="1519" class="Symbol">)</a> <a id="1521" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="1524" href="Algebra.Consequences.Setoid.html#1477" class="Bound">assoc</a> <a id="1530" href="Algebra.Consequences.Setoid.html#1483" class="Bound">w</a> <a id="1532" href="Algebra.Consequences.Setoid.html#1485" class="Bound">x</a> <a id="1534" class="Symbol">(</a><a id="1535" href="Algebra.Consequences.Setoid.html#1487" class="Bound">y</a> <a id="1537" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="1539" href="Algebra.Consequences.Setoid.html#1489" class="Bound">z</a><a id="1540" class="Symbol">)</a> <a id="1542" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="1548" href="Algebra.Consequences.Setoid.html#1483" class="Bound">w</a> <a id="1550" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="1552" class="Symbol">(</a><a id="1553" href="Algebra.Consequences.Setoid.html#1485" class="Bound">x</a> <a id="1555" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="1557" class="Symbol">(</a><a id="1558" href="Algebra.Consequences.Setoid.html#1487" class="Bound">y</a> <a id="1560" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="1562" href="Algebra.Consequences.Setoid.html#1489" class="Bound">z</a><a id="1563" class="Symbol">))</a> <a id="1566" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="1569" href="Algebra.Consequences.Setoid.html#1303" class="Bound">cong</a> <a id="1574" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="1579" class="Symbol">(</a><a id="1580" href="Relation.Binary.Structures.html#1200" class="Function">sym</a> <a id="1584" class="Symbol">(</a><a id="1585" href="Algebra.Consequences.Setoid.html#1477" class="Bound">assoc</a> <a id="1591" href="Algebra.Consequences.Setoid.html#1485" class="Bound">x</a> <a id="1593" href="Algebra.Consequences.Setoid.html#1487" class="Bound">y</a> <a id="1595" href="Algebra.Consequences.Setoid.html#1489" class="Bound">z</a><a id="1596" class="Symbol">))</a> <a id="1599" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="1605" href="Algebra.Consequences.Setoid.html#1483" class="Bound">w</a> <a id="1607" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="1609" class="Symbol">((</a><a id="1611" href="Algebra.Consequences.Setoid.html#1485" class="Bound">x</a> <a id="1613" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="1615" href="Algebra.Consequences.Setoid.html#1487" class="Bound">y</a><a id="1616" class="Symbol">)</a> <a id="1618" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="1620" href="Algebra.Consequences.Setoid.html#1489" class="Bound">z</a><a id="1621" class="Symbol">)</a> <a id="1623" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="1626" href="Algebra.Consequences.Setoid.html#1303" class="Bound">cong</a> <a id="1631" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="1636" class="Symbol">(</a><a id="1637" href="Algebra.Consequences.Setoid.html#1303" class="Bound">cong</a> <a id="1642" class="Symbol">(</a><a id="1643" href="Algebra.Consequences.Setoid.html#1472" class="Bound">comm</a> <a id="1648" href="Algebra.Consequences.Setoid.html#1485" class="Bound">x</a> <a id="1650" href="Algebra.Consequences.Setoid.html#1487" class="Bound">y</a><a id="1651" class="Symbol">)</a> <a id="1653" href="Relation.Binary.Structures.html#1596" class="Function">refl</a><a id="1657" class="Symbol">)</a> <a id="1659" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="1665" href="Algebra.Consequences.Setoid.html#1483" class="Bound">w</a> <a id="1667" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="1669" class="Symbol">((</a><a id="1671" href="Algebra.Consequences.Setoid.html#1487" class="Bound">y</a> <a id="1673" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="1675" href="Algebra.Consequences.Setoid.html#1485" class="Bound">x</a><a id="1676" class="Symbol">)</a> <a id="1678" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="1680" href="Algebra.Consequences.Setoid.html#1489" class="Bound">z</a><a id="1681" class="Symbol">)</a> <a id="1683" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="1686" href="Algebra.Consequences.Setoid.html#1303" class="Bound">cong</a> <a id="1691" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="1696" class="Symbol">(</a><a id="1697" href="Algebra.Consequences.Setoid.html#1477" class="Bound">assoc</a> <a id="1703" href="Algebra.Consequences.Setoid.html#1487" class="Bound">y</a> <a id="1705" href="Algebra.Consequences.Setoid.html#1485" class="Bound">x</a> <a id="1707" href="Algebra.Consequences.Setoid.html#1489" class="Bound">z</a><a id="1708" class="Symbol">)</a> <a id="1710" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="1716" href="Algebra.Consequences.Setoid.html#1483" class="Bound">w</a> <a id="1718" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="1720" class="Symbol">(</a><a id="1721" href="Algebra.Consequences.Setoid.html#1487" class="Bound">y</a> <a id="1723" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="1725" class="Symbol">(</a><a id="1726" href="Algebra.Consequences.Setoid.html#1485" class="Bound">x</a> <a id="1728" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="1730" href="Algebra.Consequences.Setoid.html#1489" class="Bound">z</a><a id="1731" class="Symbol">))</a> <a id="1734" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="1737" href="Relation.Binary.Structures.html#1200" class="Function">sym</a> <a id="1741" class="Symbol">(</a><a id="1742" href="Algebra.Consequences.Setoid.html#1477" class="Bound">assoc</a> <a id="1748" href="Algebra.Consequences.Setoid.html#1483" class="Bound">w</a> <a id="1750" href="Algebra.Consequences.Setoid.html#1487" class="Bound">y</a> <a id="1752" class="Symbol">(</a><a id="1753" href="Algebra.Consequences.Setoid.html#1485" class="Bound">x</a> <a id="1755" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="1757" href="Algebra.Consequences.Setoid.html#1489" class="Bound">z</a><a id="1758" class="Symbol">))</a> <a id="1761" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="1767" class="Symbol">(</a><a id="1768" href="Algebra.Consequences.Setoid.html#1483" class="Bound">w</a> <a id="1770" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="1772" href="Algebra.Consequences.Setoid.html#1487" class="Bound">y</a><a id="1773" class="Symbol">)</a> <a id="1775" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="1777" class="Symbol">(</a><a id="1778" href="Algebra.Consequences.Setoid.html#1485" class="Bound">x</a> <a id="1780" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="1782" href="Algebra.Consequences.Setoid.html#1489" class="Bound">z</a><a id="1783" class="Symbol">)</a> <a id="1785" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="1790" href="Algebra.Consequences.Setoid.html#1790" class="Function">identity∧middleFour⇒assoc</a> <a id="1816" class="Symbol">:</a> <a id="1818" class="Symbol">{</a><a id="1819" href="Algebra.Consequences.Setoid.html#1819" class="Bound">e</a> <a id="1821" class="Symbol">:</a> <a id="1823" href="Algebra.Consequences.Setoid.html#634" class="Field">A</a><a id="1824" class="Symbol">}</a> <a id="1826" class="Symbol"></a> <a id="1828" href="Algebra.Definitions.html#1856" class="Function">Identity</a> <a id="1837" href="Algebra.Consequences.Setoid.html#1819" class="Bound">e</a> <a id="1839" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator">_∙_</a> <a id="1843" class="Symbol"></a>
<a id="1875" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator">_∙_</a> <a id="1879" href="Algebra.Definitions.html#3506" class="Function Operator">MiddleFourExchange</a> <a id="1898" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator">_∙_</a> <a id="1902" class="Symbol"></a>
<a id="1934" href="Algebra.Definitions.html#1548" class="Function">Associative</a> <a id="1946" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator">_∙_</a>
<a id="1952" href="Algebra.Consequences.Setoid.html#1790" class="Function">identity∧middleFour⇒assoc</a> <a id="1978" class="Symbol">{</a><a id="1979" href="Algebra.Consequences.Setoid.html#1979" class="Bound">e</a><a id="1980" class="Symbol">}</a> <a id="1982" class="Symbol">(</a><a id="1983" href="Algebra.Consequences.Setoid.html#1983" class="Bound">identityˡ</a> <a id="1993" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="1995" href="Algebra.Consequences.Setoid.html#1995" class="Bound">identityʳ</a><a id="2004" class="Symbol">)</a> <a id="2006" href="Algebra.Consequences.Setoid.html#2006" class="Bound">middleFour</a> <a id="2017" href="Algebra.Consequences.Setoid.html#2017" class="Bound">x</a> <a id="2019" href="Algebra.Consequences.Setoid.html#2019" class="Bound">y</a> <a id="2021" href="Algebra.Consequences.Setoid.html#2021" class="Bound">z</a> <a id="2023" class="Symbol">=</a> <a id="2025" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="2035" class="Symbol">(</a><a id="2036" href="Algebra.Consequences.Setoid.html#2017" class="Bound">x</a> <a id="2038" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="2040" href="Algebra.Consequences.Setoid.html#2019" class="Bound">y</a><a id="2041" class="Symbol">)</a> <a id="2043" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="2045" href="Algebra.Consequences.Setoid.html#2021" class="Bound">z</a> <a id="2053" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2056" href="Algebra.Consequences.Setoid.html#1303" class="Bound">cong</a> <a id="2061" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="2066" class="Symbol">(</a><a id="2067" href="Relation.Binary.Structures.html#1200" class="Function">sym</a> <a id="2071" class="Symbol">(</a><a id="2072" href="Algebra.Consequences.Setoid.html#1983" class="Bound">identityˡ</a> <a id="2082" href="Algebra.Consequences.Setoid.html#2021" class="Bound">z</a><a id="2083" class="Symbol">))</a> <a id="2086" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2092" class="Symbol">(</a><a id="2093" href="Algebra.Consequences.Setoid.html#2017" class="Bound">x</a> <a id="2095" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="2097" href="Algebra.Consequences.Setoid.html#2019" class="Bound">y</a><a id="2098" class="Symbol">)</a> <a id="2100" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="2102" class="Symbol">(</a><a id="2103" href="Algebra.Consequences.Setoid.html#1979" class="Bound">e</a> <a id="2105" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="2107" href="Algebra.Consequences.Setoid.html#2021" class="Bound">z</a><a id="2108" class="Symbol">)</a> <a id="2110" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2113" href="Algebra.Consequences.Setoid.html#2006" class="Bound">middleFour</a> <a id="2124" href="Algebra.Consequences.Setoid.html#2017" class="Bound">x</a> <a id="2126" href="Algebra.Consequences.Setoid.html#2019" class="Bound">y</a> <a id="2128" href="Algebra.Consequences.Setoid.html#1979" class="Bound">e</a> <a id="2130" href="Algebra.Consequences.Setoid.html#2021" class="Bound">z</a> <a id="2132" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2138" class="Symbol">(</a><a id="2139" href="Algebra.Consequences.Setoid.html#2017" class="Bound">x</a> <a id="2141" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="2143" href="Algebra.Consequences.Setoid.html#1979" class="Bound">e</a><a id="2144" class="Symbol">)</a> <a id="2146" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="2148" class="Symbol">(</a><a id="2149" href="Algebra.Consequences.Setoid.html#2019" class="Bound">y</a> <a id="2151" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="2153" href="Algebra.Consequences.Setoid.html#2021" class="Bound">z</a><a id="2154" class="Symbol">)</a> <a id="2156" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2159" href="Algebra.Consequences.Setoid.html#1303" class="Bound">cong</a> <a id="2164" class="Symbol">(</a><a id="2165" href="Algebra.Consequences.Setoid.html#1995" class="Bound">identityʳ</a> <a id="2175" href="Algebra.Consequences.Setoid.html#2017" class="Bound">x</a><a id="2176" class="Symbol">)</a> <a id="2178" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="2183" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2189" href="Algebra.Consequences.Setoid.html#2017" class="Bound">x</a> <a id="2191" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="2193" class="Symbol">(</a><a id="2194" href="Algebra.Consequences.Setoid.html#2019" class="Bound">y</a> <a id="2196" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="2198" href="Algebra.Consequences.Setoid.html#2021" class="Bound">z</a><a id="2199" class="Symbol">)</a> <a id="2207" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="2212" href="Algebra.Consequences.Setoid.html#2212" class="Function">identity∧middleFour⇒comm</a> <a id="2237" class="Symbol">:</a> <a id="2239" class="Symbol">{</a><a id="2240" href="Algebra.Consequences.Setoid.html#2240" class="Bound Operator">_+_</a> <a id="2244" class="Symbol">:</a> <a id="2246" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="2250" href="Algebra.Consequences.Setoid.html#634" class="Field">A</a><a id="2251" class="Symbol">}</a> <a id="2253" class="Symbol">{</a><a id="2254" href="Algebra.Consequences.Setoid.html#2254" class="Bound">e</a> <a id="2256" class="Symbol">:</a> <a id="2258" href="Algebra.Consequences.Setoid.html#634" class="Field">A</a><a id="2259" class="Symbol">}</a> <a id="2261" class="Symbol"></a> <a id="2263" href="Algebra.Definitions.html#1856" class="Function">Identity</a> <a id="2272" href="Algebra.Consequences.Setoid.html#2254" class="Bound">e</a> <a id="2274" href="Algebra.Consequences.Setoid.html#2240" class="Bound Operator">_+_</a> <a id="2278" class="Symbol"></a>
<a id="2309" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator">_∙_</a> <a id="2313" href="Algebra.Definitions.html#3506" class="Function Operator">MiddleFourExchange</a> <a id="2332" href="Algebra.Consequences.Setoid.html#2240" class="Bound Operator">_+_</a> <a id="2336" class="Symbol"></a>
<a id="2367" href="Algebra.Definitions.html#1635" class="Function">Commutative</a> <a id="2379" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator">_∙_</a>
<a id="2385" href="Algebra.Consequences.Setoid.html#2212" class="Function">identity∧middleFour⇒comm</a> <a id="2410" class="Symbol">{</a><a id="2411" href="Algebra.Consequences.Setoid.html#2411" class="Bound Operator">_+_</a><a id="2414" class="Symbol">}</a> <a id="2416" class="Symbol">{</a><a id="2417" href="Algebra.Consequences.Setoid.html#2417" class="Bound">e</a><a id="2418" class="Symbol">}</a> <a id="2420" class="Symbol">(</a><a id="2421" href="Algebra.Consequences.Setoid.html#2421" class="Bound">identityˡ</a> <a id="2431" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="2433" href="Algebra.Consequences.Setoid.html#2433" class="Bound">identityʳ</a><a id="2442" class="Symbol">)</a> <a id="2444" href="Algebra.Consequences.Setoid.html#2444" class="Bound">middleFour</a> <a id="2455" href="Algebra.Consequences.Setoid.html#2455" class="Bound">x</a> <a id="2457" href="Algebra.Consequences.Setoid.html#2457" class="Bound">y</a>
<a id="2463" class="Symbol">=</a> <a id="2465" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="2475" href="Algebra.Consequences.Setoid.html#2455" class="Bound">x</a> <a id="2477" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="2479" href="Algebra.Consequences.Setoid.html#2457" class="Bound">y</a> <a id="2493" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2496" href="Relation.Binary.Structures.html#1200" class="Function">sym</a> <a id="2500" class="Symbol">(</a><a id="2501" href="Algebra.Consequences.Setoid.html#1303" class="Bound">cong</a> <a id="2506" class="Symbol">(</a><a id="2507" href="Algebra.Consequences.Setoid.html#2421" class="Bound">identityˡ</a> <a id="2517" href="Algebra.Consequences.Setoid.html#2455" class="Bound">x</a><a id="2518" class="Symbol">)</a> <a id="2520" class="Symbol">(</a><a id="2521" href="Algebra.Consequences.Setoid.html#2433" class="Bound">identityʳ</a> <a id="2531" href="Algebra.Consequences.Setoid.html#2457" class="Bound">y</a><a id="2532" class="Symbol">))</a> <a id="2535" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2541" class="Symbol">(</a><a id="2542" href="Algebra.Consequences.Setoid.html#2417" class="Bound">e</a> <a id="2544" href="Algebra.Consequences.Setoid.html#2411" class="Bound Operator">+</a> <a id="2546" href="Algebra.Consequences.Setoid.html#2455" class="Bound">x</a><a id="2547" class="Symbol">)</a> <a id="2549" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="2551" class="Symbol">(</a><a id="2552" href="Algebra.Consequences.Setoid.html#2457" class="Bound">y</a> <a id="2554" href="Algebra.Consequences.Setoid.html#2411" class="Bound Operator">+</a> <a id="2556" href="Algebra.Consequences.Setoid.html#2417" class="Bound">e</a><a id="2557" class="Symbol">)</a> <a id="2559" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2562" href="Algebra.Consequences.Setoid.html#2444" class="Bound">middleFour</a> <a id="2573" href="Algebra.Consequences.Setoid.html#2417" class="Bound">e</a> <a id="2575" href="Algebra.Consequences.Setoid.html#2455" class="Bound">x</a> <a id="2577" href="Algebra.Consequences.Setoid.html#2457" class="Bound">y</a> <a id="2579" href="Algebra.Consequences.Setoid.html#2417" class="Bound">e</a> <a id="2581" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2587" class="Symbol">(</a><a id="2588" href="Algebra.Consequences.Setoid.html#2417" class="Bound">e</a> <a id="2590" href="Algebra.Consequences.Setoid.html#2411" class="Bound Operator">+</a> <a id="2592" href="Algebra.Consequences.Setoid.html#2457" class="Bound">y</a><a id="2593" class="Symbol">)</a> <a id="2595" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="2597" class="Symbol">(</a><a id="2598" href="Algebra.Consequences.Setoid.html#2455" class="Bound">x</a> <a id="2600" href="Algebra.Consequences.Setoid.html#2411" class="Bound Operator">+</a> <a id="2602" href="Algebra.Consequences.Setoid.html#2417" class="Bound">e</a><a id="2603" class="Symbol">)</a> <a id="2605" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="2608" href="Algebra.Consequences.Setoid.html#1303" class="Bound">cong</a> <a id="2613" class="Symbol">(</a><a id="2614" href="Algebra.Consequences.Setoid.html#2421" class="Bound">identityˡ</a> <a id="2624" href="Algebra.Consequences.Setoid.html#2457" class="Bound">y</a><a id="2625" class="Symbol">)</a> <a id="2627" class="Symbol">(</a><a id="2628" href="Algebra.Consequences.Setoid.html#2433" class="Bound">identityʳ</a> <a id="2638" href="Algebra.Consequences.Setoid.html#2455" class="Bound">x</a><a id="2639" class="Symbol">)</a> <a id="2641" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="2647" href="Algebra.Consequences.Setoid.html#2457" class="Bound">y</a> <a id="2649" href="Algebra.Consequences.Setoid.html#1289" class="Bound Operator"></a> <a id="2651" href="Algebra.Consequences.Setoid.html#2455" class="Bound">x</a> <a id="2665" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="2668" class="Comment">------------------------------------------------------------------------</a>
<a id="2741" class="Comment">-- SelfInverse</a>
<a id="2757" class="Keyword">module</a> <a id="2764" href="Algebra.Consequences.Setoid.html#2764" class="Module">_</a> <a id="2766" class="Symbol">{</a><a id="2767" href="Algebra.Consequences.Setoid.html#2767" class="Bound">f</a> <a id="2769" class="Symbol">:</a> <a id="2771" href="Algebra.Core.html#484" class="Function">Op₁</a> <a id="2775" href="Algebra.Consequences.Setoid.html#634" class="Field">A</a><a id="2776" class="Symbol">}</a> <a id="2778" class="Symbol">(</a><a id="2779" href="Algebra.Consequences.Setoid.html#2779" class="Bound">self</a> <a id="2784" class="Symbol">:</a> <a id="2786" href="Algebra.Definitions.html#4080" class="Function">SelfInverse</a> <a id="2798" href="Algebra.Consequences.Setoid.html#2767" class="Bound">f</a><a id="2799" class="Symbol">)</a> <a id="2801" class="Keyword">where</a>
<a id="2810" href="Algebra.Consequences.Setoid.html#2810" class="Function">selfInverse⇒involutive</a> <a id="2833" class="Symbol">:</a> <a id="2835" href="Algebra.Definitions.html#4153" class="Function">Involutive</a> <a id="2846" href="Algebra.Consequences.Setoid.html#2767" class="Bound">f</a>
<a id="2850" href="Algebra.Consequences.Setoid.html#2810" class="Function">selfInverse⇒involutive</a> <a id="2873" class="Symbol">=</a> <a id="2875" href="Algebra.Consequences.Base.html#790" class="Function">reflexive∧selfInverse⇒involutive</a> <a id="2908" href="Relation.Binary.Bundles.html#1169" class="Field Operator">_≈_</a> <a id="2912" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="2917" href="Algebra.Consequences.Setoid.html#2779" class="Bound">self</a>
<a id="2925" href="Algebra.Consequences.Setoid.html#2925" class="Function">selfInverse⇒congruent</a> <a id="2947" class="Symbol">:</a> <a id="2949" href="Function.Definitions.html#765" class="Function">Congruent</a> <a id="2959" href="Relation.Binary.Bundles.html#1169" class="Field Operator">_≈_</a> <a id="2963" href="Relation.Binary.Bundles.html#1169" class="Field Operator">_≈_</a> <a id="2967" href="Algebra.Consequences.Setoid.html#2767" class="Bound">f</a>
<a id="2971" href="Algebra.Consequences.Setoid.html#2925" class="Function">selfInverse⇒congruent</a> <a id="2993" class="Symbol">{</a><a id="2994" href="Algebra.Consequences.Setoid.html#2994" class="Bound">x</a><a id="2995" class="Symbol">}</a> <a id="2997" class="Symbol">{</a><a id="2998" href="Algebra.Consequences.Setoid.html#2998" class="Bound">y</a><a id="2999" class="Symbol">}</a> <a id="3001" href="Algebra.Consequences.Setoid.html#3001" class="Bound">x≈y</a> <a id="3005" class="Symbol">=</a> <a id="3007" href="Relation.Binary.Structures.html#1200" class="Function">sym</a> <a id="3011" class="Symbol">(</a><a id="3012" href="Algebra.Consequences.Setoid.html#2779" class="Bound">self</a> <a id="3017" class="Symbol">(</a><a id="3018" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="3028" href="Algebra.Consequences.Setoid.html#2767" class="Bound">f</a> <a id="3030" class="Symbol">(</a><a id="3031" href="Algebra.Consequences.Setoid.html#2767" class="Bound">f</a> <a id="3033" href="Algebra.Consequences.Setoid.html#2994" class="Bound">x</a><a id="3034" class="Symbol">)</a> <a id="3036" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="3039" href="Algebra.Consequences.Setoid.html#2810" class="Function">selfInverse⇒involutive</a> <a id="3062" href="Algebra.Consequences.Setoid.html#2994" class="Bound">x</a> <a id="3064" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="3070" href="Algebra.Consequences.Setoid.html#2994" class="Bound">x</a> <a id="3078" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="3081" href="Algebra.Consequences.Setoid.html#3001" class="Bound">x≈y</a> <a id="3085" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="3091" href="Algebra.Consequences.Setoid.html#2998" class="Bound">y</a> <a id="3099" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a><a id="3100" class="Symbol">))</a>
<a id="3106" href="Algebra.Consequences.Setoid.html#3106" class="Function">selfInverse⇒inverseᵇ</a> <a id="3127" class="Symbol">:</a> <a id="3129" href="Function.Definitions.html#1256" class="Function">Inverseᵇ</a> <a id="3138" href="Relation.Binary.Bundles.html#1169" class="Field Operator">_≈_</a> <a id="3142" href="Relation.Binary.Bundles.html#1169" class="Field Operator">_≈_</a> <a id="3146" href="Algebra.Consequences.Setoid.html#2767" class="Bound">f</a> <a id="3148" href="Algebra.Consequences.Setoid.html#2767" class="Bound">f</a>
<a id="3152" href="Algebra.Consequences.Setoid.html#3106" class="Function">selfInverse⇒inverseᵇ</a> <a id="3173" class="Symbol">=</a> <a id="3175" href="Algebra.Consequences.Setoid.html#2779" class="Bound">self</a> <a id="3180" href="Function.Base.html#1115" class="Function Operator"></a> <a id="3182" href="Relation.Binary.Structures.html#1200" class="Function">sym</a> <a id="3186" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="3188" href="Algebra.Consequences.Setoid.html#2779" class="Bound">self</a> <a id="3193" href="Function.Base.html#1115" class="Function Operator"></a> <a id="3195" href="Relation.Binary.Structures.html#1200" class="Function">sym</a>
<a id="3202" href="Algebra.Consequences.Setoid.html#3202" class="Function">selfInverse⇒surjective</a> <a id="3225" class="Symbol">:</a> <a id="3227" href="Function.Definitions.html#919" class="Function">Surjective</a> <a id="3238" href="Relation.Binary.Bundles.html#1169" class="Field Operator">_≈_</a> <a id="3242" href="Relation.Binary.Bundles.html#1169" class="Field Operator">_≈_</a> <a id="3246" href="Algebra.Consequences.Setoid.html#2767" class="Bound">f</a>
<a id="3250" href="Algebra.Consequences.Setoid.html#3202" class="Function">selfInverse⇒surjective</a> <a id="3273" href="Algebra.Consequences.Setoid.html#3273" class="Bound">y</a> <a id="3275" class="Symbol">=</a> <a id="3277" href="Algebra.Consequences.Setoid.html#2767" class="Bound">f</a> <a id="3279" href="Algebra.Consequences.Setoid.html#3273" class="Bound">y</a> <a id="3281" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="3283" href="Algebra.Consequences.Setoid.html#2779" class="Bound">self</a> <a id="3288" href="Function.Base.html#1115" class="Function Operator"></a> <a id="3290" href="Relation.Binary.Structures.html#1200" class="Function">sym</a>
<a id="3297" href="Algebra.Consequences.Setoid.html#3297" class="Function">selfInverse⇒injective</a> <a id="3319" class="Symbol">:</a> <a id="3321" href="Function.Definitions.html#842" class="Function">Injective</a> <a id="3331" href="Relation.Binary.Bundles.html#1169" class="Field Operator">_≈_</a> <a id="3335" href="Relation.Binary.Bundles.html#1169" class="Field Operator">_≈_</a> <a id="3339" href="Algebra.Consequences.Setoid.html#2767" class="Bound">f</a>
<a id="3343" href="Algebra.Consequences.Setoid.html#3297" class="Function">selfInverse⇒injective</a> <a id="3365" class="Symbol">{</a><a id="3366" href="Algebra.Consequences.Setoid.html#3366" class="Bound">x</a><a id="3367" class="Symbol">}</a> <a id="3369" class="Symbol">{</a><a id="3370" href="Algebra.Consequences.Setoid.html#3370" class="Bound">y</a><a id="3371" class="Symbol">}</a> <a id="3373" href="Algebra.Consequences.Setoid.html#3373" class="Bound">x≈y</a> <a id="3377" class="Symbol">=</a> <a id="3379" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="3389" href="Algebra.Consequences.Setoid.html#3366" class="Bound">x</a> <a id="3397" href="Relation.Binary.Reasoning.Syntax.html#7074" class="Function">≈⟨</a> <a id="3400" href="Algebra.Consequences.Setoid.html#2779" class="Bound">self</a> <a id="3405" href="Algebra.Consequences.Setoid.html#3373" class="Bound">x≈y</a> <a id="3409" href="Relation.Binary.Reasoning.Syntax.html#7074" class="Function"></a>
<a id="3415" href="Algebra.Consequences.Setoid.html#2767" class="Bound">f</a> <a id="3417" class="Symbol">(</a><a id="3418" href="Algebra.Consequences.Setoid.html#2767" class="Bound">f</a> <a id="3420" href="Algebra.Consequences.Setoid.html#3370" class="Bound">y</a><a id="3421" class="Symbol">)</a> <a id="3423" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="3426" href="Algebra.Consequences.Setoid.html#2810" class="Function">selfInverse⇒involutive</a> <a id="3449" href="Algebra.Consequences.Setoid.html#3370" class="Bound">y</a> <a id="3451" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="3457" href="Algebra.Consequences.Setoid.html#3370" class="Bound">y</a> <a id="3465" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="3470" href="Algebra.Consequences.Setoid.html#3470" class="Function">selfInverse⇒bijective</a> <a id="3492" class="Symbol">:</a> <a id="3494" href="Function.Definitions.html#1008" class="Function">Bijective</a> <a id="3504" href="Relation.Binary.Bundles.html#1169" class="Field Operator">_≈_</a> <a id="3508" href="Relation.Binary.Bundles.html#1169" class="Field Operator">_≈_</a> <a id="3512" href="Algebra.Consequences.Setoid.html#2767" class="Bound">f</a>
<a id="3516" href="Algebra.Consequences.Setoid.html#3470" class="Function">selfInverse⇒bijective</a> <a id="3538" class="Symbol">=</a> <a id="3540" href="Algebra.Consequences.Setoid.html#3297" class="Function">selfInverse⇒injective</a> <a id="3562" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="3564" href="Algebra.Consequences.Setoid.html#3202" class="Function">selfInverse⇒surjective</a>
<a id="3588" class="Comment">------------------------------------------------------------------------</a>
<a id="3661" class="Comment">-- Magma-like structures</a>
<a id="3687" class="Keyword">module</a> <a id="3694" href="Algebra.Consequences.Setoid.html#3694" class="Module">_</a> <a id="3696" class="Symbol">{</a><a id="3697" href="Algebra.Consequences.Setoid.html#3697" class="Bound Operator">_∙_</a> <a id="3701" class="Symbol">:</a> <a id="3703" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="3707" href="Algebra.Consequences.Setoid.html#634" class="Field">A</a><a id="3708" class="Symbol">}</a> <a id="3710" class="Symbol">(</a><a id="3711" href="Algebra.Consequences.Setoid.html#3711" class="Bound">comm</a> <a id="3716" class="Symbol">:</a> <a id="3718" href="Algebra.Definitions.html#1635" class="Function">Commutative</a> <a id="3730" href="Algebra.Consequences.Setoid.html#3697" class="Bound Operator">_∙_</a><a id="3733" class="Symbol">)</a> <a id="3735" class="Keyword">where</a>
<a id="3744" href="Algebra.Consequences.Setoid.html#3744" class="Function">comm∧cancelˡ⇒cancelʳ</a> <a id="3765" class="Symbol">:</a> <a id="3767" href="Algebra.Definitions.html#4214" class="Function">LeftCancellative</a> <a id="3784" href="Algebra.Consequences.Setoid.html#3697" class="Bound Operator">_∙_</a> <a id="3788" class="Symbol"></a> <a id="3790" href="Algebra.Definitions.html#4307" class="Function">RightCancellative</a> <a id="3808" href="Algebra.Consequences.Setoid.html#3697" class="Bound Operator">_∙_</a>
<a id="3814" href="Algebra.Consequences.Setoid.html#3744" class="Function">comm∧cancelˡ⇒cancelʳ</a> <a id="3835" href="Algebra.Consequences.Setoid.html#3835" class="Bound">cancelˡ</a> <a id="3843" href="Algebra.Consequences.Setoid.html#3843" class="Bound">x</a> <a id="3845" href="Algebra.Consequences.Setoid.html#3845" class="Bound">y</a> <a id="3847" href="Algebra.Consequences.Setoid.html#3847" class="Bound">z</a> <a id="3849" href="Algebra.Consequences.Setoid.html#3849" class="Bound">eq</a> <a id="3852" class="Symbol">=</a> <a id="3854" href="Algebra.Consequences.Setoid.html#3835" class="Bound">cancelˡ</a> <a id="3862" href="Algebra.Consequences.Setoid.html#3843" class="Bound">x</a> <a id="3864" href="Algebra.Consequences.Setoid.html#3845" class="Bound">y</a> <a id="3866" href="Algebra.Consequences.Setoid.html#3847" class="Bound">z</a> <a id="3868" href="Function.Base.html#1974" class="Function Operator">$</a> <a id="3870" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="3880" href="Algebra.Consequences.Setoid.html#3843" class="Bound">x</a> <a id="3882" href="Algebra.Consequences.Setoid.html#3697" class="Bound Operator"></a> <a id="3884" href="Algebra.Consequences.Setoid.html#3845" class="Bound">y</a> <a id="3886" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="3889" href="Algebra.Consequences.Setoid.html#3711" class="Bound">comm</a> <a id="3894" href="Algebra.Consequences.Setoid.html#3843" class="Bound">x</a> <a id="3896" href="Algebra.Consequences.Setoid.html#3845" class="Bound">y</a> <a id="3898" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="3904" href="Algebra.Consequences.Setoid.html#3845" class="Bound">y</a> <a id="3906" href="Algebra.Consequences.Setoid.html#3697" class="Bound Operator"></a> <a id="3908" href="Algebra.Consequences.Setoid.html#3843" class="Bound">x</a> <a id="3910" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="3913" href="Algebra.Consequences.Setoid.html#3849" class="Bound">eq</a> <a id="3916" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="3922" href="Algebra.Consequences.Setoid.html#3847" class="Bound">z</a> <a id="3924" href="Algebra.Consequences.Setoid.html#3697" class="Bound Operator"></a> <a id="3926" href="Algebra.Consequences.Setoid.html#3843" class="Bound">x</a> <a id="3928" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="3931" href="Algebra.Consequences.Setoid.html#3711" class="Bound">comm</a> <a id="3936" href="Algebra.Consequences.Setoid.html#3847" class="Bound">z</a> <a id="3938" href="Algebra.Consequences.Setoid.html#3843" class="Bound">x</a> <a id="3940" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="3946" href="Algebra.Consequences.Setoid.html#3843" class="Bound">x</a> <a id="3948" href="Algebra.Consequences.Setoid.html#3697" class="Bound Operator"></a> <a id="3950" href="Algebra.Consequences.Setoid.html#3847" class="Bound">z</a> <a id="3952" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="3957" href="Algebra.Consequences.Setoid.html#3957" class="Function">comm∧cancelʳ⇒cancelˡ</a> <a id="3978" class="Symbol">:</a> <a id="3980" href="Algebra.Definitions.html#4307" class="Function">RightCancellative</a> <a id="3998" href="Algebra.Consequences.Setoid.html#3697" class="Bound Operator">_∙_</a> <a id="4002" class="Symbol"></a> <a id="4004" href="Algebra.Definitions.html#4214" class="Function">LeftCancellative</a> <a id="4021" href="Algebra.Consequences.Setoid.html#3697" class="Bound Operator">_∙_</a>
<a id="4027" href="Algebra.Consequences.Setoid.html#3957" class="Function">comm∧cancelʳ⇒cancelˡ</a> <a id="4048" href="Algebra.Consequences.Setoid.html#4048" class="Bound">cancelʳ</a> <a id="4056" href="Algebra.Consequences.Setoid.html#4056" class="Bound">x</a> <a id="4058" href="Algebra.Consequences.Setoid.html#4058" class="Bound">y</a> <a id="4060" href="Algebra.Consequences.Setoid.html#4060" class="Bound">z</a> <a id="4062" href="Algebra.Consequences.Setoid.html#4062" class="Bound">eq</a> <a id="4065" class="Symbol">=</a> <a id="4067" href="Algebra.Consequences.Setoid.html#4048" class="Bound">cancelʳ</a> <a id="4075" href="Algebra.Consequences.Setoid.html#4056" class="Bound">x</a> <a id="4077" href="Algebra.Consequences.Setoid.html#4058" class="Bound">y</a> <a id="4079" href="Algebra.Consequences.Setoid.html#4060" class="Bound">z</a> <a id="4081" href="Function.Base.html#1974" class="Function Operator">$</a> <a id="4083" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="4093" href="Algebra.Consequences.Setoid.html#4058" class="Bound">y</a> <a id="4095" href="Algebra.Consequences.Setoid.html#3697" class="Bound Operator"></a> <a id="4097" href="Algebra.Consequences.Setoid.html#4056" class="Bound">x</a> <a id="4099" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="4102" href="Algebra.Consequences.Setoid.html#3711" class="Bound">comm</a> <a id="4107" href="Algebra.Consequences.Setoid.html#4058" class="Bound">y</a> <a id="4109" href="Algebra.Consequences.Setoid.html#4056" class="Bound">x</a> <a id="4111" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="4117" href="Algebra.Consequences.Setoid.html#4056" class="Bound">x</a> <a id="4119" href="Algebra.Consequences.Setoid.html#3697" class="Bound Operator"></a> <a id="4121" href="Algebra.Consequences.Setoid.html#4058" class="Bound">y</a> <a id="4123" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="4126" href="Algebra.Consequences.Setoid.html#4062" class="Bound">eq</a> <a id="4129" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="4135" href="Algebra.Consequences.Setoid.html#4056" class="Bound">x</a> <a id="4137" href="Algebra.Consequences.Setoid.html#3697" class="Bound Operator"></a> <a id="4139" href="Algebra.Consequences.Setoid.html#4060" class="Bound">z</a> <a id="4141" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="4144" href="Algebra.Consequences.Setoid.html#3711" class="Bound">comm</a> <a id="4149" href="Algebra.Consequences.Setoid.html#4056" class="Bound">x</a> <a id="4151" href="Algebra.Consequences.Setoid.html#4060" class="Bound">z</a> <a id="4153" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="4159" href="Algebra.Consequences.Setoid.html#4060" class="Bound">z</a> <a id="4161" href="Algebra.Consequences.Setoid.html#3697" class="Bound Operator"></a> <a id="4163" href="Algebra.Consequences.Setoid.html#4056" class="Bound">x</a> <a id="4165" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="4168" class="Comment">------------------------------------------------------------------------</a>
<a id="4241" class="Comment">-- Monoid-like structures</a>
<a id="4268" class="Keyword">module</a> <a id="4275" href="Algebra.Consequences.Setoid.html#4275" class="Module">_</a> <a id="4277" class="Symbol">{</a><a id="4278" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator">_∙_</a> <a id="4282" class="Symbol">:</a> <a id="4284" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="4288" href="Algebra.Consequences.Setoid.html#634" class="Field">A</a><a id="4289" class="Symbol">}</a> <a id="4291" class="Symbol">(</a><a id="4292" href="Algebra.Consequences.Setoid.html#4292" class="Bound">comm</a> <a id="4297" class="Symbol">:</a> <a id="4299" href="Algebra.Definitions.html#1635" class="Function">Commutative</a> <a id="4311" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator">_∙_</a><a id="4314" class="Symbol">)</a> <a id="4316" class="Symbol">{</a><a id="4317" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="4319" class="Symbol">:</a> <a id="4321" href="Algebra.Consequences.Setoid.html#634" class="Field">A</a><a id="4322" class="Symbol">}</a> <a id="4324" class="Keyword">where</a>
<a id="4333" href="Algebra.Consequences.Setoid.html#4333" class="Function">comm∧idˡ⇒idʳ</a> <a id="4346" class="Symbol">:</a> <a id="4348" href="Algebra.Definitions.html#1708" class="Function">LeftIdentity</a> <a id="4361" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="4363" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator">_∙_</a> <a id="4367" class="Symbol"></a> <a id="4369" href="Algebra.Definitions.html#1781" class="Function">RightIdentity</a> <a id="4383" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="4385" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator">_∙_</a>
<a id="4391" href="Algebra.Consequences.Setoid.html#4333" class="Function">comm∧idˡ⇒idʳ</a> <a id="4404" href="Algebra.Consequences.Setoid.html#4404" class="Bound">idˡ</a> <a id="4408" href="Algebra.Consequences.Setoid.html#4408" class="Bound">x</a> <a id="4410" class="Symbol">=</a> <a id="4412" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="4422" href="Algebra.Consequences.Setoid.html#4408" class="Bound">x</a> <a id="4424" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator"></a> <a id="4426" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="4428" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="4431" href="Algebra.Consequences.Setoid.html#4292" class="Bound">comm</a> <a id="4436" href="Algebra.Consequences.Setoid.html#4408" class="Bound">x</a> <a id="4438" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="4440" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="4446" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="4448" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator"></a> <a id="4450" href="Algebra.Consequences.Setoid.html#4408" class="Bound">x</a> <a id="4452" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="4455" href="Algebra.Consequences.Setoid.html#4404" class="Bound">idˡ</a> <a id="4459" href="Algebra.Consequences.Setoid.html#4408" class="Bound">x</a> <a id="4461" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="4467" href="Algebra.Consequences.Setoid.html#4408" class="Bound">x</a> <a id="4473" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="4478" href="Algebra.Consequences.Setoid.html#4478" class="Function">comm∧idʳ⇒idˡ</a> <a id="4491" class="Symbol">:</a> <a id="4493" href="Algebra.Definitions.html#1781" class="Function">RightIdentity</a> <a id="4507" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="4509" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator">_∙_</a> <a id="4513" class="Symbol"></a> <a id="4515" href="Algebra.Definitions.html#1708" class="Function">LeftIdentity</a> <a id="4528" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="4530" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator">_∙_</a>
<a id="4536" href="Algebra.Consequences.Setoid.html#4478" class="Function">comm∧idʳ⇒idˡ</a> <a id="4549" href="Algebra.Consequences.Setoid.html#4549" class="Bound">idʳ</a> <a id="4553" href="Algebra.Consequences.Setoid.html#4553" class="Bound">x</a> <a id="4555" class="Symbol">=</a> <a id="4557" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="4567" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="4569" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator"></a> <a id="4571" href="Algebra.Consequences.Setoid.html#4553" class="Bound">x</a> <a id="4573" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="4576" href="Algebra.Consequences.Setoid.html#4292" class="Bound">comm</a> <a id="4581" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="4583" href="Algebra.Consequences.Setoid.html#4553" class="Bound">x</a> <a id="4585" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="4591" href="Algebra.Consequences.Setoid.html#4553" class="Bound">x</a> <a id="4593" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator"></a> <a id="4595" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="4597" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="4600" href="Algebra.Consequences.Setoid.html#4549" class="Bound">idʳ</a> <a id="4604" href="Algebra.Consequences.Setoid.html#4553" class="Bound">x</a> <a id="4606" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="4612" href="Algebra.Consequences.Setoid.html#4553" class="Bound">x</a> <a id="4618" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="4623" href="Algebra.Consequences.Setoid.html#4623" class="Function">comm∧idˡ⇒id</a> <a id="4635" class="Symbol">:</a> <a id="4637" href="Algebra.Definitions.html#1708" class="Function">LeftIdentity</a> <a id="4650" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="4652" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator">_∙_</a> <a id="4656" class="Symbol"></a> <a id="4658" href="Algebra.Definitions.html#1856" class="Function">Identity</a> <a id="4667" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="4669" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator">_∙_</a>
<a id="4675" href="Algebra.Consequences.Setoid.html#4623" class="Function">comm∧idˡ⇒id</a> <a id="4687" href="Algebra.Consequences.Setoid.html#4687" class="Bound">idˡ</a> <a id="4691" class="Symbol">=</a> <a id="4693" href="Algebra.Consequences.Setoid.html#4687" class="Bound">idˡ</a> <a id="4697" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="4699" href="Algebra.Consequences.Setoid.html#4333" class="Function">comm∧idˡ⇒idʳ</a> <a id="4712" href="Algebra.Consequences.Setoid.html#4687" class="Bound">idˡ</a>
<a id="4719" href="Algebra.Consequences.Setoid.html#4719" class="Function">comm∧idʳ⇒id</a> <a id="4731" class="Symbol">:</a> <a id="4733" href="Algebra.Definitions.html#1781" class="Function">RightIdentity</a> <a id="4747" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="4749" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator">_∙_</a> <a id="4753" class="Symbol"></a> <a id="4755" href="Algebra.Definitions.html#1856" class="Function">Identity</a> <a id="4764" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="4766" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator">_∙_</a>
<a id="4772" href="Algebra.Consequences.Setoid.html#4719" class="Function">comm∧idʳ⇒id</a> <a id="4784" href="Algebra.Consequences.Setoid.html#4784" class="Bound">idʳ</a> <a id="4788" class="Symbol">=</a> <a id="4790" href="Algebra.Consequences.Setoid.html#4478" class="Function">comm∧idʳ⇒idˡ</a> <a id="4803" href="Algebra.Consequences.Setoid.html#4784" class="Bound">idʳ</a> <a id="4807" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="4809" href="Algebra.Consequences.Setoid.html#4784" class="Bound">idʳ</a>
<a id="4816" href="Algebra.Consequences.Setoid.html#4816" class="Function">comm∧zeˡ⇒zeʳ</a> <a id="4829" class="Symbol">:</a> <a id="4831" href="Algebra.Definitions.html#1942" class="Function">LeftZero</a> <a id="4840" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="4842" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator">_∙_</a> <a id="4846" class="Symbol"></a> <a id="4848" href="Algebra.Definitions.html#2007" class="Function">RightZero</a> <a id="4858" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="4860" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator">_∙_</a>
<a id="4866" href="Algebra.Consequences.Setoid.html#4816" class="Function">comm∧zeˡ⇒zeʳ</a> <a id="4879" href="Algebra.Consequences.Setoid.html#4879" class="Bound">zeˡ</a> <a id="4883" href="Algebra.Consequences.Setoid.html#4883" class="Bound">x</a> <a id="4885" class="Symbol">=</a> <a id="4887" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="4897" href="Algebra.Consequences.Setoid.html#4883" class="Bound">x</a> <a id="4899" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator"></a> <a id="4901" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="4903" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="4906" href="Algebra.Consequences.Setoid.html#4292" class="Bound">comm</a> <a id="4911" href="Algebra.Consequences.Setoid.html#4883" class="Bound">x</a> <a id="4913" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="4915" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="4921" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="4923" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator"></a> <a id="4925" href="Algebra.Consequences.Setoid.html#4883" class="Bound">x</a> <a id="4927" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="4930" href="Algebra.Consequences.Setoid.html#4879" class="Bound">zeˡ</a> <a id="4934" href="Algebra.Consequences.Setoid.html#4883" class="Bound">x</a> <a id="4936" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="4942" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="4948" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="4953" href="Algebra.Consequences.Setoid.html#4953" class="Function">comm∧zeʳ⇒zeˡ</a> <a id="4966" class="Symbol">:</a> <a id="4968" href="Algebra.Definitions.html#2007" class="Function">RightZero</a> <a id="4978" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="4980" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator">_∙_</a> <a id="4984" class="Symbol"></a> <a id="4986" href="Algebra.Definitions.html#1942" class="Function">LeftZero</a> <a id="4995" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="4997" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator">_∙_</a>
<a id="5003" href="Algebra.Consequences.Setoid.html#4953" class="Function">comm∧zeʳ⇒zeˡ</a> <a id="5016" href="Algebra.Consequences.Setoid.html#5016" class="Bound">zeʳ</a> <a id="5020" href="Algebra.Consequences.Setoid.html#5020" class="Bound">x</a> <a id="5022" class="Symbol">=</a> <a id="5024" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="5034" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="5036" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator"></a> <a id="5038" href="Algebra.Consequences.Setoid.html#5020" class="Bound">x</a> <a id="5040" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5043" href="Algebra.Consequences.Setoid.html#4292" class="Bound">comm</a> <a id="5048" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="5050" href="Algebra.Consequences.Setoid.html#5020" class="Bound">x</a> <a id="5052" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="5058" href="Algebra.Consequences.Setoid.html#5020" class="Bound">x</a> <a id="5060" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator"></a> <a id="5062" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="5064" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5067" href="Algebra.Consequences.Setoid.html#5016" class="Bound">zeʳ</a> <a id="5071" href="Algebra.Consequences.Setoid.html#5020" class="Bound">x</a> <a id="5073" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="5079" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="5085" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="5090" href="Algebra.Consequences.Setoid.html#5090" class="Function">comm∧zeˡ⇒ze</a> <a id="5102" class="Symbol">:</a> <a id="5104" href="Algebra.Definitions.html#1942" class="Function">LeftZero</a> <a id="5113" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="5115" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator">_∙_</a> <a id="5119" class="Symbol"></a> <a id="5121" href="Algebra.Definitions.html#2074" class="Function">Zero</a> <a id="5126" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="5128" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator">_∙_</a>
<a id="5134" href="Algebra.Consequences.Setoid.html#5090" class="Function">comm∧zeˡ⇒ze</a> <a id="5146" href="Algebra.Consequences.Setoid.html#5146" class="Bound">zeˡ</a> <a id="5150" class="Symbol">=</a> <a id="5152" href="Algebra.Consequences.Setoid.html#5146" class="Bound">zeˡ</a> <a id="5156" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="5158" href="Algebra.Consequences.Setoid.html#4816" class="Function">comm∧zeˡ⇒zeʳ</a> <a id="5171" href="Algebra.Consequences.Setoid.html#5146" class="Bound">zeˡ</a>
<a id="5178" href="Algebra.Consequences.Setoid.html#5178" class="Function">comm∧zeʳ⇒ze</a> <a id="5190" class="Symbol">:</a> <a id="5192" href="Algebra.Definitions.html#2007" class="Function">RightZero</a> <a id="5202" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="5204" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator">_∙_</a> <a id="5208" class="Symbol"></a> <a id="5210" href="Algebra.Definitions.html#2074" class="Function">Zero</a> <a id="5215" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="5217" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator">_∙_</a>
<a id="5223" href="Algebra.Consequences.Setoid.html#5178" class="Function">comm∧zeʳ⇒ze</a> <a id="5235" href="Algebra.Consequences.Setoid.html#5235" class="Bound">zeʳ</a> <a id="5239" class="Symbol">=</a> <a id="5241" href="Algebra.Consequences.Setoid.html#4953" class="Function">comm∧zeʳ⇒zeˡ</a> <a id="5254" href="Algebra.Consequences.Setoid.html#5235" class="Bound">zeʳ</a> <a id="5258" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="5260" href="Algebra.Consequences.Setoid.html#5235" class="Bound">zeʳ</a>
<a id="5267" href="Algebra.Consequences.Setoid.html#5267" class="Function">comm∧almostCancelˡ⇒almostCancelʳ</a> <a id="5300" class="Symbol">:</a> <a id="5302" href="Algebra.Definitions.html#4500" class="Function">AlmostLeftCancellative</a> <a id="5325" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="5327" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator">_∙_</a> <a id="5331" class="Symbol"></a>
<a id="5370" href="Algebra.Definitions.html#4621" class="Function">AlmostRightCancellative</a> <a id="5394" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="5396" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator">_∙_</a>
<a id="5402" href="Algebra.Consequences.Setoid.html#5267" class="Function">comm∧almostCancelˡ⇒almostCancelʳ</a> <a id="5435" href="Algebra.Consequences.Setoid.html#5435" class="Bound">cancelˡ-nonZero</a> <a id="5451" href="Algebra.Consequences.Setoid.html#5451" class="Bound">x</a> <a id="5453" href="Algebra.Consequences.Setoid.html#5453" class="Bound">y</a> <a id="5455" href="Algebra.Consequences.Setoid.html#5455" class="Bound">z</a> <a id="5457" href="Algebra.Consequences.Setoid.html#5457" class="Bound">x≉e</a> <a id="5461" href="Algebra.Consequences.Setoid.html#5461" class="Bound">yx≈zx</a> <a id="5467" class="Symbol">=</a>
<a id="5473" href="Algebra.Consequences.Setoid.html#5435" class="Bound">cancelˡ-nonZero</a> <a id="5489" href="Algebra.Consequences.Setoid.html#5451" class="Bound">x</a> <a id="5491" href="Algebra.Consequences.Setoid.html#5453" class="Bound">y</a> <a id="5493" href="Algebra.Consequences.Setoid.html#5455" class="Bound">z</a> <a id="5495" href="Algebra.Consequences.Setoid.html#5457" class="Bound">x≉e</a> <a id="5499" href="Function.Base.html#1974" class="Function Operator">$</a> <a id="5501" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="5513" href="Algebra.Consequences.Setoid.html#5451" class="Bound">x</a> <a id="5515" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator"></a> <a id="5517" href="Algebra.Consequences.Setoid.html#5453" class="Bound">y</a> <a id="5519" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5522" href="Algebra.Consequences.Setoid.html#4292" class="Bound">comm</a> <a id="5527" href="Algebra.Consequences.Setoid.html#5451" class="Bound">x</a> <a id="5529" href="Algebra.Consequences.Setoid.html#5453" class="Bound">y</a> <a id="5531" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="5539" href="Algebra.Consequences.Setoid.html#5453" class="Bound">y</a> <a id="5541" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator"></a> <a id="5543" href="Algebra.Consequences.Setoid.html#5451" class="Bound">x</a> <a id="5545" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5548" href="Algebra.Consequences.Setoid.html#5461" class="Bound">yx≈zx</a> <a id="5554" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="5562" href="Algebra.Consequences.Setoid.html#5455" class="Bound">z</a> <a id="5564" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator"></a> <a id="5566" href="Algebra.Consequences.Setoid.html#5451" class="Bound">x</a> <a id="5568" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5571" href="Algebra.Consequences.Setoid.html#4292" class="Bound">comm</a> <a id="5576" href="Algebra.Consequences.Setoid.html#5455" class="Bound">z</a> <a id="5578" href="Algebra.Consequences.Setoid.html#5451" class="Bound">x</a> <a id="5580" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="5588" href="Algebra.Consequences.Setoid.html#5451" class="Bound">x</a> <a id="5590" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator"></a> <a id="5592" href="Algebra.Consequences.Setoid.html#5455" class="Bound">z</a> <a id="5594" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="5599" href="Algebra.Consequences.Setoid.html#5599" class="Function">comm∧almostCancelʳ⇒almostCancelˡ</a> <a id="5632" class="Symbol">:</a> <a id="5634" href="Algebra.Definitions.html#4621" class="Function">AlmostRightCancellative</a> <a id="5658" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="5660" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator">_∙_</a> <a id="5664" class="Symbol"></a>
<a id="5703" href="Algebra.Definitions.html#4500" class="Function">AlmostLeftCancellative</a> <a id="5726" href="Algebra.Consequences.Setoid.html#4317" class="Bound">e</a> <a id="5728" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator">_∙_</a>
<a id="5734" href="Algebra.Consequences.Setoid.html#5599" class="Function">comm∧almostCancelʳ⇒almostCancelˡ</a> <a id="5767" href="Algebra.Consequences.Setoid.html#5767" class="Bound">cancelʳ-nonZero</a> <a id="5783" href="Algebra.Consequences.Setoid.html#5783" class="Bound">x</a> <a id="5785" href="Algebra.Consequences.Setoid.html#5785" class="Bound">y</a> <a id="5787" href="Algebra.Consequences.Setoid.html#5787" class="Bound">z</a> <a id="5789" href="Algebra.Consequences.Setoid.html#5789" class="Bound">x≉e</a> <a id="5793" href="Algebra.Consequences.Setoid.html#5793" class="Bound">xy≈xz</a> <a id="5799" class="Symbol">=</a>
<a id="5805" href="Algebra.Consequences.Setoid.html#5767" class="Bound">cancelʳ-nonZero</a> <a id="5821" href="Algebra.Consequences.Setoid.html#5783" class="Bound">x</a> <a id="5823" href="Algebra.Consequences.Setoid.html#5785" class="Bound">y</a> <a id="5825" href="Algebra.Consequences.Setoid.html#5787" class="Bound">z</a> <a id="5827" href="Algebra.Consequences.Setoid.html#5789" class="Bound">x≉e</a> <a id="5831" href="Function.Base.html#1974" class="Function Operator">$</a> <a id="5833" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="5845" href="Algebra.Consequences.Setoid.html#5785" class="Bound">y</a> <a id="5847" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator"></a> <a id="5849" href="Algebra.Consequences.Setoid.html#5783" class="Bound">x</a> <a id="5851" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5854" href="Algebra.Consequences.Setoid.html#4292" class="Bound">comm</a> <a id="5859" href="Algebra.Consequences.Setoid.html#5785" class="Bound">y</a> <a id="5861" href="Algebra.Consequences.Setoid.html#5783" class="Bound">x</a> <a id="5863" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="5871" href="Algebra.Consequences.Setoid.html#5783" class="Bound">x</a> <a id="5873" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator"></a> <a id="5875" href="Algebra.Consequences.Setoid.html#5785" class="Bound">y</a> <a id="5877" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5880" href="Algebra.Consequences.Setoid.html#5793" class="Bound">xy≈xz</a> <a id="5886" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="5894" href="Algebra.Consequences.Setoid.html#5783" class="Bound">x</a> <a id="5896" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator"></a> <a id="5898" href="Algebra.Consequences.Setoid.html#5787" class="Bound">z</a> <a id="5900" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="5903" href="Algebra.Consequences.Setoid.html#4292" class="Bound">comm</a> <a id="5908" href="Algebra.Consequences.Setoid.html#5783" class="Bound">x</a> <a id="5910" href="Algebra.Consequences.Setoid.html#5787" class="Bound">z</a> <a id="5912" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="5920" href="Algebra.Consequences.Setoid.html#5787" class="Bound">z</a> <a id="5922" href="Algebra.Consequences.Setoid.html#4278" class="Bound Operator"></a> <a id="5924" href="Algebra.Consequences.Setoid.html#5783" class="Bound">x</a> <a id="5926" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="5929" class="Comment">------------------------------------------------------------------------</a>
<a id="6002" class="Comment">-- Group-like structures</a>
<a id="6028" class="Keyword">module</a> <a id="6035" href="Algebra.Consequences.Setoid.html#6035" class="Module">_</a> <a id="6037" class="Symbol">{</a><a id="6038" href="Algebra.Consequences.Setoid.html#6038" class="Bound Operator">_∙_</a> <a id="6042" class="Symbol">:</a> <a id="6044" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="6048" href="Algebra.Consequences.Setoid.html#634" class="Field">A</a><a id="6049" class="Symbol">}</a> <a id="6051" class="Symbol">{</a><a id="6052" href="Algebra.Consequences.Setoid.html#6052" class="Bound Operator">_⁻¹</a> <a id="6056" class="Symbol">:</a> <a id="6058" href="Algebra.Core.html#484" class="Function">Op₁</a> <a id="6062" href="Algebra.Consequences.Setoid.html#634" class="Field">A</a><a id="6063" class="Symbol">}</a> <a id="6065" class="Symbol">{</a><a id="6066" href="Algebra.Consequences.Setoid.html#6066" class="Bound">e</a><a id="6067" class="Symbol">}</a> <a id="6069" class="Symbol">(</a><a id="6070" href="Algebra.Consequences.Setoid.html#6070" class="Bound">comm</a> <a id="6075" class="Symbol">:</a> <a id="6077" href="Algebra.Definitions.html#1635" class="Function">Commutative</a> <a id="6089" href="Algebra.Consequences.Setoid.html#6038" class="Bound Operator">_∙_</a><a id="6092" class="Symbol">)</a> <a id="6094" class="Keyword">where</a>
<a id="6103" href="Algebra.Consequences.Setoid.html#6103" class="Function">comm∧invˡ⇒invʳ</a> <a id="6118" class="Symbol">:</a> <a id="6120" href="Algebra.Definitions.html#2144" class="Function">LeftInverse</a> <a id="6132" href="Algebra.Consequences.Setoid.html#6066" class="Bound">e</a> <a id="6134" href="Algebra.Consequences.Setoid.html#6052" class="Bound Operator">_⁻¹</a> <a id="6138" href="Algebra.Consequences.Setoid.html#6038" class="Bound Operator">_∙_</a> <a id="6142" class="Symbol"></a> <a id="6144" href="Algebra.Definitions.html#2232" class="Function">RightInverse</a> <a id="6157" href="Algebra.Consequences.Setoid.html#6066" class="Bound">e</a> <a id="6159" href="Algebra.Consequences.Setoid.html#6052" class="Bound Operator">_⁻¹</a> <a id="6163" href="Algebra.Consequences.Setoid.html#6038" class="Bound Operator">_∙_</a>
<a id="6169" href="Algebra.Consequences.Setoid.html#6103" class="Function">comm∧invˡ⇒invʳ</a> <a id="6184" href="Algebra.Consequences.Setoid.html#6184" class="Bound">invˡ</a> <a id="6189" href="Algebra.Consequences.Setoid.html#6189" class="Bound">x</a> <a id="6191" class="Symbol">=</a> <a id="6193" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="6203" href="Algebra.Consequences.Setoid.html#6189" class="Bound">x</a> <a id="6205" href="Algebra.Consequences.Setoid.html#6038" class="Bound Operator"></a> <a id="6207" class="Symbol">(</a><a id="6208" href="Algebra.Consequences.Setoid.html#6189" class="Bound">x</a> <a id="6210" href="Algebra.Consequences.Setoid.html#6052" class="Bound Operator">⁻¹</a><a id="6212" class="Symbol">)</a> <a id="6214" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="6217" href="Algebra.Consequences.Setoid.html#6070" class="Bound">comm</a> <a id="6222" href="Algebra.Consequences.Setoid.html#6189" class="Bound">x</a> <a id="6224" class="Symbol">(</a><a id="6225" href="Algebra.Consequences.Setoid.html#6189" class="Bound">x</a> <a id="6227" href="Algebra.Consequences.Setoid.html#6052" class="Bound Operator">⁻¹</a><a id="6229" class="Symbol">)</a> <a id="6231" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="6237" class="Symbol">(</a><a id="6238" href="Algebra.Consequences.Setoid.html#6189" class="Bound">x</a> <a id="6240" href="Algebra.Consequences.Setoid.html#6052" class="Bound Operator">⁻¹</a><a id="6242" class="Symbol">)</a> <a id="6244" href="Algebra.Consequences.Setoid.html#6038" class="Bound Operator"></a> <a id="6246" href="Algebra.Consequences.Setoid.html#6189" class="Bound">x</a> <a id="6248" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="6251" href="Algebra.Consequences.Setoid.html#6184" class="Bound">invˡ</a> <a id="6256" href="Algebra.Consequences.Setoid.html#6189" class="Bound">x</a> <a id="6258" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="6264" href="Algebra.Consequences.Setoid.html#6066" class="Bound">e</a> <a id="6275" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="6280" href="Algebra.Consequences.Setoid.html#6280" class="Function">comm∧invˡ⇒inv</a> <a id="6294" class="Symbol">:</a> <a id="6296" href="Algebra.Definitions.html#2144" class="Function">LeftInverse</a> <a id="6308" href="Algebra.Consequences.Setoid.html#6066" class="Bound">e</a> <a id="6310" href="Algebra.Consequences.Setoid.html#6052" class="Bound Operator">_⁻¹</a> <a id="6314" href="Algebra.Consequences.Setoid.html#6038" class="Bound Operator">_∙_</a> <a id="6318" class="Symbol"></a> <a id="6320" href="Algebra.Definitions.html#2322" class="Function">Inverse</a> <a id="6328" href="Algebra.Consequences.Setoid.html#6066" class="Bound">e</a> <a id="6330" href="Algebra.Consequences.Setoid.html#6052" class="Bound Operator">_⁻¹</a> <a id="6334" href="Algebra.Consequences.Setoid.html#6038" class="Bound Operator">_∙_</a>
<a id="6340" href="Algebra.Consequences.Setoid.html#6280" class="Function">comm∧invˡ⇒inv</a> <a id="6354" href="Algebra.Consequences.Setoid.html#6354" class="Bound">invˡ</a> <a id="6359" class="Symbol">=</a> <a id="6361" href="Algebra.Consequences.Setoid.html#6354" class="Bound">invˡ</a> <a id="6366" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="6368" href="Algebra.Consequences.Setoid.html#6103" class="Function">comm∧invˡ⇒invʳ</a> <a id="6383" href="Algebra.Consequences.Setoid.html#6354" class="Bound">invˡ</a>
<a id="6391" href="Algebra.Consequences.Setoid.html#6391" class="Function">comm∧invʳ⇒invˡ</a> <a id="6406" class="Symbol">:</a> <a id="6408" href="Algebra.Definitions.html#2232" class="Function">RightInverse</a> <a id="6421" href="Algebra.Consequences.Setoid.html#6066" class="Bound">e</a> <a id="6423" href="Algebra.Consequences.Setoid.html#6052" class="Bound Operator">_⁻¹</a> <a id="6427" href="Algebra.Consequences.Setoid.html#6038" class="Bound Operator">_∙_</a> <a id="6431" class="Symbol"></a> <a id="6433" href="Algebra.Definitions.html#2144" class="Function">LeftInverse</a> <a id="6445" href="Algebra.Consequences.Setoid.html#6066" class="Bound">e</a> <a id="6447" href="Algebra.Consequences.Setoid.html#6052" class="Bound Operator">_⁻¹</a> <a id="6451" href="Algebra.Consequences.Setoid.html#6038" class="Bound Operator">_∙_</a>
<a id="6457" href="Algebra.Consequences.Setoid.html#6391" class="Function">comm∧invʳ⇒invˡ</a> <a id="6472" href="Algebra.Consequences.Setoid.html#6472" class="Bound">invʳ</a> <a id="6477" href="Algebra.Consequences.Setoid.html#6477" class="Bound">x</a> <a id="6479" class="Symbol">=</a> <a id="6481" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="6491" class="Symbol">(</a><a id="6492" href="Algebra.Consequences.Setoid.html#6477" class="Bound">x</a> <a id="6494" href="Algebra.Consequences.Setoid.html#6052" class="Bound Operator">⁻¹</a><a id="6496" class="Symbol">)</a> <a id="6498" href="Algebra.Consequences.Setoid.html#6038" class="Bound Operator"></a> <a id="6500" href="Algebra.Consequences.Setoid.html#6477" class="Bound">x</a> <a id="6502" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="6505" href="Algebra.Consequences.Setoid.html#6070" class="Bound">comm</a> <a id="6510" class="Symbol">(</a><a id="6511" href="Algebra.Consequences.Setoid.html#6477" class="Bound">x</a> <a id="6513" href="Algebra.Consequences.Setoid.html#6052" class="Bound Operator">⁻¹</a><a id="6515" class="Symbol">)</a> <a id="6517" href="Algebra.Consequences.Setoid.html#6477" class="Bound">x</a> <a id="6519" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="6525" href="Algebra.Consequences.Setoid.html#6477" class="Bound">x</a> <a id="6527" href="Algebra.Consequences.Setoid.html#6038" class="Bound Operator"></a> <a id="6529" class="Symbol">(</a><a id="6530" href="Algebra.Consequences.Setoid.html#6477" class="Bound">x</a> <a id="6532" href="Algebra.Consequences.Setoid.html#6052" class="Bound Operator">⁻¹</a><a id="6534" class="Symbol">)</a> <a id="6536" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="6539" href="Algebra.Consequences.Setoid.html#6472" class="Bound">invʳ</a> <a id="6544" href="Algebra.Consequences.Setoid.html#6477" class="Bound">x</a> <a id="6546" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="6552" href="Algebra.Consequences.Setoid.html#6066" class="Bound">e</a> <a id="6563" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="6568" href="Algebra.Consequences.Setoid.html#6568" class="Function">comm∧invʳ⇒inv</a> <a id="6582" class="Symbol">:</a> <a id="6584" href="Algebra.Definitions.html#2232" class="Function">RightInverse</a> <a id="6597" href="Algebra.Consequences.Setoid.html#6066" class="Bound">e</a> <a id="6599" href="Algebra.Consequences.Setoid.html#6052" class="Bound Operator">_⁻¹</a> <a id="6603" href="Algebra.Consequences.Setoid.html#6038" class="Bound Operator">_∙_</a> <a id="6607" class="Symbol"></a> <a id="6609" href="Algebra.Definitions.html#2322" class="Function">Inverse</a> <a id="6617" href="Algebra.Consequences.Setoid.html#6066" class="Bound">e</a> <a id="6619" href="Algebra.Consequences.Setoid.html#6052" class="Bound Operator">_⁻¹</a> <a id="6623" href="Algebra.Consequences.Setoid.html#6038" class="Bound Operator">_∙_</a>
<a id="6629" href="Algebra.Consequences.Setoid.html#6568" class="Function">comm∧invʳ⇒inv</a> <a id="6643" href="Algebra.Consequences.Setoid.html#6643" class="Bound">invʳ</a> <a id="6648" class="Symbol">=</a> <a id="6650" href="Algebra.Consequences.Setoid.html#6391" class="Function">comm∧invʳ⇒invˡ</a> <a id="6665" href="Algebra.Consequences.Setoid.html#6643" class="Bound">invʳ</a> <a id="6670" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="6672" href="Algebra.Consequences.Setoid.html#6643" class="Bound">invʳ</a>
<a id="6678" class="Keyword">module</a> <a id="6685" href="Algebra.Consequences.Setoid.html#6685" class="Module">_</a> <a id="6687" class="Symbol">{</a><a id="6688" href="Algebra.Consequences.Setoid.html#6688" class="Bound Operator">_∙_</a> <a id="6692" class="Symbol">:</a> <a id="6694" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="6698" href="Algebra.Consequences.Setoid.html#634" class="Field">A</a><a id="6699" class="Symbol">}</a> <a id="6701" class="Symbol">{</a><a id="6702" href="Algebra.Consequences.Setoid.html#6702" class="Bound Operator">_⁻¹</a> <a id="6706" class="Symbol">:</a> <a id="6708" href="Algebra.Core.html#484" class="Function">Op₁</a> <a id="6712" href="Algebra.Consequences.Setoid.html#634" class="Field">A</a><a id="6713" class="Symbol">}</a> <a id="6715" class="Symbol">{</a><a id="6716" href="Algebra.Consequences.Setoid.html#6716" class="Bound">e</a><a id="6717" class="Symbol">}</a> <a id="6719" class="Symbol">(</a><a id="6720" href="Algebra.Consequences.Setoid.html#6720" class="Bound">cong</a> <a id="6725" class="Symbol">:</a> <a id="6727" href="Algebra.Definitions.html#1302" class="Function">Congruent₂</a> <a id="6738" href="Algebra.Consequences.Setoid.html#6688" class="Bound Operator">_∙_</a><a id="6741" class="Symbol">)</a> <a id="6743" class="Keyword">where</a>
<a id="6752" href="Algebra.Consequences.Setoid.html#6752" class="Function">assoc∧id∧invʳ⇒invˡ-unique</a> <a id="6778" class="Symbol">:</a> <a id="6780" href="Algebra.Definitions.html#1548" class="Function">Associative</a> <a id="6792" href="Algebra.Consequences.Setoid.html#6688" class="Bound Operator">_∙_</a> <a id="6796" class="Symbol"></a>
<a id="6828" href="Algebra.Definitions.html#1856" class="Function">Identity</a> <a id="6837" href="Algebra.Consequences.Setoid.html#6716" class="Bound">e</a> <a id="6839" href="Algebra.Consequences.Setoid.html#6688" class="Bound Operator">_∙_</a> <a id="6843" class="Symbol"></a> <a id="6845" href="Algebra.Definitions.html#2232" class="Function">RightInverse</a> <a id="6858" href="Algebra.Consequences.Setoid.html#6716" class="Bound">e</a> <a id="6860" href="Algebra.Consequences.Setoid.html#6702" class="Bound Operator">_⁻¹</a> <a id="6864" href="Algebra.Consequences.Setoid.html#6688" class="Bound Operator">_∙_</a> <a id="6868" class="Symbol"></a>
<a id="6900" class="Symbol"></a> <a id="6902" href="Algebra.Consequences.Setoid.html#6902" class="Bound">x</a> <a id="6904" href="Algebra.Consequences.Setoid.html#6904" class="Bound">y</a> <a id="6906" class="Symbol"></a> <a id="6908" class="Symbol">(</a><a id="6909" href="Algebra.Consequences.Setoid.html#6902" class="Bound">x</a> <a id="6911" href="Algebra.Consequences.Setoid.html#6688" class="Bound Operator"></a> <a id="6913" href="Algebra.Consequences.Setoid.html#6904" class="Bound">y</a><a id="6914" class="Symbol">)</a> <a id="6916" href="Relation.Binary.Bundles.html#1169" class="Field Operator"></a> <a id="6918" href="Algebra.Consequences.Setoid.html#6716" class="Bound">e</a> <a id="6920" class="Symbol"></a> <a id="6922" href="Algebra.Consequences.Setoid.html#6902" class="Bound">x</a> <a id="6924" href="Relation.Binary.Bundles.html#1169" class="Field Operator"></a> <a id="6926" class="Symbol">(</a><a id="6927" href="Algebra.Consequences.Setoid.html#6904" class="Bound">y</a> <a id="6929" href="Algebra.Consequences.Setoid.html#6702" class="Bound Operator">⁻¹</a><a id="6931" class="Symbol">)</a>
<a id="6935" href="Algebra.Consequences.Setoid.html#6752" class="Function">assoc∧id∧invʳ⇒invˡ-unique</a> <a id="6961" href="Algebra.Consequences.Setoid.html#6961" class="Bound">assoc</a> <a id="6967" class="Symbol">(</a><a id="6968" href="Algebra.Consequences.Setoid.html#6968" class="Bound">idˡ</a> <a id="6972" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="6974" href="Algebra.Consequences.Setoid.html#6974" class="Bound">idʳ</a><a id="6977" class="Symbol">)</a> <a id="6979" href="Algebra.Consequences.Setoid.html#6979" class="Bound">invʳ</a> <a id="6984" href="Algebra.Consequences.Setoid.html#6984" class="Bound">x</a> <a id="6986" href="Algebra.Consequences.Setoid.html#6986" class="Bound">y</a> <a id="6988" href="Algebra.Consequences.Setoid.html#6988" class="Bound">eq</a> <a id="6991" class="Symbol">=</a> <a id="6993" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="7003" href="Algebra.Consequences.Setoid.html#6984" class="Bound">x</a> <a id="7020" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="7023" href="Relation.Binary.Structures.html#1200" class="Function">sym</a> <a id="7027" class="Symbol">(</a><a id="7028" href="Algebra.Consequences.Setoid.html#6974" class="Bound">idʳ</a> <a id="7032" href="Algebra.Consequences.Setoid.html#6984" class="Bound">x</a><a id="7033" class="Symbol">)</a> <a id="7035" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="7041" href="Algebra.Consequences.Setoid.html#6984" class="Bound">x</a> <a id="7043" href="Algebra.Consequences.Setoid.html#6688" class="Bound Operator"></a> <a id="7045" href="Algebra.Consequences.Setoid.html#6716" class="Bound">e</a> <a id="7058" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="7061" href="Algebra.Consequences.Setoid.html#6720" class="Bound">cong</a> <a id="7066" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="7071" class="Symbol">(</a><a id="7072" href="Relation.Binary.Structures.html#1200" class="Function">sym</a> <a id="7076" class="Symbol">(</a><a id="7077" href="Algebra.Consequences.Setoid.html#6979" class="Bound">invʳ</a> <a id="7082" href="Algebra.Consequences.Setoid.html#6986" class="Bound">y</a><a id="7083" class="Symbol">))</a> <a id="7086" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="7092" href="Algebra.Consequences.Setoid.html#6984" class="Bound">x</a> <a id="7094" href="Algebra.Consequences.Setoid.html#6688" class="Bound Operator"></a> <a id="7096" class="Symbol">(</a><a id="7097" href="Algebra.Consequences.Setoid.html#6986" class="Bound">y</a> <a id="7099" href="Algebra.Consequences.Setoid.html#6688" class="Bound Operator"></a> <a id="7101" class="Symbol">(</a><a id="7102" href="Algebra.Consequences.Setoid.html#6986" class="Bound">y</a> <a id="7104" href="Algebra.Consequences.Setoid.html#6702" class="Bound Operator">⁻¹</a><a id="7106" class="Symbol">))</a> <a id="7109" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="7112" href="Relation.Binary.Structures.html#1200" class="Function">sym</a> <a id="7116" class="Symbol">(</a><a id="7117" href="Algebra.Consequences.Setoid.html#6961" class="Bound">assoc</a> <a id="7123" href="Algebra.Consequences.Setoid.html#6984" class="Bound">x</a> <a id="7125" href="Algebra.Consequences.Setoid.html#6986" class="Bound">y</a> <a id="7127" class="Symbol">(</a><a id="7128" href="Algebra.Consequences.Setoid.html#6986" class="Bound">y</a> <a id="7130" href="Algebra.Consequences.Setoid.html#6702" class="Bound Operator">⁻¹</a><a id="7132" class="Symbol">))</a> <a id="7135" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="7141" class="Symbol">(</a><a id="7142" href="Algebra.Consequences.Setoid.html#6984" class="Bound">x</a> <a id="7144" href="Algebra.Consequences.Setoid.html#6688" class="Bound Operator"></a> <a id="7146" href="Algebra.Consequences.Setoid.html#6986" class="Bound">y</a><a id="7147" class="Symbol">)</a> <a id="7149" href="Algebra.Consequences.Setoid.html#6688" class="Bound Operator"></a> <a id="7151" class="Symbol">(</a><a id="7152" href="Algebra.Consequences.Setoid.html#6986" class="Bound">y</a> <a id="7154" href="Algebra.Consequences.Setoid.html#6702" class="Bound Operator">⁻¹</a><a id="7156" class="Symbol">)</a> <a id="7158" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="7161" href="Algebra.Consequences.Setoid.html#6720" class="Bound">cong</a> <a id="7166" href="Algebra.Consequences.Setoid.html#6988" class="Bound">eq</a> <a id="7169" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="7174" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="7180" href="Algebra.Consequences.Setoid.html#6716" class="Bound">e</a> <a id="7182" href="Algebra.Consequences.Setoid.html#6688" class="Bound Operator"></a> <a id="7184" class="Symbol">(</a><a id="7185" href="Algebra.Consequences.Setoid.html#6986" class="Bound">y</a> <a id="7187" href="Algebra.Consequences.Setoid.html#6702" class="Bound Operator">⁻¹</a><a id="7189" class="Symbol">)</a> <a id="7197" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="7200" href="Algebra.Consequences.Setoid.html#6968" class="Bound">idˡ</a> <a id="7204" class="Symbol">(</a><a id="7205" href="Algebra.Consequences.Setoid.html#6986" class="Bound">y</a> <a id="7207" href="Algebra.Consequences.Setoid.html#6702" class="Bound Operator">⁻¹</a><a id="7209" class="Symbol">)</a> <a id="7211" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="7217" href="Algebra.Consequences.Setoid.html#6986" class="Bound">y</a> <a id="7219" href="Algebra.Consequences.Setoid.html#6702" class="Bound Operator">⁻¹</a> <a id="7234" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="7239" href="Algebra.Consequences.Setoid.html#7239" class="Function">assoc∧id∧invˡ⇒invʳ-unique</a> <a id="7265" class="Symbol">:</a> <a id="7267" href="Algebra.Definitions.html#1548" class="Function">Associative</a> <a id="7279" href="Algebra.Consequences.Setoid.html#6688" class="Bound Operator">_∙_</a> <a id="7283" class="Symbol"></a>
<a id="7315" href="Algebra.Definitions.html#1856" class="Function">Identity</a> <a id="7324" href="Algebra.Consequences.Setoid.html#6716" class="Bound">e</a> <a id="7326" href="Algebra.Consequences.Setoid.html#6688" class="Bound Operator">_∙_</a> <a id="7330" class="Symbol"></a> <a id="7332" href="Algebra.Definitions.html#2144" class="Function">LeftInverse</a> <a id="7344" href="Algebra.Consequences.Setoid.html#6716" class="Bound">e</a> <a id="7346" href="Algebra.Consequences.Setoid.html#6702" class="Bound Operator">_⁻¹</a> <a id="7350" href="Algebra.Consequences.Setoid.html#6688" class="Bound Operator">_∙_</a> <a id="7354" class="Symbol"></a>
<a id="7386" class="Symbol"></a> <a id="7388" href="Algebra.Consequences.Setoid.html#7388" class="Bound">x</a> <a id="7390" href="Algebra.Consequences.Setoid.html#7390" class="Bound">y</a> <a id="7392" class="Symbol"></a> <a id="7394" class="Symbol">(</a><a id="7395" href="Algebra.Consequences.Setoid.html#7388" class="Bound">x</a> <a id="7397" href="Algebra.Consequences.Setoid.html#6688" class="Bound Operator"></a> <a id="7399" href="Algebra.Consequences.Setoid.html#7390" class="Bound">y</a><a id="7400" class="Symbol">)</a> <a id="7402" href="Relation.Binary.Bundles.html#1169" class="Field Operator"></a> <a id="7404" href="Algebra.Consequences.Setoid.html#6716" class="Bound">e</a> <a id="7406" class="Symbol"></a> <a id="7408" href="Algebra.Consequences.Setoid.html#7390" class="Bound">y</a> <a id="7410" href="Relation.Binary.Bundles.html#1169" class="Field Operator"></a> <a id="7412" class="Symbol">(</a><a id="7413" href="Algebra.Consequences.Setoid.html#7388" class="Bound">x</a> <a id="7415" href="Algebra.Consequences.Setoid.html#6702" class="Bound Operator">⁻¹</a><a id="7417" class="Symbol">)</a>
<a id="7421" href="Algebra.Consequences.Setoid.html#7239" class="Function">assoc∧id∧invˡ⇒invʳ-unique</a> <a id="7447" href="Algebra.Consequences.Setoid.html#7447" class="Bound">assoc</a> <a id="7453" class="Symbol">(</a><a id="7454" href="Algebra.Consequences.Setoid.html#7454" class="Bound">idˡ</a> <a id="7458" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="7460" href="Algebra.Consequences.Setoid.html#7460" class="Bound">idʳ</a><a id="7463" class="Symbol">)</a> <a id="7465" href="Algebra.Consequences.Setoid.html#7465" class="Bound">invˡ</a> <a id="7470" href="Algebra.Consequences.Setoid.html#7470" class="Bound">x</a> <a id="7472" href="Algebra.Consequences.Setoid.html#7472" class="Bound">y</a> <a id="7474" href="Algebra.Consequences.Setoid.html#7474" class="Bound">eq</a> <a id="7477" class="Symbol">=</a> <a id="7479" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="7489" href="Algebra.Consequences.Setoid.html#7472" class="Bound">y</a> <a id="7506" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="7509" href="Relation.Binary.Structures.html#1200" class="Function">sym</a> <a id="7513" class="Symbol">(</a><a id="7514" href="Algebra.Consequences.Setoid.html#7454" class="Bound">idˡ</a> <a id="7518" href="Algebra.Consequences.Setoid.html#7472" class="Bound">y</a><a id="7519" class="Symbol">)</a> <a id="7521" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="7527" href="Algebra.Consequences.Setoid.html#6716" class="Bound">e</a> <a id="7529" href="Algebra.Consequences.Setoid.html#6688" class="Bound Operator"></a> <a id="7531" href="Algebra.Consequences.Setoid.html#7472" class="Bound">y</a> <a id="7544" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="7547" href="Algebra.Consequences.Setoid.html#6720" class="Bound">cong</a> <a id="7552" class="Symbol">(</a><a id="7553" href="Relation.Binary.Structures.html#1200" class="Function">sym</a> <a id="7557" class="Symbol">(</a><a id="7558" href="Algebra.Consequences.Setoid.html#7465" class="Bound">invˡ</a> <a id="7563" href="Algebra.Consequences.Setoid.html#7470" class="Bound">x</a><a id="7564" class="Symbol">))</a> <a id="7567" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="7572" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="7578" class="Symbol">((</a><a id="7580" href="Algebra.Consequences.Setoid.html#7470" class="Bound">x</a> <a id="7582" href="Algebra.Consequences.Setoid.html#6702" class="Bound Operator">⁻¹</a><a id="7584" class="Symbol">)</a> <a id="7586" href="Algebra.Consequences.Setoid.html#6688" class="Bound Operator"></a> <a id="7588" href="Algebra.Consequences.Setoid.html#7470" class="Bound">x</a><a id="7589" class="Symbol">)</a> <a id="7591" href="Algebra.Consequences.Setoid.html#6688" class="Bound Operator"></a> <a id="7593" href="Algebra.Consequences.Setoid.html#7472" class="Bound">y</a> <a id="7595" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="7598" href="Algebra.Consequences.Setoid.html#7447" class="Bound">assoc</a> <a id="7604" class="Symbol">(</a><a id="7605" href="Algebra.Consequences.Setoid.html#7470" class="Bound">x</a> <a id="7607" href="Algebra.Consequences.Setoid.html#6702" class="Bound Operator">⁻¹</a><a id="7609" class="Symbol">)</a> <a id="7611" href="Algebra.Consequences.Setoid.html#7470" class="Bound">x</a> <a id="7613" href="Algebra.Consequences.Setoid.html#7472" class="Bound">y</a> <a id="7615" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="7621" class="Symbol">(</a><a id="7622" href="Algebra.Consequences.Setoid.html#7470" class="Bound">x</a> <a id="7624" href="Algebra.Consequences.Setoid.html#6702" class="Bound Operator">⁻¹</a><a id="7626" class="Symbol">)</a> <a id="7628" href="Algebra.Consequences.Setoid.html#6688" class="Bound Operator"></a> <a id="7630" class="Symbol">(</a><a id="7631" href="Algebra.Consequences.Setoid.html#7470" class="Bound">x</a> <a id="7633" href="Algebra.Consequences.Setoid.html#6688" class="Bound Operator"></a> <a id="7635" href="Algebra.Consequences.Setoid.html#7472" class="Bound">y</a><a id="7636" class="Symbol">)</a> <a id="7638" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="7641" href="Algebra.Consequences.Setoid.html#6720" class="Bound">cong</a> <a id="7646" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="7651" href="Algebra.Consequences.Setoid.html#7474" class="Bound">eq</a> <a id="7654" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="7660" class="Symbol">(</a><a id="7661" href="Algebra.Consequences.Setoid.html#7470" class="Bound">x</a> <a id="7663" href="Algebra.Consequences.Setoid.html#6702" class="Bound Operator">⁻¹</a><a id="7665" class="Symbol">)</a> <a id="7667" href="Algebra.Consequences.Setoid.html#6688" class="Bound Operator"></a> <a id="7669" href="Algebra.Consequences.Setoid.html#6716" class="Bound">e</a> <a id="7677" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="7680" href="Algebra.Consequences.Setoid.html#7460" class="Bound">idʳ</a> <a id="7684" class="Symbol">(</a><a id="7685" href="Algebra.Consequences.Setoid.html#7470" class="Bound">x</a> <a id="7687" href="Algebra.Consequences.Setoid.html#6702" class="Bound Operator">⁻¹</a><a id="7689" class="Symbol">)</a> <a id="7691" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="7697" href="Algebra.Consequences.Setoid.html#7470" class="Bound">x</a> <a id="7699" href="Algebra.Consequences.Setoid.html#6702" class="Bound Operator">⁻¹</a> <a id="7714" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="7717" class="Comment">------------------------------------------------------------------------</a>
<a id="7790" class="Comment">-- Bisemigroup-like structures</a>
<a id="7822" class="Keyword">module</a> <a id="7829" href="Algebra.Consequences.Setoid.html#7829" class="Module">_</a> <a id="7831" class="Symbol">{</a><a id="7832" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator">_∙_</a> <a id="7836" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator">_◦_</a> <a id="7840" class="Symbol">:</a> <a id="7842" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="7846" href="Algebra.Consequences.Setoid.html#634" class="Field">A</a><a id="7847" class="Symbol">}</a>
<a id="7858" class="Symbol">(</a><a id="7859" href="Algebra.Consequences.Setoid.html#7859" class="Bound">◦-cong</a> <a id="7866" class="Symbol">:</a> <a id="7868" href="Algebra.Definitions.html#1302" class="Function">Congruent₂</a> <a id="7879" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator">_◦_</a><a id="7882" class="Symbol">)</a>
<a id="7893" class="Symbol">(</a><a id="7894" href="Algebra.Consequences.Setoid.html#7894" class="Bound">∙-comm</a> <a id="7901" class="Symbol">:</a> <a id="7903" href="Algebra.Definitions.html#1635" class="Function">Commutative</a> <a id="7915" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator">_∙_</a><a id="7918" class="Symbol">)</a>
<a id="7929" class="Keyword">where</a>
<a id="7938" href="Algebra.Consequences.Setoid.html#7938" class="Function">comm∧distrˡ⇒distrʳ</a> <a id="7957" class="Symbol">:</a> <a id="7960" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator">_∙_</a> <a id="7964" href="Algebra.Definitions.html#3155" class="Function Operator">DistributesOverˡ</a> <a id="7981" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator">_◦_</a> <a id="7985" class="Symbol"></a> <a id="7987" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator">_∙_</a> <a id="7991" href="Algebra.Definitions.html#3274" class="Function Operator">DistributesOverʳ</a> <a id="8008" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator">_◦_</a>
<a id="8014" href="Algebra.Consequences.Setoid.html#7938" class="Function">comm∧distrˡ⇒distrʳ</a> <a id="8033" href="Algebra.Consequences.Setoid.html#8033" class="Bound">distrˡ</a> <a id="8040" href="Algebra.Consequences.Setoid.html#8040" class="Bound">x</a> <a id="8042" href="Algebra.Consequences.Setoid.html#8042" class="Bound">y</a> <a id="8044" href="Algebra.Consequences.Setoid.html#8044" class="Bound">z</a> <a id="8046" class="Symbol">=</a> <a id="8048" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="8058" class="Symbol">(</a><a id="8059" href="Algebra.Consequences.Setoid.html#8042" class="Bound">y</a> <a id="8061" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator"></a> <a id="8063" href="Algebra.Consequences.Setoid.html#8044" class="Bound">z</a><a id="8064" class="Symbol">)</a> <a id="8066" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator"></a> <a id="8068" href="Algebra.Consequences.Setoid.html#8040" class="Bound">x</a> <a id="8076" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="8079" href="Algebra.Consequences.Setoid.html#7894" class="Bound">∙-comm</a> <a id="8086" class="Symbol">(</a><a id="8087" href="Algebra.Consequences.Setoid.html#8042" class="Bound">y</a> <a id="8089" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator"></a> <a id="8091" href="Algebra.Consequences.Setoid.html#8044" class="Bound">z</a><a id="8092" class="Symbol">)</a> <a id="8094" href="Algebra.Consequences.Setoid.html#8040" class="Bound">x</a> <a id="8096" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="8102" href="Algebra.Consequences.Setoid.html#8040" class="Bound">x</a> <a id="8104" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator"></a> <a id="8106" class="Symbol">(</a><a id="8107" href="Algebra.Consequences.Setoid.html#8042" class="Bound">y</a> <a id="8109" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator"></a> <a id="8111" href="Algebra.Consequences.Setoid.html#8044" class="Bound">z</a><a id="8112" class="Symbol">)</a> <a id="8120" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="8123" href="Algebra.Consequences.Setoid.html#8033" class="Bound">distrˡ</a> <a id="8130" href="Algebra.Consequences.Setoid.html#8040" class="Bound">x</a> <a id="8132" href="Algebra.Consequences.Setoid.html#8042" class="Bound">y</a> <a id="8134" href="Algebra.Consequences.Setoid.html#8044" class="Bound">z</a> <a id="8136" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="8142" class="Symbol">(</a><a id="8143" href="Algebra.Consequences.Setoid.html#8040" class="Bound">x</a> <a id="8145" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator"></a> <a id="8147" href="Algebra.Consequences.Setoid.html#8042" class="Bound">y</a><a id="8148" class="Symbol">)</a> <a id="8150" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator"></a> <a id="8152" class="Symbol">(</a><a id="8153" href="Algebra.Consequences.Setoid.html#8040" class="Bound">x</a> <a id="8155" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator"></a> <a id="8157" href="Algebra.Consequences.Setoid.html#8044" class="Bound">z</a><a id="8158" class="Symbol">)</a> <a id="8160" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="8163" href="Algebra.Consequences.Setoid.html#7859" class="Bound">◦-cong</a> <a id="8170" class="Symbol">(</a><a id="8171" href="Algebra.Consequences.Setoid.html#7894" class="Bound">∙-comm</a> <a id="8178" href="Algebra.Consequences.Setoid.html#8040" class="Bound">x</a> <a id="8180" href="Algebra.Consequences.Setoid.html#8042" class="Bound">y</a><a id="8181" class="Symbol">)</a> <a id="8183" class="Symbol">(</a><a id="8184" href="Algebra.Consequences.Setoid.html#7894" class="Bound">∙-comm</a> <a id="8191" href="Algebra.Consequences.Setoid.html#8040" class="Bound">x</a> <a id="8193" href="Algebra.Consequences.Setoid.html#8044" class="Bound">z</a><a id="8194" class="Symbol">)</a> <a id="8196" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="8202" class="Symbol">(</a><a id="8203" href="Algebra.Consequences.Setoid.html#8042" class="Bound">y</a> <a id="8205" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator"></a> <a id="8207" href="Algebra.Consequences.Setoid.html#8040" class="Bound">x</a><a id="8208" class="Symbol">)</a> <a id="8210" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator"></a> <a id="8212" class="Symbol">(</a><a id="8213" href="Algebra.Consequences.Setoid.html#8044" class="Bound">z</a> <a id="8215" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator"></a> <a id="8217" href="Algebra.Consequences.Setoid.html#8040" class="Bound">x</a><a id="8218" class="Symbol">)</a> <a id="8220" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="8225" href="Algebra.Consequences.Setoid.html#8225" class="Function">comm∧distrʳ⇒distrˡ</a> <a id="8244" class="Symbol">:</a> <a id="8246" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator">_∙_</a> <a id="8250" href="Algebra.Definitions.html#3274" class="Function Operator">DistributesOverʳ</a> <a id="8267" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator">_◦_</a> <a id="8271" class="Symbol"></a> <a id="8273" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator">_∙_</a> <a id="8277" href="Algebra.Definitions.html#3155" class="Function Operator">DistributesOverˡ</a> <a id="8294" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator">_◦_</a>
<a id="8300" href="Algebra.Consequences.Setoid.html#8225" class="Function">comm∧distrʳ⇒distrˡ</a> <a id="8319" href="Algebra.Consequences.Setoid.html#8319" class="Bound">distrˡ</a> <a id="8326" href="Algebra.Consequences.Setoid.html#8326" class="Bound">x</a> <a id="8328" href="Algebra.Consequences.Setoid.html#8328" class="Bound">y</a> <a id="8330" href="Algebra.Consequences.Setoid.html#8330" class="Bound">z</a> <a id="8332" class="Symbol">=</a> <a id="8334" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="8344" href="Algebra.Consequences.Setoid.html#8326" class="Bound">x</a> <a id="8346" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator"></a> <a id="8348" class="Symbol">(</a><a id="8349" href="Algebra.Consequences.Setoid.html#8328" class="Bound">y</a> <a id="8351" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator"></a> <a id="8353" href="Algebra.Consequences.Setoid.html#8330" class="Bound">z</a><a id="8354" class="Symbol">)</a> <a id="8362" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="8365" href="Algebra.Consequences.Setoid.html#7894" class="Bound">∙-comm</a> <a id="8372" href="Algebra.Consequences.Setoid.html#8326" class="Bound">x</a> <a id="8374" class="Symbol">(</a><a id="8375" href="Algebra.Consequences.Setoid.html#8328" class="Bound">y</a> <a id="8377" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator"></a> <a id="8379" href="Algebra.Consequences.Setoid.html#8330" class="Bound">z</a><a id="8380" class="Symbol">)</a> <a id="8382" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="8388" class="Symbol">(</a><a id="8389" href="Algebra.Consequences.Setoid.html#8328" class="Bound">y</a> <a id="8391" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator"></a> <a id="8393" href="Algebra.Consequences.Setoid.html#8330" class="Bound">z</a><a id="8394" class="Symbol">)</a> <a id="8396" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator"></a> <a id="8398" href="Algebra.Consequences.Setoid.html#8326" class="Bound">x</a> <a id="8406" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="8409" href="Algebra.Consequences.Setoid.html#8319" class="Bound">distrˡ</a> <a id="8416" href="Algebra.Consequences.Setoid.html#8326" class="Bound">x</a> <a id="8418" href="Algebra.Consequences.Setoid.html#8328" class="Bound">y</a> <a id="8420" href="Algebra.Consequences.Setoid.html#8330" class="Bound">z</a> <a id="8422" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="8428" class="Symbol">(</a><a id="8429" href="Algebra.Consequences.Setoid.html#8328" class="Bound">y</a> <a id="8431" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator"></a> <a id="8433" href="Algebra.Consequences.Setoid.html#8326" class="Bound">x</a><a id="8434" class="Symbol">)</a> <a id="8436" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator"></a> <a id="8438" class="Symbol">(</a><a id="8439" href="Algebra.Consequences.Setoid.html#8330" class="Bound">z</a> <a id="8441" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator"></a> <a id="8443" href="Algebra.Consequences.Setoid.html#8326" class="Bound">x</a><a id="8444" class="Symbol">)</a> <a id="8446" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="8449" href="Algebra.Consequences.Setoid.html#7859" class="Bound">◦-cong</a> <a id="8456" class="Symbol">(</a><a id="8457" href="Algebra.Consequences.Setoid.html#7894" class="Bound">∙-comm</a> <a id="8464" href="Algebra.Consequences.Setoid.html#8328" class="Bound">y</a> <a id="8466" href="Algebra.Consequences.Setoid.html#8326" class="Bound">x</a><a id="8467" class="Symbol">)</a> <a id="8469" class="Symbol">(</a><a id="8470" href="Algebra.Consequences.Setoid.html#7894" class="Bound">∙-comm</a> <a id="8477" href="Algebra.Consequences.Setoid.html#8330" class="Bound">z</a> <a id="8479" href="Algebra.Consequences.Setoid.html#8326" class="Bound">x</a><a id="8480" class="Symbol">)</a> <a id="8482" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="8488" class="Symbol">(</a><a id="8489" href="Algebra.Consequences.Setoid.html#8326" class="Bound">x</a> <a id="8491" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator"></a> <a id="8493" href="Algebra.Consequences.Setoid.html#8328" class="Bound">y</a><a id="8494" class="Symbol">)</a> <a id="8496" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator"></a> <a id="8498" class="Symbol">(</a><a id="8499" href="Algebra.Consequences.Setoid.html#8326" class="Bound">x</a> <a id="8501" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator"></a> <a id="8503" href="Algebra.Consequences.Setoid.html#8330" class="Bound">z</a><a id="8504" class="Symbol">)</a> <a id="8506" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="8511" href="Algebra.Consequences.Setoid.html#8511" class="Function">comm∧distrˡ⇒distr</a> <a id="8529" class="Symbol">:</a> <a id="8532" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator">_∙_</a> <a id="8536" href="Algebra.Definitions.html#3155" class="Function Operator">DistributesOverˡ</a> <a id="8553" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator">_◦_</a> <a id="8557" class="Symbol"></a> <a id="8559" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator">_∙_</a> <a id="8563" href="Algebra.Definitions.html#3393" class="Function Operator">DistributesOver</a> <a id="8579" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator">_◦_</a>
<a id="8585" href="Algebra.Consequences.Setoid.html#8511" class="Function">comm∧distrˡ⇒distr</a> <a id="8603" href="Algebra.Consequences.Setoid.html#8603" class="Bound">distrˡ</a> <a id="8610" class="Symbol">=</a> <a id="8612" href="Algebra.Consequences.Setoid.html#8603" class="Bound">distrˡ</a> <a id="8619" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="8621" href="Algebra.Consequences.Setoid.html#7938" class="Function">comm∧distrˡ⇒distrʳ</a> <a id="8640" href="Algebra.Consequences.Setoid.html#8603" class="Bound">distrˡ</a>
<a id="8650" href="Algebra.Consequences.Setoid.html#8650" class="Function">comm∧distrʳ⇒distr</a> <a id="8668" class="Symbol">:</a> <a id="8671" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator">_∙_</a> <a id="8675" href="Algebra.Definitions.html#3274" class="Function Operator">DistributesOverʳ</a> <a id="8692" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator">_◦_</a> <a id="8696" class="Symbol"></a> <a id="8698" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator">_∙_</a> <a id="8702" href="Algebra.Definitions.html#3393" class="Function Operator">DistributesOver</a> <a id="8718" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator">_◦_</a>
<a id="8724" href="Algebra.Consequences.Setoid.html#8650" class="Function">comm∧distrʳ⇒distr</a> <a id="8742" href="Algebra.Consequences.Setoid.html#8742" class="Bound">distrʳ</a> <a id="8749" class="Symbol">=</a> <a id="8751" href="Algebra.Consequences.Setoid.html#8225" class="Function">comm∧distrʳ⇒distrˡ</a> <a id="8770" href="Algebra.Consequences.Setoid.html#8742" class="Bound">distrʳ</a> <a id="8777" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="8779" href="Algebra.Consequences.Setoid.html#8742" class="Bound">distrʳ</a>
<a id="8789" href="Algebra.Consequences.Setoid.html#8789" class="Function">comm⇒sym[distribˡ]</a> <a id="8808" class="Symbol">:</a> <a id="8810" class="Symbol"></a> <a id="8812" href="Algebra.Consequences.Setoid.html#8812" class="Bound">x</a> <a id="8814" class="Symbol"></a> <a id="8816" href="Relation.Binary.Definitions.html#1587" class="Function">Symmetric</a> <a id="8826" class="Symbol"></a> <a id="8829" href="Algebra.Consequences.Setoid.html#8829" class="Bound">y</a> <a id="8831" href="Algebra.Consequences.Setoid.html#8831" class="Bound">z</a> <a id="8833" class="Symbol"></a> <a id="8835" class="Symbol">(</a><a id="8836" href="Algebra.Consequences.Setoid.html#8812" class="Bound">x</a> <a id="8838" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator"></a> <a id="8840" class="Symbol">(</a><a id="8841" href="Algebra.Consequences.Setoid.html#8829" class="Bound">y</a> <a id="8843" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator"></a> <a id="8845" href="Algebra.Consequences.Setoid.html#8831" class="Bound">z</a><a id="8846" class="Symbol">))</a> <a id="8849" href="Relation.Binary.Bundles.html#1169" class="Field Operator"></a> <a id="8851" class="Symbol">((</a><a id="8853" href="Algebra.Consequences.Setoid.html#8812" class="Bound">x</a> <a id="8855" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator"></a> <a id="8857" href="Algebra.Consequences.Setoid.html#8829" class="Bound">y</a><a id="8858" class="Symbol">)</a> <a id="8860" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator"></a> <a id="8862" class="Symbol">(</a><a id="8863" href="Algebra.Consequences.Setoid.html#8812" class="Bound">x</a> <a id="8865" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator"></a> <a id="8867" href="Algebra.Consequences.Setoid.html#8831" class="Bound">z</a><a id="8868" class="Symbol">)))</a>
<a id="8874" href="Algebra.Consequences.Setoid.html#8789" class="Function">comm⇒sym[distribˡ]</a> <a id="8893" href="Algebra.Consequences.Setoid.html#8893" class="Bound">x</a> <a id="8895" class="Symbol">{</a><a id="8896" href="Algebra.Consequences.Setoid.html#8896" class="Bound">y</a><a id="8897" class="Symbol">}</a> <a id="8899" class="Symbol">{</a><a id="8900" href="Algebra.Consequences.Setoid.html#8900" class="Bound">z</a><a id="8901" class="Symbol">}</a> <a id="8903" href="Algebra.Consequences.Setoid.html#8903" class="Bound">prf</a> <a id="8907" class="Symbol">=</a> <a id="8909" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="8919" href="Algebra.Consequences.Setoid.html#8893" class="Bound">x</a> <a id="8921" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator"></a> <a id="8923" class="Symbol">(</a><a id="8924" href="Algebra.Consequences.Setoid.html#8900" class="Bound">z</a> <a id="8926" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator"></a> <a id="8928" href="Algebra.Consequences.Setoid.html#8896" class="Bound">y</a><a id="8929" class="Symbol">)</a> <a id="8937" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="8940" href="Algebra.Consequences.Setoid.html#7859" class="Bound">◦-cong</a> <a id="8947" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="8952" class="Symbol">(</a><a id="8953" href="Algebra.Consequences.Setoid.html#7894" class="Bound">∙-comm</a> <a id="8960" href="Algebra.Consequences.Setoid.html#8900" class="Bound">z</a> <a id="8962" href="Algebra.Consequences.Setoid.html#8896" class="Bound">y</a><a id="8963" class="Symbol">)</a> <a id="8965" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="8971" href="Algebra.Consequences.Setoid.html#8893" class="Bound">x</a> <a id="8973" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator"></a> <a id="8975" class="Symbol">(</a><a id="8976" href="Algebra.Consequences.Setoid.html#8896" class="Bound">y</a> <a id="8978" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator"></a> <a id="8980" href="Algebra.Consequences.Setoid.html#8900" class="Bound">z</a><a id="8981" class="Symbol">)</a> <a id="8989" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="8992" href="Algebra.Consequences.Setoid.html#8903" class="Bound">prf</a> <a id="8996" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="9002" class="Symbol">(</a><a id="9003" href="Algebra.Consequences.Setoid.html#8893" class="Bound">x</a> <a id="9005" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator"></a> <a id="9007" href="Algebra.Consequences.Setoid.html#8896" class="Bound">y</a><a id="9008" class="Symbol">)</a> <a id="9010" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator"></a> <a id="9012" class="Symbol">(</a><a id="9013" href="Algebra.Consequences.Setoid.html#8893" class="Bound">x</a> <a id="9015" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator"></a> <a id="9017" href="Algebra.Consequences.Setoid.html#8900" class="Bound">z</a><a id="9018" class="Symbol">)</a> <a id="9020" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="9023" href="Algebra.Consequences.Setoid.html#7894" class="Bound">∙-comm</a> <a id="9030" class="Symbol">(</a><a id="9031" href="Algebra.Consequences.Setoid.html#8893" class="Bound">x</a> <a id="9033" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator"></a> <a id="9035" href="Algebra.Consequences.Setoid.html#8896" class="Bound">y</a><a id="9036" class="Symbol">)</a> <a id="9038" class="Symbol">(</a><a id="9039" href="Algebra.Consequences.Setoid.html#8893" class="Bound">x</a> <a id="9041" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator"></a> <a id="9043" href="Algebra.Consequences.Setoid.html#8900" class="Bound">z</a><a id="9044" class="Symbol">)</a> <a id="9046" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="9052" class="Symbol">(</a><a id="9053" href="Algebra.Consequences.Setoid.html#8893" class="Bound">x</a> <a id="9055" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator"></a> <a id="9057" href="Algebra.Consequences.Setoid.html#8900" class="Bound">z</a><a id="9058" class="Symbol">)</a> <a id="9060" href="Algebra.Consequences.Setoid.html#7832" class="Bound Operator"></a> <a id="9062" class="Symbol">(</a><a id="9063" href="Algebra.Consequences.Setoid.html#8893" class="Bound">x</a> <a id="9065" href="Algebra.Consequences.Setoid.html#7836" class="Bound Operator"></a> <a id="9067" href="Algebra.Consequences.Setoid.html#8896" class="Bound">y</a><a id="9068" class="Symbol">)</a> <a id="9070" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="9074" class="Keyword">module</a> <a id="9081" href="Algebra.Consequences.Setoid.html#9081" class="Module">_</a> <a id="9083" class="Symbol">{</a><a id="9084" href="Algebra.Consequences.Setoid.html#9084" class="Bound Operator">_∙_</a> <a id="9088" href="Algebra.Consequences.Setoid.html#9088" class="Bound Operator">_◦_</a> <a id="9092" class="Symbol">:</a> <a id="9094" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="9098" href="Algebra.Consequences.Setoid.html#634" class="Field">A</a><a id="9099" class="Symbol">}</a>
<a id="9110" class="Symbol">(</a><a id="9111" href="Algebra.Consequences.Setoid.html#9111" class="Bound">∙-cong</a> <a id="9119" class="Symbol">:</a> <a id="9121" href="Algebra.Definitions.html#1302" class="Function">Congruent₂</a> <a id="9132" href="Algebra.Consequences.Setoid.html#9084" class="Bound Operator">_∙_</a><a id="9135" class="Symbol">)</a>
<a id="9146" class="Symbol">(</a><a id="9147" href="Algebra.Consequences.Setoid.html#9147" class="Bound">∙-assoc</a> <a id="9155" class="Symbol">:</a> <a id="9157" href="Algebra.Definitions.html#1548" class="Function">Associative</a> <a id="9169" href="Algebra.Consequences.Setoid.html#9084" class="Bound Operator">_∙_</a><a id="9172" class="Symbol">)</a>
<a id="9183" class="Symbol">(</a><a id="9184" href="Algebra.Consequences.Setoid.html#9184" class="Bound">◦-comm</a> <a id="9192" class="Symbol">:</a> <a id="9194" href="Algebra.Definitions.html#1635" class="Function">Commutative</a> <a id="9206" href="Algebra.Consequences.Setoid.html#9088" class="Bound Operator">_◦_</a><a id="9209" class="Symbol">)</a>
<a id="9220" class="Keyword">where</a>
<a id="9229" href="Algebra.Consequences.Setoid.html#9229" class="Function">distrib∧absorbs⇒distribˡ</a> <a id="9254" class="Symbol">:</a> <a id="9256" href="Algebra.Consequences.Setoid.html#9084" class="Bound Operator">_∙_</a> <a id="9260" href="Algebra.Definitions.html#3918" class="Function Operator">Absorbs</a> <a id="9268" href="Algebra.Consequences.Setoid.html#9088" class="Bound Operator">_◦_</a> <a id="9272" class="Symbol"></a>
<a id="9303" href="Algebra.Consequences.Setoid.html#9088" class="Bound Operator">_◦_</a> <a id="9307" href="Algebra.Definitions.html#3918" class="Function Operator">Absorbs</a> <a id="9315" href="Algebra.Consequences.Setoid.html#9084" class="Bound Operator">_∙_</a> <a id="9319" class="Symbol"></a>
<a id="9350" href="Algebra.Consequences.Setoid.html#9088" class="Bound Operator">_◦_</a> <a id="9354" href="Algebra.Definitions.html#3393" class="Function Operator">DistributesOver</a> <a id="9370" href="Algebra.Consequences.Setoid.html#9084" class="Bound Operator">_∙_</a> <a id="9374" class="Symbol"></a>
<a id="9405" href="Algebra.Consequences.Setoid.html#9084" class="Bound Operator">_∙_</a> <a id="9409" href="Algebra.Definitions.html#3155" class="Function Operator">DistributesOverˡ</a> <a id="9426" href="Algebra.Consequences.Setoid.html#9088" class="Bound Operator">_◦_</a>
<a id="9432" href="Algebra.Consequences.Setoid.html#9229" class="Function">distrib∧absorbs⇒distribˡ</a> <a id="9457" href="Algebra.Consequences.Setoid.html#9457" class="Bound">∙-absorbs-◦</a> <a id="9469" href="Algebra.Consequences.Setoid.html#9469" class="Bound">◦-absorbs-∙</a> <a id="9481" class="Symbol">(</a><a id="9482" href="Algebra.Consequences.Setoid.html#9482" class="Bound">◦-distribˡ-∙</a> <a id="9495" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="9497" href="Algebra.Consequences.Setoid.html#9497" class="Bound">◦-distribʳ-∙</a><a id="9509" class="Symbol">)</a> <a id="9511" href="Algebra.Consequences.Setoid.html#9511" class="Bound">x</a> <a id="9513" href="Algebra.Consequences.Setoid.html#9513" class="Bound">y</a> <a id="9515" href="Algebra.Consequences.Setoid.html#9515" class="Bound">z</a> <a id="9517" class="Symbol">=</a> <a id="9519" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="9529" href="Algebra.Consequences.Setoid.html#9511" class="Bound">x</a> <a id="9531" href="Algebra.Consequences.Setoid.html#9084" class="Bound Operator"></a> <a id="9533" class="Symbol">(</a><a id="9534" href="Algebra.Consequences.Setoid.html#9513" class="Bound">y</a> <a id="9536" href="Algebra.Consequences.Setoid.html#9088" class="Bound Operator"></a> <a id="9538" href="Algebra.Consequences.Setoid.html#9515" class="Bound">z</a><a id="9539" class="Symbol">)</a> <a id="9560" href="Relation.Binary.Reasoning.Syntax.html#7074" class="Function">≈⟨</a> <a id="9563" href="Algebra.Consequences.Setoid.html#9111" class="Bound">∙-cong</a> <a id="9570" class="Symbol">(</a><a id="9571" href="Algebra.Consequences.Setoid.html#9457" class="Bound">∙-absorbs-◦</a> <a id="9583" class="Symbol">_</a> <a id="9585" class="Symbol">_)</a> <a id="9588" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="9593" href="Relation.Binary.Reasoning.Syntax.html#7074" class="Function"></a>
<a id="9599" class="Symbol">(</a><a id="9600" href="Algebra.Consequences.Setoid.html#9511" class="Bound">x</a> <a id="9602" href="Algebra.Consequences.Setoid.html#9084" class="Bound Operator"></a> <a id="9604" class="Symbol">(</a><a id="9605" href="Algebra.Consequences.Setoid.html#9511" class="Bound">x</a> <a id="9607" href="Algebra.Consequences.Setoid.html#9088" class="Bound Operator"></a> <a id="9609" href="Algebra.Consequences.Setoid.html#9513" class="Bound">y</a><a id="9610" class="Symbol">))</a> <a id="9613" href="Algebra.Consequences.Setoid.html#9084" class="Bound Operator"></a> <a id="9615" class="Symbol">(</a><a id="9616" href="Algebra.Consequences.Setoid.html#9513" class="Bound">y</a> <a id="9618" href="Algebra.Consequences.Setoid.html#9088" class="Bound Operator"></a> <a id="9620" href="Algebra.Consequences.Setoid.html#9515" class="Bound">z</a><a id="9621" class="Symbol">)</a> <a id="9630" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="9634" href="Algebra.Consequences.Setoid.html#9111" class="Bound">∙-cong</a> <a id="9641" class="Symbol">(</a><a id="9642" href="Algebra.Consequences.Setoid.html#9111" class="Bound">∙-cong</a> <a id="9649" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="9654" class="Symbol">(</a><a id="9655" href="Algebra.Consequences.Setoid.html#9184" class="Bound">◦-comm</a> <a id="9662" class="Symbol">_</a> <a id="9664" class="Symbol">_))</a> <a id="9668" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="9673" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="9679" class="Symbol">(</a><a id="9680" href="Algebra.Consequences.Setoid.html#9511" class="Bound">x</a> <a id="9682" href="Algebra.Consequences.Setoid.html#9084" class="Bound Operator"></a> <a id="9684" class="Symbol">(</a><a id="9685" href="Algebra.Consequences.Setoid.html#9513" class="Bound">y</a> <a id="9687" href="Algebra.Consequences.Setoid.html#9088" class="Bound Operator"></a> <a id="9689" href="Algebra.Consequences.Setoid.html#9511" class="Bound">x</a><a id="9690" class="Symbol">))</a> <a id="9693" href="Algebra.Consequences.Setoid.html#9084" class="Bound Operator"></a> <a id="9695" class="Symbol">(</a><a id="9696" href="Algebra.Consequences.Setoid.html#9513" class="Bound">y</a> <a id="9698" href="Algebra.Consequences.Setoid.html#9088" class="Bound Operator"></a> <a id="9700" href="Algebra.Consequences.Setoid.html#9515" class="Bound">z</a><a id="9701" class="Symbol">)</a> <a id="9710" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="9714" href="Algebra.Consequences.Setoid.html#9147" class="Bound">∙-assoc</a> <a id="9722" class="Symbol">_</a> <a id="9724" class="Symbol">_</a> <a id="9726" class="Symbol">_</a> <a id="9728" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="9734" href="Algebra.Consequences.Setoid.html#9511" class="Bound">x</a> <a id="9736" href="Algebra.Consequences.Setoid.html#9084" class="Bound Operator"></a> <a id="9738" class="Symbol">((</a><a id="9740" href="Algebra.Consequences.Setoid.html#9513" class="Bound">y</a> <a id="9742" href="Algebra.Consequences.Setoid.html#9088" class="Bound Operator"></a> <a id="9744" href="Algebra.Consequences.Setoid.html#9511" class="Bound">x</a><a id="9745" class="Symbol">)</a> <a id="9747" href="Algebra.Consequences.Setoid.html#9084" class="Bound Operator"></a> <a id="9749" class="Symbol">(</a><a id="9750" href="Algebra.Consequences.Setoid.html#9513" class="Bound">y</a> <a id="9752" href="Algebra.Consequences.Setoid.html#9088" class="Bound Operator"></a> <a id="9754" href="Algebra.Consequences.Setoid.html#9515" class="Bound">z</a><a id="9755" class="Symbol">))</a> <a id="9765" href="Relation.Binary.Reasoning.Syntax.html#7074" class="Function">≈⟨</a> <a id="9768" href="Algebra.Consequences.Setoid.html#9111" class="Bound">∙-cong</a> <a id="9775" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="9780" class="Symbol">(</a><a id="9781" href="Algebra.Consequences.Setoid.html#9482" class="Bound">◦-distribˡ-∙</a> <a id="9794" class="Symbol">_</a> <a id="9796" class="Symbol">_</a> <a id="9798" class="Symbol">_)</a> <a id="9801" href="Relation.Binary.Reasoning.Syntax.html#7074" class="Function"></a>
<a id="9807" href="Algebra.Consequences.Setoid.html#9511" class="Bound">x</a> <a id="9809" href="Algebra.Consequences.Setoid.html#9084" class="Bound Operator"></a> <a id="9811" class="Symbol">(</a><a id="9812" href="Algebra.Consequences.Setoid.html#9513" class="Bound">y</a> <a id="9814" href="Algebra.Consequences.Setoid.html#9088" class="Bound Operator"></a> <a id="9816" class="Symbol">(</a><a id="9817" href="Algebra.Consequences.Setoid.html#9511" class="Bound">x</a> <a id="9819" href="Algebra.Consequences.Setoid.html#9084" class="Bound Operator"></a> <a id="9821" href="Algebra.Consequences.Setoid.html#9515" class="Bound">z</a><a id="9822" class="Symbol">))</a> <a id="9838" href="Relation.Binary.Reasoning.Syntax.html#7074" class="Function">≈⟨</a> <a id="9841" href="Algebra.Consequences.Setoid.html#9111" class="Bound">∙-cong</a> <a id="9848" class="Symbol">(</a><a id="9849" href="Algebra.Consequences.Setoid.html#9469" class="Bound">◦-absorbs-∙</a> <a id="9861" class="Symbol">_</a> <a id="9863" class="Symbol">_)</a> <a id="9866" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="9871" href="Relation.Binary.Reasoning.Syntax.html#7074" class="Function"></a>
<a id="9877" class="Symbol">(</a><a id="9878" href="Algebra.Consequences.Setoid.html#9511" class="Bound">x</a> <a id="9880" href="Algebra.Consequences.Setoid.html#9088" class="Bound Operator"></a> <a id="9882" class="Symbol">(</a><a id="9883" href="Algebra.Consequences.Setoid.html#9511" class="Bound">x</a> <a id="9885" href="Algebra.Consequences.Setoid.html#9084" class="Bound Operator"></a> <a id="9887" href="Algebra.Consequences.Setoid.html#9515" class="Bound">z</a><a id="9888" class="Symbol">))</a> <a id="9891" href="Algebra.Consequences.Setoid.html#9084" class="Bound Operator"></a> <a id="9893" class="Symbol">(</a><a id="9894" href="Algebra.Consequences.Setoid.html#9513" class="Bound">y</a> <a id="9896" href="Algebra.Consequences.Setoid.html#9088" class="Bound Operator"></a> <a id="9898" class="Symbol">(</a><a id="9899" href="Algebra.Consequences.Setoid.html#9511" class="Bound">x</a> <a id="9901" href="Algebra.Consequences.Setoid.html#9084" class="Bound Operator"></a> <a id="9903" href="Algebra.Consequences.Setoid.html#9515" class="Bound">z</a><a id="9904" class="Symbol">))</a> <a id="9908" href="Relation.Binary.Reasoning.Syntax.html#7074" class="Function">≈⟨</a> <a id="9911" href="Algebra.Consequences.Setoid.html#9497" class="Bound">◦-distribʳ-∙</a> <a id="9924" class="Symbol">_</a> <a id="9926" class="Symbol">_</a> <a id="9928" class="Symbol">_</a> <a id="9930" href="Relation.Binary.Reasoning.Syntax.html#7074" class="Function"></a>
<a id="9936" class="Symbol">(</a><a id="9937" href="Algebra.Consequences.Setoid.html#9511" class="Bound">x</a> <a id="9939" href="Algebra.Consequences.Setoid.html#9084" class="Bound Operator"></a> <a id="9941" href="Algebra.Consequences.Setoid.html#9513" class="Bound">y</a><a id="9942" class="Symbol">)</a> <a id="9944" href="Algebra.Consequences.Setoid.html#9088" class="Bound Operator"></a> <a id="9946" class="Symbol">(</a><a id="9947" href="Algebra.Consequences.Setoid.html#9511" class="Bound">x</a> <a id="9949" href="Algebra.Consequences.Setoid.html#9084" class="Bound Operator"></a> <a id="9951" href="Algebra.Consequences.Setoid.html#9515" class="Bound">z</a><a id="9952" class="Symbol">)</a> <a id="9967" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="9970" class="Comment">------------------------------------------------------------------------</a>
<a id="10043" class="Comment">-- Ring-like structures</a>
<a id="10068" class="Keyword">module</a> <a id="10075" href="Algebra.Consequences.Setoid.html#10075" class="Module">_</a> <a id="10077" class="Symbol">{</a><a id="10078" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">_+_</a> <a id="10082" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">_*_</a> <a id="10086" class="Symbol">:</a> <a id="10088" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="10092" href="Algebra.Consequences.Setoid.html#634" class="Field">A</a><a id="10093" class="Symbol">}</a>
<a id="10104" class="Symbol">{</a><a id="10105" href="Algebra.Consequences.Setoid.html#10105" class="Bound Operator">_⁻¹</a> <a id="10109" class="Symbol">:</a> <a id="10111" href="Algebra.Core.html#484" class="Function">Op₁</a> <a id="10115" href="Algebra.Consequences.Setoid.html#634" class="Field">A</a><a id="10116" class="Symbol">}</a> <a id="10118" class="Symbol">{</a><a id="10119" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="10122" class="Symbol">:</a> <a id="10124" href="Algebra.Consequences.Setoid.html#634" class="Field">A</a><a id="10125" class="Symbol">}</a>
<a id="10136" class="Symbol">(</a><a id="10137" href="Algebra.Consequences.Setoid.html#10137" class="Bound">+-cong</a> <a id="10144" class="Symbol">:</a> <a id="10146" href="Algebra.Definitions.html#1302" class="Function">Congruent₂</a> <a id="10157" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">_+_</a><a id="10160" class="Symbol">)</a>
<a id="10171" class="Symbol">(</a><a id="10172" href="Algebra.Consequences.Setoid.html#10172" class="Bound">*-cong</a> <a id="10179" class="Symbol">:</a> <a id="10181" href="Algebra.Definitions.html#1302" class="Function">Congruent₂</a> <a id="10192" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">_*_</a><a id="10195" class="Symbol">)</a>
<a id="10206" class="Keyword">where</a>
<a id="10215" href="Algebra.Consequences.Setoid.html#10215" class="Function">assoc∧distribʳ∧idʳ∧invʳ⇒zeˡ</a> <a id="10243" class="Symbol">:</a> <a id="10245" href="Algebra.Definitions.html#1548" class="Function">Associative</a> <a id="10257" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">_+_</a> <a id="10261" class="Symbol"></a> <a id="10263" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">_*_</a> <a id="10267" href="Algebra.Definitions.html#3274" class="Function Operator">DistributesOverʳ</a> <a id="10284" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">_+_</a> <a id="10288" class="Symbol"></a>
<a id="10322" href="Algebra.Definitions.html#1781" class="Function">RightIdentity</a> <a id="10336" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="10339" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">_+_</a> <a id="10343" class="Symbol"></a> <a id="10345" href="Algebra.Definitions.html#2232" class="Function">RightInverse</a> <a id="10358" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="10361" href="Algebra.Consequences.Setoid.html#10105" class="Bound Operator">_⁻¹</a> <a id="10365" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">_+_</a> <a id="10369" class="Symbol"></a>
<a id="10403" href="Algebra.Definitions.html#1942" class="Function">LeftZero</a> <a id="10412" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="10415" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">_*_</a>
<a id="10421" href="Algebra.Consequences.Setoid.html#10215" class="Function">assoc∧distribʳ∧idʳ∧invʳ⇒zeˡ</a> <a id="10449" href="Algebra.Consequences.Setoid.html#10449" class="Bound">+-assoc</a> <a id="10457" href="Algebra.Consequences.Setoid.html#10457" class="Bound">distribʳ</a> <a id="10466" href="Algebra.Consequences.Setoid.html#10466" class="Bound">idʳ</a> <a id="10470" href="Algebra.Consequences.Setoid.html#10470" class="Bound">invʳ</a> <a id="10476" href="Algebra.Consequences.Setoid.html#10476" class="Bound">x</a> <a id="10478" class="Symbol">=</a> <a id="10480" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="10490" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="10493" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">*</a> <a id="10495" href="Algebra.Consequences.Setoid.html#10476" class="Bound">x</a> <a id="10529" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="10532" href="Relation.Binary.Structures.html#1200" class="Function">sym</a> <a id="10536" class="Symbol">(</a><a id="10537" href="Algebra.Consequences.Setoid.html#10466" class="Bound">idʳ</a> <a id="10541" class="Symbol">_)</a> <a id="10544" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="10550" class="Symbol">(</a><a id="10551" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="10554" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">*</a> <a id="10556" href="Algebra.Consequences.Setoid.html#10476" class="Bound">x</a><a id="10557" class="Symbol">)</a> <a id="10559" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">+</a> <a id="10561" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="10589" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="10592" href="Algebra.Consequences.Setoid.html#10137" class="Bound">+-cong</a> <a id="10599" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="10604" class="Symbol">(</a><a id="10605" href="Relation.Binary.Structures.html#1200" class="Function">sym</a> <a id="10609" class="Symbol">(</a><a id="10610" href="Algebra.Consequences.Setoid.html#10470" class="Bound">invʳ</a> <a id="10615" class="Symbol">_))</a> <a id="10619" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="10625" class="Symbol">(</a><a id="10626" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="10629" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">*</a> <a id="10631" href="Algebra.Consequences.Setoid.html#10476" class="Bound">x</a><a id="10632" class="Symbol">)</a> <a id="10634" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">+</a> <a id="10636" class="Symbol">((</a><a id="10638" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="10641" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">*</a> <a id="10643" href="Algebra.Consequences.Setoid.html#10476" class="Bound">x</a><a id="10644" class="Symbol">)</a> <a id="10647" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">+</a> <a id="10649" class="Symbol">((</a><a id="10651" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="10654" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">*</a> <a id="10656" href="Algebra.Consequences.Setoid.html#10476" class="Bound">x</a><a id="10657" class="Symbol">)</a><a id="10658" href="Algebra.Consequences.Setoid.html#10105" class="Bound Operator">⁻¹</a><a id="10660" class="Symbol">))</a> <a id="10664" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="10667" href="Relation.Binary.Structures.html#1200" class="Function">sym</a> <a id="10671" class="Symbol">(</a><a id="10672" href="Algebra.Consequences.Setoid.html#10449" class="Bound">+-assoc</a> <a id="10680" class="Symbol">_</a> <a id="10682" class="Symbol">_</a> <a id="10684" class="Symbol">_)</a> <a id="10687" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="10693" class="Symbol">((</a><a id="10695" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="10698" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">*</a> <a id="10700" href="Algebra.Consequences.Setoid.html#10476" class="Bound">x</a><a id="10701" class="Symbol">)</a> <a id="10703" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">+</a> <a id="10706" class="Symbol">(</a><a id="10707" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="10710" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">*</a> <a id="10712" href="Algebra.Consequences.Setoid.html#10476" class="Bound">x</a><a id="10713" class="Symbol">))</a> <a id="10716" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">+</a> <a id="10718" class="Symbol">((</a><a id="10720" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="10723" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">*</a> <a id="10725" href="Algebra.Consequences.Setoid.html#10476" class="Bound">x</a><a id="10726" class="Symbol">)</a><a id="10727" href="Algebra.Consequences.Setoid.html#10105" class="Bound Operator">⁻¹</a><a id="10729" class="Symbol">)</a> <a id="10732" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="10735" href="Algebra.Consequences.Setoid.html#10137" class="Bound">+-cong</a> <a id="10742" class="Symbol">(</a><a id="10743" href="Relation.Binary.Structures.html#1200" class="Function">sym</a> <a id="10747" class="Symbol">(</a><a id="10748" href="Algebra.Consequences.Setoid.html#10457" class="Bound">distribʳ</a> <a id="10757" class="Symbol">_</a> <a id="10759" class="Symbol">_</a> <a id="10761" class="Symbol">_))</a> <a id="10765" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="10770" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="10776" class="Symbol">((</a><a id="10778" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="10781" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">+</a> <a id="10783" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a><a id="10785" class="Symbol">)</a> <a id="10787" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">*</a> <a id="10789" href="Algebra.Consequences.Setoid.html#10476" class="Bound">x</a><a id="10790" class="Symbol">)</a> <a id="10792" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">+</a> <a id="10794" class="Symbol">((</a><a id="10796" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="10799" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">*</a> <a id="10801" href="Algebra.Consequences.Setoid.html#10476" class="Bound">x</a><a id="10802" class="Symbol">)</a><a id="10803" href="Algebra.Consequences.Setoid.html#10105" class="Bound Operator">⁻¹</a><a id="10805" class="Symbol">)</a> <a id="10815" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="10818" href="Algebra.Consequences.Setoid.html#10137" class="Bound">+-cong</a> <a id="10825" class="Symbol">(</a><a id="10826" href="Algebra.Consequences.Setoid.html#10172" class="Bound">*-cong</a> <a id="10833" class="Symbol">(</a><a id="10834" href="Algebra.Consequences.Setoid.html#10466" class="Bound">idʳ</a> <a id="10838" class="Symbol">_)</a> <a id="10841" href="Relation.Binary.Structures.html#1596" class="Function">refl</a><a id="10845" class="Symbol">)</a> <a id="10847" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="10852" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="10858" class="Symbol">(</a><a id="10859" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="10862" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">*</a> <a id="10864" href="Algebra.Consequences.Setoid.html#10476" class="Bound">x</a><a id="10865" class="Symbol">)</a> <a id="10867" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">+</a> <a id="10869" class="Symbol">((</a><a id="10871" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="10874" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">*</a> <a id="10876" href="Algebra.Consequences.Setoid.html#10476" class="Bound">x</a><a id="10877" class="Symbol">)</a><a id="10878" href="Algebra.Consequences.Setoid.html#10105" class="Bound Operator">⁻¹</a><a id="10880" class="Symbol">)</a> <a id="10897" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="10900" href="Algebra.Consequences.Setoid.html#10470" class="Bound">invʳ</a> <a id="10905" class="Symbol">_</a> <a id="10907" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="10913" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="10952" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="10957" href="Algebra.Consequences.Setoid.html#10957" class="Function">assoc∧distribˡ∧idʳ∧invʳ⇒zeʳ</a> <a id="10985" class="Symbol">:</a> <a id="10987" href="Algebra.Definitions.html#1548" class="Function">Associative</a> <a id="10999" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">_+_</a> <a id="11003" class="Symbol"></a> <a id="11005" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">_*_</a> <a id="11009" href="Algebra.Definitions.html#3155" class="Function Operator">DistributesOverˡ</a> <a id="11026" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">_+_</a> <a id="11030" class="Symbol"></a>
<a id="11064" href="Algebra.Definitions.html#1781" class="Function">RightIdentity</a> <a id="11078" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="11081" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">_+_</a> <a id="11085" class="Symbol"></a> <a id="11087" href="Algebra.Definitions.html#2232" class="Function">RightInverse</a> <a id="11100" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="11103" href="Algebra.Consequences.Setoid.html#10105" class="Bound Operator">_⁻¹</a> <a id="11107" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">_+_</a> <a id="11111" class="Symbol"></a>
<a id="11145" href="Algebra.Definitions.html#2007" class="Function">RightZero</a> <a id="11155" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="11158" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">_*_</a>
<a id="11164" href="Algebra.Consequences.Setoid.html#10957" class="Function">assoc∧distribˡ∧idʳ∧invʳ⇒zeʳ</a> <a id="11192" href="Algebra.Consequences.Setoid.html#11192" class="Bound">+-assoc</a> <a id="11200" href="Algebra.Consequences.Setoid.html#11200" class="Bound">distribˡ</a> <a id="11209" href="Algebra.Consequences.Setoid.html#11209" class="Bound">idʳ</a> <a id="11213" href="Algebra.Consequences.Setoid.html#11213" class="Bound">invʳ</a> <a id="11219" href="Algebra.Consequences.Setoid.html#11219" class="Bound">x</a> <a id="11221" class="Symbol">=</a> <a id="11223" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin</a>
<a id="11234" href="Algebra.Consequences.Setoid.html#11219" class="Bound">x</a> <a id="11236" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">*</a> <a id="11238" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="11272" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="11275" href="Relation.Binary.Structures.html#1200" class="Function">sym</a> <a id="11279" class="Symbol">(</a><a id="11280" href="Algebra.Consequences.Setoid.html#11209" class="Bound">idʳ</a> <a id="11284" class="Symbol">_)</a> <a id="11287" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="11294" class="Symbol">(</a><a id="11295" href="Algebra.Consequences.Setoid.html#11219" class="Bound">x</a> <a id="11297" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">*</a> <a id="11299" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a><a id="11301" class="Symbol">)</a> <a id="11303" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">+</a> <a id="11305" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="11332" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="11335" href="Algebra.Consequences.Setoid.html#10137" class="Bound">+-cong</a> <a id="11342" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="11347" class="Symbol">(</a><a id="11348" href="Relation.Binary.Structures.html#1200" class="Function">sym</a> <a id="11352" class="Symbol">(</a><a id="11353" href="Algebra.Consequences.Setoid.html#11213" class="Bound">invʳ</a> <a id="11358" class="Symbol">_))</a> <a id="11362" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="11369" class="Symbol">(</a><a id="11370" href="Algebra.Consequences.Setoid.html#11219" class="Bound">x</a> <a id="11372" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">*</a> <a id="11374" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a><a id="11376" class="Symbol">)</a> <a id="11378" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">+</a> <a id="11380" class="Symbol">((</a><a id="11382" href="Algebra.Consequences.Setoid.html#11219" class="Bound">x</a> <a id="11384" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">*</a> <a id="11386" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a><a id="11388" class="Symbol">)</a> <a id="11390" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">+</a> <a id="11392" class="Symbol">((</a><a id="11394" href="Algebra.Consequences.Setoid.html#11219" class="Bound">x</a> <a id="11396" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">*</a> <a id="11398" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a><a id="11400" class="Symbol">)</a><a id="11401" href="Algebra.Consequences.Setoid.html#10105" class="Bound Operator">⁻¹</a><a id="11403" class="Symbol">))</a> <a id="11407" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="11410" href="Relation.Binary.Structures.html#1200" class="Function">sym</a> <a id="11414" class="Symbol">(</a><a id="11415" href="Algebra.Consequences.Setoid.html#11192" class="Bound">+-assoc</a> <a id="11423" class="Symbol">_</a> <a id="11425" class="Symbol">_</a> <a id="11427" class="Symbol">_)</a> <a id="11430" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="11437" class="Symbol">((</a><a id="11439" href="Algebra.Consequences.Setoid.html#11219" class="Bound">x</a> <a id="11441" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">*</a> <a id="11443" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a><a id="11445" class="Symbol">)</a> <a id="11447" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">+</a> <a id="11449" class="Symbol">(</a><a id="11450" href="Algebra.Consequences.Setoid.html#11219" class="Bound">x</a> <a id="11452" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">*</a> <a id="11454" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a><a id="11456" class="Symbol">))</a> <a id="11459" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">+</a> <a id="11461" class="Symbol">((</a><a id="11463" href="Algebra.Consequences.Setoid.html#11219" class="Bound">x</a> <a id="11465" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">*</a> <a id="11467" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a><a id="11469" class="Symbol">)</a><a id="11470" href="Algebra.Consequences.Setoid.html#10105" class="Bound Operator">⁻¹</a><a id="11472" class="Symbol">)</a> <a id="11475" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="11478" href="Algebra.Consequences.Setoid.html#10137" class="Bound">+-cong</a> <a id="11485" class="Symbol">(</a><a id="11486" href="Relation.Binary.Structures.html#1200" class="Function">sym</a> <a id="11490" class="Symbol">(</a><a id="11491" href="Algebra.Consequences.Setoid.html#11200" class="Bound">distribˡ</a> <a id="11500" class="Symbol">_</a> <a id="11502" class="Symbol">_</a> <a id="11504" class="Symbol">_))</a> <a id="11508" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="11513" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="11520" class="Symbol">(</a><a id="11521" href="Algebra.Consequences.Setoid.html#11219" class="Bound">x</a> <a id="11523" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">*</a> <a id="11525" class="Symbol">(</a><a id="11526" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="11529" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">+</a> <a id="11531" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a><a id="11533" class="Symbol">))</a> <a id="11536" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">+</a> <a id="11538" class="Symbol">((</a><a id="11540" href="Algebra.Consequences.Setoid.html#11219" class="Bound">x</a> <a id="11542" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">*</a> <a id="11544" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a><a id="11546" class="Symbol">)</a><a id="11547" href="Algebra.Consequences.Setoid.html#10105" class="Bound Operator">⁻¹</a><a id="11549" class="Symbol">)</a> <a id="11558" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="11561" href="Algebra.Consequences.Setoid.html#10137" class="Bound">+-cong</a> <a id="11568" class="Symbol">(</a><a id="11569" href="Algebra.Consequences.Setoid.html#10172" class="Bound">*-cong</a> <a id="11576" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="11581" class="Symbol">(</a><a id="11582" href="Algebra.Consequences.Setoid.html#11209" class="Bound">idʳ</a> <a id="11586" class="Symbol">_))</a> <a id="11590" href="Relation.Binary.Structures.html#1596" class="Function">refl</a> <a id="11595" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="11602" class="Symbol">((</a><a id="11604" href="Algebra.Consequences.Setoid.html#11219" class="Bound">x</a> <a id="11606" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">*</a> <a id="11608" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a><a id="11610" class="Symbol">)</a> <a id="11612" href="Algebra.Consequences.Setoid.html#10078" class="Bound Operator">+</a> <a id="11614" class="Symbol">((</a><a id="11616" href="Algebra.Consequences.Setoid.html#11219" class="Bound">x</a> <a id="11618" href="Algebra.Consequences.Setoid.html#10082" class="Bound Operator">*</a> <a id="11620" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a><a id="11622" class="Symbol">)</a><a id="11623" href="Algebra.Consequences.Setoid.html#10105" class="Bound Operator">⁻¹</a><a id="11625" class="Symbol">))</a> <a id="11640" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">≈⟨</a> <a id="11643" href="Algebra.Consequences.Setoid.html#11213" class="Bound">invʳ</a> <a id="11648" class="Symbol">_</a> <a id="11650" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function"></a>
<a id="11657" href="Algebra.Consequences.Setoid.html#10119" class="Bound">0#</a> <a id="11695" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator"></a>
<a id="11698" class="Comment">------------------------------------------------------------------------</a>
<a id="11771" class="Comment">-- Without Loss of Generality</a>
<a id="11802" class="Keyword">module</a> <a id="11809" href="Algebra.Consequences.Setoid.html#11809" class="Module">_</a> <a id="11811" class="Symbol">{</a><a id="11812" href="Algebra.Consequences.Setoid.html#11812" class="Bound">p</a><a id="11813" class="Symbol">}</a> <a id="11815" class="Symbol">{</a><a id="11816" href="Algebra.Consequences.Setoid.html#11816" class="Bound">f</a> <a id="11818" class="Symbol">:</a> <a id="11820" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="11824" href="Algebra.Consequences.Setoid.html#634" class="Field">A</a><a id="11825" class="Symbol">}</a> <a id="11827" class="Symbol">{</a><a id="11828" href="Algebra.Consequences.Setoid.html#11828" class="Bound">P</a> <a id="11830" class="Symbol">:</a> <a id="11832" href="Relation.Unary.html#1232" class="Function">Pred</a> <a id="11837" href="Algebra.Consequences.Setoid.html#634" class="Field">A</a> <a id="11839" href="Algebra.Consequences.Setoid.html#11812" class="Bound">p</a><a id="11840" class="Symbol">}</a>
<a id="11851" class="Symbol">(</a><a id="11852" href="Algebra.Consequences.Setoid.html#11852" class="Bound">≈-subst</a> <a id="11860" class="Symbol">:</a> <a id="11862" href="Relation.Binary.Definitions.html#5955" class="Function">Substitutive</a> <a id="11875" href="Relation.Binary.Bundles.html#1169" class="Field Operator">_≈_</a> <a id="11879" href="Algebra.Consequences.Setoid.html#11812" class="Bound">p</a><a id="11880" class="Symbol">)</a>
<a id="11891" class="Symbol">(</a><a id="11892" href="Algebra.Consequences.Setoid.html#11892" class="Bound">comm</a> <a id="11897" class="Symbol">:</a> <a id="11899" href="Algebra.Definitions.html#1635" class="Function">Commutative</a> <a id="11911" href="Algebra.Consequences.Setoid.html#11816" class="Bound">f</a><a id="11912" class="Symbol">)</a>
<a id="11923" class="Keyword">where</a>
<a id="11932" href="Algebra.Consequences.Setoid.html#11932" class="Function">subst∧comm⇒sym</a> <a id="11947" class="Symbol">:</a> <a id="11949" href="Relation.Binary.Definitions.html#1587" class="Function">Symmetric</a> <a id="11959" class="Symbol"></a> <a id="11962" href="Algebra.Consequences.Setoid.html#11962" class="Bound">a</a> <a id="11964" href="Algebra.Consequences.Setoid.html#11964" class="Bound">b</a> <a id="11966" class="Symbol"></a> <a id="11968" href="Algebra.Consequences.Setoid.html#11828" class="Bound">P</a> <a id="11970" class="Symbol">(</a><a id="11971" href="Algebra.Consequences.Setoid.html#11816" class="Bound">f</a> <a id="11973" href="Algebra.Consequences.Setoid.html#11962" class="Bound">a</a> <a id="11975" href="Algebra.Consequences.Setoid.html#11964" class="Bound">b</a><a id="11976" class="Symbol">))</a>
<a id="11981" href="Algebra.Consequences.Setoid.html#11932" class="Function">subst∧comm⇒sym</a> <a id="11996" class="Symbol">=</a> <a id="11998" href="Algebra.Consequences.Setoid.html#11852" class="Bound">≈-subst</a> <a id="12006" href="Algebra.Consequences.Setoid.html#11828" class="Bound">P</a> <a id="12008" class="Symbol">(</a><a id="12009" href="Algebra.Consequences.Setoid.html#11892" class="Bound">comm</a> <a id="12014" class="Symbol">_</a> <a id="12016" class="Symbol">_)</a>
<a id="12022" href="Algebra.Consequences.Setoid.html#12022" class="Function">wlog</a> <a id="12027" class="Symbol">:</a> <a id="12029" class="Symbol"></a> <a id="12031" class="Symbol">{</a><a id="12032" href="Algebra.Consequences.Setoid.html#12032" class="Bound">r</a><a id="12033" class="Symbol">}</a> <a id="12035" class="Symbol">{</a><a id="12036" href="Algebra.Consequences.Setoid.html#12036" class="Bound Operator">_R_</a> <a id="12040" class="Symbol">:</a> <a id="12042" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="12046" class="Symbol">_</a> <a id="12048" href="Algebra.Consequences.Setoid.html#12032" class="Bound">r</a><a id="12049" class="Symbol">}</a> <a id="12051" class="Symbol"></a> <a id="12053" href="Relation.Binary.Definitions.html#2910" class="Function">Total</a> <a id="12059" href="Algebra.Consequences.Setoid.html#12036" class="Bound Operator">_R_</a> <a id="12063" class="Symbol"></a>
<a id="12074" class="Symbol">(∀</a> <a id="12077" href="Algebra.Consequences.Setoid.html#12077" class="Bound">a</a> <a id="12079" href="Algebra.Consequences.Setoid.html#12079" class="Bound">b</a> <a id="12081" class="Symbol"></a> <a id="12083" href="Algebra.Consequences.Setoid.html#12077" class="Bound">a</a> <a id="12085" href="Algebra.Consequences.Setoid.html#12036" class="Bound Operator">R</a> <a id="12087" href="Algebra.Consequences.Setoid.html#12079" class="Bound">b</a> <a id="12089" class="Symbol"></a> <a id="12091" href="Algebra.Consequences.Setoid.html#11828" class="Bound">P</a> <a id="12093" class="Symbol">(</a><a id="12094" href="Algebra.Consequences.Setoid.html#11816" class="Bound">f</a> <a id="12096" href="Algebra.Consequences.Setoid.html#12077" class="Bound">a</a> <a id="12098" href="Algebra.Consequences.Setoid.html#12079" class="Bound">b</a><a id="12099" class="Symbol">))</a> <a id="12102" class="Symbol"></a>
<a id="12113" class="Symbol"></a> <a id="12115" href="Algebra.Consequences.Setoid.html#12115" class="Bound">a</a> <a id="12117" href="Algebra.Consequences.Setoid.html#12117" class="Bound">b</a> <a id="12119" class="Symbol"></a> <a id="12121" href="Algebra.Consequences.Setoid.html#11828" class="Bound">P</a> <a id="12123" class="Symbol">(</a><a id="12124" href="Algebra.Consequences.Setoid.html#11816" class="Bound">f</a> <a id="12126" href="Algebra.Consequences.Setoid.html#12115" class="Bound">a</a> <a id="12128" href="Algebra.Consequences.Setoid.html#12117" class="Bound">b</a><a id="12129" class="Symbol">)</a>
<a id="12133" href="Algebra.Consequences.Setoid.html#12022" class="Function">wlog</a> <a id="12138" href="Algebra.Consequences.Setoid.html#12138" class="Bound">r-total</a> <a id="12146" class="Symbol">=</a> <a id="12148" href="Relation.Binary.Consequences.html#6623" class="Function">Bin.wlog</a> <a id="12157" href="Algebra.Consequences.Setoid.html#12138" class="Bound">r-total</a> <a id="12165" href="Algebra.Consequences.Setoid.html#11932" class="Function">subst∧comm⇒sym</a>
<a id="12182" class="Comment">------------------------------------------------------------------------</a>
<a id="12255" class="Comment">-- DEPRECATED NAMES</a>
<a id="12275" class="Comment">------------------------------------------------------------------------</a>
<a id="12348" class="Comment">-- Please use the new names as continuing support for the old names is</a>
<a id="12419" class="Comment">-- not guaranteed.</a>
<a id="12439" class="Comment">-- Version 2.0</a>
<a id="comm+assoc⇒middleFour"></a><a id="12455" href="Algebra.Consequences.Setoid.html#12455" class="Function">comm+assoc⇒middleFour</a> <a id="12477" class="Symbol">=</a> <a id="12479" href="Algebra.Consequences.Setoid.html#1335" class="Function">comm∧assoc⇒middleFour</a>
<a id="12501" class="Symbol">{-#</a> <a id="12505" class="Keyword">WARNING_ON_USAGE</a> <a id="12522" class="Pragma">comm+assoc⇒middleFour</a>
<a id="12544" class="String">&quot;Warning: comm+assoc⇒middleFour was deprecated in v2.0.
Please use comm∧assoc⇒middleFour instead.&quot;</a>
<a id="12643" class="Symbol">#-}</a>
<a id="identity+middleFour⇒assoc"></a><a id="12647" href="Algebra.Consequences.Setoid.html#12647" class="Function">identity+middleFour⇒assoc</a> <a id="12673" class="Symbol">=</a> <a id="12675" href="Algebra.Consequences.Setoid.html#1790" class="Function">identity∧middleFour⇒assoc</a>
<a id="12701" class="Symbol">{-#</a> <a id="12705" class="Keyword">WARNING_ON_USAGE</a> <a id="12722" class="Pragma">identity+middleFour⇒assoc</a>
<a id="12748" class="String">&quot;Warning: identity+middleFour⇒assoc was deprecated in v2.0.
Please use identity∧middleFour⇒assoc instead.&quot;</a>
<a id="12855" class="Symbol">#-}</a>
<a id="identity+middleFour⇒comm"></a><a id="12859" href="Algebra.Consequences.Setoid.html#12859" class="Function">identity+middleFour⇒comm</a> <a id="12884" class="Symbol">=</a> <a id="12886" href="Algebra.Consequences.Setoid.html#2212" class="Function">identity∧middleFour⇒comm</a>
<a id="12911" class="Symbol">{-#</a> <a id="12915" class="Keyword">WARNING_ON_USAGE</a> <a id="12932" class="Pragma">identity+middleFour⇒comm</a>
<a id="12957" class="String">&quot;Warning: identity+middleFour⇒comm was deprecated in v2.0.
Please use identity∧middleFour⇒comm instead.&quot;</a>
<a id="13062" class="Symbol">#-}</a>
<a id="comm+cancelˡ⇒cancelʳ"></a><a id="13066" href="Algebra.Consequences.Setoid.html#13066" class="Function">comm+cancelˡ⇒cancelʳ</a> <a id="13087" class="Symbol">=</a> <a id="13089" href="Algebra.Consequences.Setoid.html#3744" class="Function">comm∧cancelˡ⇒cancelʳ</a>
<a id="13110" class="Symbol">{-#</a> <a id="13114" class="Keyword">WARNING_ON_USAGE</a> <a id="13131" class="Pragma">comm+cancelˡ⇒cancelʳ</a>
<a id="13152" class="String">&quot;Warning: comm+cancelˡ⇒cancelʳ was deprecated in v2.0.
Please use comm∧cancelˡ⇒cancelʳ instead.&quot;</a>
<a id="13249" class="Symbol">#-}</a>
<a id="comm+cancelʳ⇒cancelˡ"></a><a id="13253" href="Algebra.Consequences.Setoid.html#13253" class="Function">comm+cancelʳ⇒cancelˡ</a> <a id="13274" class="Symbol">=</a> <a id="13276" href="Algebra.Consequences.Setoid.html#3957" class="Function">comm∧cancelʳ⇒cancelˡ</a>
<a id="13297" class="Symbol">{-#</a> <a id="13301" class="Keyword">WARNING_ON_USAGE</a> <a id="13318" class="Pragma">comm+cancelʳ⇒cancelˡ</a>
<a id="13339" class="String">&quot;Warning: comm+cancelʳ⇒cancelˡ was deprecated in v2.0.
Please use comm∧cancelʳ⇒cancelˡ instead.&quot;</a>
<a id="13436" class="Symbol">#-}</a>
<a id="comm+idˡ⇒idʳ"></a><a id="13440" href="Algebra.Consequences.Setoid.html#13440" class="Function">comm+idˡ⇒idʳ</a> <a id="13453" class="Symbol">=</a> <a id="13455" href="Algebra.Consequences.Setoid.html#4333" class="Function">comm∧idˡ⇒idʳ</a>
<a id="13468" class="Symbol">{-#</a> <a id="13472" class="Keyword">WARNING_ON_USAGE</a> <a id="13489" class="Pragma">comm+idˡ⇒idʳ</a>
<a id="13502" class="String">&quot;Warning: comm+idˡ⇒idʳ was deprecated in v2.0.
Please use comm∧idˡ⇒idʳ instead.&quot;</a>
<a id="13583" class="Symbol">#-}</a>
<a id="comm+idʳ⇒idˡ"></a><a id="13587" href="Algebra.Consequences.Setoid.html#13587" class="Function">comm+idʳ⇒idˡ</a> <a id="13600" class="Symbol">=</a> <a id="13602" href="Algebra.Consequences.Setoid.html#4478" class="Function">comm∧idʳ⇒idˡ</a>
<a id="13615" class="Symbol">{-#</a> <a id="13619" class="Keyword">WARNING_ON_USAGE</a> <a id="13636" class="Pragma">comm+idʳ⇒idˡ</a>
<a id="13649" class="String">&quot;Warning: comm+idʳ⇒idˡ was deprecated in v2.0.
Please use comm∧idʳ⇒idˡ instead.&quot;</a>
<a id="13730" class="Symbol">#-}</a>
<a id="comm+zeˡ⇒zeʳ"></a><a id="13734" href="Algebra.Consequences.Setoid.html#13734" class="Function">comm+zeˡ⇒zeʳ</a> <a id="13747" class="Symbol">=</a> <a id="13749" href="Algebra.Consequences.Setoid.html#4816" class="Function">comm∧zeˡ⇒zeʳ</a>
<a id="13762" class="Symbol">{-#</a> <a id="13766" class="Keyword">WARNING_ON_USAGE</a> <a id="13783" class="Pragma">comm+zeˡ⇒zeʳ</a>
<a id="13796" class="String">&quot;Warning: comm+zeˡ⇒zeʳ was deprecated in v2.0.
Please use comm∧zeˡ⇒zeʳ instead.&quot;</a>
<a id="13877" class="Symbol">#-}</a>
<a id="comm+zeʳ⇒zeˡ"></a><a id="13881" href="Algebra.Consequences.Setoid.html#13881" class="Function">comm+zeʳ⇒zeˡ</a> <a id="13894" class="Symbol">=</a> <a id="13896" href="Algebra.Consequences.Setoid.html#4953" class="Function">comm∧zeʳ⇒zeˡ</a>
<a id="13909" class="Symbol">{-#</a> <a id="13913" class="Keyword">WARNING_ON_USAGE</a> <a id="13930" class="Pragma">comm+zeʳ⇒zeˡ</a>
<a id="13943" class="String">&quot;Warning: comm+zeʳ⇒zeˡ was deprecated in v2.0.
Please use comm∧zeʳ⇒zeˡ instead.&quot;</a>
<a id="14024" class="Symbol">#-}</a>
<a id="comm+almostCancelˡ⇒almostCancelʳ"></a><a id="14028" href="Algebra.Consequences.Setoid.html#14028" class="Function">comm+almostCancelˡ⇒almostCancelʳ</a> <a id="14061" class="Symbol">=</a> <a id="14063" href="Algebra.Consequences.Setoid.html#5267" class="Function">comm∧almostCancelˡ⇒almostCancelʳ</a>
<a id="14096" class="Symbol">{-#</a> <a id="14100" class="Keyword">WARNING_ON_USAGE</a> <a id="14117" class="Pragma">comm+almostCancelˡ⇒almostCancelʳ</a>
<a id="14150" class="String">&quot;Warning: comm+almostCancelˡ⇒almostCancelʳ was deprecated in v2.0.
Please use comm∧almostCancelˡ⇒almostCancelʳ instead.&quot;</a>
<a id="14271" class="Symbol">#-}</a>
<a id="comm+almostCancelʳ⇒almostCancelˡ"></a><a id="14275" href="Algebra.Consequences.Setoid.html#14275" class="Function">comm+almostCancelʳ⇒almostCancelˡ</a> <a id="14308" class="Symbol">=</a> <a id="14310" href="Algebra.Consequences.Setoid.html#5599" class="Function">comm∧almostCancelʳ⇒almostCancelˡ</a>
<a id="14343" class="Symbol">{-#</a> <a id="14347" class="Keyword">WARNING_ON_USAGE</a> <a id="14364" class="Pragma">comm+almostCancelʳ⇒almostCancelˡ</a>
<a id="14397" class="String">&quot;Warning: comm+almostCancelʳ⇒almostCancelˡ was deprecated in v2.0.
Please use comm∧almostCancelʳ⇒almostCancelˡ instead.&quot;</a>
<a id="14518" class="Symbol">#-}</a>
<a id="comm+invˡ⇒invʳ"></a><a id="14522" href="Algebra.Consequences.Setoid.html#14522" class="Function">comm+invˡ⇒invʳ</a> <a id="14537" class="Symbol">=</a> <a id="14539" href="Algebra.Consequences.Setoid.html#6103" class="Function">comm∧invˡ⇒invʳ</a>
<a id="14554" class="Symbol">{-#</a> <a id="14558" class="Keyword">WARNING_ON_USAGE</a> <a id="14575" class="Pragma">comm+invˡ⇒invʳ</a>
<a id="14590" class="String">&quot;Warning: comm+invˡ⇒invʳ was deprecated in v2.0.
Please use comm∧invˡ⇒invʳ instead.&quot;</a>
<a id="14675" class="Symbol">#-}</a>
<a id="comm+invʳ⇒invˡ"></a><a id="14679" href="Algebra.Consequences.Setoid.html#14679" class="Function">comm+invʳ⇒invˡ</a> <a id="14694" class="Symbol">=</a> <a id="14696" href="Algebra.Consequences.Setoid.html#6391" class="Function">comm∧invʳ⇒invˡ</a>
<a id="14711" class="Symbol">{-#</a> <a id="14715" class="Keyword">WARNING_ON_USAGE</a> <a id="14732" class="Pragma">comm+invʳ⇒invˡ</a>
<a id="14747" class="String">&quot;Warning: comm+invʳ⇒invˡ was deprecated in v2.0.
Please use comm∧invʳ⇒invˡ instead.&quot;</a>
<a id="14832" class="Symbol">#-}</a>
<a id="comm+invˡ⇒inv"></a><a id="14836" href="Algebra.Consequences.Setoid.html#14836" class="Function">comm+invˡ⇒inv</a> <a id="14850" class="Symbol">=</a> <a id="14852" href="Algebra.Consequences.Setoid.html#6280" class="Function">comm∧invˡ⇒inv</a>
<a id="14866" class="Symbol">{-#</a> <a id="14870" class="Keyword">WARNING_ON_USAGE</a> <a id="14887" class="Pragma">comm+invˡ⇒inv</a>
<a id="14901" class="String">&quot;Warning: comm+invˡ⇒inv was deprecated in v2.0.
Please use comm∧invˡ⇒inv instead.&quot;</a>
<a id="14984" class="Symbol">#-}</a>
<a id="comm+invʳ⇒inv"></a><a id="14988" href="Algebra.Consequences.Setoid.html#14988" class="Function">comm+invʳ⇒inv</a> <a id="15002" class="Symbol">=</a> <a id="15004" href="Algebra.Consequences.Setoid.html#6568" class="Function">comm∧invʳ⇒inv</a>
<a id="15018" class="Symbol">{-#</a> <a id="15022" class="Keyword">WARNING_ON_USAGE</a> <a id="15039" class="Pragma">comm+invʳ⇒inv</a>
<a id="15053" class="String">&quot;Warning: comm+invʳ⇒inv was deprecated in v2.0.
Please use comm∧invʳ⇒inv instead.&quot;</a>
<a id="15136" class="Symbol">#-}</a>
<a id="comm+distrˡ⇒distrʳ"></a><a id="15140" href="Algebra.Consequences.Setoid.html#15140" class="Function">comm+distrˡ⇒distrʳ</a> <a id="15159" class="Symbol">=</a> <a id="15161" href="Algebra.Consequences.Setoid.html#7938" class="Function">comm∧distrˡ⇒distrʳ</a>
<a id="15180" class="Symbol">{-#</a> <a id="15184" class="Keyword">WARNING_ON_USAGE</a> <a id="15201" class="Pragma">comm+distrˡ⇒distrʳ</a>
<a id="15220" class="String">&quot;Warning: comm+distrˡ⇒distrʳ was deprecated in v2.0.
Please use comm∧distrˡ⇒distrʳ instead.&quot;</a>
<a id="15313" class="Symbol">#-}</a>
<a id="comm+distrʳ⇒distrˡ"></a><a id="15317" href="Algebra.Consequences.Setoid.html#15317" class="Function">comm+distrʳ⇒distrˡ</a> <a id="15336" class="Symbol">=</a> <a id="15338" href="Algebra.Consequences.Setoid.html#8225" class="Function">comm∧distrʳ⇒distrˡ</a>
<a id="15357" class="Symbol">{-#</a> <a id="15361" class="Keyword">WARNING_ON_USAGE</a> <a id="15378" class="Pragma">comm+distrʳ⇒distrˡ</a>
<a id="15397" class="String">&quot;Warning: comm+distrʳ⇒distrˡ was deprecated in v2.0.
Please use comm∧distrʳ⇒distrˡ instead.&quot;</a>
<a id="15490" class="Symbol">#-}</a>
<a id="assoc+distribʳ+idʳ+invʳ⇒zeˡ"></a><a id="15494" href="Algebra.Consequences.Setoid.html#15494" class="Function">assoc+distribʳ+idʳ+invʳ⇒zeˡ</a> <a id="15522" class="Symbol">=</a> <a id="15524" href="Algebra.Consequences.Setoid.html#10215" class="Function">assoc∧distribʳ∧idʳ∧invʳ⇒zeˡ</a>
<a id="15552" class="Symbol">{-#</a> <a id="15556" class="Keyword">WARNING_ON_USAGE</a> <a id="15573" class="Pragma">assoc+distribʳ+idʳ+invʳ⇒zeˡ</a>
<a id="15601" class="String">&quot;Warning: assoc+distribʳ+idʳ+invʳ⇒zeˡ was deprecated in v2.0.
Please use assoc∧distribʳ∧idʳ∧invʳ⇒zeˡ instead.&quot;</a>
<a id="15712" class="Symbol">#-}</a>
<a id="assoc+distribˡ+idʳ+invʳ⇒zeʳ"></a><a id="15716" href="Algebra.Consequences.Setoid.html#15716" class="Function">assoc+distribˡ+idʳ+invʳ⇒zeʳ</a> <a id="15744" class="Symbol">=</a> <a id="15746" href="Algebra.Consequences.Setoid.html#10957" class="Function">assoc∧distribˡ∧idʳ∧invʳ⇒zeʳ</a>
<a id="15774" class="Symbol">{-#</a> <a id="15778" class="Keyword">WARNING_ON_USAGE</a> <a id="15795" class="Pragma">assoc+distribˡ+idʳ+invʳ⇒zeʳ</a>
<a id="15823" class="String">&quot;Warning: assoc+distribˡ+idʳ+invʳ⇒zeʳ was deprecated in v2.0.
Please use assoc∧distribˡ∧idʳ∧invʳ⇒zeʳ instead.&quot;</a>
<a id="15934" class="Symbol">#-}</a>
<a id="assoc+id+invʳ⇒invˡ-unique"></a><a id="15938" href="Algebra.Consequences.Setoid.html#15938" class="Function">assoc+id+invʳ⇒invˡ-unique</a> <a id="15964" class="Symbol">=</a> <a id="15966" href="Algebra.Consequences.Setoid.html#6752" class="Function">assoc∧id∧invʳ⇒invˡ-unique</a>
<a id="15992" class="Symbol">{-#</a> <a id="15996" class="Keyword">WARNING_ON_USAGE</a> <a id="16013" class="Pragma">assoc+id+invʳ⇒invˡ-unique</a>
<a id="16039" class="String">&quot;Warning: assoc+id+invʳ⇒invˡ-unique was deprecated in v2.0.
Please use assoc∧id∧invʳ⇒invˡ-unique instead.&quot;</a>
<a id="16146" class="Symbol">#-}</a>
<a id="assoc+id+invˡ⇒invʳ-unique"></a><a id="16150" href="Algebra.Consequences.Setoid.html#16150" class="Function">assoc+id+invˡ⇒invʳ-unique</a> <a id="16176" class="Symbol">=</a> <a id="16178" href="Algebra.Consequences.Setoid.html#7239" class="Function">assoc∧id∧invˡ⇒invʳ-unique</a>
<a id="16204" class="Symbol">{-#</a> <a id="16208" class="Keyword">WARNING_ON_USAGE</a> <a id="16225" class="Pragma">assoc+id+invˡ⇒invʳ-unique</a>
<a id="16251" class="String">&quot;Warning: assoc+id+invˡ⇒invʳ-unique was deprecated in v2.0.
Please use assoc∧id∧invˡ⇒invʳ-unique instead.&quot;</a>
<a id="16358" class="Symbol">#-}</a>
<a id="subst+comm⇒sym"></a><a id="16362" href="Algebra.Consequences.Setoid.html#16362" class="Function">subst+comm⇒sym</a> <a id="16377" class="Symbol">=</a> <a id="16379" href="Algebra.Consequences.Setoid.html#11932" class="Function">subst∧comm⇒sym</a>
<a id="16394" class="Symbol">{-#</a> <a id="16398" class="Keyword">WARNING_ON_USAGE</a> <a id="16415" class="Pragma">subst+comm⇒sym</a>
<a id="16430" class="String">&quot;Warning: subst+comm⇒sym was deprecated in v2.0.
Please use subst∧comm⇒sym instead.&quot;</a>
<a id="16515" class="Symbol">#-}</a>
</pre></body></html>