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

268 lines
No EOL
65 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

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

<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Algebra.Structures.Biased</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">-- Ways to give instances of certain structures where some fields can</a>
<a id="176" class="Comment">-- be given in terms of others. Re-exported via `Algebra`.</a>
<a id="235" class="Comment">------------------------------------------------------------------------</a>
<a id="309" class="Symbol">{-#</a> <a id="313" class="Keyword">OPTIONS</a> <a id="321" class="Pragma">--cubical-compatible</a> <a id="342" class="Pragma">--safe</a> <a id="349" class="Symbol">#-}</a>
<a id="354" class="Keyword">open</a> <a id="359" class="Keyword">import</a> <a id="366" href="Algebra.Core.html" class="Module">Algebra.Core</a>
<a id="379" class="Keyword">open</a> <a id="384" class="Keyword">import</a> <a id="391" href="Algebra.Consequences.Setoid.html" class="Module">Algebra.Consequences.Setoid</a>
<a id="419" class="Keyword">open</a> <a id="424" class="Keyword">import</a> <a id="431" href="Data.Product.Base.html" class="Module">Data.Product.Base</a> <a id="449" class="Keyword">using</a> <a id="455" class="Symbol">(</a><a id="456" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">_,_</a><a id="459" class="Symbol">;</a> <a id="461" href="Data.Product.Base.html#636" class="Field">proj₁</a><a id="466" class="Symbol">;</a> <a id="468" href="Data.Product.Base.html#650" class="Field">proj₂</a><a id="473" class="Symbol">)</a>
<a id="475" class="Keyword">open</a> <a id="480" class="Keyword">import</a> <a id="487" href="Level.html" class="Module">Level</a> <a id="493" class="Keyword">using</a> <a id="499" class="Symbol">(</a><a id="500" href="Agda.Primitive.html#961" class="Primitive Operator">_⊔_</a><a id="503" class="Symbol">)</a>
<a id="505" class="Keyword">open</a> <a id="510" class="Keyword">import</a> <a id="517" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a> <a id="538" class="Keyword">using</a> <a id="544" class="Symbol">(</a><a id="545" href="Relation.Binary.Core.html#896" class="Function">Rel</a><a id="548" class="Symbol">)</a>
<a id="550" class="Keyword">open</a> <a id="555" class="Keyword">import</a> <a id="562" href="Relation.Binary.Bundles.html" class="Module">Relation.Binary.Bundles</a> <a id="586" class="Keyword">using</a> <a id="592" class="Symbol">(</a><a id="593" href="Relation.Binary.Bundles.html#1080" class="Record">Setoid</a><a id="599" class="Symbol">)</a>
<a id="601" class="Keyword">open</a> <a id="606" class="Keyword">import</a> <a id="613" href="Relation.Binary.Structures.html" class="Module">Relation.Binary.Structures</a> <a id="640" class="Keyword">using</a> <a id="646" class="Symbol">(</a><a id="647" href="Relation.Binary.Structures.html#1550" class="Record">IsEquivalence</a><a id="660" class="Symbol">)</a>
<a id="663" class="Keyword">module</a> <a id="670" href="Algebra.Structures.Biased.html" class="Module">Algebra.Structures.Biased</a>
<a id="698" class="Symbol">{</a><a id="699" href="Algebra.Structures.Biased.html#699" class="Bound">a</a> <a id="701" href="Algebra.Structures.Biased.html#701" class="Bound"></a><a id="702" class="Symbol">}</a> <a id="704" class="Symbol">{</a><a id="705" href="Algebra.Structures.Biased.html#705" class="Bound">A</a> <a id="707" class="Symbol">:</a> <a id="709" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="713" href="Algebra.Structures.Biased.html#699" class="Bound">a</a><a id="714" class="Symbol">}</a> <a id="717" class="Comment">-- The underlying set</a>
<a id="741" class="Symbol">(</a><a id="742" href="Algebra.Structures.Biased.html#742" class="Bound Operator">_≈_</a> <a id="746" class="Symbol">:</a> <a id="748" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="752" href="Algebra.Structures.Biased.html#705" class="Bound">A</a> <a id="754" href="Algebra.Structures.Biased.html#701" class="Bound"></a><a id="755" class="Symbol">)</a> <a id="760" class="Comment">-- The underlying equality relation</a>
<a id="798" class="Keyword">where</a>
<a id="805" class="Keyword">open</a> <a id="810" class="Keyword">import</a> <a id="817" href="Algebra.Definitions.html" class="Module">Algebra.Definitions</a> <a id="837" href="Algebra.Structures.Biased.html#742" class="Bound Operator">_≈_</a>
<a id="841" class="Keyword">open</a> <a id="846" class="Keyword">import</a> <a id="853" href="Algebra.Structures.html" class="Module">Algebra.Structures</a> <a id="873" href="Algebra.Structures.Biased.html#742" class="Bound Operator">_≈_</a>
<a id="878" class="Comment">------------------------------------------------------------------------</a>
<a id="951" class="Comment">-- IsCommutativeMonoid</a>
<a id="975" class="Keyword">record</a> <a id="IsCommutativeMonoidˡ"></a><a id="982" href="Algebra.Structures.Biased.html#982" class="Record">IsCommutativeMonoidˡ</a> <a id="1003" class="Symbol">(</a><a id="1004" href="Algebra.Structures.Biased.html#1004" class="Bound"></a> <a id="1006" class="Symbol">:</a> <a id="1008" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="1012" href="Algebra.Structures.Biased.html#705" class="Bound">A</a><a id="1013" class="Symbol">)</a> <a id="1015" class="Symbol">(</a><a id="1016" href="Algebra.Structures.Biased.html#1016" class="Bound">ε</a> <a id="1018" class="Symbol">:</a> <a id="1020" href="Algebra.Structures.Biased.html#705" class="Bound">A</a><a id="1021" class="Symbol">)</a> <a id="1023" class="Symbol">:</a> <a id="1025" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1029" class="Symbol">(</a><a id="1030" href="Algebra.Structures.Biased.html#699" class="Bound">a</a> <a id="1032" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="1034" href="Algebra.Structures.Biased.html#701" class="Bound"></a><a id="1035" class="Symbol">)</a> <a id="1037" class="Keyword">where</a>
<a id="1045" class="Keyword">field</a>
<a id="IsCommutativeMonoidˡ.isSemigroup"></a><a id="1055" href="Algebra.Structures.Biased.html#1055" class="Field">isSemigroup</a> <a id="1067" class="Symbol">:</a> <a id="1069" href="Algebra.Structures.html#2897" class="Record">IsSemigroup</a> <a id="1081" href="Algebra.Structures.Biased.html#1004" class="Bound"></a>
<a id="IsCommutativeMonoidˡ.identityˡ"></a><a id="1087" href="Algebra.Structures.Biased.html#1087" class="Field">identityˡ</a> <a id="1099" class="Symbol">:</a> <a id="1101" href="Algebra.Definitions.html#1708" class="Function">LeftIdentity</a> <a id="1114" href="Algebra.Structures.Biased.html#1016" class="Bound">ε</a> <a id="1116" href="Algebra.Structures.Biased.html#1004" class="Bound"></a>
<a id="IsCommutativeMonoidˡ.comm"></a><a id="1122" href="Algebra.Structures.Biased.html#1122" class="Field">comm</a> <a id="1134" class="Symbol">:</a> <a id="1136" href="Algebra.Definitions.html#1635" class="Function">Commutative</a> <a id="1148" href="Algebra.Structures.Biased.html#1004" class="Bound"></a>
<a id="IsCommutativeMonoidˡ.isCommutativeMonoid"></a><a id="1153" href="Algebra.Structures.Biased.html#1153" class="Function">isCommutativeMonoid</a> <a id="1173" class="Symbol">:</a> <a id="1175" href="Algebra.Structures.html#4384" class="Record">IsCommutativeMonoid</a> <a id="1195" href="Algebra.Structures.Biased.html#1004" class="Bound"></a> <a id="1197" href="Algebra.Structures.Biased.html#1016" class="Bound">ε</a>
<a id="1201" href="Algebra.Structures.Biased.html#1153" class="Function">isCommutativeMonoid</a> <a id="1221" class="Symbol">=</a> <a id="1223" class="Keyword">record</a>
<a id="1234" class="Symbol">{</a> <a id="1236" href="Algebra.Structures.html#4456" class="Field">isMonoid</a> <a id="1245" class="Symbol">=</a> <a id="1247" class="Keyword">record</a>
<a id="1260" class="Symbol">{</a> <a id="1262" href="Algebra.Structures.html#4035" class="Field">isSemigroup</a> <a id="1274" class="Symbol">=</a> <a id="1276" href="Algebra.Structures.Biased.html#1055" class="Field">isSemigroup</a>
<a id="1294" class="Symbol">;</a> <a id="1296" href="Algebra.Structures.html#4067" class="Field">identity</a> <a id="1308" class="Symbol">=</a> <a id="1310" href="Algebra.Consequences.Setoid.html#4623" class="Function">comm∧idˡ⇒id</a> <a id="1322" href="Algebra.Structures.html#1390" class="Function">setoid</a> <a id="1329" href="Algebra.Structures.Biased.html#1122" class="Field">comm</a> <a id="1334" href="Algebra.Structures.Biased.html#1087" class="Field">identityˡ</a>
<a id="1350" class="Symbol">}</a>
<a id="1356" class="Symbol">;</a> <a id="1358" href="Algebra.Structures.html#4484" class="Field">comm</a> <a id="1363" class="Symbol">=</a> <a id="1365" href="Algebra.Structures.Biased.html#1122" class="Field">comm</a>
<a id="1374" class="Symbol">}</a> <a id="1376" class="Keyword">where</a> <a id="1382" class="Keyword">open</a> <a id="1387" href="Algebra.Structures.html#2897" class="Module">IsSemigroup</a> <a id="1399" href="Algebra.Structures.Biased.html#1055" class="Field">isSemigroup</a>
<a id="1412" class="Keyword">open</a> <a id="1417" href="Algebra.Structures.Biased.html#982" class="Module">IsCommutativeMonoidˡ</a> <a id="1438" class="Keyword">public</a>
<a id="1447" class="Keyword">using</a> <a id="1453" class="Symbol">()</a> <a id="1456" class="Keyword">renaming</a> <a id="1465" class="Symbol">(</a><a id="1466" href="Algebra.Structures.Biased.html#1153" class="Function">isCommutativeMonoid</a> <a id="1486" class="Symbol">to</a> <a id="1489" class="Function">isCommutativeMonoidˡ</a><a id="1509" class="Symbol">)</a>
<a id="1513" class="Keyword">record</a> <a id="IsCommutativeMonoidʳ"></a><a id="1520" href="Algebra.Structures.Biased.html#1520" class="Record">IsCommutativeMonoidʳ</a> <a id="1541" class="Symbol">(</a><a id="1542" href="Algebra.Structures.Biased.html#1542" class="Bound"></a> <a id="1544" class="Symbol">:</a> <a id="1546" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="1550" href="Algebra.Structures.Biased.html#705" class="Bound">A</a><a id="1551" class="Symbol">)</a> <a id="1553" class="Symbol">(</a><a id="1554" href="Algebra.Structures.Biased.html#1554" class="Bound">ε</a> <a id="1556" class="Symbol">:</a> <a id="1558" href="Algebra.Structures.Biased.html#705" class="Bound">A</a><a id="1559" class="Symbol">)</a> <a id="1561" class="Symbol">:</a> <a id="1563" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1567" class="Symbol">(</a><a id="1568" href="Algebra.Structures.Biased.html#699" class="Bound">a</a> <a id="1570" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="1572" href="Algebra.Structures.Biased.html#701" class="Bound"></a><a id="1573" class="Symbol">)</a> <a id="1575" class="Keyword">where</a>
<a id="1583" class="Keyword">field</a>
<a id="IsCommutativeMonoidʳ.isSemigroup"></a><a id="1593" href="Algebra.Structures.Biased.html#1593" class="Field">isSemigroup</a> <a id="1605" class="Symbol">:</a> <a id="1607" href="Algebra.Structures.html#2897" class="Record">IsSemigroup</a> <a id="1619" href="Algebra.Structures.Biased.html#1542" class="Bound"></a>
<a id="IsCommutativeMonoidʳ.identityʳ"></a><a id="1625" href="Algebra.Structures.Biased.html#1625" class="Field">identityʳ</a> <a id="1637" class="Symbol">:</a> <a id="1639" href="Algebra.Definitions.html#1781" class="Function">RightIdentity</a> <a id="1653" href="Algebra.Structures.Biased.html#1554" class="Bound">ε</a> <a id="1655" href="Algebra.Structures.Biased.html#1542" class="Bound"></a>
<a id="IsCommutativeMonoidʳ.comm"></a><a id="1661" href="Algebra.Structures.Biased.html#1661" class="Field">comm</a> <a id="1673" class="Symbol">:</a> <a id="1675" href="Algebra.Definitions.html#1635" class="Function">Commutative</a> <a id="1687" href="Algebra.Structures.Biased.html#1542" class="Bound"></a>
<a id="IsCommutativeMonoidʳ.isCommutativeMonoid"></a><a id="1692" href="Algebra.Structures.Biased.html#1692" class="Function">isCommutativeMonoid</a> <a id="1712" class="Symbol">:</a> <a id="1714" href="Algebra.Structures.html#4384" class="Record">IsCommutativeMonoid</a> <a id="1734" href="Algebra.Structures.Biased.html#1542" class="Bound"></a> <a id="1736" href="Algebra.Structures.Biased.html#1554" class="Bound">ε</a>
<a id="1740" href="Algebra.Structures.Biased.html#1692" class="Function">isCommutativeMonoid</a> <a id="1760" class="Symbol">=</a> <a id="1762" class="Keyword">record</a>
<a id="1773" class="Symbol">{</a> <a id="1775" href="Algebra.Structures.html#4456" class="Field">isMonoid</a> <a id="1784" class="Symbol">=</a> <a id="1786" class="Keyword">record</a>
<a id="1799" class="Symbol">{</a> <a id="1801" href="Algebra.Structures.html#4035" class="Field">isSemigroup</a> <a id="1813" class="Symbol">=</a> <a id="1815" href="Algebra.Structures.Biased.html#1593" class="Field">isSemigroup</a>
<a id="1833" class="Symbol">;</a> <a id="1835" href="Algebra.Structures.html#4067" class="Field">identity</a> <a id="1847" class="Symbol">=</a> <a id="1849" href="Algebra.Consequences.Setoid.html#4719" class="Function">comm∧idʳ⇒id</a> <a id="1861" href="Algebra.Structures.html#1390" class="Function">setoid</a> <a id="1868" href="Algebra.Structures.Biased.html#1661" class="Field">comm</a> <a id="1873" href="Algebra.Structures.Biased.html#1625" class="Field">identityʳ</a>
<a id="1889" class="Symbol">}</a>
<a id="1895" class="Symbol">;</a> <a id="1897" href="Algebra.Structures.html#4484" class="Field">comm</a> <a id="1902" class="Symbol">=</a> <a id="1904" href="Algebra.Structures.Biased.html#1661" class="Field">comm</a>
<a id="1913" class="Symbol">}</a> <a id="1915" class="Keyword">where</a> <a id="1921" class="Keyword">open</a> <a id="1926" href="Algebra.Structures.html#2897" class="Module">IsSemigroup</a> <a id="1938" href="Algebra.Structures.Biased.html#1593" class="Field">isSemigroup</a>
<a id="1951" class="Keyword">open</a> <a id="1956" href="Algebra.Structures.Biased.html#1520" class="Module">IsCommutativeMonoidʳ</a> <a id="1977" class="Keyword">public</a>
<a id="1986" class="Keyword">using</a> <a id="1992" class="Symbol">()</a> <a id="1995" class="Keyword">renaming</a> <a id="2004" class="Symbol">(</a><a id="2005" href="Algebra.Structures.Biased.html#1692" class="Function">isCommutativeMonoid</a> <a id="2025" class="Symbol">to</a> <a id="2028" class="Function">isCommutativeMonoidʳ</a><a id="2048" class="Symbol">)</a>
<a id="2051" class="Comment">------------------------------------------------------------------------</a>
<a id="2124" class="Comment">-- IsSemiringWithoutOne</a>
<a id="2149" class="Keyword">record</a> <a id="IsSemiringWithoutOne*"></a><a id="2156" href="Algebra.Structures.Biased.html#2156" class="Record">IsSemiringWithoutOne*</a> <a id="2178" class="Symbol">(</a><a id="2179" href="Algebra.Structures.Biased.html#2179" class="Bound">+</a> <a id="2181" href="Algebra.Structures.Biased.html#2181" class="Bound">*</a> <a id="2183" class="Symbol">:</a> <a id="2185" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="2189" href="Algebra.Structures.Biased.html#705" class="Bound">A</a><a id="2190" class="Symbol">)</a> <a id="2192" class="Symbol">(</a><a id="2193" href="Algebra.Structures.Biased.html#2193" class="Bound">0#</a> <a id="2196" class="Symbol">:</a> <a id="2198" href="Algebra.Structures.Biased.html#705" class="Bound">A</a><a id="2199" class="Symbol">)</a> <a id="2201" class="Symbol">:</a> <a id="2203" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2207" class="Symbol">(</a><a id="2208" href="Algebra.Structures.Biased.html#699" class="Bound">a</a> <a id="2210" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="2212" href="Algebra.Structures.Biased.html#701" class="Bound"></a><a id="2213" class="Symbol">)</a> <a id="2215" class="Keyword">where</a>
<a id="2223" class="Keyword">field</a>
<a id="IsSemiringWithoutOne*.+-isCommutativeMonoid"></a><a id="2233" href="Algebra.Structures.Biased.html#2233" class="Field">+-isCommutativeMonoid</a> <a id="2255" class="Symbol">:</a> <a id="2257" href="Algebra.Structures.html#4384" class="Record">IsCommutativeMonoid</a> <a id="2277" href="Algebra.Structures.Biased.html#2179" class="Bound">+</a> <a id="2279" href="Algebra.Structures.Biased.html#2193" class="Bound">0#</a>
<a id="IsSemiringWithoutOne*.*-isSemigroup"></a><a id="2286" href="Algebra.Structures.Biased.html#2286" class="Field">*-isSemigroup</a> <a id="2308" class="Symbol">:</a> <a id="2310" href="Algebra.Structures.html#2897" class="Record">IsSemigroup</a> <a id="2322" href="Algebra.Structures.Biased.html#2181" class="Bound">*</a>
<a id="IsSemiringWithoutOne*.distrib"></a><a id="2328" href="Algebra.Structures.Biased.html#2328" class="Field">distrib</a> <a id="2350" class="Symbol">:</a> <a id="2352" href="Algebra.Structures.Biased.html#2181" class="Bound">*</a> <a id="2354" href="Algebra.Definitions.html#3393" class="Function Operator">DistributesOver</a> <a id="2370" href="Algebra.Structures.Biased.html#2179" class="Bound">+</a>
<a id="IsSemiringWithoutOne*.zero"></a><a id="2376" href="Algebra.Structures.Biased.html#2376" class="Field">zero</a> <a id="2398" class="Symbol">:</a> <a id="2400" href="Algebra.Definitions.html#2074" class="Function">Zero</a> <a id="2405" href="Algebra.Structures.Biased.html#2193" class="Bound">0#</a> <a id="2408" href="Algebra.Structures.Biased.html#2181" class="Bound">*</a>
<a id="IsSemiringWithoutOne*.isSemiringWithoutOne"></a><a id="2413" href="Algebra.Structures.Biased.html#2413" class="Function">isSemiringWithoutOne</a> <a id="2434" class="Symbol">:</a> <a id="2436" href="Algebra.Structures.html#8848" class="Record">IsSemiringWithoutOne</a> <a id="2457" href="Algebra.Structures.Biased.html#2179" class="Bound">+</a> <a id="2459" href="Algebra.Structures.Biased.html#2181" class="Bound">*</a> <a id="2461" href="Algebra.Structures.Biased.html#2193" class="Bound">0#</a>
<a id="2466" href="Algebra.Structures.Biased.html#2413" class="Function">isSemiringWithoutOne</a> <a id="2487" class="Symbol">=</a> <a id="2489" class="Keyword">record</a>
<a id="2500" class="Symbol">{</a> <a id="2502" href="Algebra.Structures.html#8924" class="Field">+-isCommutativeMonoid</a> <a id="2524" class="Symbol">=</a> <a id="2526" href="Algebra.Structures.Biased.html#2233" class="Field">+-isCommutativeMonoid</a>
<a id="2552" class="Symbol">;</a> <a id="2554" href="Algebra.Structures.html#8977" class="Field">*-cong</a> <a id="2561" class="Symbol">=</a> <a id="2563" href="Algebra.Structures.html#1315" class="Function">∙-cong</a>
<a id="2574" class="Symbol">;</a> <a id="2576" href="Algebra.Structures.html#9018" class="Field">*-assoc</a> <a id="2584" class="Symbol">=</a> <a id="2586" href="Algebra.Structures.html#2977" class="Function">assoc</a>
<a id="2596" class="Symbol">;</a> <a id="2598" href="Algebra.Structures.html#9060" class="Field">distrib</a> <a id="2606" class="Symbol">=</a> <a id="2608" href="Algebra.Structures.Biased.html#2328" class="Field">distrib</a>
<a id="2620" class="Symbol">;</a> <a id="2622" href="Algebra.Structures.html#9108" class="Field">zero</a> <a id="2627" class="Symbol">=</a> <a id="2629" href="Algebra.Structures.Biased.html#2376" class="Field">zero</a>
<a id="2638" class="Symbol">}</a> <a id="2640" class="Keyword">where</a> <a id="2646" class="Keyword">open</a> <a id="2651" href="Algebra.Structures.html#2897" class="Module">IsSemigroup</a> <a id="2663" href="Algebra.Structures.Biased.html#2286" class="Field">*-isSemigroup</a>
<a id="2678" class="Keyword">open</a> <a id="2683" href="Algebra.Structures.Biased.html#2156" class="Module">IsSemiringWithoutOne*</a> <a id="2705" class="Keyword">public</a>
<a id="2714" class="Keyword">using</a> <a id="2720" class="Symbol">()</a> <a id="2723" class="Keyword">renaming</a> <a id="2732" class="Symbol">(</a><a id="2733" href="Algebra.Structures.Biased.html#2413" class="Function">isSemiringWithoutOne</a> <a id="2754" class="Symbol">to</a> <a id="2757" class="Function">isSemiringWithoutOne*</a><a id="2778" class="Symbol">)</a>
<a id="2781" class="Comment">------------------------------------------------------------------------</a>
<a id="2854" class="Comment">-- IsNearSemiring</a>
<a id="2873" class="Keyword">record</a> <a id="IsNearSemiring*"></a><a id="2880" href="Algebra.Structures.Biased.html#2880" class="Record">IsNearSemiring*</a> <a id="2896" class="Symbol">(</a><a id="2897" href="Algebra.Structures.Biased.html#2897" class="Bound">+</a> <a id="2899" href="Algebra.Structures.Biased.html#2899" class="Bound">*</a> <a id="2901" class="Symbol">:</a> <a id="2903" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="2907" href="Algebra.Structures.Biased.html#705" class="Bound">A</a><a id="2908" class="Symbol">)</a> <a id="2910" class="Symbol">(</a><a id="2911" href="Algebra.Structures.Biased.html#2911" class="Bound">0#</a> <a id="2914" class="Symbol">:</a> <a id="2916" href="Algebra.Structures.Biased.html#705" class="Bound">A</a><a id="2917" class="Symbol">)</a> <a id="2919" class="Symbol">:</a> <a id="2921" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2925" class="Symbol">(</a><a id="2926" href="Algebra.Structures.Biased.html#699" class="Bound">a</a> <a id="2928" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="2930" href="Algebra.Structures.Biased.html#701" class="Bound"></a><a id="2931" class="Symbol">)</a> <a id="2933" class="Keyword">where</a>
<a id="2941" class="Keyword">field</a>
<a id="IsNearSemiring*.+-isMonoid"></a><a id="2951" href="Algebra.Structures.Biased.html#2951" class="Field">+-isMonoid</a> <a id="2965" class="Symbol">:</a> <a id="2967" href="Algebra.Structures.html#3974" class="Record">IsMonoid</a> <a id="2976" href="Algebra.Structures.Biased.html#2897" class="Bound">+</a> <a id="2978" href="Algebra.Structures.Biased.html#2911" class="Bound">0#</a>
<a id="IsNearSemiring*.*-isSemigroup"></a><a id="2985" href="Algebra.Structures.Biased.html#2985" class="Field">*-isSemigroup</a> <a id="2999" class="Symbol">:</a> <a id="3001" href="Algebra.Structures.html#2897" class="Record">IsSemigroup</a> <a id="3013" href="Algebra.Structures.Biased.html#2899" class="Bound">*</a>
<a id="IsNearSemiring*.distribʳ"></a><a id="3019" href="Algebra.Structures.Biased.html#3019" class="Field">distribʳ</a> <a id="3033" class="Symbol">:</a> <a id="3035" href="Algebra.Structures.Biased.html#2899" class="Bound">*</a> <a id="3037" href="Algebra.Definitions.html#3274" class="Function Operator">DistributesOverʳ</a> <a id="3054" href="Algebra.Structures.Biased.html#2897" class="Bound">+</a>
<a id="IsNearSemiring*.zeroˡ"></a><a id="3060" href="Algebra.Structures.Biased.html#3060" class="Field">zeroˡ</a> <a id="3074" class="Symbol">:</a> <a id="3076" href="Algebra.Definitions.html#1942" class="Function">LeftZero</a> <a id="3085" href="Algebra.Structures.Biased.html#2911" class="Bound">0#</a> <a id="3088" href="Algebra.Structures.Biased.html#2899" class="Bound">*</a>
<a id="IsNearSemiring*.isNearSemiring"></a><a id="3093" href="Algebra.Structures.Biased.html#3093" class="Function">isNearSemiring</a> <a id="3108" class="Symbol">:</a> <a id="3110" href="Algebra.Structures.html#7859" class="Record">IsNearSemiring</a> <a id="3125" href="Algebra.Structures.Biased.html#2897" class="Bound">+</a> <a id="3127" href="Algebra.Structures.Biased.html#2899" class="Bound">*</a> <a id="3129" href="Algebra.Structures.Biased.html#2911" class="Bound">0#</a>
<a id="3134" href="Algebra.Structures.Biased.html#3093" class="Function">isNearSemiring</a> <a id="3149" class="Symbol">=</a> <a id="3151" class="Keyword">record</a>
<a id="3162" class="Symbol">{</a> <a id="3164" href="Algebra.Structures.html#7929" class="Field">+-isMonoid</a> <a id="3175" class="Symbol">=</a> <a id="3177" href="Algebra.Structures.Biased.html#2951" class="Field">+-isMonoid</a>
<a id="3192" class="Symbol">;</a> <a id="3194" href="Algebra.Structures.html#7963" class="Field">*-cong</a> <a id="3201" class="Symbol">=</a> <a id="3203" href="Algebra.Structures.html#1315" class="Function">∙-cong</a>
<a id="3214" class="Symbol">;</a> <a id="3216" href="Algebra.Structures.html#7996" class="Field">*-assoc</a> <a id="3224" class="Symbol">=</a> <a id="3226" href="Algebra.Structures.html#2977" class="Function">assoc</a>
<a id="3236" class="Symbol">;</a> <a id="3238" href="Algebra.Structures.html#8030" class="Field">distribʳ</a> <a id="3247" class="Symbol">=</a> <a id="3249" href="Algebra.Structures.Biased.html#3019" class="Field">distribʳ</a>
<a id="3262" class="Symbol">;</a> <a id="3264" href="Algebra.Structures.html#8071" class="Field">zeroˡ</a> <a id="3270" class="Symbol">=</a> <a id="3272" href="Algebra.Structures.Biased.html#3060" class="Field">zeroˡ</a>
<a id="3282" class="Symbol">}</a> <a id="3284" class="Keyword">where</a> <a id="3290" class="Keyword">open</a> <a id="3295" href="Algebra.Structures.html#2897" class="Module">IsSemigroup</a> <a id="3307" href="Algebra.Structures.Biased.html#2985" class="Field">*-isSemigroup</a>
<a id="3322" class="Keyword">open</a> <a id="3327" href="Algebra.Structures.Biased.html#2880" class="Module">IsNearSemiring*</a> <a id="3343" class="Keyword">public</a>
<a id="3352" class="Keyword">using</a> <a id="3358" class="Symbol">()</a> <a id="3361" class="Keyword">renaming</a> <a id="3370" class="Symbol">(</a><a id="3371" href="Algebra.Structures.Biased.html#3093" class="Function">isNearSemiring</a> <a id="3386" class="Symbol">to</a> <a id="3389" class="Function">isNearSemiring*</a><a id="3404" class="Symbol">)</a>
<a id="3407" class="Comment">------------------------------------------------------------------------</a>
<a id="3480" class="Comment">-- IsSemiringWithoutAnnihilatingZero</a>
<a id="3518" class="Keyword">record</a> <a id="IsSemiringWithoutAnnihilatingZero*"></a><a id="3525" href="Algebra.Structures.Biased.html#3525" class="Record">IsSemiringWithoutAnnihilatingZero*</a> <a id="3560" class="Symbol">(</a><a id="3561" href="Algebra.Structures.Biased.html#3561" class="Bound">+</a> <a id="3563" href="Algebra.Structures.Biased.html#3563" class="Bound">*</a> <a id="3565" class="Symbol">:</a> <a id="3567" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="3571" href="Algebra.Structures.Biased.html#705" class="Bound">A</a><a id="3572" class="Symbol">)</a> <a id="3574" class="Symbol">(</a><a id="3575" href="Algebra.Structures.Biased.html#3575" class="Bound">0#</a> <a id="3578" href="Algebra.Structures.Biased.html#3578" class="Bound">1#</a> <a id="3581" class="Symbol">:</a> <a id="3583" href="Algebra.Structures.Biased.html#705" class="Bound">A</a><a id="3584" class="Symbol">)</a> <a id="3586" class="Symbol">:</a> <a id="3588" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3592" class="Symbol">(</a><a id="3593" href="Algebra.Structures.Biased.html#699" class="Bound">a</a> <a id="3595" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="3597" href="Algebra.Structures.Biased.html#701" class="Bound"></a><a id="3598" class="Symbol">)</a> <a id="3600" class="Keyword">where</a>
<a id="3608" class="Keyword">field</a>
<a id="IsSemiringWithoutAnnihilatingZero*.+-isCommutativeMonoid"></a><a id="3618" href="Algebra.Structures.Biased.html#3618" class="Field">+-isCommutativeMonoid</a> <a id="3640" class="Symbol">:</a> <a id="3642" href="Algebra.Structures.html#4384" class="Record">IsCommutativeMonoid</a> <a id="3662" href="Algebra.Structures.Biased.html#3561" class="Bound">+</a> <a id="3664" href="Algebra.Structures.Biased.html#3575" class="Bound">0#</a>
<a id="IsSemiringWithoutAnnihilatingZero*.*-isMonoid"></a><a id="3671" href="Algebra.Structures.Biased.html#3671" class="Field">*-isMonoid</a> <a id="3693" class="Symbol">:</a> <a id="3695" href="Algebra.Structures.html#3974" class="Record">IsMonoid</a> <a id="3704" href="Algebra.Structures.Biased.html#3563" class="Bound">*</a> <a id="3706" href="Algebra.Structures.Biased.html#3578" class="Bound">1#</a>
<a id="IsSemiringWithoutAnnihilatingZero*.distrib"></a><a id="3713" href="Algebra.Structures.Biased.html#3713" class="Field">distrib</a> <a id="3735" class="Symbol">:</a> <a id="3737" href="Algebra.Structures.Biased.html#3563" class="Bound">*</a> <a id="3739" href="Algebra.Definitions.html#3393" class="Function Operator">DistributesOver</a> <a id="3755" href="Algebra.Structures.Biased.html#3561" class="Bound">+</a>
<a id="IsSemiringWithoutAnnihilatingZero*.isSemiringWithoutAnnihilatingZero"></a><a id="3760" href="Algebra.Structures.Biased.html#3760" class="Function">isSemiringWithoutAnnihilatingZero</a> <a id="3794" class="Symbol">:</a> <a id="3796" href="Algebra.Structures.html#10875" class="Record">IsSemiringWithoutAnnihilatingZero</a> <a id="3830" href="Algebra.Structures.Biased.html#3561" class="Bound">+</a> <a id="3832" href="Algebra.Structures.Biased.html#3563" class="Bound">*</a> <a id="3834" href="Algebra.Structures.Biased.html#3575" class="Bound">0#</a> <a id="3837" href="Algebra.Structures.Biased.html#3578" class="Bound">1#</a>
<a id="3842" href="Algebra.Structures.Biased.html#3760" class="Function">isSemiringWithoutAnnihilatingZero</a> <a id="3876" class="Symbol">=</a> <a id="3878" class="Keyword">record</a>
<a id="3889" class="Symbol">{</a> <a id="3891" href="Algebra.Structures.html#11137" class="Field">+-isCommutativeMonoid</a> <a id="3913" class="Symbol">=</a> <a id="3915" href="Algebra.Structures.Biased.html#3618" class="Field">+-isCommutativeMonoid</a>
<a id="3941" class="Symbol">;</a> <a id="3943" href="Algebra.Structures.html#11190" class="Field">*-cong</a> <a id="3950" class="Symbol">=</a> <a id="3952" href="Algebra.Structures.html#1315" class="Function">∙-cong</a>
<a id="3963" class="Symbol">;</a> <a id="3965" href="Algebra.Structures.html#11231" class="Field">*-assoc</a> <a id="3973" class="Symbol">=</a> <a id="3975" href="Algebra.Structures.html#2977" class="Function">assoc</a>
<a id="3985" class="Symbol">;</a> <a id="3987" href="Algebra.Structures.html#11273" class="Field">*-identity</a> <a id="3998" class="Symbol">=</a> <a id="4000" href="Algebra.Structures.html#4067" class="Function">identity</a>
<a id="4013" class="Symbol">;</a> <a id="4015" href="Algebra.Structures.html#11315" class="Field">distrib</a> <a id="4023" class="Symbol">=</a> <a id="4025" href="Algebra.Structures.Biased.html#3713" class="Field">distrib</a>
<a id="4037" class="Symbol">}</a> <a id="4039" class="Keyword">where</a> <a id="4045" class="Keyword">open</a> <a id="4050" href="Algebra.Structures.html#3974" class="Module">IsMonoid</a> <a id="4059" href="Algebra.Structures.Biased.html#3671" class="Field">*-isMonoid</a>
<a id="4071" class="Keyword">open</a> <a id="4076" href="Algebra.Structures.Biased.html#3525" class="Module">IsSemiringWithoutAnnihilatingZero*</a> <a id="4111" class="Keyword">public</a>
<a id="4120" class="Keyword">using</a> <a id="4126" class="Symbol">()</a> <a id="4129" class="Keyword">renaming</a> <a id="4138" class="Symbol">(</a><a id="4139" href="Algebra.Structures.Biased.html#3760" class="Function">isSemiringWithoutAnnihilatingZero</a> <a id="4173" class="Symbol">to</a> <a id="4176" class="Function">isSemiringWithoutAnnihilatingZero*</a><a id="4210" class="Symbol">)</a>
<a id="4213" class="Comment">------------------------------------------------------------------------</a>
<a id="4286" class="Comment">-- IsCommutativeSemiring</a>
<a id="4312" class="Keyword">record</a> <a id="IsCommutativeSemiringˡ"></a><a id="4319" href="Algebra.Structures.Biased.html#4319" class="Record">IsCommutativeSemiringˡ</a> <a id="4342" class="Symbol">(</a><a id="4343" href="Algebra.Structures.Biased.html#4343" class="Bound">+</a> <a id="4345" href="Algebra.Structures.Biased.html#4345" class="Bound">*</a> <a id="4347" class="Symbol">:</a> <a id="4349" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="4353" href="Algebra.Structures.Biased.html#705" class="Bound">A</a><a id="4354" class="Symbol">)</a> <a id="4356" class="Symbol">(</a><a id="4357" href="Algebra.Structures.Biased.html#4357" class="Bound">0#</a> <a id="4360" href="Algebra.Structures.Biased.html#4360" class="Bound">1#</a> <a id="4363" class="Symbol">:</a> <a id="4365" href="Algebra.Structures.Biased.html#705" class="Bound">A</a><a id="4366" class="Symbol">)</a> <a id="4368" class="Symbol">:</a> <a id="4370" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="4374" class="Symbol">(</a><a id="4375" href="Algebra.Structures.Biased.html#699" class="Bound">a</a> <a id="4377" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="4379" href="Algebra.Structures.Biased.html#701" class="Bound"></a><a id="4380" class="Symbol">)</a> <a id="4382" class="Keyword">where</a>
<a id="4390" class="Keyword">field</a>
<a id="IsCommutativeSemiringˡ.+-isCommutativeMonoid"></a><a id="4400" href="Algebra.Structures.Biased.html#4400" class="Field">+-isCommutativeMonoid</a> <a id="4422" class="Symbol">:</a> <a id="4424" href="Algebra.Structures.html#4384" class="Record">IsCommutativeMonoid</a> <a id="4444" href="Algebra.Structures.Biased.html#4343" class="Bound">+</a> <a id="4446" href="Algebra.Structures.Biased.html#4357" class="Bound">0#</a>
<a id="IsCommutativeSemiringˡ.*-isCommutativeMonoid"></a><a id="4453" href="Algebra.Structures.Biased.html#4453" class="Field">*-isCommutativeMonoid</a> <a id="4475" class="Symbol">:</a> <a id="4477" href="Algebra.Structures.html#4384" class="Record">IsCommutativeMonoid</a> <a id="4497" href="Algebra.Structures.Biased.html#4345" class="Bound">*</a> <a id="4499" href="Algebra.Structures.Biased.html#4360" class="Bound">1#</a>
<a id="IsCommutativeSemiringˡ.distribʳ"></a><a id="4506" href="Algebra.Structures.Biased.html#4506" class="Field">distribʳ</a> <a id="4528" class="Symbol">:</a> <a id="4530" href="Algebra.Structures.Biased.html#4345" class="Bound">*</a> <a id="4532" href="Algebra.Definitions.html#3274" class="Function Operator">DistributesOverʳ</a> <a id="4549" href="Algebra.Structures.Biased.html#4343" class="Bound">+</a>
<a id="IsCommutativeSemiringˡ.zeroˡ"></a><a id="4555" href="Algebra.Structures.Biased.html#4555" class="Field">zeroˡ</a> <a id="4577" class="Symbol">:</a> <a id="4579" href="Algebra.Definitions.html#1942" class="Function">LeftZero</a> <a id="4588" href="Algebra.Structures.Biased.html#4357" class="Bound">0#</a> <a id="4591" href="Algebra.Structures.Biased.html#4345" class="Bound">*</a>
<a id="IsCommutativeSemiringˡ.isCommutativeSemiring"></a><a id="4596" href="Algebra.Structures.Biased.html#4596" class="Function">isCommutativeSemiring</a> <a id="4618" class="Symbol">:</a> <a id="4620" href="Algebra.Structures.html#13418" class="Record">IsCommutativeSemiring</a> <a id="4642" href="Algebra.Structures.Biased.html#4343" class="Bound">+</a> <a id="4644" href="Algebra.Structures.Biased.html#4345" class="Bound">*</a> <a id="4646" href="Algebra.Structures.Biased.html#4357" class="Bound">0#</a> <a id="4649" href="Algebra.Structures.Biased.html#4360" class="Bound">1#</a>
<a id="4654" href="Algebra.Structures.Biased.html#4596" class="Function">isCommutativeSemiring</a> <a id="4676" class="Symbol">=</a> <a id="4678" class="Keyword">record</a>
<a id="4689" class="Symbol">{</a> <a id="4691" href="Algebra.Structures.html#13498" class="Field">isSemiring</a> <a id="4702" class="Symbol">=</a> <a id="4704" class="Keyword">record</a>
<a id="4717" class="Symbol">{</a> <a id="4719" href="Algebra.Structures.html#12800" class="Field">isSemiringWithoutAnnihilatingZero</a> <a id="4753" class="Symbol">=</a> <a id="4755" class="Keyword">record</a>
<a id="4770" class="Symbol">{</a> <a id="4772" href="Algebra.Structures.html#11137" class="Field">+-isCommutativeMonoid</a> <a id="4794" class="Symbol">=</a> <a id="4796" href="Algebra.Structures.Biased.html#4400" class="Field">+-isCommutativeMonoid</a>
<a id="4826" class="Symbol">;</a> <a id="4828" href="Algebra.Structures.html#11190" class="Field">*-cong</a> <a id="4850" class="Symbol">=</a> <a id="4852" href="Algebra.Structures.html#1315" class="Function">*.∙-cong</a>
<a id="4869" class="Symbol">;</a> <a id="4871" href="Algebra.Structures.html#11231" class="Field">*-assoc</a> <a id="4893" class="Symbol">=</a> <a id="4895" href="Algebra.Structures.html#2977" class="Function">*.assoc</a>
<a id="4911" class="Symbol">;</a> <a id="4913" href="Algebra.Structures.html#11273" class="Field">*-identity</a> <a id="4935" class="Symbol">=</a> <a id="4937" href="Algebra.Structures.html#4067" class="Function">*.identity</a>
<a id="4956" class="Symbol">;</a> <a id="4958" href="Algebra.Structures.html#11315" class="Field">distrib</a> <a id="4980" class="Symbol">=</a> <a id="4982" href="Algebra.Consequences.Setoid.html#8650" class="Function">comm∧distrʳ⇒distr</a> <a id="5000" href="Algebra.Structures.html#1390" class="Function">+.setoid</a> <a id="5009" href="Algebra.Structures.html#1315" class="Function">+.∙-cong</a> <a id="5018" href="Algebra.Structures.html#4484" class="Function">*.comm</a> <a id="5025" href="Algebra.Structures.Biased.html#4506" class="Field">distribʳ</a>
<a id="5042" class="Symbol">}</a>
<a id="5050" class="Symbol">;</a> <a id="5052" href="Algebra.Structures.html#12890" class="Field">zero</a> <a id="5057" class="Symbol">=</a> <a id="5059" href="Algebra.Consequences.Setoid.html#5090" class="Function">comm∧zeˡ⇒ze</a> <a id="5071" href="Algebra.Structures.html#1390" class="Function">+.setoid</a> <a id="5080" href="Algebra.Structures.html#4484" class="Function">*.comm</a> <a id="5087" href="Algebra.Structures.Biased.html#4555" class="Field">zeroˡ</a>
<a id="5099" class="Symbol">}</a>
<a id="5105" class="Symbol">;</a> <a id="5107" href="Algebra.Structures.html#13536" class="Field">*-comm</a> <a id="5114" class="Symbol">=</a> <a id="5116" href="Algebra.Structures.html#4484" class="Function">*.comm</a>
<a id="5127" class="Symbol">}</a>
<a id="5133" class="Keyword">where</a>
<a id="5143" class="Keyword">module</a> <a id="5150" href="Algebra.Structures.Biased.html#5150" class="Module">+</a> <a id="5152" class="Symbol">=</a> <a id="5154" href="Algebra.Structures.html#4384" class="Module">IsCommutativeMonoid</a> <a id="5174" href="Algebra.Structures.Biased.html#4400" class="Field">+-isCommutativeMonoid</a>
<a id="5200" class="Keyword">module</a> <a id="5207" href="Algebra.Structures.Biased.html#5207" class="Module">*</a> <a id="5209" class="Symbol">=</a> <a id="5211" href="Algebra.Structures.html#4384" class="Module">IsCommutativeMonoid</a> <a id="5231" href="Algebra.Structures.Biased.html#4453" class="Field">*-isCommutativeMonoid</a>
<a id="5254" class="Keyword">open</a> <a id="5259" href="Algebra.Structures.Biased.html#4319" class="Module">IsCommutativeSemiringˡ</a> <a id="5282" class="Keyword">public</a>
<a id="5291" class="Keyword">using</a> <a id="5297" class="Symbol">()</a> <a id="5300" class="Keyword">renaming</a> <a id="5309" class="Symbol">(</a><a id="5310" href="Algebra.Structures.Biased.html#4596" class="Function">isCommutativeSemiring</a> <a id="5332" class="Symbol">to</a> <a id="5335" class="Function">isCommutativeSemiringˡ</a><a id="5357" class="Symbol">)</a>
<a id="5361" class="Keyword">record</a> <a id="IsCommutativeSemiringʳ"></a><a id="5368" href="Algebra.Structures.Biased.html#5368" class="Record">IsCommutativeSemiringʳ</a> <a id="5391" class="Symbol">(</a><a id="5392" href="Algebra.Structures.Biased.html#5392" class="Bound">+</a> <a id="5394" href="Algebra.Structures.Biased.html#5394" class="Bound">*</a> <a id="5396" class="Symbol">:</a> <a id="5398" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="5402" href="Algebra.Structures.Biased.html#705" class="Bound">A</a><a id="5403" class="Symbol">)</a> <a id="5405" class="Symbol">(</a><a id="5406" href="Algebra.Structures.Biased.html#5406" class="Bound">0#</a> <a id="5409" href="Algebra.Structures.Biased.html#5409" class="Bound">1#</a> <a id="5412" class="Symbol">:</a> <a id="5414" href="Algebra.Structures.Biased.html#705" class="Bound">A</a><a id="5415" class="Symbol">)</a> <a id="5417" class="Symbol">:</a> <a id="5419" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="5423" class="Symbol">(</a><a id="5424" href="Algebra.Structures.Biased.html#699" class="Bound">a</a> <a id="5426" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="5428" href="Algebra.Structures.Biased.html#701" class="Bound"></a><a id="5429" class="Symbol">)</a> <a id="5431" class="Keyword">where</a>
<a id="5439" class="Keyword">field</a>
<a id="IsCommutativeSemiringʳ.+-isCommutativeMonoid"></a><a id="5449" href="Algebra.Structures.Biased.html#5449" class="Field">+-isCommutativeMonoid</a> <a id="5471" class="Symbol">:</a> <a id="5473" href="Algebra.Structures.html#4384" class="Record">IsCommutativeMonoid</a> <a id="5493" href="Algebra.Structures.Biased.html#5392" class="Bound">+</a> <a id="5495" href="Algebra.Structures.Biased.html#5406" class="Bound">0#</a>
<a id="IsCommutativeSemiringʳ.*-isCommutativeMonoid"></a><a id="5502" href="Algebra.Structures.Biased.html#5502" class="Field">*-isCommutativeMonoid</a> <a id="5524" class="Symbol">:</a> <a id="5526" href="Algebra.Structures.html#4384" class="Record">IsCommutativeMonoid</a> <a id="5546" href="Algebra.Structures.Biased.html#5394" class="Bound">*</a> <a id="5548" href="Algebra.Structures.Biased.html#5409" class="Bound">1#</a>
<a id="IsCommutativeSemiringʳ.distribˡ"></a><a id="5555" href="Algebra.Structures.Biased.html#5555" class="Field">distribˡ</a> <a id="5577" class="Symbol">:</a> <a id="5579" href="Algebra.Structures.Biased.html#5394" class="Bound">*</a> <a id="5581" href="Algebra.Definitions.html#3155" class="Function Operator">DistributesOverˡ</a> <a id="5598" href="Algebra.Structures.Biased.html#5392" class="Bound">+</a>
<a id="IsCommutativeSemiringʳ.zeroʳ"></a><a id="5604" href="Algebra.Structures.Biased.html#5604" class="Field">zeroʳ</a> <a id="5626" class="Symbol">:</a> <a id="5628" href="Algebra.Definitions.html#2007" class="Function">RightZero</a> <a id="5638" href="Algebra.Structures.Biased.html#5406" class="Bound">0#</a> <a id="5641" href="Algebra.Structures.Biased.html#5394" class="Bound">*</a>
<a id="IsCommutativeSemiringʳ.isCommutativeSemiring"></a><a id="5646" href="Algebra.Structures.Biased.html#5646" class="Function">isCommutativeSemiring</a> <a id="5668" class="Symbol">:</a> <a id="5670" href="Algebra.Structures.html#13418" class="Record">IsCommutativeSemiring</a> <a id="5692" href="Algebra.Structures.Biased.html#5392" class="Bound">+</a> <a id="5694" href="Algebra.Structures.Biased.html#5394" class="Bound">*</a> <a id="5696" href="Algebra.Structures.Biased.html#5406" class="Bound">0#</a> <a id="5699" href="Algebra.Structures.Biased.html#5409" class="Bound">1#</a>
<a id="5704" href="Algebra.Structures.Biased.html#5646" class="Function">isCommutativeSemiring</a> <a id="5726" class="Symbol">=</a> <a id="5728" class="Keyword">record</a>
<a id="5739" class="Symbol">{</a> <a id="5741" href="Algebra.Structures.html#13498" class="Field">isSemiring</a> <a id="5752" class="Symbol">=</a> <a id="5754" class="Keyword">record</a>
<a id="5767" class="Symbol">{</a> <a id="5769" href="Algebra.Structures.html#12800" class="Field">isSemiringWithoutAnnihilatingZero</a> <a id="5803" class="Symbol">=</a> <a id="5805" class="Keyword">record</a>
<a id="5820" class="Symbol">{</a> <a id="5822" href="Algebra.Structures.html#11137" class="Field">+-isCommutativeMonoid</a> <a id="5844" class="Symbol">=</a> <a id="5846" href="Algebra.Structures.Biased.html#5449" class="Field">+-isCommutativeMonoid</a>
<a id="5876" class="Symbol">;</a> <a id="5878" href="Algebra.Structures.html#11190" class="Field">*-cong</a> <a id="5900" class="Symbol">=</a> <a id="5902" href="Algebra.Structures.html#1315" class="Function">*.∙-cong</a>
<a id="5919" class="Symbol">;</a> <a id="5921" href="Algebra.Structures.html#11231" class="Field">*-assoc</a> <a id="5943" class="Symbol">=</a> <a id="5945" href="Algebra.Structures.html#2977" class="Function">*.assoc</a>
<a id="5961" class="Symbol">;</a> <a id="5963" href="Algebra.Structures.html#11273" class="Field">*-identity</a> <a id="5985" class="Symbol">=</a> <a id="5987" href="Algebra.Structures.html#4067" class="Function">*.identity</a>
<a id="6006" class="Symbol">;</a> <a id="6008" href="Algebra.Structures.html#11315" class="Field">distrib</a> <a id="6030" class="Symbol">=</a> <a id="6032" href="Algebra.Consequences.Setoid.html#8511" class="Function">comm∧distrˡ⇒distr</a> <a id="6050" href="Algebra.Structures.html#1390" class="Function">+.setoid</a> <a id="6059" href="Algebra.Structures.html#1315" class="Function">+.∙-cong</a> <a id="6068" href="Algebra.Structures.html#4484" class="Function">*.comm</a> <a id="6075" href="Algebra.Structures.Biased.html#5555" class="Field">distribˡ</a>
<a id="6092" class="Symbol">}</a>
<a id="6100" class="Symbol">;</a> <a id="6102" href="Algebra.Structures.html#12890" class="Field">zero</a> <a id="6107" class="Symbol">=</a> <a id="6109" href="Algebra.Consequences.Setoid.html#5178" class="Function">comm∧zeʳ⇒ze</a> <a id="6121" href="Algebra.Structures.html#1390" class="Function">+.setoid</a> <a id="6130" href="Algebra.Structures.html#4484" class="Function">*.comm</a> <a id="6137" href="Algebra.Structures.Biased.html#5604" class="Field">zeroʳ</a>
<a id="6149" class="Symbol">}</a>
<a id="6155" class="Symbol">;</a> <a id="6157" href="Algebra.Structures.html#13536" class="Field">*-comm</a> <a id="6164" class="Symbol">=</a> <a id="6166" href="Algebra.Structures.html#4484" class="Function">*.comm</a>
<a id="6177" class="Symbol">}</a>
<a id="6183" class="Keyword">where</a>
<a id="6193" class="Keyword">module</a> <a id="6200" href="Algebra.Structures.Biased.html#6200" class="Module">+</a> <a id="6202" class="Symbol">=</a> <a id="6204" href="Algebra.Structures.html#4384" class="Module">IsCommutativeMonoid</a> <a id="6224" href="Algebra.Structures.Biased.html#5449" class="Field">+-isCommutativeMonoid</a>
<a id="6250" class="Keyword">module</a> <a id="6257" href="Algebra.Structures.Biased.html#6257" class="Module">*</a> <a id="6259" class="Symbol">=</a> <a id="6261" href="Algebra.Structures.html#4384" class="Module">IsCommutativeMonoid</a> <a id="6281" href="Algebra.Structures.Biased.html#5502" class="Field">*-isCommutativeMonoid</a>
<a id="6304" class="Keyword">open</a> <a id="6309" href="Algebra.Structures.Biased.html#5368" class="Module">IsCommutativeSemiringʳ</a> <a id="6332" class="Keyword">public</a>
<a id="6341" class="Keyword">using</a> <a id="6347" class="Symbol">()</a> <a id="6350" class="Keyword">renaming</a> <a id="6359" class="Symbol">(</a><a id="6360" href="Algebra.Structures.Biased.html#5646" class="Function">isCommutativeSemiring</a> <a id="6382" class="Symbol">to</a> <a id="6385" class="Function">isCommutativeSemiringʳ</a><a id="6407" class="Symbol">)</a>
<a id="6411" class="Comment">------------------------------------------------------------------------</a>
<a id="6484" class="Comment">-- IsRing</a>
<a id="6495" class="Keyword">record</a> <a id="IsRing*"></a><a id="6502" href="Algebra.Structures.Biased.html#6502" class="Record">IsRing*</a> <a id="6510" class="Symbol">(</a><a id="6511" href="Algebra.Structures.Biased.html#6511" class="Bound">+</a> <a id="6513" href="Algebra.Structures.Biased.html#6513" class="Bound">*</a> <a id="6515" class="Symbol">:</a> <a id="6517" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="6521" href="Algebra.Structures.Biased.html#705" class="Bound">A</a><a id="6522" class="Symbol">)</a> <a id="6524" class="Symbol">(</a><a id="6525" href="Algebra.Structures.Biased.html#6525" class="Bound Operator">-_</a> <a id="6528" class="Symbol">:</a> <a id="6530" href="Algebra.Core.html#484" class="Function">Op₁</a> <a id="6534" href="Algebra.Structures.Biased.html#705" class="Bound">A</a><a id="6535" class="Symbol">)</a> <a id="6537" class="Symbol">(</a><a id="6538" href="Algebra.Structures.Biased.html#6538" class="Bound">0#</a> <a id="6541" href="Algebra.Structures.Biased.html#6541" class="Bound">1#</a> <a id="6544" class="Symbol">:</a> <a id="6546" href="Algebra.Structures.Biased.html#705" class="Bound">A</a><a id="6547" class="Symbol">)</a> <a id="6549" class="Symbol">:</a> <a id="6551" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="6555" class="Symbol">(</a><a id="6556" href="Algebra.Structures.Biased.html#699" class="Bound">a</a> <a id="6558" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="6560" href="Algebra.Structures.Biased.html#701" class="Bound"></a><a id="6561" class="Symbol">)</a> <a id="6563" class="Keyword">where</a>
<a id="6571" class="Keyword">field</a>
<a id="IsRing*.+-isAbelianGroup"></a><a id="6581" href="Algebra.Structures.Biased.html#6581" class="Field">+-isAbelianGroup</a> <a id="6598" class="Symbol">:</a> <a id="6600" href="Algebra.Structures.html#7222" class="Record">IsAbelianGroup</a> <a id="6615" href="Algebra.Structures.Biased.html#6511" class="Bound">+</a> <a id="6617" href="Algebra.Structures.Biased.html#6538" class="Bound">0#</a> <a id="6620" href="Algebra.Structures.Biased.html#6525" class="Bound Operator">-_</a>
<a id="IsRing*.*-isMonoid"></a><a id="6627" href="Algebra.Structures.Biased.html#6627" class="Field">*-isMonoid</a> <a id="6644" class="Symbol">:</a> <a id="6646" href="Algebra.Structures.html#3974" class="Record">IsMonoid</a> <a id="6655" href="Algebra.Structures.Biased.html#6513" class="Bound">*</a> <a id="6657" href="Algebra.Structures.Biased.html#6541" class="Bound">1#</a>
<a id="IsRing*.distrib"></a><a id="6664" href="Algebra.Structures.Biased.html#6664" class="Field">distrib</a> <a id="6681" class="Symbol">:</a> <a id="6683" href="Algebra.Structures.Biased.html#6513" class="Bound">*</a> <a id="6685" href="Algebra.Definitions.html#3393" class="Function Operator">DistributesOver</a> <a id="6701" href="Algebra.Structures.Biased.html#6511" class="Bound">+</a>
<a id="IsRing*.zero"></a><a id="6707" href="Algebra.Structures.Biased.html#6707" class="Field">zero</a> <a id="6724" class="Symbol">:</a> <a id="6726" href="Algebra.Definitions.html#2074" class="Function">Zero</a> <a id="6731" href="Algebra.Structures.Biased.html#6538" class="Bound">0#</a> <a id="6734" href="Algebra.Structures.Biased.html#6513" class="Bound">*</a>
<a id="IsRing*.isRing"></a><a id="6739" href="Algebra.Structures.Biased.html#6739" class="Function">isRing</a> <a id="6746" class="Symbol">:</a> <a id="6748" href="Algebra.Structures.html#21839" class="Record">IsRing</a> <a id="6755" href="Algebra.Structures.Biased.html#6511" class="Bound">+</a> <a id="6757" href="Algebra.Structures.Biased.html#6513" class="Bound">*</a> <a id="6759" href="Algebra.Structures.Biased.html#6525" class="Bound Operator">-_</a> <a id="6762" href="Algebra.Structures.Biased.html#6538" class="Bound">0#</a> <a id="6765" href="Algebra.Structures.Biased.html#6541" class="Bound">1#</a>
<a id="6770" href="Algebra.Structures.Biased.html#6739" class="Function">isRing</a> <a id="6777" class="Symbol">=</a> <a id="6779" class="Keyword">record</a>
<a id="6790" class="Symbol">{</a> <a id="6792" href="Algebra.Structures.html#21917" class="Field">+-isAbelianGroup</a> <a id="6809" class="Symbol">=</a> <a id="6811" href="Algebra.Structures.Biased.html#6581" class="Field">+-isAbelianGroup</a>
<a id="6832" class="Symbol">;</a> <a id="6834" href="Algebra.Structures.html#21963" class="Field">*-cong</a> <a id="6841" class="Symbol">=</a> <a id="6843" href="Algebra.Structures.html#1315" class="Function">∙-cong</a>
<a id="6854" class="Symbol">;</a> <a id="6856" href="Algebra.Structures.html#21999" class="Field">*-assoc</a> <a id="6864" class="Symbol">=</a> <a id="6866" href="Algebra.Structures.html#2977" class="Function">assoc</a>
<a id="6876" class="Symbol">;</a> <a id="6878" href="Algebra.Structures.html#22036" class="Field">*-identity</a> <a id="6889" class="Symbol">=</a> <a id="6891" href="Algebra.Structures.html#4067" class="Function">identity</a>
<a id="6904" class="Symbol">;</a> <a id="6906" href="Algebra.Structures.html#22073" class="Field">distrib</a> <a id="6914" class="Symbol">=</a> <a id="6916" href="Algebra.Structures.Biased.html#6664" class="Field">distrib</a>
<a id="6928" class="Symbol">}</a> <a id="6930" class="Keyword">where</a> <a id="6936" class="Keyword">open</a> <a id="6941" href="Algebra.Structures.html#3974" class="Module">IsMonoid</a> <a id="6950" href="Algebra.Structures.Biased.html#6627" class="Field">*-isMonoid</a>
<a id="6962" class="Keyword">open</a> <a id="6967" href="Algebra.Structures.Biased.html#6502" class="Module">IsRing*</a> <a id="6975" class="Keyword">public</a>
<a id="6984" class="Keyword">using</a> <a id="6990" class="Symbol">()</a> <a id="6993" class="Keyword">renaming</a> <a id="7002" class="Symbol">(</a><a id="7003" href="Algebra.Structures.Biased.html#6739" class="Function">isRing</a> <a id="7010" class="Symbol">to</a> <a id="7013" class="Function">isRing*</a><a id="7020" class="Symbol">)</a>
<a id="7025" class="Comment">------------------------------------------------------------------------</a>
<a id="7098" class="Comment">-- Deprecated</a>
<a id="7112" class="Comment">------------------------------------------------------------------------</a>
<a id="7186" class="Comment">-- Version 2.0</a>
<a id="7202" class="Comment">-- We can recover a ring without proving that 0# annihilates *.</a>
<a id="7266" class="Keyword">record</a> <a id="IsRingWithoutAnnihilatingZero"></a><a id="7273" href="Algebra.Structures.Biased.html#7273" class="Record">IsRingWithoutAnnihilatingZero</a> <a id="7303" class="Symbol">(</a><a id="7304" href="Algebra.Structures.Biased.html#7304" class="Bound">+</a> <a id="7306" href="Algebra.Structures.Biased.html#7306" class="Bound">*</a> <a id="7308" class="Symbol">:</a> <a id="7310" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="7314" href="Algebra.Structures.Biased.html#705" class="Bound">A</a><a id="7315" class="Symbol">)</a> <a id="7317" class="Symbol">(</a><a id="7318" href="Algebra.Structures.Biased.html#7318" class="Bound Operator">-_</a> <a id="7321" class="Symbol">:</a> <a id="7323" href="Algebra.Core.html#484" class="Function">Op₁</a> <a id="7327" href="Algebra.Structures.Biased.html#705" class="Bound">A</a><a id="7328" class="Symbol">)</a> <a id="7330" class="Symbol">(</a><a id="7331" href="Algebra.Structures.Biased.html#7331" class="Bound">0#</a> <a id="7334" href="Algebra.Structures.Biased.html#7334" class="Bound">1#</a> <a id="7337" class="Symbol">:</a> <a id="7339" href="Algebra.Structures.Biased.html#705" class="Bound">A</a><a id="7340" class="Symbol">)</a>
<a id="7379" class="Symbol">:</a> <a id="7381" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="7385" class="Symbol">(</a><a id="7386" href="Algebra.Structures.Biased.html#699" class="Bound">a</a> <a id="7388" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="7390" href="Algebra.Structures.Biased.html#701" class="Bound"></a><a id="7391" class="Symbol">)</a> <a id="7393" class="Keyword">where</a>
<a id="7401" class="Keyword">field</a>
<a id="IsRingWithoutAnnihilatingZero.+-isAbelianGroup"></a><a id="7411" href="Algebra.Structures.Biased.html#7411" class="Field">+-isAbelianGroup</a> <a id="7428" class="Symbol">:</a> <a id="7430" href="Algebra.Structures.html#7222" class="Record">IsAbelianGroup</a> <a id="7445" href="Algebra.Structures.Biased.html#7304" class="Bound">+</a> <a id="7447" href="Algebra.Structures.Biased.html#7331" class="Bound">0#</a> <a id="7450" href="Algebra.Structures.Biased.html#7318" class="Bound Operator">-_</a>
<a id="IsRingWithoutAnnihilatingZero.*-isMonoid"></a><a id="7457" href="Algebra.Structures.Biased.html#7457" class="Field">*-isMonoid</a> <a id="7474" class="Symbol">:</a> <a id="7476" href="Algebra.Structures.html#3974" class="Record">IsMonoid</a> <a id="7485" href="Algebra.Structures.Biased.html#7306" class="Bound">*</a> <a id="7487" href="Algebra.Structures.Biased.html#7334" class="Bound">1#</a>
<a id="IsRingWithoutAnnihilatingZero.distrib"></a><a id="7494" href="Algebra.Structures.Biased.html#7494" class="Field">distrib</a> <a id="7511" class="Symbol">:</a> <a id="7513" href="Algebra.Structures.Biased.html#7306" class="Bound">*</a> <a id="7515" href="Algebra.Definitions.html#3393" class="Function Operator">DistributesOver</a> <a id="7531" href="Algebra.Structures.Biased.html#7304" class="Bound">+</a>
<a id="7536" class="Keyword">module</a> <a id="IsRingWithoutAnnihilatingZero.+"></a><a id="7543" href="Algebra.Structures.Biased.html#7543" class="Module">+</a> <a id="7545" class="Symbol">=</a> <a id="7547" href="Algebra.Structures.html#7222" class="Module">IsAbelianGroup</a> <a id="7562" href="Algebra.Structures.Biased.html#7411" class="Field">+-isAbelianGroup</a>
<a id="7581" class="Keyword">module</a> <a id="IsRingWithoutAnnihilatingZero.*"></a><a id="7588" href="Algebra.Structures.Biased.html#7588" class="Module">*</a> <a id="7590" class="Symbol">=</a> <a id="7592" href="Algebra.Structures.html#3974" class="Module">IsMonoid</a> <a id="7601" href="Algebra.Structures.Biased.html#7457" class="Field">*-isMonoid</a>
<a id="7615" class="Keyword">open</a> <a id="7620" href="Algebra.Structures.Biased.html#7543" class="Module">+</a> <a id="7622" class="Keyword">using</a> <a id="7628" class="Symbol">(</a><a id="7629" href="Algebra.Structures.html#1390" class="Function">setoid</a><a id="7635" class="Symbol">)</a> <a id="7637" class="Keyword">renaming</a> <a id="7646" class="Symbol">(</a><a id="7647" href="Algebra.Structures.html#1315" class="Function">∙-cong</a> <a id="7654" class="Symbol">to</a> <a id="7657" class="Function">+-cong</a><a id="7663" class="Symbol">)</a>
<a id="7667" class="Keyword">open</a> <a id="7672" href="Algebra.Structures.Biased.html#7588" class="Module">*</a> <a id="7674" class="Keyword">using</a> <a id="7680" class="Symbol">()</a> <a id="7689" class="Keyword">renaming</a> <a id="7698" class="Symbol">(</a><a id="7699" href="Algebra.Structures.html#1315" class="Function">∙-cong</a> <a id="7706" class="Symbol">to</a> <a id="7709" class="Function">*-cong</a><a id="7715" class="Symbol">)</a>
<a id="IsRingWithoutAnnihilatingZero.zeroˡ"></a><a id="7720" href="Algebra.Structures.Biased.html#7720" class="Function">zeroˡ</a> <a id="7726" class="Symbol">:</a> <a id="7728" href="Algebra.Definitions.html#1942" class="Function">LeftZero</a> <a id="7737" href="Algebra.Structures.Biased.html#7331" class="Bound">0#</a> <a id="7740" href="Algebra.Structures.Biased.html#7306" class="Bound">*</a>
<a id="7744" href="Algebra.Structures.Biased.html#7720" class="Function">zeroˡ</a> <a id="7750" class="Symbol">=</a> <a id="7752" href="Algebra.Consequences.Setoid.html#10215" class="Function">assoc∧distribʳ∧idʳ∧invʳ⇒zeˡ</a> <a id="7780" href="Algebra.Structures.html#1390" class="Function">setoid</a>
<a id="7799" href="Algebra.Structures.Biased.html#7657" class="Function">+-cong</a> <a id="7806" href="Algebra.Structures.Biased.html#7709" class="Function">*-cong</a> <a id="7813" href="Algebra.Structures.html#2977" class="Function">+.assoc</a> <a id="7821" class="Symbol">(</a><a id="7822" href="Data.Product.Base.html#650" class="Field">proj₂</a> <a id="7828" href="Algebra.Structures.Biased.html#7494" class="Field">distrib</a><a id="7835" class="Symbol">)</a> <a id="7837" href="Algebra.Structures.html#4197" class="Function">+.identityʳ</a> <a id="7849" href="Algebra.Structures.html#6506" class="Function">+.inverseʳ</a>
<a id="IsRingWithoutAnnihilatingZero.zeroʳ"></a><a id="7863" href="Algebra.Structures.Biased.html#7863" class="Function">zeroʳ</a> <a id="7869" class="Symbol">:</a> <a id="7871" href="Algebra.Definitions.html#2007" class="Function">RightZero</a> <a id="7881" href="Algebra.Structures.Biased.html#7331" class="Bound">0#</a> <a id="7884" href="Algebra.Structures.Biased.html#7306" class="Bound">*</a>
<a id="7888" href="Algebra.Structures.Biased.html#7863" class="Function">zeroʳ</a> <a id="7894" class="Symbol">=</a> <a id="7896" href="Algebra.Consequences.Setoid.html#10957" class="Function">assoc∧distribˡ∧idʳ∧invʳ⇒zeʳ</a> <a id="7924" href="Algebra.Structures.html#1390" class="Function">setoid</a>
<a id="7943" href="Algebra.Structures.Biased.html#7657" class="Function">+-cong</a> <a id="7950" href="Algebra.Structures.Biased.html#7709" class="Function">*-cong</a> <a id="7957" href="Algebra.Structures.html#2977" class="Function">+.assoc</a> <a id="7965" class="Symbol">(</a><a id="7966" href="Data.Product.Base.html#636" class="Field">proj₁</a> <a id="7972" href="Algebra.Structures.Biased.html#7494" class="Field">distrib</a><a id="7979" class="Symbol">)</a> <a id="7981" href="Algebra.Structures.html#4197" class="Function">+.identityʳ</a> <a id="7993" href="Algebra.Structures.html#6506" class="Function">+.inverseʳ</a>
<a id="IsRingWithoutAnnihilatingZero.zero"></a><a id="8007" href="Algebra.Structures.Biased.html#8007" class="Function">zero</a> <a id="8012" class="Symbol">:</a> <a id="8014" href="Algebra.Definitions.html#2074" class="Function">Zero</a> <a id="8019" href="Algebra.Structures.Biased.html#7331" class="Bound">0#</a> <a id="8022" href="Algebra.Structures.Biased.html#7306" class="Bound">*</a>
<a id="8026" href="Algebra.Structures.Biased.html#8007" class="Function">zero</a> <a id="8031" class="Symbol">=</a> <a id="8033" class="Symbol">(</a><a id="8034" href="Algebra.Structures.Biased.html#7720" class="Function">zeroˡ</a> <a id="8040" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="8042" href="Algebra.Structures.Biased.html#7863" class="Function">zeroʳ</a><a id="8047" class="Symbol">)</a>
<a id="IsRingWithoutAnnihilatingZero.isRing"></a><a id="8052" href="Algebra.Structures.Biased.html#8052" class="Function">isRing</a> <a id="8059" class="Symbol">:</a> <a id="8061" href="Algebra.Structures.html#21839" class="Record">IsRing</a> <a id="8068" href="Algebra.Structures.Biased.html#7304" class="Bound">+</a> <a id="8070" href="Algebra.Structures.Biased.html#7306" class="Bound">*</a> <a id="8072" href="Algebra.Structures.Biased.html#7318" class="Bound Operator">-_</a> <a id="8075" href="Algebra.Structures.Biased.html#7331" class="Bound">0#</a> <a id="8078" href="Algebra.Structures.Biased.html#7334" class="Bound">1#</a>
<a id="8083" href="Algebra.Structures.Biased.html#8052" class="Function">isRing</a> <a id="8090" class="Symbol">=</a> <a id="8092" class="Keyword">record</a>
<a id="8103" class="Symbol">{</a> <a id="8105" href="Algebra.Structures.html#21917" class="Field">+-isAbelianGroup</a> <a id="8122" class="Symbol">=</a> <a id="8124" href="Algebra.Structures.Biased.html#7411" class="Field">+-isAbelianGroup</a>
<a id="8145" class="Symbol">;</a> <a id="8147" href="Algebra.Structures.html#21963" class="Field">*-cong</a> <a id="8164" class="Symbol">=</a> <a id="8166" href="Algebra.Structures.html#1315" class="Function">*.∙-cong</a>
<a id="8179" class="Symbol">;</a> <a id="8181" href="Algebra.Structures.html#21999" class="Field">*-assoc</a> <a id="8198" class="Symbol">=</a> <a id="8200" href="Algebra.Structures.html#2977" class="Function">*.assoc</a>
<a id="8212" class="Symbol">;</a> <a id="8214" href="Algebra.Structures.html#22036" class="Field">*-identity</a> <a id="8231" class="Symbol">=</a> <a id="8233" href="Algebra.Structures.html#4067" class="Function">*.identity</a>
<a id="8248" class="Symbol">;</a> <a id="8250" href="Algebra.Structures.html#22073" class="Field">distrib</a> <a id="8267" class="Symbol">=</a> <a id="8269" href="Algebra.Structures.Biased.html#7494" class="Field">distrib</a>
<a id="8281" class="Symbol">}</a>
<a id="8284" class="Keyword">open</a> <a id="8289" href="Algebra.Structures.Biased.html#7273" class="Module">IsRingWithoutAnnihilatingZero</a> <a id="8319" class="Keyword">public</a>
<a id="8328" class="Keyword">using</a> <a id="8334" class="Symbol">()</a> <a id="8337" class="Keyword">renaming</a> <a id="8346" class="Symbol">(</a><a id="8347" href="Algebra.Structures.Biased.html#8052" class="Function">isRing</a> <a id="8354" class="Symbol">to</a> <a id="8357" class="Function">isRingWithoutAnnihilatingZero</a><a id="8386" class="Symbol">)</a>
<a id="8389" class="Symbol">{-#</a> <a id="8393" class="Keyword">WARNING_ON_USAGE</a> <a id="8410" class="Pragma">IsRingWithoutAnnihilatingZero</a>
<a id="8440" class="String">&quot;Warning: IsRingWithoutAnnihilatingZero was deprecated in v2.0.
Please use the standard `IsRing` instead.&quot;</a>
<a id="8547" class="Symbol">#-}</a>
<a id="8551" class="Symbol">{-#</a> <a id="8555" class="Keyword">WARNING_ON_USAGE</a> <a id="8572" class="Pragma">isRingWithoutAnnihilatingZero</a>
<a id="8602" class="String">&quot;Warning: isRingWithoutAnnihilatingZero was deprecated in v2.0.
Please use the standard `IsRing` instead.&quot;</a>
<a id="8709" class="Symbol">#-}</a>
</pre></body></html>