rachel.cafe/agda/Algebra.Consequences.Setoid...

216 lines
107 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!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">--without-K</a> <a id="335" class="Pragma">--safe</a> <a id="342" class="Symbol">#-}</a>
<a id="347" class="Keyword">open</a> <a id="352" class="Keyword">import</a> <a id="359" href="Relation.Binary.html" class="Module">Relation.Binary</a> <a id="375" class="Keyword">using</a> <a id="381" class="Symbol">(</a><a id="382" href="Relation.Binary.Core.html#882" class="Function">Rel</a><a id="385" class="Symbol">;</a> <a id="387" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a><a id="393" class="Symbol">;</a> <a id="395" href="Relation.Binary.Definitions.html#4369" class="Function">Substitutive</a><a id="407" class="Symbol">;</a> <a id="409" href="Relation.Binary.Definitions.html#1498" class="Function">Symmetric</a><a id="418" class="Symbol">;</a> <a id="420" href="Relation.Binary.Definitions.html#2584" class="Function">Total</a><a id="425" class="Symbol">)</a>
<a id="428" class="Keyword">module</a> <a id="435" href="Algebra.Consequences.Setoid.html" class="Module">Algebra.Consequences.Setoid</a> <a id="463" class="Symbol">{</a><a id="464" href="Algebra.Consequences.Setoid.html#464" class="Bound">a</a> <a id="466" href="Algebra.Consequences.Setoid.html#466" class="Bound"></a><a id="467" class="Symbol">}</a> <a id="469" class="Symbol">(</a><a id="470" href="Algebra.Consequences.Setoid.html#470" class="Bound">S</a> <a id="472" class="Symbol">:</a> <a id="474" href="Relation.Binary.Bundles.html#1009" class="Record">Setoid</a> <a id="481" href="Algebra.Consequences.Setoid.html#464" class="Bound">a</a> <a id="483" href="Algebra.Consequences.Setoid.html#466" class="Bound"></a><a id="484" class="Symbol">)</a> <a id="486" class="Keyword">where</a>
<a id="493" class="Keyword">open</a> <a id="498" href="Relation.Binary.Bundles.html#1009" class="Module">Setoid</a> <a id="505" href="Algebra.Consequences.Setoid.html#470" class="Bound">S</a> <a id="507" class="Keyword">renaming</a> <a id="516" class="Symbol">(</a><a id="517" href="Relation.Binary.Bundles.html#1072" class="Field">Carrier</a> <a id="525" class="Symbol">to</a> <a id="528" class="Field">A</a><a id="529" class="Symbol">)</a>
<a id="531" class="Keyword">open</a> <a id="536" class="Keyword">import</a> <a id="543" href="Algebra.Core.html" class="Module">Algebra.Core</a>
<a id="556" class="Keyword">open</a> <a id="561" class="Keyword">import</a> <a id="568" href="Algebra.Definitions.html" class="Module">Algebra.Definitions</a> <a id="588" href="Relation.Binary.Bundles.html#1098" class="Field Operator">_≈_</a>
<a id="592" class="Keyword">open</a> <a id="597" class="Keyword">import</a> <a id="604" href="Data.Sum.Base.html" class="Module">Data.Sum.Base</a> <a id="618" class="Keyword">using</a> <a id="624" class="Symbol">(</a><a id="625" href="Data.Sum.Base.html#784" class="InductiveConstructor">inj₁</a><a id="629" class="Symbol">;</a> <a id="631" href="Data.Sum.Base.html#809" class="InductiveConstructor">inj₂</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="Data.Product.html" class="Module">Data.Product</a> <a id="662" class="Keyword">using</a> <a id="668" class="Symbol">(</a><a id="669" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">_,_</a><a id="672" class="Symbol">)</a>
<a id="674" class="Keyword">open</a> <a id="679" class="Keyword">import</a> <a id="686" href="Function.Base.html" class="Module">Function.Base</a> <a id="700" class="Keyword">using</a> <a id="706" class="Symbol">(</a><a id="707" href="Function.Base.html#1919" class="Function Operator">_$_</a><a id="710" class="Symbol">)</a>
<a id="712" class="Keyword">import</a> <a id="719" href="Relation.Binary.Consequences.html" class="Module">Relation.Binary.Consequences</a> <a id="748" class="Symbol">as</a> <a id="751" class="Module">Bin</a>
<a id="755" class="Keyword">open</a> <a id="760" class="Keyword">import</a> <a id="767" href="Relation.Binary.Reasoning.Setoid.html" class="Module">Relation.Binary.Reasoning.Setoid</a> <a id="800" href="Algebra.Consequences.Setoid.html#470" class="Bound">S</a>
<a id="802" class="Keyword">open</a> <a id="807" class="Keyword">import</a> <a id="814" href="Relation.Unary.html" class="Module">Relation.Unary</a> <a id="829" class="Keyword">using</a> <a id="835" class="Symbol">(</a><a id="836" href="Relation.Unary.html#1101" class="Function">Pred</a><a id="840" class="Symbol">)</a>
<a id="843" class="Comment">------------------------------------------------------------------------</a>
<a id="916" class="Comment">-- Re-exports</a>
<a id="931" class="Comment">-- Export base lemmas that don&#39;t require the setoid</a>
<a id="984" class="Keyword">open</a> <a id="989" class="Keyword">import</a> <a id="996" href="Algebra.Consequences.Base.html" class="Module">Algebra.Consequences.Base</a> <a id="1022" class="Keyword">public</a>
<a id="1030" class="Comment">------------------------------------------------------------------------</a>
<a id="1103" class="Comment">-- Magma-like structures</a>
<a id="1129" class="Keyword">module</a> <a id="1136" href="Algebra.Consequences.Setoid.html#1136" class="Module">_</a> <a id="1138" class="Symbol">{</a><a id="1139" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator">_•_</a> <a id="1143" class="Symbol">:</a> <a id="1145" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="1149" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a><a id="1150" class="Symbol">}</a> <a id="1152" class="Symbol">(</a><a id="1153" href="Algebra.Consequences.Setoid.html#1153" class="Bound">comm</a> <a id="1158" class="Symbol">:</a> <a id="1160" href="Algebra.Definitions.html#1195" class="Function">Commutative</a> <a id="1172" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator">_•_</a><a id="1175" class="Symbol">)</a> <a id="1177" class="Keyword">where</a>
<a id="1186" href="Algebra.Consequences.Setoid.html#1186" class="Function">comm+cancelˡ⇒cancelʳ</a> <a id="1207" class="Symbol">:</a> <a id="1209" href="Algebra.Definitions.html#3082" class="Function">LeftCancellative</a> <a id="1226" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator">_•_</a> <a id="1230" class="Symbol"></a> <a id="1232" href="Algebra.Definitions.html#3177" class="Function">RightCancellative</a> <a id="1250" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator">_•_</a>
<a id="1256" href="Algebra.Consequences.Setoid.html#1186" class="Function">comm+cancelˡ⇒cancelʳ</a> <a id="1277" href="Algebra.Consequences.Setoid.html#1277" class="Bound">cancelˡ</a> <a id="1285" class="Symbol">{</a><a id="1286" href="Algebra.Consequences.Setoid.html#1286" class="Bound">x</a><a id="1287" class="Symbol">}</a> <a id="1289" href="Algebra.Consequences.Setoid.html#1289" class="Bound">y</a> <a id="1291" href="Algebra.Consequences.Setoid.html#1291" class="Bound">z</a> <a id="1293" href="Algebra.Consequences.Setoid.html#1293" class="Bound">eq</a> <a id="1296" class="Symbol">=</a> <a id="1298" href="Algebra.Consequences.Setoid.html#1277" class="Bound">cancelˡ</a> <a id="1306" href="Algebra.Consequences.Setoid.html#1286" class="Bound">x</a> <a id="1308" href="Function.Base.html#1919" class="Function Operator">$</a> <a id="1310" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="1320" href="Algebra.Consequences.Setoid.html#1286" class="Bound">x</a> <a id="1322" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator"></a> <a id="1324" href="Algebra.Consequences.Setoid.html#1289" class="Bound">y</a> <a id="1326" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="1329" href="Algebra.Consequences.Setoid.html#1153" class="Bound">comm</a> <a id="1334" href="Algebra.Consequences.Setoid.html#1286" class="Bound">x</a> <a id="1336" href="Algebra.Consequences.Setoid.html#1289" class="Bound">y</a> <a id="1338" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="1344" href="Algebra.Consequences.Setoid.html#1289" class="Bound">y</a> <a id="1346" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator"></a> <a id="1348" href="Algebra.Consequences.Setoid.html#1286" class="Bound">x</a> <a id="1350" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="1353" href="Algebra.Consequences.Setoid.html#1293" class="Bound">eq</a> <a id="1356" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="1362" href="Algebra.Consequences.Setoid.html#1291" class="Bound">z</a> <a id="1364" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator"></a> <a id="1366" href="Algebra.Consequences.Setoid.html#1286" class="Bound">x</a> <a id="1368" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="1371" href="Algebra.Consequences.Setoid.html#1153" class="Bound">comm</a> <a id="1376" href="Algebra.Consequences.Setoid.html#1291" class="Bound">z</a> <a id="1378" href="Algebra.Consequences.Setoid.html#1286" class="Bound">x</a> <a id="1380" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="1386" href="Algebra.Consequences.Setoid.html#1286" class="Bound">x</a> <a id="1388" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator"></a> <a id="1390" href="Algebra.Consequences.Setoid.html#1291" class="Bound">z</a> <a id="1392" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="1397" href="Algebra.Consequences.Setoid.html#1397" class="Function">comm+cancelʳ⇒cancelˡ</a> <a id="1418" class="Symbol">:</a> <a id="1420" href="Algebra.Definitions.html#3177" class="Function">RightCancellative</a> <a id="1438" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator">_•_</a> <a id="1442" class="Symbol"></a> <a id="1444" href="Algebra.Definitions.html#3082" class="Function">LeftCancellative</a> <a id="1461" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator">_•_</a>
<a id="1467" href="Algebra.Consequences.Setoid.html#1397" class="Function">comm+cancelʳ⇒cancelˡ</a> <a id="1488" href="Algebra.Consequences.Setoid.html#1488" class="Bound">cancelʳ</a> <a id="1496" href="Algebra.Consequences.Setoid.html#1496" class="Bound">x</a> <a id="1498" class="Symbol">{</a><a id="1499" href="Algebra.Consequences.Setoid.html#1499" class="Bound">y</a><a id="1500" class="Symbol">}</a> <a id="1502" class="Symbol">{</a><a id="1503" href="Algebra.Consequences.Setoid.html#1503" class="Bound">z</a><a id="1504" class="Symbol">}</a> <a id="1506" href="Algebra.Consequences.Setoid.html#1506" class="Bound">eq</a> <a id="1509" class="Symbol">=</a> <a id="1511" href="Algebra.Consequences.Setoid.html#1488" class="Bound">cancelʳ</a> <a id="1519" href="Algebra.Consequences.Setoid.html#1499" class="Bound">y</a> <a id="1521" href="Algebra.Consequences.Setoid.html#1503" class="Bound">z</a> <a id="1523" href="Function.Base.html#1919" class="Function Operator">$</a> <a id="1525" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="1535" href="Algebra.Consequences.Setoid.html#1499" class="Bound">y</a> <a id="1537" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator"></a> <a id="1539" href="Algebra.Consequences.Setoid.html#1496" class="Bound">x</a> <a id="1541" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="1544" href="Algebra.Consequences.Setoid.html#1153" class="Bound">comm</a> <a id="1549" href="Algebra.Consequences.Setoid.html#1499" class="Bound">y</a> <a id="1551" href="Algebra.Consequences.Setoid.html#1496" class="Bound">x</a> <a id="1553" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="1559" href="Algebra.Consequences.Setoid.html#1496" class="Bound">x</a> <a id="1561" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator"></a> <a id="1563" href="Algebra.Consequences.Setoid.html#1499" class="Bound">y</a> <a id="1565" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="1568" href="Algebra.Consequences.Setoid.html#1506" class="Bound">eq</a> <a id="1571" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="1577" href="Algebra.Consequences.Setoid.html#1496" class="Bound">x</a> <a id="1579" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator"></a> <a id="1581" href="Algebra.Consequences.Setoid.html#1503" class="Bound">z</a> <a id="1583" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="1586" href="Algebra.Consequences.Setoid.html#1153" class="Bound">comm</a> <a id="1591" href="Algebra.Consequences.Setoid.html#1496" class="Bound">x</a> <a id="1593" href="Algebra.Consequences.Setoid.html#1503" class="Bound">z</a> <a id="1595" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="1601" href="Algebra.Consequences.Setoid.html#1503" class="Bound">z</a> <a id="1603" href="Algebra.Consequences.Setoid.html#1139" class="Bound Operator"></a> <a id="1605" href="Algebra.Consequences.Setoid.html#1496" class="Bound">x</a> <a id="1607" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="1610" class="Comment">------------------------------------------------------------------------</a>
<a id="1683" class="Comment">-- Monoid-like structures</a>
<a id="1710" class="Keyword">module</a> <a id="1717" href="Algebra.Consequences.Setoid.html#1717" class="Module">_</a> <a id="1719" class="Symbol">{</a><a id="1720" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a> <a id="1724" class="Symbol">:</a> <a id="1726" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="1730" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a><a id="1731" class="Symbol">}</a> <a id="1733" class="Symbol">(</a><a id="1734" href="Algebra.Consequences.Setoid.html#1734" class="Bound">comm</a> <a id="1739" class="Symbol">:</a> <a id="1741" href="Algebra.Definitions.html#1195" class="Function">Commutative</a> <a id="1753" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a><a id="1756" class="Symbol">)</a> <a id="1758" class="Symbol">{</a><a id="1759" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="1761" class="Symbol">:</a> <a id="1763" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a><a id="1764" class="Symbol">}</a> <a id="1766" class="Keyword">where</a>
<a id="1775" href="Algebra.Consequences.Setoid.html#1775" class="Function">comm+idˡ⇒idʳ</a> <a id="1788" class="Symbol">:</a> <a id="1790" href="Algebra.Definitions.html#1268" class="Function">LeftIdentity</a> <a id="1803" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="1805" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a> <a id="1809" class="Symbol"></a> <a id="1811" href="Algebra.Definitions.html#1341" class="Function">RightIdentity</a> <a id="1825" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="1827" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a>
<a id="1833" href="Algebra.Consequences.Setoid.html#1775" class="Function">comm+idˡ⇒idʳ</a> <a id="1846" href="Algebra.Consequences.Setoid.html#1846" class="Bound">idˡ</a> <a id="1850" href="Algebra.Consequences.Setoid.html#1850" class="Bound">x</a> <a id="1852" class="Symbol">=</a> <a id="1854" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="1864" href="Algebra.Consequences.Setoid.html#1850" class="Bound">x</a> <a id="1866" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="1868" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="1870" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="1873" href="Algebra.Consequences.Setoid.html#1734" class="Bound">comm</a> <a id="1878" href="Algebra.Consequences.Setoid.html#1850" class="Bound">x</a> <a id="1880" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="1882" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="1888" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="1890" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="1892" href="Algebra.Consequences.Setoid.html#1850" class="Bound">x</a> <a id="1894" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="1897" href="Algebra.Consequences.Setoid.html#1846" class="Bound">idˡ</a> <a id="1901" href="Algebra.Consequences.Setoid.html#1850" class="Bound">x</a> <a id="1903" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="1909" href="Algebra.Consequences.Setoid.html#1850" class="Bound">x</a> <a id="1915" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="1920" href="Algebra.Consequences.Setoid.html#1920" class="Function">comm+idʳ⇒idˡ</a> <a id="1933" class="Symbol">:</a> <a id="1935" href="Algebra.Definitions.html#1341" class="Function">RightIdentity</a> <a id="1949" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="1951" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a> <a id="1955" class="Symbol"></a> <a id="1957" href="Algebra.Definitions.html#1268" class="Function">LeftIdentity</a> <a id="1970" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="1972" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a>
<a id="1978" href="Algebra.Consequences.Setoid.html#1920" class="Function">comm+idʳ⇒idˡ</a> <a id="1991" href="Algebra.Consequences.Setoid.html#1991" class="Bound">idʳ</a> <a id="1995" href="Algebra.Consequences.Setoid.html#1995" class="Bound">x</a> <a id="1997" class="Symbol">=</a> <a id="1999" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="2009" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2011" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2013" href="Algebra.Consequences.Setoid.html#1995" class="Bound">x</a> <a id="2015" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="2018" href="Algebra.Consequences.Setoid.html#1734" class="Bound">comm</a> <a id="2023" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2025" href="Algebra.Consequences.Setoid.html#1995" class="Bound">x</a> <a id="2027" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="2033" href="Algebra.Consequences.Setoid.html#1995" class="Bound">x</a> <a id="2035" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2037" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2039" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="2042" href="Algebra.Consequences.Setoid.html#1991" class="Bound">idʳ</a> <a id="2046" href="Algebra.Consequences.Setoid.html#1995" class="Bound">x</a> <a id="2048" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="2054" href="Algebra.Consequences.Setoid.html#1995" class="Bound">x</a> <a id="2060" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="2065" href="Algebra.Consequences.Setoid.html#2065" class="Function">comm+zeˡ⇒zeʳ</a> <a id="2078" class="Symbol">:</a> <a id="2080" href="Algebra.Definitions.html#1502" class="Function">LeftZero</a> <a id="2089" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2091" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a> <a id="2095" class="Symbol"></a> <a id="2097" href="Algebra.Definitions.html#1567" class="Function">RightZero</a> <a id="2107" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2109" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a>
<a id="2115" href="Algebra.Consequences.Setoid.html#2065" class="Function">comm+zeˡ⇒zeʳ</a> <a id="2128" href="Algebra.Consequences.Setoid.html#2128" class="Bound">zeˡ</a> <a id="2132" href="Algebra.Consequences.Setoid.html#2132" class="Bound">x</a> <a id="2134" class="Symbol">=</a> <a id="2136" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="2146" href="Algebra.Consequences.Setoid.html#2132" class="Bound">x</a> <a id="2148" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2150" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2152" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="2155" href="Algebra.Consequences.Setoid.html#1734" class="Bound">comm</a> <a id="2160" href="Algebra.Consequences.Setoid.html#2132" class="Bound">x</a> <a id="2162" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2164" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="2170" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2172" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2174" href="Algebra.Consequences.Setoid.html#2132" class="Bound">x</a> <a id="2176" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="2179" href="Algebra.Consequences.Setoid.html#2128" class="Bound">zeˡ</a> <a id="2183" href="Algebra.Consequences.Setoid.html#2132" class="Bound">x</a> <a id="2185" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="2191" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2197" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="2202" href="Algebra.Consequences.Setoid.html#2202" class="Function">comm+zeʳ⇒zeˡ</a> <a id="2215" class="Symbol">:</a> <a id="2217" href="Algebra.Definitions.html#1567" class="Function">RightZero</a> <a id="2227" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2229" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a> <a id="2233" class="Symbol"></a> <a id="2235" href="Algebra.Definitions.html#1502" class="Function">LeftZero</a> <a id="2244" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2246" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a>
<a id="2252" href="Algebra.Consequences.Setoid.html#2202" class="Function">comm+zeʳ⇒zeˡ</a> <a id="2265" href="Algebra.Consequences.Setoid.html#2265" class="Bound">zeʳ</a> <a id="2269" href="Algebra.Consequences.Setoid.html#2269" class="Bound">x</a> <a id="2271" class="Symbol">=</a> <a id="2273" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="2283" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2285" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2287" href="Algebra.Consequences.Setoid.html#2269" class="Bound">x</a> <a id="2289" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="2292" href="Algebra.Consequences.Setoid.html#1734" class="Bound">comm</a> <a id="2297" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2299" href="Algebra.Consequences.Setoid.html#2269" class="Bound">x</a> <a id="2301" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="2307" href="Algebra.Consequences.Setoid.html#2269" class="Bound">x</a> <a id="2309" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2311" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2313" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="2316" href="Algebra.Consequences.Setoid.html#2265" class="Bound">zeʳ</a> <a id="2320" href="Algebra.Consequences.Setoid.html#2269" class="Bound">x</a> <a id="2322" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="2328" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2334" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="2339" href="Algebra.Consequences.Setoid.html#2339" class="Function">comm+almostCancelˡ⇒almostCancelʳ</a> <a id="2372" class="Symbol">:</a> <a id="2374" href="Algebra.Definitions.html#3372" class="Function">AlmostLeftCancellative</a> <a id="2397" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2399" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a> <a id="2403" class="Symbol"></a>
<a id="2442" href="Algebra.Definitions.html#3495" class="Function">AlmostRightCancellative</a> <a id="2466" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2468" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a>
<a id="2474" href="Algebra.Consequences.Setoid.html#2339" class="Function">comm+almostCancelˡ⇒almostCancelʳ</a> <a id="2507" href="Algebra.Consequences.Setoid.html#2507" class="Bound">cancelˡ-nonZero</a> <a id="2523" class="Symbol">{</a><a id="2524" href="Algebra.Consequences.Setoid.html#2524" class="Bound">x</a><a id="2525" class="Symbol">}</a> <a id="2527" href="Algebra.Consequences.Setoid.html#2527" class="Bound">y</a> <a id="2529" href="Algebra.Consequences.Setoid.html#2529" class="Bound">z</a> <a id="2531" href="Algebra.Consequences.Setoid.html#2531" class="Bound">x≉e</a> <a id="2535" href="Algebra.Consequences.Setoid.html#2535" class="Bound">yx≈zx</a> <a id="2541" class="Symbol">=</a>
<a id="2547" href="Algebra.Consequences.Setoid.html#2507" class="Bound">cancelˡ-nonZero</a> <a id="2563" href="Algebra.Consequences.Setoid.html#2527" class="Bound">y</a> <a id="2565" href="Algebra.Consequences.Setoid.html#2529" class="Bound">z</a> <a id="2567" href="Algebra.Consequences.Setoid.html#2531" class="Bound">x≉e</a> <a id="2571" href="Function.Base.html#1919" class="Function Operator">$</a> <a id="2573" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="2585" href="Algebra.Consequences.Setoid.html#2524" class="Bound">x</a> <a id="2587" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2589" href="Algebra.Consequences.Setoid.html#2527" class="Bound">y</a> <a id="2591" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="2594" href="Algebra.Consequences.Setoid.html#1734" class="Bound">comm</a> <a id="2599" href="Algebra.Consequences.Setoid.html#2524" class="Bound">x</a> <a id="2601" href="Algebra.Consequences.Setoid.html#2527" class="Bound">y</a> <a id="2603" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="2611" href="Algebra.Consequences.Setoid.html#2527" class="Bound">y</a> <a id="2613" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2615" href="Algebra.Consequences.Setoid.html#2524" class="Bound">x</a> <a id="2617" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="2620" href="Algebra.Consequences.Setoid.html#2535" class="Bound">yx≈zx</a> <a id="2626" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="2634" href="Algebra.Consequences.Setoid.html#2529" class="Bound">z</a> <a id="2636" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2638" href="Algebra.Consequences.Setoid.html#2524" class="Bound">x</a> <a id="2640" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="2643" href="Algebra.Consequences.Setoid.html#1734" class="Bound">comm</a> <a id="2648" href="Algebra.Consequences.Setoid.html#2529" class="Bound">z</a> <a id="2650" href="Algebra.Consequences.Setoid.html#2524" class="Bound">x</a> <a id="2652" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="2660" href="Algebra.Consequences.Setoid.html#2524" class="Bound">x</a> <a id="2662" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2664" href="Algebra.Consequences.Setoid.html#2529" class="Bound">z</a> <a id="2666" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="2671" href="Algebra.Consequences.Setoid.html#2671" class="Function">comm+almostCancelʳ⇒almostCancelˡ</a> <a id="2704" class="Symbol">:</a> <a id="2706" href="Algebra.Definitions.html#3495" class="Function">AlmostRightCancellative</a> <a id="2730" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2732" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a> <a id="2736" class="Symbol"></a>
<a id="2775" href="Algebra.Definitions.html#3372" class="Function">AlmostLeftCancellative</a> <a id="2798" href="Algebra.Consequences.Setoid.html#1759" class="Bound">e</a> <a id="2800" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator">_•_</a>
<a id="2806" href="Algebra.Consequences.Setoid.html#2671" class="Function">comm+almostCancelʳ⇒almostCancelˡ</a> <a id="2839" href="Algebra.Consequences.Setoid.html#2839" class="Bound">cancelʳ-nonZero</a> <a id="2855" class="Symbol">{</a><a id="2856" href="Algebra.Consequences.Setoid.html#2856" class="Bound">x</a><a id="2857" class="Symbol">}</a> <a id="2859" href="Algebra.Consequences.Setoid.html#2859" class="Bound">y</a> <a id="2861" href="Algebra.Consequences.Setoid.html#2861" class="Bound">z</a> <a id="2863" href="Algebra.Consequences.Setoid.html#2863" class="Bound">x≉e</a> <a id="2867" href="Algebra.Consequences.Setoid.html#2867" class="Bound">xy≈xz</a> <a id="2873" class="Symbol">=</a>
<a id="2879" href="Algebra.Consequences.Setoid.html#2839" class="Bound">cancelʳ-nonZero</a> <a id="2895" href="Algebra.Consequences.Setoid.html#2859" class="Bound">y</a> <a id="2897" href="Algebra.Consequences.Setoid.html#2861" class="Bound">z</a> <a id="2899" href="Algebra.Consequences.Setoid.html#2863" class="Bound">x≉e</a> <a id="2903" href="Function.Base.html#1919" class="Function Operator">$</a> <a id="2905" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="2917" href="Algebra.Consequences.Setoid.html#2859" class="Bound">y</a> <a id="2919" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2921" href="Algebra.Consequences.Setoid.html#2856" class="Bound">x</a> <a id="2923" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="2926" href="Algebra.Consequences.Setoid.html#1734" class="Bound">comm</a> <a id="2931" href="Algebra.Consequences.Setoid.html#2859" class="Bound">y</a> <a id="2933" href="Algebra.Consequences.Setoid.html#2856" class="Bound">x</a> <a id="2935" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="2943" href="Algebra.Consequences.Setoid.html#2856" class="Bound">x</a> <a id="2945" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2947" href="Algebra.Consequences.Setoid.html#2859" class="Bound">y</a> <a id="2949" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="2952" href="Algebra.Consequences.Setoid.html#2867" class="Bound">xy≈xz</a> <a id="2958" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="2966" href="Algebra.Consequences.Setoid.html#2856" class="Bound">x</a> <a id="2968" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2970" href="Algebra.Consequences.Setoid.html#2861" class="Bound">z</a> <a id="2972" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="2975" href="Algebra.Consequences.Setoid.html#1734" class="Bound">comm</a> <a id="2980" href="Algebra.Consequences.Setoid.html#2856" class="Bound">x</a> <a id="2982" href="Algebra.Consequences.Setoid.html#2861" class="Bound">z</a> <a id="2984" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="2992" href="Algebra.Consequences.Setoid.html#2861" class="Bound">z</a> <a id="2994" href="Algebra.Consequences.Setoid.html#1720" class="Bound Operator"></a> <a id="2996" href="Algebra.Consequences.Setoid.html#2856" class="Bound">x</a> <a id="2998" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="3001" class="Comment">------------------------------------------------------------------------</a>
<a id="3074" class="Comment">-- Group-like structures</a>
<a id="3100" class="Keyword">module</a> <a id="3107" href="Algebra.Consequences.Setoid.html#3107" class="Module">_</a> <a id="3109" class="Symbol">{</a><a id="3110" href="Algebra.Consequences.Setoid.html#3110" class="Bound Operator">_•_</a> <a id="3114" class="Symbol">:</a> <a id="3116" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="3120" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a><a id="3121" class="Symbol">}</a> <a id="3123" class="Symbol">{</a><a id="3124" href="Algebra.Consequences.Setoid.html#3124" class="Bound Operator">_⁻¹</a> <a id="3128" class="Symbol">:</a> <a id="3130" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="3134" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a><a id="3135" class="Symbol">}</a> <a id="3137" class="Symbol">{</a><a id="3138" href="Algebra.Consequences.Setoid.html#3138" class="Bound">e</a><a id="3139" class="Symbol">}</a> <a id="3141" class="Symbol">(</a><a id="3142" href="Algebra.Consequences.Setoid.html#3142" class="Bound">comm</a> <a id="3147" class="Symbol">:</a> <a id="3149" href="Algebra.Definitions.html#1195" class="Function">Commutative</a> <a id="3161" href="Algebra.Consequences.Setoid.html#3110" class="Bound Operator">_•_</a><a id="3164" class="Symbol">)</a> <a id="3166" class="Keyword">where</a>
<a id="3175" href="Algebra.Consequences.Setoid.html#3175" class="Function">comm+invˡ⇒invʳ</a> <a id="3190" class="Symbol">:</a> <a id="3192" href="Algebra.Definitions.html#1704" class="Function">LeftInverse</a> <a id="3204" href="Algebra.Consequences.Setoid.html#3138" class="Bound">e</a> <a id="3206" href="Algebra.Consequences.Setoid.html#3124" class="Bound Operator">_⁻¹</a> <a id="3210" href="Algebra.Consequences.Setoid.html#3110" class="Bound Operator">_•_</a> <a id="3214" class="Symbol"></a> <a id="3216" href="Algebra.Definitions.html#1792" class="Function">RightInverse</a> <a id="3229" href="Algebra.Consequences.Setoid.html#3138" class="Bound">e</a> <a id="3231" href="Algebra.Consequences.Setoid.html#3124" class="Bound Operator">_⁻¹</a> <a id="3235" href="Algebra.Consequences.Setoid.html#3110" class="Bound Operator">_•_</a>
<a id="3241" href="Algebra.Consequences.Setoid.html#3175" class="Function">comm+invˡ⇒invʳ</a> <a id="3256" href="Algebra.Consequences.Setoid.html#3256" class="Bound">invˡ</a> <a id="3261" href="Algebra.Consequences.Setoid.html#3261" class="Bound">x</a> <a id="3263" class="Symbol">=</a> <a id="3265" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="3275" href="Algebra.Consequences.Setoid.html#3261" class="Bound">x</a> <a id="3277" href="Algebra.Consequences.Setoid.html#3110" class="Bound Operator"></a> <a id="3279" class="Symbol">(</a><a id="3280" href="Algebra.Consequences.Setoid.html#3261" class="Bound">x</a> <a id="3282" href="Algebra.Consequences.Setoid.html#3124" class="Bound Operator">⁻¹</a><a id="3284" class="Symbol">)</a> <a id="3286" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="3289" href="Algebra.Consequences.Setoid.html#3142" class="Bound">comm</a> <a id="3294" href="Algebra.Consequences.Setoid.html#3261" class="Bound">x</a> <a id="3296" class="Symbol">(</a><a id="3297" href="Algebra.Consequences.Setoid.html#3261" class="Bound">x</a> <a id="3299" href="Algebra.Consequences.Setoid.html#3124" class="Bound Operator">⁻¹</a><a id="3301" class="Symbol">)</a> <a id="3303" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="3309" class="Symbol">(</a><a id="3310" href="Algebra.Consequences.Setoid.html#3261" class="Bound">x</a> <a id="3312" href="Algebra.Consequences.Setoid.html#3124" class="Bound Operator">⁻¹</a><a id="3314" class="Symbol">)</a> <a id="3316" href="Algebra.Consequences.Setoid.html#3110" class="Bound Operator"></a> <a id="3318" href="Algebra.Consequences.Setoid.html#3261" class="Bound">x</a> <a id="3320" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="3323" href="Algebra.Consequences.Setoid.html#3256" class="Bound">invˡ</a> <a id="3328" href="Algebra.Consequences.Setoid.html#3261" class="Bound">x</a> <a id="3330" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="3336" href="Algebra.Consequences.Setoid.html#3138" class="Bound">e</a> <a id="3347" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="3352" href="Algebra.Consequences.Setoid.html#3352" class="Function">comm+invʳ⇒invˡ</a> <a id="3367" class="Symbol">:</a> <a id="3369" href="Algebra.Definitions.html#1792" class="Function">RightInverse</a> <a id="3382" href="Algebra.Consequences.Setoid.html#3138" class="Bound">e</a> <a id="3384" href="Algebra.Consequences.Setoid.html#3124" class="Bound Operator">_⁻¹</a> <a id="3388" href="Algebra.Consequences.Setoid.html#3110" class="Bound Operator">_•_</a> <a id="3392" class="Symbol"></a> <a id="3394" href="Algebra.Definitions.html#1704" class="Function">LeftInverse</a> <a id="3406" href="Algebra.Consequences.Setoid.html#3138" class="Bound">e</a> <a id="3408" href="Algebra.Consequences.Setoid.html#3124" class="Bound Operator">_⁻¹</a> <a id="3412" href="Algebra.Consequences.Setoid.html#3110" class="Bound Operator">_•_</a>
<a id="3418" href="Algebra.Consequences.Setoid.html#3352" class="Function">comm+invʳ⇒invˡ</a> <a id="3433" href="Algebra.Consequences.Setoid.html#3433" class="Bound">invʳ</a> <a id="3438" href="Algebra.Consequences.Setoid.html#3438" class="Bound">x</a> <a id="3440" class="Symbol">=</a> <a id="3442" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="3452" class="Symbol">(</a><a id="3453" href="Algebra.Consequences.Setoid.html#3438" class="Bound">x</a> <a id="3455" href="Algebra.Consequences.Setoid.html#3124" class="Bound Operator">⁻¹</a><a id="3457" class="Symbol">)</a> <a id="3459" href="Algebra.Consequences.Setoid.html#3110" class="Bound Operator"></a> <a id="3461" href="Algebra.Consequences.Setoid.html#3438" class="Bound">x</a> <a id="3463" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="3466" href="Algebra.Consequences.Setoid.html#3142" class="Bound">comm</a> <a id="3471" class="Symbol">(</a><a id="3472" href="Algebra.Consequences.Setoid.html#3438" class="Bound">x</a> <a id="3474" href="Algebra.Consequences.Setoid.html#3124" class="Bound Operator">⁻¹</a><a id="3476" class="Symbol">)</a> <a id="3478" href="Algebra.Consequences.Setoid.html#3438" class="Bound">x</a> <a id="3480" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="3486" href="Algebra.Consequences.Setoid.html#3438" class="Bound">x</a> <a id="3488" href="Algebra.Consequences.Setoid.html#3110" class="Bound Operator"></a> <a id="3490" class="Symbol">(</a><a id="3491" href="Algebra.Consequences.Setoid.html#3438" class="Bound">x</a> <a id="3493" href="Algebra.Consequences.Setoid.html#3124" class="Bound Operator">⁻¹</a><a id="3495" class="Symbol">)</a> <a id="3497" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="3500" href="Algebra.Consequences.Setoid.html#3433" class="Bound">invʳ</a> <a id="3505" href="Algebra.Consequences.Setoid.html#3438" class="Bound">x</a> <a id="3507" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="3513" href="Algebra.Consequences.Setoid.html#3138" class="Bound">e</a> <a id="3524" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="3527" class="Keyword">module</a> <a id="3534" href="Algebra.Consequences.Setoid.html#3534" class="Module">_</a> <a id="3536" class="Symbol">{</a><a id="3537" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator">_•_</a> <a id="3541" class="Symbol">:</a> <a id="3543" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="3547" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a><a id="3548" class="Symbol">}</a> <a id="3550" class="Symbol">{</a><a id="3551" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">_⁻¹</a> <a id="3555" class="Symbol">:</a> <a id="3557" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="3561" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a><a id="3562" class="Symbol">}</a> <a id="3564" class="Symbol">{</a><a id="3565" href="Algebra.Consequences.Setoid.html#3565" class="Bound">e</a><a id="3566" class="Symbol">}</a> <a id="3568" class="Symbol">(</a><a id="3569" href="Algebra.Consequences.Setoid.html#3569" class="Bound">cong</a> <a id="3574" class="Symbol">:</a> <a id="3576" href="Algebra.Definitions.html#862" class="Function">Congruent₂</a> <a id="3587" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator">_•_</a><a id="3590" class="Symbol">)</a> <a id="3592" class="Keyword">where</a>
<a id="3601" href="Algebra.Consequences.Setoid.html#3601" class="Function">assoc+id+invʳ⇒invˡ-unique</a> <a id="3627" class="Symbol">:</a> <a id="3629" href="Algebra.Definitions.html#1108" class="Function">Associative</a> <a id="3641" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator">_•_</a> <a id="3645" class="Symbol"></a>
<a id="3677" href="Algebra.Definitions.html#1416" class="Function">Identity</a> <a id="3686" href="Algebra.Consequences.Setoid.html#3565" class="Bound">e</a> <a id="3688" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator">_•_</a> <a id="3692" class="Symbol"></a> <a id="3694" href="Algebra.Definitions.html#1792" class="Function">RightInverse</a> <a id="3707" href="Algebra.Consequences.Setoid.html#3565" class="Bound">e</a> <a id="3709" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">_⁻¹</a> <a id="3713" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator">_•_</a> <a id="3717" class="Symbol"></a>
<a id="3749" class="Symbol"></a> <a id="3751" href="Algebra.Consequences.Setoid.html#3751" class="Bound">x</a> <a id="3753" href="Algebra.Consequences.Setoid.html#3753" class="Bound">y</a> <a id="3755" class="Symbol"></a> <a id="3757" class="Symbol">(</a><a id="3758" href="Algebra.Consequences.Setoid.html#3751" class="Bound">x</a> <a id="3760" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="3762" href="Algebra.Consequences.Setoid.html#3753" class="Bound">y</a><a id="3763" class="Symbol">)</a> <a id="3765" href="Relation.Binary.Bundles.html#1098" class="Field Operator"></a> <a id="3767" href="Algebra.Consequences.Setoid.html#3565" class="Bound">e</a> <a id="3769" class="Symbol"></a> <a id="3771" href="Algebra.Consequences.Setoid.html#3751" class="Bound">x</a> <a id="3773" href="Relation.Binary.Bundles.html#1098" class="Field Operator"></a> <a id="3775" class="Symbol">(</a><a id="3776" href="Algebra.Consequences.Setoid.html#3753" class="Bound">y</a> <a id="3778" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a><a id="3780" class="Symbol">)</a>
<a id="3784" href="Algebra.Consequences.Setoid.html#3601" class="Function">assoc+id+invʳ⇒invˡ-unique</a> <a id="3810" href="Algebra.Consequences.Setoid.html#3810" class="Bound">assoc</a> <a id="3816" class="Symbol">(</a><a id="3817" href="Algebra.Consequences.Setoid.html#3817" class="Bound">idˡ</a> <a id="3821" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="3823" href="Algebra.Consequences.Setoid.html#3823" class="Bound">idʳ</a><a id="3826" class="Symbol">)</a> <a id="3828" href="Algebra.Consequences.Setoid.html#3828" class="Bound">invʳ</a> <a id="3833" href="Algebra.Consequences.Setoid.html#3833" class="Bound">x</a> <a id="3835" href="Algebra.Consequences.Setoid.html#3835" class="Bound">y</a> <a id="3837" href="Algebra.Consequences.Setoid.html#3837" class="Bound">eq</a> <a id="3840" class="Symbol">=</a> <a id="3842" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="3852" href="Algebra.Consequences.Setoid.html#3833" class="Bound">x</a> <a id="3869" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="3872" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="3876" class="Symbol">(</a><a id="3877" href="Algebra.Consequences.Setoid.html#3823" class="Bound">idʳ</a> <a id="3881" href="Algebra.Consequences.Setoid.html#3833" class="Bound">x</a><a id="3882" class="Symbol">)</a> <a id="3884" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="3890" href="Algebra.Consequences.Setoid.html#3833" class="Bound">x</a> <a id="3892" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="3894" href="Algebra.Consequences.Setoid.html#3565" class="Bound">e</a> <a id="3907" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="3910" href="Algebra.Consequences.Setoid.html#3569" class="Bound">cong</a> <a id="3915" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="3920" class="Symbol">(</a><a id="3921" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="3925" class="Symbol">(</a><a id="3926" href="Algebra.Consequences.Setoid.html#3828" class="Bound">invʳ</a> <a id="3931" href="Algebra.Consequences.Setoid.html#3835" class="Bound">y</a><a id="3932" class="Symbol">))</a> <a id="3935" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="3941" href="Algebra.Consequences.Setoid.html#3833" class="Bound">x</a> <a id="3943" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="3945" class="Symbol">(</a><a id="3946" href="Algebra.Consequences.Setoid.html#3835" class="Bound">y</a> <a id="3948" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="3950" class="Symbol">(</a><a id="3951" href="Algebra.Consequences.Setoid.html#3835" class="Bound">y</a> <a id="3953" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a><a id="3955" class="Symbol">))</a> <a id="3958" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="3961" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="3965" class="Symbol">(</a><a id="3966" href="Algebra.Consequences.Setoid.html#3810" class="Bound">assoc</a> <a id="3972" href="Algebra.Consequences.Setoid.html#3833" class="Bound">x</a> <a id="3974" href="Algebra.Consequences.Setoid.html#3835" class="Bound">y</a> <a id="3976" class="Symbol">(</a><a id="3977" href="Algebra.Consequences.Setoid.html#3835" class="Bound">y</a> <a id="3979" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a><a id="3981" class="Symbol">))</a> <a id="3984" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="3990" class="Symbol">(</a><a id="3991" href="Algebra.Consequences.Setoid.html#3833" class="Bound">x</a> <a id="3993" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="3995" href="Algebra.Consequences.Setoid.html#3835" class="Bound">y</a><a id="3996" class="Symbol">)</a> <a id="3998" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="4000" class="Symbol">(</a><a id="4001" href="Algebra.Consequences.Setoid.html#3835" class="Bound">y</a> <a id="4003" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a><a id="4005" class="Symbol">)</a> <a id="4007" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="4010" href="Algebra.Consequences.Setoid.html#3569" class="Bound">cong</a> <a id="4015" href="Algebra.Consequences.Setoid.html#3837" class="Bound">eq</a> <a id="4018" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="4023" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="4029" href="Algebra.Consequences.Setoid.html#3565" class="Bound">e</a> <a id="4031" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="4033" class="Symbol">(</a><a id="4034" href="Algebra.Consequences.Setoid.html#3835" class="Bound">y</a> <a id="4036" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a><a id="4038" class="Symbol">)</a> <a id="4046" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="4049" href="Algebra.Consequences.Setoid.html#3817" class="Bound">idˡ</a> <a id="4053" class="Symbol">(</a><a id="4054" href="Algebra.Consequences.Setoid.html#3835" class="Bound">y</a> <a id="4056" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a><a id="4058" class="Symbol">)</a> <a id="4060" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="4066" href="Algebra.Consequences.Setoid.html#3835" class="Bound">y</a> <a id="4068" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a> <a id="4083" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="4088" href="Algebra.Consequences.Setoid.html#4088" class="Function">assoc+id+invˡ⇒invʳ-unique</a> <a id="4114" class="Symbol">:</a> <a id="4116" href="Algebra.Definitions.html#1108" class="Function">Associative</a> <a id="4128" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator">_•_</a> <a id="4132" class="Symbol"></a>
<a id="4164" href="Algebra.Definitions.html#1416" class="Function">Identity</a> <a id="4173" href="Algebra.Consequences.Setoid.html#3565" class="Bound">e</a> <a id="4175" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator">_•_</a> <a id="4179" class="Symbol"></a> <a id="4181" href="Algebra.Definitions.html#1704" class="Function">LeftInverse</a> <a id="4193" href="Algebra.Consequences.Setoid.html#3565" class="Bound">e</a> <a id="4195" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">_⁻¹</a> <a id="4199" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator">_•_</a> <a id="4203" class="Symbol"></a>
<a id="4235" class="Symbol"></a> <a id="4237" href="Algebra.Consequences.Setoid.html#4237" class="Bound">x</a> <a id="4239" href="Algebra.Consequences.Setoid.html#4239" class="Bound">y</a> <a id="4241" class="Symbol"></a> <a id="4243" class="Symbol">(</a><a id="4244" href="Algebra.Consequences.Setoid.html#4237" class="Bound">x</a> <a id="4246" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="4248" href="Algebra.Consequences.Setoid.html#4239" class="Bound">y</a><a id="4249" class="Symbol">)</a> <a id="4251" href="Relation.Binary.Bundles.html#1098" class="Field Operator"></a> <a id="4253" href="Algebra.Consequences.Setoid.html#3565" class="Bound">e</a> <a id="4255" class="Symbol"></a> <a id="4257" href="Algebra.Consequences.Setoid.html#4239" class="Bound">y</a> <a id="4259" href="Relation.Binary.Bundles.html#1098" class="Field Operator"></a> <a id="4261" class="Symbol">(</a><a id="4262" href="Algebra.Consequences.Setoid.html#4237" class="Bound">x</a> <a id="4264" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a><a id="4266" class="Symbol">)</a>
<a id="4270" href="Algebra.Consequences.Setoid.html#4088" class="Function">assoc+id+invˡ⇒invʳ-unique</a> <a id="4296" href="Algebra.Consequences.Setoid.html#4296" class="Bound">assoc</a> <a id="4302" class="Symbol">(</a><a id="4303" href="Algebra.Consequences.Setoid.html#4303" class="Bound">idˡ</a> <a id="4307" href="Agda.Builtin.Sigma.html#236" class="InductiveConstructor Operator">,</a> <a id="4309" href="Algebra.Consequences.Setoid.html#4309" class="Bound">idʳ</a><a id="4312" class="Symbol">)</a> <a id="4314" href="Algebra.Consequences.Setoid.html#4314" class="Bound">invˡ</a> <a id="4319" href="Algebra.Consequences.Setoid.html#4319" class="Bound">x</a> <a id="4321" href="Algebra.Consequences.Setoid.html#4321" class="Bound">y</a> <a id="4323" href="Algebra.Consequences.Setoid.html#4323" class="Bound">eq</a> <a id="4326" class="Symbol">=</a> <a id="4328" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="4338" href="Algebra.Consequences.Setoid.html#4321" class="Bound">y</a> <a id="4355" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="4358" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="4362" class="Symbol">(</a><a id="4363" href="Algebra.Consequences.Setoid.html#4303" class="Bound">idˡ</a> <a id="4367" href="Algebra.Consequences.Setoid.html#4321" class="Bound">y</a><a id="4368" class="Symbol">)</a> <a id="4370" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="4376" href="Algebra.Consequences.Setoid.html#3565" class="Bound">e</a> <a id="4378" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="4380" href="Algebra.Consequences.Setoid.html#4321" class="Bound">y</a> <a id="4393" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="4396" href="Algebra.Consequences.Setoid.html#3569" class="Bound">cong</a> <a id="4401" class="Symbol">(</a><a id="4402" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="4406" class="Symbol">(</a><a id="4407" href="Algebra.Consequences.Setoid.html#4314" class="Bound">invˡ</a> <a id="4412" href="Algebra.Consequences.Setoid.html#4319" class="Bound">x</a><a id="4413" class="Symbol">))</a> <a id="4416" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="4421" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="4427" class="Symbol">((</a><a id="4429" href="Algebra.Consequences.Setoid.html#4319" class="Bound">x</a> <a id="4431" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a><a id="4433" class="Symbol">)</a> <a id="4435" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="4437" href="Algebra.Consequences.Setoid.html#4319" class="Bound">x</a><a id="4438" class="Symbol">)</a> <a id="4440" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="4442" href="Algebra.Consequences.Setoid.html#4321" class="Bound">y</a> <a id="4444" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="4447" href="Algebra.Consequences.Setoid.html#4296" class="Bound">assoc</a> <a id="4453" class="Symbol">(</a><a id="4454" href="Algebra.Consequences.Setoid.html#4319" class="Bound">x</a> <a id="4456" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a><a id="4458" class="Symbol">)</a> <a id="4460" href="Algebra.Consequences.Setoid.html#4319" class="Bound">x</a> <a id="4462" href="Algebra.Consequences.Setoid.html#4321" class="Bound">y</a> <a id="4464" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="4470" class="Symbol">(</a><a id="4471" href="Algebra.Consequences.Setoid.html#4319" class="Bound">x</a> <a id="4473" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a><a id="4475" class="Symbol">)</a> <a id="4477" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="4479" class="Symbol">(</a><a id="4480" href="Algebra.Consequences.Setoid.html#4319" class="Bound">x</a> <a id="4482" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="4484" href="Algebra.Consequences.Setoid.html#4321" class="Bound">y</a><a id="4485" class="Symbol">)</a> <a id="4487" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="4490" href="Algebra.Consequences.Setoid.html#3569" class="Bound">cong</a> <a id="4495" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="4500" href="Algebra.Consequences.Setoid.html#4323" class="Bound">eq</a> <a id="4503" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="4509" class="Symbol">(</a><a id="4510" href="Algebra.Consequences.Setoid.html#4319" class="Bound">x</a> <a id="4512" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a><a id="4514" class="Symbol">)</a> <a id="4516" href="Algebra.Consequences.Setoid.html#3537" class="Bound Operator"></a> <a id="4518" href="Algebra.Consequences.Setoid.html#3565" class="Bound">e</a> <a id="4526" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="4529" href="Algebra.Consequences.Setoid.html#4309" class="Bound">idʳ</a> <a id="4533" class="Symbol">(</a><a id="4534" href="Algebra.Consequences.Setoid.html#4319" class="Bound">x</a> <a id="4536" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a><a id="4538" class="Symbol">)</a> <a id="4540" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="4546" href="Algebra.Consequences.Setoid.html#4319" class="Bound">x</a> <a id="4548" href="Algebra.Consequences.Setoid.html#3551" class="Bound Operator">⁻¹</a> <a id="4563" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="4566" class="Comment">----------------------------------------------------------------------</a>
<a id="4637" class="Comment">-- Bisemigroup-like structures</a>
<a id="4669" class="Keyword">module</a> <a id="4676" href="Algebra.Consequences.Setoid.html#4676" class="Module">_</a> <a id="4678" class="Symbol">{</a><a id="4679" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator">_•_</a> <a id="4683" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator">_◦_</a> <a id="4687" class="Symbol">:</a> <a id="4689" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="4693" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a><a id="4694" class="Symbol">}</a>
<a id="4705" class="Symbol">(</a><a id="4706" href="Algebra.Consequences.Setoid.html#4706" class="Bound">◦-cong</a> <a id="4713" class="Symbol">:</a> <a id="4715" href="Algebra.Definitions.html#862" class="Function">Congruent₂</a> <a id="4726" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator">_◦_</a><a id="4729" class="Symbol">)</a>
<a id="4740" class="Symbol">(</a><a id="4741" href="Algebra.Consequences.Setoid.html#4741" class="Bound">•-comm</a> <a id="4748" class="Symbol">:</a> <a id="4750" href="Algebra.Definitions.html#1195" class="Function">Commutative</a> <a id="4762" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator">_•_</a><a id="4765" class="Symbol">)</a>
<a id="4776" class="Keyword">where</a>
<a id="4785" href="Algebra.Consequences.Setoid.html#4785" class="Function">comm+distrˡ⇒distrʳ</a> <a id="4804" class="Symbol">:</a> <a id="4807" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator">_•_</a> <a id="4811" href="Algebra.Definitions.html#2227" class="Function Operator">DistributesOverˡ</a> <a id="4828" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator">_◦_</a> <a id="4832" class="Symbol"></a> <a id="4834" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator">_•_</a> <a id="4838" href="Algebra.Definitions.html#2346" class="Function Operator">DistributesOverʳ</a> <a id="4855" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator">_◦_</a>
<a id="4861" href="Algebra.Consequences.Setoid.html#4785" class="Function">comm+distrˡ⇒distrʳ</a> <a id="4880" href="Algebra.Consequences.Setoid.html#4880" class="Bound">distrˡ</a> <a id="4887" href="Algebra.Consequences.Setoid.html#4887" class="Bound">x</a> <a id="4889" href="Algebra.Consequences.Setoid.html#4889" class="Bound">y</a> <a id="4891" href="Algebra.Consequences.Setoid.html#4891" class="Bound">z</a> <a id="4893" class="Symbol">=</a> <a id="4895" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="4905" class="Symbol">(</a><a id="4906" href="Algebra.Consequences.Setoid.html#4889" class="Bound">y</a> <a id="4908" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="4910" href="Algebra.Consequences.Setoid.html#4891" class="Bound">z</a><a id="4911" class="Symbol">)</a> <a id="4913" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="4915" href="Algebra.Consequences.Setoid.html#4887" class="Bound">x</a> <a id="4923" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="4926" href="Algebra.Consequences.Setoid.html#4741" class="Bound">•-comm</a> <a id="4933" class="Symbol">(</a><a id="4934" href="Algebra.Consequences.Setoid.html#4889" class="Bound">y</a> <a id="4936" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="4938" href="Algebra.Consequences.Setoid.html#4891" class="Bound">z</a><a id="4939" class="Symbol">)</a> <a id="4941" href="Algebra.Consequences.Setoid.html#4887" class="Bound">x</a> <a id="4943" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="4949" href="Algebra.Consequences.Setoid.html#4887" class="Bound">x</a> <a id="4951" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="4953" class="Symbol">(</a><a id="4954" href="Algebra.Consequences.Setoid.html#4889" class="Bound">y</a> <a id="4956" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="4958" href="Algebra.Consequences.Setoid.html#4891" class="Bound">z</a><a id="4959" class="Symbol">)</a> <a id="4967" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="4970" href="Algebra.Consequences.Setoid.html#4880" class="Bound">distrˡ</a> <a id="4977" href="Algebra.Consequences.Setoid.html#4887" class="Bound">x</a> <a id="4979" href="Algebra.Consequences.Setoid.html#4889" class="Bound">y</a> <a id="4981" href="Algebra.Consequences.Setoid.html#4891" class="Bound">z</a> <a id="4983" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="4989" class="Symbol">(</a><a id="4990" href="Algebra.Consequences.Setoid.html#4887" class="Bound">x</a> <a id="4992" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="4994" href="Algebra.Consequences.Setoid.html#4889" class="Bound">y</a><a id="4995" class="Symbol">)</a> <a id="4997" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="4999" class="Symbol">(</a><a id="5000" href="Algebra.Consequences.Setoid.html#4887" class="Bound">x</a> <a id="5002" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5004" href="Algebra.Consequences.Setoid.html#4891" class="Bound">z</a><a id="5005" class="Symbol">)</a> <a id="5007" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="5010" href="Algebra.Consequences.Setoid.html#4706" class="Bound">◦-cong</a> <a id="5017" class="Symbol">(</a><a id="5018" href="Algebra.Consequences.Setoid.html#4741" class="Bound">•-comm</a> <a id="5025" href="Algebra.Consequences.Setoid.html#4887" class="Bound">x</a> <a id="5027" href="Algebra.Consequences.Setoid.html#4889" class="Bound">y</a><a id="5028" class="Symbol">)</a> <a id="5030" class="Symbol">(</a><a id="5031" href="Algebra.Consequences.Setoid.html#4741" class="Bound">•-comm</a> <a id="5038" href="Algebra.Consequences.Setoid.html#4887" class="Bound">x</a> <a id="5040" href="Algebra.Consequences.Setoid.html#4891" class="Bound">z</a><a id="5041" class="Symbol">)</a> <a id="5043" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="5049" class="Symbol">(</a><a id="5050" href="Algebra.Consequences.Setoid.html#4889" class="Bound">y</a> <a id="5052" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5054" href="Algebra.Consequences.Setoid.html#4887" class="Bound">x</a><a id="5055" class="Symbol">)</a> <a id="5057" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5059" class="Symbol">(</a><a id="5060" href="Algebra.Consequences.Setoid.html#4891" class="Bound">z</a> <a id="5062" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5064" href="Algebra.Consequences.Setoid.html#4887" class="Bound">x</a><a id="5065" class="Symbol">)</a> <a id="5067" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="5072" href="Algebra.Consequences.Setoid.html#5072" class="Function">comm+distrʳ⇒distrˡ</a> <a id="5091" class="Symbol">:</a> <a id="5093" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator">_•_</a> <a id="5097" href="Algebra.Definitions.html#2346" class="Function Operator">DistributesOverʳ</a> <a id="5114" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator">_◦_</a> <a id="5118" class="Symbol"></a> <a id="5120" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator">_•_</a> <a id="5124" href="Algebra.Definitions.html#2227" class="Function Operator">DistributesOverˡ</a> <a id="5141" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator">_◦_</a>
<a id="5147" href="Algebra.Consequences.Setoid.html#5072" class="Function">comm+distrʳ⇒distrˡ</a> <a id="5166" href="Algebra.Consequences.Setoid.html#5166" class="Bound">distrˡ</a> <a id="5173" href="Algebra.Consequences.Setoid.html#5173" class="Bound">x</a> <a id="5175" href="Algebra.Consequences.Setoid.html#5175" class="Bound">y</a> <a id="5177" href="Algebra.Consequences.Setoid.html#5177" class="Bound">z</a> <a id="5179" class="Symbol">=</a> <a id="5181" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="5191" href="Algebra.Consequences.Setoid.html#5173" class="Bound">x</a> <a id="5193" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5195" class="Symbol">(</a><a id="5196" href="Algebra.Consequences.Setoid.html#5175" class="Bound">y</a> <a id="5198" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5200" href="Algebra.Consequences.Setoid.html#5177" class="Bound">z</a><a id="5201" class="Symbol">)</a> <a id="5209" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="5212" href="Algebra.Consequences.Setoid.html#4741" class="Bound">•-comm</a> <a id="5219" href="Algebra.Consequences.Setoid.html#5173" class="Bound">x</a> <a id="5221" class="Symbol">(</a><a id="5222" href="Algebra.Consequences.Setoid.html#5175" class="Bound">y</a> <a id="5224" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5226" href="Algebra.Consequences.Setoid.html#5177" class="Bound">z</a><a id="5227" class="Symbol">)</a> <a id="5229" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="5235" class="Symbol">(</a><a id="5236" href="Algebra.Consequences.Setoid.html#5175" class="Bound">y</a> <a id="5238" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5240" href="Algebra.Consequences.Setoid.html#5177" class="Bound">z</a><a id="5241" class="Symbol">)</a> <a id="5243" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5245" href="Algebra.Consequences.Setoid.html#5173" class="Bound">x</a> <a id="5253" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="5256" href="Algebra.Consequences.Setoid.html#5166" class="Bound">distrˡ</a> <a id="5263" href="Algebra.Consequences.Setoid.html#5173" class="Bound">x</a> <a id="5265" href="Algebra.Consequences.Setoid.html#5175" class="Bound">y</a> <a id="5267" href="Algebra.Consequences.Setoid.html#5177" class="Bound">z</a> <a id="5269" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="5275" class="Symbol">(</a><a id="5276" href="Algebra.Consequences.Setoid.html#5175" class="Bound">y</a> <a id="5278" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5280" href="Algebra.Consequences.Setoid.html#5173" class="Bound">x</a><a id="5281" class="Symbol">)</a> <a id="5283" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5285" class="Symbol">(</a><a id="5286" href="Algebra.Consequences.Setoid.html#5177" class="Bound">z</a> <a id="5288" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5290" href="Algebra.Consequences.Setoid.html#5173" class="Bound">x</a><a id="5291" class="Symbol">)</a> <a id="5293" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="5296" href="Algebra.Consequences.Setoid.html#4706" class="Bound">◦-cong</a> <a id="5303" class="Symbol">(</a><a id="5304" href="Algebra.Consequences.Setoid.html#4741" class="Bound">•-comm</a> <a id="5311" href="Algebra.Consequences.Setoid.html#5175" class="Bound">y</a> <a id="5313" href="Algebra.Consequences.Setoid.html#5173" class="Bound">x</a><a id="5314" class="Symbol">)</a> <a id="5316" class="Symbol">(</a><a id="5317" href="Algebra.Consequences.Setoid.html#4741" class="Bound">•-comm</a> <a id="5324" href="Algebra.Consequences.Setoid.html#5177" class="Bound">z</a> <a id="5326" href="Algebra.Consequences.Setoid.html#5173" class="Bound">x</a><a id="5327" class="Symbol">)</a> <a id="5329" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="5335" class="Symbol">(</a><a id="5336" href="Algebra.Consequences.Setoid.html#5173" class="Bound">x</a> <a id="5338" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5340" href="Algebra.Consequences.Setoid.html#5175" class="Bound">y</a><a id="5341" class="Symbol">)</a> <a id="5343" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5345" class="Symbol">(</a><a id="5346" href="Algebra.Consequences.Setoid.html#5173" class="Bound">x</a> <a id="5348" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5350" href="Algebra.Consequences.Setoid.html#5177" class="Bound">z</a><a id="5351" class="Symbol">)</a> <a id="5353" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="5358" href="Algebra.Consequences.Setoid.html#5358" class="Function">comm⇒sym[distribˡ]</a> <a id="5377" class="Symbol">:</a> <a id="5379" class="Symbol"></a> <a id="5381" href="Algebra.Consequences.Setoid.html#5381" class="Bound">x</a> <a id="5383" class="Symbol"></a> <a id="5385" href="Relation.Binary.Definitions.html#1498" class="Function">Symmetric</a> <a id="5395" class="Symbol"></a> <a id="5398" href="Algebra.Consequences.Setoid.html#5398" class="Bound">y</a> <a id="5400" href="Algebra.Consequences.Setoid.html#5400" class="Bound">z</a> <a id="5402" class="Symbol"></a> <a id="5404" class="Symbol">(</a><a id="5405" href="Algebra.Consequences.Setoid.html#5381" class="Bound">x</a> <a id="5407" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5409" class="Symbol">(</a><a id="5410" href="Algebra.Consequences.Setoid.html#5398" class="Bound">y</a> <a id="5412" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5414" href="Algebra.Consequences.Setoid.html#5400" class="Bound">z</a><a id="5415" class="Symbol">))</a> <a id="5418" href="Relation.Binary.Bundles.html#1098" class="Field Operator"></a> <a id="5420" class="Symbol">((</a><a id="5422" href="Algebra.Consequences.Setoid.html#5381" class="Bound">x</a> <a id="5424" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5426" href="Algebra.Consequences.Setoid.html#5398" class="Bound">y</a><a id="5427" class="Symbol">)</a> <a id="5429" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5431" class="Symbol">(</a><a id="5432" href="Algebra.Consequences.Setoid.html#5381" class="Bound">x</a> <a id="5434" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5436" href="Algebra.Consequences.Setoid.html#5400" class="Bound">z</a><a id="5437" class="Symbol">)))</a>
<a id="5443" href="Algebra.Consequences.Setoid.html#5358" class="Function">comm⇒sym[distribˡ]</a> <a id="5462" href="Algebra.Consequences.Setoid.html#5462" class="Bound">x</a> <a id="5464" class="Symbol">{</a><a id="5465" href="Algebra.Consequences.Setoid.html#5465" class="Bound">y</a><a id="5466" class="Symbol">}</a> <a id="5468" class="Symbol">{</a><a id="5469" href="Algebra.Consequences.Setoid.html#5469" class="Bound">z</a><a id="5470" class="Symbol">}</a> <a id="5472" href="Algebra.Consequences.Setoid.html#5472" class="Bound">prf</a> <a id="5476" class="Symbol">=</a> <a id="5478" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="5488" href="Algebra.Consequences.Setoid.html#5462" class="Bound">x</a> <a id="5490" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5492" class="Symbol">(</a><a id="5493" href="Algebra.Consequences.Setoid.html#5469" class="Bound">z</a> <a id="5495" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5497" href="Algebra.Consequences.Setoid.html#5465" class="Bound">y</a><a id="5498" class="Symbol">)</a> <a id="5506" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="5509" href="Algebra.Consequences.Setoid.html#4706" class="Bound">◦-cong</a> <a id="5516" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="5521" class="Symbol">(</a><a id="5522" href="Algebra.Consequences.Setoid.html#4741" class="Bound">•-comm</a> <a id="5529" href="Algebra.Consequences.Setoid.html#5469" class="Bound">z</a> <a id="5531" href="Algebra.Consequences.Setoid.html#5465" class="Bound">y</a><a id="5532" class="Symbol">)</a> <a id="5534" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="5540" href="Algebra.Consequences.Setoid.html#5462" class="Bound">x</a> <a id="5542" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5544" class="Symbol">(</a><a id="5545" href="Algebra.Consequences.Setoid.html#5465" class="Bound">y</a> <a id="5547" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5549" href="Algebra.Consequences.Setoid.html#5469" class="Bound">z</a><a id="5550" class="Symbol">)</a> <a id="5558" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="5561" href="Algebra.Consequences.Setoid.html#5472" class="Bound">prf</a> <a id="5565" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="5571" class="Symbol">(</a><a id="5572" href="Algebra.Consequences.Setoid.html#5462" class="Bound">x</a> <a id="5574" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5576" href="Algebra.Consequences.Setoid.html#5465" class="Bound">y</a><a id="5577" class="Symbol">)</a> <a id="5579" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5581" class="Symbol">(</a><a id="5582" href="Algebra.Consequences.Setoid.html#5462" class="Bound">x</a> <a id="5584" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5586" href="Algebra.Consequences.Setoid.html#5469" class="Bound">z</a><a id="5587" class="Symbol">)</a> <a id="5589" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="5592" href="Algebra.Consequences.Setoid.html#4741" class="Bound">•-comm</a> <a id="5599" class="Symbol">(</a><a id="5600" href="Algebra.Consequences.Setoid.html#5462" class="Bound">x</a> <a id="5602" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5604" href="Algebra.Consequences.Setoid.html#5465" class="Bound">y</a><a id="5605" class="Symbol">)</a> <a id="5607" class="Symbol">(</a><a id="5608" href="Algebra.Consequences.Setoid.html#5462" class="Bound">x</a> <a id="5610" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5612" href="Algebra.Consequences.Setoid.html#5469" class="Bound">z</a><a id="5613" class="Symbol">)</a> <a id="5615" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="5621" class="Symbol">(</a><a id="5622" href="Algebra.Consequences.Setoid.html#5462" class="Bound">x</a> <a id="5624" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5626" href="Algebra.Consequences.Setoid.html#5469" class="Bound">z</a><a id="5627" class="Symbol">)</a> <a id="5629" href="Algebra.Consequences.Setoid.html#4679" class="Bound Operator"></a> <a id="5631" class="Symbol">(</a><a id="5632" href="Algebra.Consequences.Setoid.html#5462" class="Bound">x</a> <a id="5634" href="Algebra.Consequences.Setoid.html#4683" class="Bound Operator"></a> <a id="5636" href="Algebra.Consequences.Setoid.html#5465" class="Bound">y</a><a id="5637" class="Symbol">)</a> <a id="5639" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="5642" class="Comment">----------------------------------------------------------------------</a>
<a id="5713" class="Comment">-- Ring-like structures</a>
<a id="5738" class="Keyword">module</a> <a id="5745" href="Algebra.Consequences.Setoid.html#5745" class="Module">_</a> <a id="5747" class="Symbol">{</a><a id="5748" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">_+_</a> <a id="5752" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">_*_</a> <a id="5756" class="Symbol">:</a> <a id="5758" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="5762" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a><a id="5763" class="Symbol">}</a>
<a id="5774" class="Symbol">{</a><a id="5775" href="Algebra.Consequences.Setoid.html#5775" class="Bound Operator">_⁻¹</a> <a id="5779" class="Symbol">:</a> <a id="5781" href="Algebra.Core.html#475" class="Function">Op₁</a> <a id="5785" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a><a id="5786" class="Symbol">}</a> <a id="5788" class="Symbol">{</a><a id="5789" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="5792" class="Symbol">:</a> <a id="5794" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a><a id="5795" class="Symbol">}</a>
<a id="5806" class="Symbol">(</a><a id="5807" href="Algebra.Consequences.Setoid.html#5807" class="Bound">+-cong</a> <a id="5814" class="Symbol">:</a> <a id="5816" href="Algebra.Definitions.html#862" class="Function">Congruent₂</a> <a id="5827" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">_+_</a><a id="5830" class="Symbol">)</a>
<a id="5841" class="Symbol">(</a><a id="5842" href="Algebra.Consequences.Setoid.html#5842" class="Bound">*-cong</a> <a id="5849" class="Symbol">:</a> <a id="5851" href="Algebra.Definitions.html#862" class="Function">Congruent₂</a> <a id="5862" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">_*_</a><a id="5865" class="Symbol">)</a>
<a id="5876" class="Keyword">where</a>
<a id="5885" href="Algebra.Consequences.Setoid.html#5885" class="Function">assoc+distribʳ+idʳ+invʳ⇒zeˡ</a> <a id="5913" class="Symbol">:</a> <a id="5915" href="Algebra.Definitions.html#1108" class="Function">Associative</a> <a id="5927" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">_+_</a> <a id="5931" class="Symbol"></a> <a id="5933" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">_*_</a> <a id="5937" href="Algebra.Definitions.html#2346" class="Function Operator">DistributesOverʳ</a> <a id="5954" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">_+_</a> <a id="5958" class="Symbol"></a>
<a id="5992" href="Algebra.Definitions.html#1341" class="Function">RightIdentity</a> <a id="6006" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6009" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">_+_</a> <a id="6013" class="Symbol"></a> <a id="6015" href="Algebra.Definitions.html#1792" class="Function">RightInverse</a> <a id="6028" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6031" href="Algebra.Consequences.Setoid.html#5775" class="Bound Operator">_⁻¹</a> <a id="6035" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">_+_</a> <a id="6039" class="Symbol"></a>
<a id="6073" href="Algebra.Definitions.html#1502" class="Function">LeftZero</a> <a id="6082" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6085" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">_*_</a>
<a id="6091" href="Algebra.Consequences.Setoid.html#5885" class="Function">assoc+distribʳ+idʳ+invʳ⇒zeˡ</a> <a id="6119" href="Algebra.Consequences.Setoid.html#6119" class="Bound">+-assoc</a> <a id="6127" href="Algebra.Consequences.Setoid.html#6127" class="Bound">distribʳ</a> <a id="6136" href="Algebra.Consequences.Setoid.html#6136" class="Bound">idʳ</a> <a id="6140" href="Algebra.Consequences.Setoid.html#6140" class="Bound">invʳ</a> <a id="6146" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a> <a id="6148" class="Symbol">=</a> <a id="6150" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="6160" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6163" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6165" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a> <a id="6199" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="6202" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="6206" class="Symbol">(</a><a id="6207" href="Algebra.Consequences.Setoid.html#6136" class="Bound">idʳ</a> <a id="6211" class="Symbol">_)</a> <a id="6214" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="6220" class="Symbol">(</a><a id="6221" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6224" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6226" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a><a id="6227" class="Symbol">)</a> <a id="6229" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="6231" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6259" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="6262" href="Algebra.Consequences.Setoid.html#5807" class="Bound">+-cong</a> <a id="6269" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="6274" class="Symbol">(</a><a id="6275" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="6279" class="Symbol">(</a><a id="6280" href="Algebra.Consequences.Setoid.html#6140" class="Bound">invʳ</a> <a id="6285" class="Symbol">_))</a> <a id="6289" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="6295" class="Symbol">(</a><a id="6296" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6299" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6301" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a><a id="6302" class="Symbol">)</a> <a id="6304" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="6306" class="Symbol">((</a><a id="6308" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6311" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6313" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a><a id="6314" class="Symbol">)</a> <a id="6317" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="6319" class="Symbol">((</a><a id="6321" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6324" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6326" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a><a id="6327" class="Symbol">)</a><a id="6328" href="Algebra.Consequences.Setoid.html#5775" class="Bound Operator">⁻¹</a><a id="6330" class="Symbol">))</a> <a id="6334" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="6337" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="6341" class="Symbol">(</a><a id="6342" href="Algebra.Consequences.Setoid.html#6119" class="Bound">+-assoc</a> <a id="6350" class="Symbol">_</a> <a id="6352" class="Symbol">_</a> <a id="6354" class="Symbol">_)</a> <a id="6357" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="6363" class="Symbol">((</a><a id="6365" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6368" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6370" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a><a id="6371" class="Symbol">)</a> <a id="6373" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="6376" class="Symbol">(</a><a id="6377" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6380" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6382" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a><a id="6383" class="Symbol">))</a> <a id="6386" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="6388" class="Symbol">((</a><a id="6390" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6393" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6395" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a><a id="6396" class="Symbol">)</a><a id="6397" href="Algebra.Consequences.Setoid.html#5775" class="Bound Operator">⁻¹</a><a id="6399" class="Symbol">)</a> <a id="6402" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="6405" href="Algebra.Consequences.Setoid.html#5807" class="Bound">+-cong</a> <a id="6412" class="Symbol">(</a><a id="6413" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="6417" class="Symbol">(</a><a id="6418" href="Algebra.Consequences.Setoid.html#6127" class="Bound">distribʳ</a> <a id="6427" class="Symbol">_</a> <a id="6429" class="Symbol">_</a> <a id="6431" class="Symbol">_))</a> <a id="6435" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="6440" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="6446" class="Symbol">((</a><a id="6448" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6451" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="6453" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a><a id="6455" class="Symbol">)</a> <a id="6457" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6459" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a><a id="6460" class="Symbol">)</a> <a id="6462" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="6464" class="Symbol">((</a><a id="6466" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6469" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6471" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a><a id="6472" class="Symbol">)</a><a id="6473" href="Algebra.Consequences.Setoid.html#5775" class="Bound Operator">⁻¹</a><a id="6475" class="Symbol">)</a> <a id="6485" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="6488" href="Algebra.Consequences.Setoid.html#5807" class="Bound">+-cong</a> <a id="6495" class="Symbol">(</a><a id="6496" href="Algebra.Consequences.Setoid.html#5842" class="Bound">*-cong</a> <a id="6503" class="Symbol">(</a><a id="6504" href="Algebra.Consequences.Setoid.html#6136" class="Bound">idʳ</a> <a id="6508" class="Symbol">_)</a> <a id="6511" href="Relation.Binary.Structures.html#1568" class="Function">refl</a><a id="6515" class="Symbol">)</a> <a id="6517" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="6522" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="6528" class="Symbol">(</a><a id="6529" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6532" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6534" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a><a id="6535" class="Symbol">)</a> <a id="6537" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="6539" class="Symbol">((</a><a id="6541" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6544" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6546" href="Algebra.Consequences.Setoid.html#6146" class="Bound">x</a><a id="6547" class="Symbol">)</a><a id="6548" href="Algebra.Consequences.Setoid.html#5775" class="Bound Operator">⁻¹</a><a id="6550" class="Symbol">)</a> <a id="6567" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="6570" href="Algebra.Consequences.Setoid.html#6140" class="Bound">invʳ</a> <a id="6575" class="Symbol">_</a> <a id="6577" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="6583" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6622" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="6627" href="Algebra.Consequences.Setoid.html#6627" class="Function">assoc+distribˡ+idʳ+invʳ⇒zeʳ</a> <a id="6655" class="Symbol">:</a> <a id="6657" href="Algebra.Definitions.html#1108" class="Function">Associative</a> <a id="6669" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">_+_</a> <a id="6673" class="Symbol"></a> <a id="6675" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">_*_</a> <a id="6679" href="Algebra.Definitions.html#2227" class="Function Operator">DistributesOverˡ</a> <a id="6696" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">_+_</a> <a id="6700" class="Symbol"></a>
<a id="6734" href="Algebra.Definitions.html#1341" class="Function">RightIdentity</a> <a id="6748" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6751" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">_+_</a> <a id="6755" class="Symbol"></a> <a id="6757" href="Algebra.Definitions.html#1792" class="Function">RightInverse</a> <a id="6770" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6773" href="Algebra.Consequences.Setoid.html#5775" class="Bound Operator">_⁻¹</a> <a id="6777" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">_+_</a> <a id="6781" class="Symbol"></a>
<a id="6815" href="Algebra.Definitions.html#1567" class="Function">RightZero</a> <a id="6825" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6828" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">_*_</a>
<a id="6834" href="Algebra.Consequences.Setoid.html#6627" class="Function">assoc+distribˡ+idʳ+invʳ⇒zeʳ</a> <a id="6862" href="Algebra.Consequences.Setoid.html#6862" class="Bound">+-assoc</a> <a id="6870" href="Algebra.Consequences.Setoid.html#6870" class="Bound">distribˡ</a> <a id="6879" href="Algebra.Consequences.Setoid.html#6879" class="Bound">idʳ</a> <a id="6883" href="Algebra.Consequences.Setoid.html#6883" class="Bound">invʳ</a> <a id="6889" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="6891" class="Symbol">=</a> <a id="6893" href="Relation.Binary.Reasoning.Base.Single.html#1916" class="Function Operator">begin</a>
<a id="6904" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="6906" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6908" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="6942" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="6945" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="6949" class="Symbol">(</a><a id="6950" href="Algebra.Consequences.Setoid.html#6879" class="Bound">idʳ</a> <a id="6954" class="Symbol">_)</a> <a id="6957" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="6964" class="Symbol">(</a><a id="6965" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="6967" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="6969" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a><a id="6971" class="Symbol">)</a> <a id="6973" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="6975" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="7002" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="7005" href="Algebra.Consequences.Setoid.html#5807" class="Bound">+-cong</a> <a id="7012" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="7017" class="Symbol">(</a><a id="7018" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="7022" class="Symbol">(</a><a id="7023" href="Algebra.Consequences.Setoid.html#6883" class="Bound">invʳ</a> <a id="7028" class="Symbol">_))</a> <a id="7032" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="7039" class="Symbol">(</a><a id="7040" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="7042" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="7044" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a><a id="7046" class="Symbol">)</a> <a id="7048" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="7050" class="Symbol">((</a><a id="7052" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="7054" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="7056" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a><a id="7058" class="Symbol">)</a> <a id="7060" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="7062" class="Symbol">((</a><a id="7064" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="7066" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="7068" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a><a id="7070" class="Symbol">)</a><a id="7071" href="Algebra.Consequences.Setoid.html#5775" class="Bound Operator">⁻¹</a><a id="7073" class="Symbol">))</a> <a id="7077" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="7080" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="7084" class="Symbol">(</a><a id="7085" href="Algebra.Consequences.Setoid.html#6862" class="Bound">+-assoc</a> <a id="7093" class="Symbol">_</a> <a id="7095" class="Symbol">_</a> <a id="7097" class="Symbol">_)</a> <a id="7100" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="7107" class="Symbol">((</a><a id="7109" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="7111" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="7113" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a><a id="7115" class="Symbol">)</a> <a id="7117" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="7119" class="Symbol">(</a><a id="7120" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="7122" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="7124" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a><a id="7126" class="Symbol">))</a> <a id="7129" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="7131" class="Symbol">((</a><a id="7133" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="7135" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="7137" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a><a id="7139" class="Symbol">)</a><a id="7140" href="Algebra.Consequences.Setoid.html#5775" class="Bound Operator">⁻¹</a><a id="7142" class="Symbol">)</a> <a id="7145" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="7148" href="Algebra.Consequences.Setoid.html#5807" class="Bound">+-cong</a> <a id="7155" class="Symbol">(</a><a id="7156" href="Relation.Binary.Structures.html#1594" class="Function">sym</a> <a id="7160" class="Symbol">(</a><a id="7161" href="Algebra.Consequences.Setoid.html#6870" class="Bound">distribˡ</a> <a id="7170" class="Symbol">_</a> <a id="7172" class="Symbol">_</a> <a id="7174" class="Symbol">_))</a> <a id="7178" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="7183" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="7190" class="Symbol">(</a><a id="7191" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="7193" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="7195" class="Symbol">(</a><a id="7196" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="7199" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="7201" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a><a id="7203" class="Symbol">))</a> <a id="7206" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="7208" class="Symbol">((</a><a id="7210" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="7212" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="7214" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a><a id="7216" class="Symbol">)</a><a id="7217" href="Algebra.Consequences.Setoid.html#5775" class="Bound Operator">⁻¹</a><a id="7219" class="Symbol">)</a> <a id="7228" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="7231" href="Algebra.Consequences.Setoid.html#5807" class="Bound">+-cong</a> <a id="7238" class="Symbol">(</a><a id="7239" href="Algebra.Consequences.Setoid.html#5842" class="Bound">*-cong</a> <a id="7246" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="7251" class="Symbol">(</a><a id="7252" href="Algebra.Consequences.Setoid.html#6879" class="Bound">idʳ</a> <a id="7256" class="Symbol">_))</a> <a id="7260" href="Relation.Binary.Structures.html#1568" class="Function">refl</a> <a id="7265" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="7272" class="Symbol">((</a><a id="7274" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="7276" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="7278" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a><a id="7280" class="Symbol">)</a> <a id="7282" href="Algebra.Consequences.Setoid.html#5748" class="Bound Operator">+</a> <a id="7284" class="Symbol">((</a><a id="7286" href="Algebra.Consequences.Setoid.html#6889" class="Bound">x</a> <a id="7288" href="Algebra.Consequences.Setoid.html#5752" class="Bound Operator">*</a> <a id="7290" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a><a id="7292" class="Symbol">)</a><a id="7293" href="Algebra.Consequences.Setoid.html#5775" class="Bound Operator">⁻¹</a><a id="7295" class="Symbol">))</a> <a id="7310" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function">≈⟨</a> <a id="7313" href="Algebra.Consequences.Setoid.html#6883" class="Bound">invʳ</a> <a id="7318" class="Symbol">_</a> <a id="7320" href="Relation.Binary.Reasoning.Setoid.html#1052" class="Function"></a>
<a id="7327" href="Algebra.Consequences.Setoid.html#5789" class="Bound">0#</a> <a id="7365" href="Relation.Binary.Reasoning.Base.Single.html#2555" class="Function Operator"></a>
<a id="7368" class="Comment">------------------------------------------------------------------------</a>
<a id="7441" class="Comment">-- Without Loss of Generality</a>
<a id="7472" class="Keyword">module</a> <a id="7479" href="Algebra.Consequences.Setoid.html#7479" class="Module">_</a> <a id="7481" class="Symbol">{</a><a id="7482" href="Algebra.Consequences.Setoid.html#7482" class="Bound">p</a><a id="7483" class="Symbol">}</a> <a id="7485" class="Symbol">{</a><a id="7486" href="Algebra.Consequences.Setoid.html#7486" class="Bound">f</a> <a id="7488" class="Symbol">:</a> <a id="7490" href="Algebra.Core.html#518" class="Function">Op₂</a> <a id="7494" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a><a id="7495" class="Symbol">}</a> <a id="7497" class="Symbol">{</a><a id="7498" href="Algebra.Consequences.Setoid.html#7498" class="Bound">P</a> <a id="7500" class="Symbol">:</a> <a id="7502" href="Relation.Unary.html#1101" class="Function">Pred</a> <a id="7507" href="Algebra.Consequences.Setoid.html#528" class="Field">A</a> <a id="7509" href="Algebra.Consequences.Setoid.html#7482" class="Bound">p</a><a id="7510" class="Symbol">}</a>
<a id="7521" class="Symbol">(</a><a id="7522" href="Algebra.Consequences.Setoid.html#7522" class="Bound">≈-subst</a> <a id="7530" class="Symbol">:</a> <a id="7532" href="Relation.Binary.Definitions.html#4369" class="Function">Substitutive</a> <a id="7545" href="Relation.Binary.Bundles.html#1098" class="Field Operator">_≈_</a> <a id="7549" href="Algebra.Consequences.Setoid.html#7482" class="Bound">p</a><a id="7550" class="Symbol">)</a>
<a id="7561" class="Symbol">(</a><a id="7562" href="Algebra.Consequences.Setoid.html#7562" class="Bound">comm</a> <a id="7567" class="Symbol">:</a> <a id="7569" href="Algebra.Definitions.html#1195" class="Function">Commutative</a> <a id="7581" href="Algebra.Consequences.Setoid.html#7486" class="Bound">f</a><a id="7582" class="Symbol">)</a>
<a id="7593" class="Keyword">where</a>
<a id="7602" href="Algebra.Consequences.Setoid.html#7602" class="Function">subst+comm⇒sym</a> <a id="7617" class="Symbol">:</a> <a id="7619" href="Relation.Binary.Definitions.html#1498" class="Function">Symmetric</a> <a id="7629" class="Symbol"></a> <a id="7632" href="Algebra.Consequences.Setoid.html#7632" class="Bound">a</a> <a id="7634" href="Algebra.Consequences.Setoid.html#7634" class="Bound">b</a> <a id="7636" class="Symbol"></a> <a id="7638" href="Algebra.Consequences.Setoid.html#7498" class="Bound">P</a> <a id="7640" class="Symbol">(</a><a id="7641" href="Algebra.Consequences.Setoid.html#7486" class="Bound">f</a> <a id="7643" href="Algebra.Consequences.Setoid.html#7632" class="Bound">a</a> <a id="7645" href="Algebra.Consequences.Setoid.html#7634" class="Bound">b</a><a id="7646" class="Symbol">))</a>
<a id="7651" href="Algebra.Consequences.Setoid.html#7602" class="Function">subst+comm⇒sym</a> <a id="7666" class="Symbol">=</a> <a id="7668" href="Algebra.Consequences.Setoid.html#7522" class="Bound">≈-subst</a> <a id="7676" href="Algebra.Consequences.Setoid.html#7498" class="Bound">P</a> <a id="7678" class="Symbol">(</a><a id="7679" href="Algebra.Consequences.Setoid.html#7562" class="Bound">comm</a> <a id="7684" class="Symbol">_</a> <a id="7686" class="Symbol">_)</a>
<a id="7692" href="Algebra.Consequences.Setoid.html#7692" class="Function">wlog</a> <a id="7697" class="Symbol">:</a> <a id="7699" class="Symbol"></a> <a id="7701" class="Symbol">{</a><a id="7702" href="Algebra.Consequences.Setoid.html#7702" class="Bound">r</a><a id="7703" class="Symbol">}</a> <a id="7705" class="Symbol">{</a><a id="7706" href="Algebra.Consequences.Setoid.html#7706" class="Bound Operator">_R_</a> <a id="7710" class="Symbol">:</a> <a id="7712" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="7716" class="Symbol">_</a> <a id="7718" href="Algebra.Consequences.Setoid.html#7702" class="Bound">r</a><a id="7719" class="Symbol">}</a> <a id="7721" class="Symbol"></a> <a id="7723" href="Relation.Binary.Definitions.html#2584" class="Function">Total</a> <a id="7729" href="Algebra.Consequences.Setoid.html#7706" class="Bound Operator">_R_</a> <a id="7733" class="Symbol"></a>
<a id="7744" class="Symbol">(∀</a> <a id="7747" href="Algebra.Consequences.Setoid.html#7747" class="Bound">a</a> <a id="7749" href="Algebra.Consequences.Setoid.html#7749" class="Bound">b</a> <a id="7751" class="Symbol"></a> <a id="7753" href="Algebra.Consequences.Setoid.html#7747" class="Bound">a</a> <a id="7755" href="Algebra.Consequences.Setoid.html#7706" class="Bound Operator">R</a> <a id="7757" href="Algebra.Consequences.Setoid.html#7749" class="Bound">b</a> <a id="7759" class="Symbol"></a> <a id="7761" href="Algebra.Consequences.Setoid.html#7498" class="Bound">P</a> <a id="7763" class="Symbol">(</a><a id="7764" href="Algebra.Consequences.Setoid.html#7486" class="Bound">f</a> <a id="7766" href="Algebra.Consequences.Setoid.html#7747" class="Bound">a</a> <a id="7768" href="Algebra.Consequences.Setoid.html#7749" class="Bound">b</a><a id="7769" class="Symbol">))</a> <a id="7772" class="Symbol"></a>
<a id="7783" class="Symbol"></a> <a id="7785" href="Algebra.Consequences.Setoid.html#7785" class="Bound">a</a> <a id="7787" href="Algebra.Consequences.Setoid.html#7787" class="Bound">b</a> <a id="7789" class="Symbol"></a> <a id="7791" href="Algebra.Consequences.Setoid.html#7498" class="Bound">P</a> <a id="7793" class="Symbol">(</a><a id="7794" href="Algebra.Consequences.Setoid.html#7486" class="Bound">f</a> <a id="7796" href="Algebra.Consequences.Setoid.html#7785" class="Bound">a</a> <a id="7798" href="Algebra.Consequences.Setoid.html#7787" class="Bound">b</a><a id="7799" class="Symbol">)</a>
<a id="7803" href="Algebra.Consequences.Setoid.html#7692" class="Function">wlog</a> <a id="7808" href="Algebra.Consequences.Setoid.html#7808" class="Bound">r-total</a> <a id="7816" class="Symbol">=</a> <a id="7818" href="Relation.Binary.Consequences.html#5523" class="Function">Bin.wlog</a> <a id="7827" href="Algebra.Consequences.Setoid.html#7808" class="Bound">r-total</a> <a id="7835" href="Algebra.Consequences.Setoid.html#7602" class="Function">subst+comm⇒sym</a>
</pre></body></html>