mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
571 lines
119 KiB
HTML
571 lines
119 KiB
HTML
|
<!DOCTYPE HTML>
|
|||
|
<html><head><meta charset="utf-8"><title>Algebra.Structures</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">-- Some algebraic structures (not packed up with sets, operations,</a>
|
|||
|
<a id="173" class="Comment">-- etc.)</a>
|
|||
|
<a id="182" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
|
|||
|
<a id="256" class="Comment">-- The contents of this module should be accessed via `Algebra`, unless</a>
|
|||
|
<a id="328" class="Comment">-- you want to parameterise it via the equality relation.</a>
|
|||
|
|
|||
|
<a id="387" class="Symbol">{-#</a> <a id="391" class="Keyword">OPTIONS</a> <a id="399" class="Pragma">--cubical-compatible</a> <a id="420" class="Pragma">--safe</a> <a id="427" class="Symbol">#-}</a>
|
|||
|
|
|||
|
<a id="432" class="Keyword">open</a> <a id="437" class="Keyword">import</a> <a id="444" href="Relation.Binary.html" class="Module">Relation.Binary</a> <a id="460" class="Keyword">using</a> <a id="466" class="Symbol">(</a><a id="467" href="Relation.Binary.Core.html#891" class="Function">Rel</a><a id="470" class="Symbol">;</a> <a id="472" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a><a id="478" class="Symbol">;</a> <a id="480" href="Relation.Binary.Structures.html#1531" class="Record">IsEquivalence</a><a id="493" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="496" class="Keyword">module</a> <a id="503" href="Algebra.Structures.html" class="Module">Algebra.Structures</a>
|
|||
|
<a id="524" class="Symbol">{</a><a id="525" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="527" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="528" class="Symbol">}</a> <a id="530" class="Symbol">{</a><a id="531" href="Algebra.Structures.html#531" class="Bound">A</a> <a id="533" class="Symbol">:</a> <a id="535" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="539" href="Algebra.Structures.html#525" class="Bound">a</a><a id="540" class="Symbol">}</a> <a id="543" class="Comment">-- The underlying set</a>
|
|||
|
<a id="567" class="Symbol">(</a><a id="568" href="Algebra.Structures.html#568" class="Bound Operator">_≈_</a> <a id="572" class="Symbol">:</a> <a id="574" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="578" href="Algebra.Structures.html#531" class="Bound">A</a> <a id="580" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="581" class="Symbol">)</a> <a id="586" class="Comment">-- The underlying equality relation</a>
|
|||
|
<a id="624" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="631" class="Comment">-- The file is divided into sections depending on the arities of the</a>
|
|||
|
<a id="700" class="Comment">-- components of the algebraic structure.</a>
|
|||
|
|
|||
|
<a id="743" class="Keyword">open</a> <a id="748" class="Keyword">import</a> <a id="755" href="Algebra.Core.html" class="Module">Algebra.Core</a>
|
|||
|
<a id="768" class="Keyword">open</a> <a id="773" class="Keyword">import</a> <a id="780" href="Algebra.Definitions.html" class="Module">Algebra.Definitions</a> <a id="800" href="Algebra.Structures.html#568" class="Bound Operator">_≈_</a>
|
|||
|
<a id="804" class="Keyword">import</a> <a id="811" href="Algebra.Consequences.Setoid.html" class="Module">Algebra.Consequences.Setoid</a> <a id="839" class="Symbol">as</a> <a id="842" class="Module">Consequences</a>
|
|||
|
<a id="855" class="Keyword">open</a> <a id="860" class="Keyword">import</a> <a id="867" href="Data.Product.html" class="Module">Data.Product</a> <a id="880" class="Keyword">using</a> <a id="886" class="Symbol">(</a><a id="887" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">_,_</a><a id="890" class="Symbol">;</a> <a id="892" href="Agda.Builtin.Sigma.html#234" class="Field">proj₁</a><a id="897" class="Symbol">;</a> <a id="899" href="Agda.Builtin.Sigma.html#246" class="Field">proj₂</a><a id="904" class="Symbol">)</a>
|
|||
|
<a id="906" class="Keyword">open</a> <a id="911" class="Keyword">import</a> <a id="918" href="Level.html" class="Module">Level</a> <a id="924" class="Keyword">using</a> <a id="930" class="Symbol">(</a><a id="931" href="Agda.Primitive.html#804" class="Primitive Operator">_⊔_</a><a id="934" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="937" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="1010" class="Comment">-- Structures with 1 binary operation</a>
|
|||
|
<a id="1048" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
|
|||
|
<a id="1122" class="Keyword">record</a> <a id="IsMagma"></a><a id="1129" href="Algebra.Structures.html#1129" class="Record">IsMagma</a> <a id="1137" class="Symbol">(</a><a id="1138" href="Algebra.Structures.html#1138" class="Bound">∙</a> <a id="1140" class="Symbol">:</a> <a id="1142" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="1146" href="Algebra.Structures.html#531" class="Bound">A</a><a id="1147" class="Symbol">)</a> <a id="1149" class="Symbol">:</a> <a id="1151" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1155" class="Symbol">(</a><a id="1156" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="1158" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1160" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="1161" class="Symbol">)</a> <a id="1163" class="Keyword">where</a>
|
|||
|
<a id="1171" class="Keyword">field</a>
|
|||
|
<a id="IsMagma.isEquivalence"></a><a id="1181" href="Algebra.Structures.html#1181" class="Field">isEquivalence</a> <a id="1195" class="Symbol">:</a> <a id="1197" href="Relation.Binary.Structures.html#1531" class="Record">IsEquivalence</a> <a id="1211" href="Algebra.Structures.html#568" class="Bound Operator">_≈_</a>
|
|||
|
<a id="IsMagma.∙-cong"></a><a id="1219" href="Algebra.Structures.html#1219" class="Field">∙-cong</a> <a id="1233" class="Symbol">:</a> <a id="1235" href="Algebra.Definitions.html#871" class="Function">Congruent₂</a> <a id="1246" href="Algebra.Structures.html#1138" class="Bound">∙</a>
|
|||
|
|
|||
|
<a id="1251" class="Keyword">open</a> <a id="1256" href="Relation.Binary.Structures.html#1531" class="Module">IsEquivalence</a> <a id="1270" href="Algebra.Structures.html#1181" class="Field">isEquivalence</a> <a id="1284" class="Keyword">public</a>
|
|||
|
|
|||
|
<a id="IsMagma.setoid"></a><a id="1294" href="Algebra.Structures.html#1294" class="Function">setoid</a> <a id="1301" class="Symbol">:</a> <a id="1303" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a> <a id="1310" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="1312" href="Algebra.Structures.html#527" class="Bound">ℓ</a>
|
|||
|
<a id="1316" href="Algebra.Structures.html#1294" class="Function">setoid</a> <a id="1323" class="Symbol">=</a> <a id="1325" class="Keyword">record</a> <a id="1332" class="Symbol">{</a> <a id="1334" href="Relation.Binary.Bundles.html#1141" class="Field">isEquivalence</a> <a id="1348" class="Symbol">=</a> <a id="1350" href="Algebra.Structures.html#1181" class="Field">isEquivalence</a> <a id="1364" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="IsMagma.∙-congˡ"></a><a id="1369" href="Algebra.Structures.html#1369" class="Function">∙-congˡ</a> <a id="1377" class="Symbol">:</a> <a id="1379" href="Algebra.Definitions.html#943" class="Function">LeftCongruent</a> <a id="1393" href="Algebra.Structures.html#1138" class="Bound">∙</a>
|
|||
|
<a id="1397" href="Algebra.Structures.html#1369" class="Function">∙-congˡ</a> <a id="1405" href="Algebra.Structures.html#1405" class="Bound">y≈z</a> <a id="1409" class="Symbol">=</a> <a id="1411" href="Algebra.Structures.html#1219" class="Field">∙-cong</a> <a id="1418" href="Relation.Binary.Structures.html#1577" class="Function">refl</a> <a id="1423" href="Algebra.Structures.html#1405" class="Bound">y≈z</a>
|
|||
|
|
|||
|
<a id="IsMagma.∙-congʳ"></a><a id="1430" href="Algebra.Structures.html#1430" class="Function">∙-congʳ</a> <a id="1438" class="Symbol">:</a> <a id="1440" href="Algebra.Definitions.html#1029" class="Function">RightCongruent</a> <a id="1455" href="Algebra.Structures.html#1138" class="Bound">∙</a>
|
|||
|
<a id="1459" href="Algebra.Structures.html#1430" class="Function">∙-congʳ</a> <a id="1467" href="Algebra.Structures.html#1467" class="Bound">y≈z</a> <a id="1471" class="Symbol">=</a> <a id="1473" href="Algebra.Structures.html#1219" class="Field">∙-cong</a> <a id="1480" href="Algebra.Structures.html#1467" class="Bound">y≈z</a> <a id="1484" href="Relation.Binary.Structures.html#1577" class="Function">refl</a>
|
|||
|
|
|||
|
|
|||
|
<a id="1491" class="Keyword">record</a> <a id="IsCommutativeMagma"></a><a id="1498" href="Algebra.Structures.html#1498" class="Record">IsCommutativeMagma</a> <a id="1517" class="Symbol">(</a><a id="1518" href="Algebra.Structures.html#1518" class="Bound">∙</a> <a id="1520" class="Symbol">:</a> <a id="1522" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="1526" href="Algebra.Structures.html#531" class="Bound">A</a><a id="1527" class="Symbol">)</a> <a id="1529" class="Symbol">:</a> <a id="1531" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1535" class="Symbol">(</a><a id="1536" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="1538" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1540" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="1541" class="Symbol">)</a> <a id="1543" class="Keyword">where</a>
|
|||
|
<a id="1551" class="Keyword">field</a>
|
|||
|
<a id="IsCommutativeMagma.isMagma"></a><a id="1561" href="Algebra.Structures.html#1561" class="Field">isMagma</a> <a id="1569" class="Symbol">:</a> <a id="1571" href="Algebra.Structures.html#1129" class="Record">IsMagma</a> <a id="1579" href="Algebra.Structures.html#1518" class="Bound">∙</a>
|
|||
|
<a id="IsCommutativeMagma.comm"></a><a id="1585" href="Algebra.Structures.html#1585" class="Field">comm</a> <a id="1593" class="Symbol">:</a> <a id="1595" href="Algebra.Definitions.html#1204" class="Function">Commutative</a> <a id="1607" href="Algebra.Structures.html#1518" class="Bound">∙</a>
|
|||
|
|
|||
|
<a id="1612" class="Keyword">open</a> <a id="1617" href="Algebra.Structures.html#1129" class="Module">IsMagma</a> <a id="1625" href="Algebra.Structures.html#1561" class="Field">isMagma</a> <a id="1633" class="Keyword">public</a>
|
|||
|
|
|||
|
|
|||
|
<a id="1642" class="Keyword">record</a> <a id="IsSelectiveMagma"></a><a id="1649" href="Algebra.Structures.html#1649" class="Record">IsSelectiveMagma</a> <a id="1666" class="Symbol">(</a><a id="1667" href="Algebra.Structures.html#1667" class="Bound">∙</a> <a id="1669" class="Symbol">:</a> <a id="1671" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="1675" href="Algebra.Structures.html#531" class="Bound">A</a><a id="1676" class="Symbol">)</a> <a id="1678" class="Symbol">:</a> <a id="1680" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1684" class="Symbol">(</a><a id="1685" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="1687" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1689" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="1690" class="Symbol">)</a> <a id="1692" class="Keyword">where</a>
|
|||
|
<a id="1700" class="Keyword">field</a>
|
|||
|
<a id="IsSelectiveMagma.isMagma"></a><a id="1710" href="Algebra.Structures.html#1710" class="Field">isMagma</a> <a id="1718" class="Symbol">:</a> <a id="1720" href="Algebra.Structures.html#1129" class="Record">IsMagma</a> <a id="1728" href="Algebra.Structures.html#1667" class="Bound">∙</a>
|
|||
|
<a id="IsSelectiveMagma.sel"></a><a id="1734" href="Algebra.Structures.html#1734" class="Field">sel</a> <a id="1742" class="Symbol">:</a> <a id="1744" href="Algebra.Definitions.html#2791" class="Function">Selective</a> <a id="1754" href="Algebra.Structures.html#1667" class="Bound">∙</a>
|
|||
|
|
|||
|
<a id="1759" class="Keyword">open</a> <a id="1764" href="Algebra.Structures.html#1129" class="Module">IsMagma</a> <a id="1772" href="Algebra.Structures.html#1710" class="Field">isMagma</a> <a id="1780" class="Keyword">public</a>
|
|||
|
|
|||
|
|
|||
|
<a id="1789" class="Keyword">record</a> <a id="IsSemigroup"></a><a id="1796" href="Algebra.Structures.html#1796" class="Record">IsSemigroup</a> <a id="1808" class="Symbol">(</a><a id="1809" href="Algebra.Structures.html#1809" class="Bound">∙</a> <a id="1811" class="Symbol">:</a> <a id="1813" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="1817" href="Algebra.Structures.html#531" class="Bound">A</a><a id="1818" class="Symbol">)</a> <a id="1820" class="Symbol">:</a> <a id="1822" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1826" class="Symbol">(</a><a id="1827" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="1829" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1831" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="1832" class="Symbol">)</a> <a id="1834" class="Keyword">where</a>
|
|||
|
<a id="1842" class="Keyword">field</a>
|
|||
|
<a id="IsSemigroup.isMagma"></a><a id="1852" href="Algebra.Structures.html#1852" class="Field">isMagma</a> <a id="1860" class="Symbol">:</a> <a id="1862" href="Algebra.Structures.html#1129" class="Record">IsMagma</a> <a id="1870" href="Algebra.Structures.html#1809" class="Bound">∙</a>
|
|||
|
<a id="IsSemigroup.assoc"></a><a id="1876" href="Algebra.Structures.html#1876" class="Field">assoc</a> <a id="1884" class="Symbol">:</a> <a id="1886" href="Algebra.Definitions.html#1117" class="Function">Associative</a> <a id="1898" href="Algebra.Structures.html#1809" class="Bound">∙</a>
|
|||
|
|
|||
|
<a id="1903" class="Keyword">open</a> <a id="1908" href="Algebra.Structures.html#1129" class="Module">IsMagma</a> <a id="1916" href="Algebra.Structures.html#1852" class="Field">isMagma</a> <a id="1924" class="Keyword">public</a>
|
|||
|
|
|||
|
|
|||
|
<a id="1933" class="Keyword">record</a> <a id="IsBand"></a><a id="1940" href="Algebra.Structures.html#1940" class="Record">IsBand</a> <a id="1947" class="Symbol">(</a><a id="1948" href="Algebra.Structures.html#1948" class="Bound">∙</a> <a id="1950" class="Symbol">:</a> <a id="1952" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="1956" href="Algebra.Structures.html#531" class="Bound">A</a><a id="1957" class="Symbol">)</a> <a id="1959" class="Symbol">:</a> <a id="1961" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1965" class="Symbol">(</a><a id="1966" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="1968" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1970" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="1971" class="Symbol">)</a> <a id="1973" class="Keyword">where</a>
|
|||
|
<a id="1981" class="Keyword">field</a>
|
|||
|
<a id="IsBand.isSemigroup"></a><a id="1991" href="Algebra.Structures.html#1991" class="Field">isSemigroup</a> <a id="2003" class="Symbol">:</a> <a id="2005" href="Algebra.Structures.html#1796" class="Record">IsSemigroup</a> <a id="2017" href="Algebra.Structures.html#1948" class="Bound">∙</a>
|
|||
|
<a id="IsBand.idem"></a><a id="2023" href="Algebra.Structures.html#2023" class="Field">idem</a> <a id="2035" class="Symbol">:</a> <a id="2037" href="Algebra.Definitions.html#2656" class="Function">Idempotent</a> <a id="2048" href="Algebra.Structures.html#1948" class="Bound">∙</a>
|
|||
|
|
|||
|
<a id="2053" class="Keyword">open</a> <a id="2058" href="Algebra.Structures.html#1796" class="Module">IsSemigroup</a> <a id="2070" href="Algebra.Structures.html#1991" class="Field">isSemigroup</a> <a id="2082" class="Keyword">public</a>
|
|||
|
|
|||
|
|
|||
|
<a id="2091" class="Keyword">record</a> <a id="IsCommutativeSemigroup"></a><a id="2098" href="Algebra.Structures.html#2098" class="Record">IsCommutativeSemigroup</a> <a id="2121" class="Symbol">(</a><a id="2122" href="Algebra.Structures.html#2122" class="Bound">∙</a> <a id="2124" class="Symbol">:</a> <a id="2126" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="2130" href="Algebra.Structures.html#531" class="Bound">A</a><a id="2131" class="Symbol">)</a> <a id="2133" class="Symbol">:</a> <a id="2135" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2139" class="Symbol">(</a><a id="2140" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="2142" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="2144" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="2145" class="Symbol">)</a> <a id="2147" class="Keyword">where</a>
|
|||
|
<a id="2155" class="Keyword">field</a>
|
|||
|
<a id="IsCommutativeSemigroup.isSemigroup"></a><a id="2165" href="Algebra.Structures.html#2165" class="Field">isSemigroup</a> <a id="2177" class="Symbol">:</a> <a id="2179" href="Algebra.Structures.html#1796" class="Record">IsSemigroup</a> <a id="2191" href="Algebra.Structures.html#2122" class="Bound">∙</a>
|
|||
|
<a id="IsCommutativeSemigroup.comm"></a><a id="2197" href="Algebra.Structures.html#2197" class="Field">comm</a> <a id="2209" class="Symbol">:</a> <a id="2211" href="Algebra.Definitions.html#1204" class="Function">Commutative</a> <a id="2223" href="Algebra.Structures.html#2122" class="Bound">∙</a>
|
|||
|
|
|||
|
<a id="2228" class="Keyword">open</a> <a id="2233" href="Algebra.Structures.html#1796" class="Module">IsSemigroup</a> <a id="2245" href="Algebra.Structures.html#2165" class="Field">isSemigroup</a> <a id="2257" class="Keyword">public</a>
|
|||
|
|
|||
|
<a id="IsCommutativeSemigroup.isCommutativeMagma"></a><a id="2267" href="Algebra.Structures.html#2267" class="Function">isCommutativeMagma</a> <a id="2286" class="Symbol">:</a> <a id="2288" href="Algebra.Structures.html#1498" class="Record">IsCommutativeMagma</a> <a id="2307" href="Algebra.Structures.html#2122" class="Bound">∙</a>
|
|||
|
<a id="2311" href="Algebra.Structures.html#2267" class="Function">isCommutativeMagma</a> <a id="2330" class="Symbol">=</a> <a id="2332" class="Keyword">record</a>
|
|||
|
<a id="2343" class="Symbol">{</a> <a id="2345" href="Algebra.Structures.html#1561" class="Field">isMagma</a> <a id="2353" class="Symbol">=</a> <a id="2355" href="Algebra.Structures.html#1852" class="Function">isMagma</a>
|
|||
|
<a id="2367" class="Symbol">;</a> <a id="2369" href="Algebra.Structures.html#1585" class="Field">comm</a> <a id="2377" class="Symbol">=</a> <a id="2379" href="Algebra.Structures.html#2197" class="Field">comm</a>
|
|||
|
<a id="2388" class="Symbol">}</a>
|
|||
|
|
|||
|
|
|||
|
<a id="2392" class="Keyword">record</a> <a id="IsSemilattice"></a><a id="2399" href="Algebra.Structures.html#2399" class="Record">IsSemilattice</a> <a id="2413" class="Symbol">(</a><a id="2414" href="Algebra.Structures.html#2414" class="Bound">∧</a> <a id="2416" class="Symbol">:</a> <a id="2418" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="2422" href="Algebra.Structures.html#531" class="Bound">A</a><a id="2423" class="Symbol">)</a> <a id="2425" class="Symbol">:</a> <a id="2427" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2431" class="Symbol">(</a><a id="2432" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="2434" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="2436" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="2437" class="Symbol">)</a> <a id="2439" class="Keyword">where</a>
|
|||
|
<a id="2447" class="Keyword">field</a>
|
|||
|
<a id="IsSemilattice.isBand"></a><a id="2457" href="Algebra.Structures.html#2457" class="Field">isBand</a> <a id="2464" class="Symbol">:</a> <a id="2466" href="Algebra.Structures.html#1940" class="Record">IsBand</a> <a id="2473" href="Algebra.Structures.html#2414" class="Bound">∧</a>
|
|||
|
<a id="IsSemilattice.comm"></a><a id="2479" href="Algebra.Structures.html#2479" class="Field">comm</a> <a id="2486" class="Symbol">:</a> <a id="2488" href="Algebra.Definitions.html#1204" class="Function">Commutative</a> <a id="2500" href="Algebra.Structures.html#2414" class="Bound">∧</a>
|
|||
|
|
|||
|
<a id="2505" class="Keyword">open</a> <a id="2510" href="Algebra.Structures.html#1940" class="Module">IsBand</a> <a id="2517" href="Algebra.Structures.html#2457" class="Field">isBand</a> <a id="2524" class="Keyword">public</a>
|
|||
|
<a id="2535" class="Keyword">renaming</a> <a id="2544" class="Symbol">(</a><a id="2545" href="Algebra.Structures.html#1219" class="Function">∙-cong</a> <a id="2552" class="Symbol">to</a> <a id="2555" class="Function">∧-cong</a><a id="2561" class="Symbol">;</a> <a id="2563" href="Algebra.Structures.html#1369" class="Function">∙-congˡ</a> <a id="2571" class="Symbol">to</a> <a id="2574" class="Function">∧-congˡ</a><a id="2581" class="Symbol">;</a> <a id="2583" href="Algebra.Structures.html#1430" class="Function">∙-congʳ</a> <a id="2591" class="Symbol">to</a> <a id="2594" class="Function">∧-congʳ</a><a id="2601" class="Symbol">)</a>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<a id="2606" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="2679" class="Comment">-- Structures with 1 binary operation & 1 element</a>
|
|||
|
<a id="2729" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
|
|||
|
<a id="2803" class="Keyword">record</a> <a id="IsMonoid"></a><a id="2810" href="Algebra.Structures.html#2810" class="Record">IsMonoid</a> <a id="2819" class="Symbol">(</a><a id="2820" href="Algebra.Structures.html#2820" class="Bound">∙</a> <a id="2822" class="Symbol">:</a> <a id="2824" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="2828" href="Algebra.Structures.html#531" class="Bound">A</a><a id="2829" class="Symbol">)</a> <a id="2831" class="Symbol">(</a><a id="2832" href="Algebra.Structures.html#2832" class="Bound">ε</a> <a id="2834" class="Symbol">:</a> <a id="2836" href="Algebra.Structures.html#531" class="Bound">A</a><a id="2837" class="Symbol">)</a> <a id="2839" class="Symbol">:</a> <a id="2841" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2845" class="Symbol">(</a><a id="2846" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="2848" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="2850" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="2851" class="Symbol">)</a> <a id="2853" class="Keyword">where</a>
|
|||
|
<a id="2861" class="Keyword">field</a>
|
|||
|
<a id="IsMonoid.isSemigroup"></a><a id="2871" href="Algebra.Structures.html#2871" class="Field">isSemigroup</a> <a id="2883" class="Symbol">:</a> <a id="2885" href="Algebra.Structures.html#1796" class="Record">IsSemigroup</a> <a id="2897" href="Algebra.Structures.html#2820" class="Bound">∙</a>
|
|||
|
<a id="IsMonoid.identity"></a><a id="2903" href="Algebra.Structures.html#2903" class="Field">identity</a> <a id="2915" class="Symbol">:</a> <a id="2917" href="Algebra.Definitions.html#1425" class="Function">Identity</a> <a id="2926" href="Algebra.Structures.html#2832" class="Bound">ε</a> <a id="2928" href="Algebra.Structures.html#2820" class="Bound">∙</a>
|
|||
|
|
|||
|
<a id="2933" class="Keyword">open</a> <a id="2938" href="Algebra.Structures.html#1796" class="Module">IsSemigroup</a> <a id="2950" href="Algebra.Structures.html#2871" class="Field">isSemigroup</a> <a id="2962" class="Keyword">public</a>
|
|||
|
|
|||
|
<a id="IsMonoid.identityˡ"></a><a id="2972" href="Algebra.Structures.html#2972" class="Function">identityˡ</a> <a id="2982" class="Symbol">:</a> <a id="2984" href="Algebra.Definitions.html#1277" class="Function">LeftIdentity</a> <a id="2997" href="Algebra.Structures.html#2832" class="Bound">ε</a> <a id="2999" href="Algebra.Structures.html#2820" class="Bound">∙</a>
|
|||
|
<a id="3003" href="Algebra.Structures.html#2972" class="Function">identityˡ</a> <a id="3013" class="Symbol">=</a> <a id="3015" href="Agda.Builtin.Sigma.html#234" class="Field">proj₁</a> <a id="3021" href="Algebra.Structures.html#2903" class="Field">identity</a>
|
|||
|
|
|||
|
<a id="IsMonoid.identityʳ"></a><a id="3033" href="Algebra.Structures.html#3033" class="Function">identityʳ</a> <a id="3043" class="Symbol">:</a> <a id="3045" href="Algebra.Definitions.html#1350" class="Function">RightIdentity</a> <a id="3059" href="Algebra.Structures.html#2832" class="Bound">ε</a> <a id="3061" href="Algebra.Structures.html#2820" class="Bound">∙</a>
|
|||
|
<a id="3065" href="Algebra.Structures.html#3033" class="Function">identityʳ</a> <a id="3075" class="Symbol">=</a> <a id="3077" href="Agda.Builtin.Sigma.html#246" class="Field">proj₂</a> <a id="3083" href="Algebra.Structures.html#2903" class="Field">identity</a>
|
|||
|
|
|||
|
|
|||
|
<a id="3094" class="Keyword">record</a> <a id="IsCommutativeMonoid"></a><a id="3101" href="Algebra.Structures.html#3101" class="Record">IsCommutativeMonoid</a> <a id="3121" class="Symbol">(</a><a id="3122" href="Algebra.Structures.html#3122" class="Bound">∙</a> <a id="3124" class="Symbol">:</a> <a id="3126" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="3130" href="Algebra.Structures.html#531" class="Bound">A</a><a id="3131" class="Symbol">)</a> <a id="3133" class="Symbol">(</a><a id="3134" href="Algebra.Structures.html#3134" class="Bound">ε</a> <a id="3136" class="Symbol">:</a> <a id="3138" href="Algebra.Structures.html#531" class="Bound">A</a><a id="3139" class="Symbol">)</a> <a id="3141" class="Symbol">:</a> <a id="3143" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3147" class="Symbol">(</a><a id="3148" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="3150" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="3152" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="3153" class="Symbol">)</a> <a id="3155" class="Keyword">where</a>
|
|||
|
<a id="3163" class="Keyword">field</a>
|
|||
|
<a id="IsCommutativeMonoid.isMonoid"></a><a id="3173" href="Algebra.Structures.html#3173" class="Field">isMonoid</a> <a id="3182" class="Symbol">:</a> <a id="3184" href="Algebra.Structures.html#2810" class="Record">IsMonoid</a> <a id="3193" href="Algebra.Structures.html#3122" class="Bound">∙</a> <a id="3195" href="Algebra.Structures.html#3134" class="Bound">ε</a>
|
|||
|
<a id="IsCommutativeMonoid.comm"></a><a id="3201" href="Algebra.Structures.html#3201" class="Field">comm</a> <a id="3210" class="Symbol">:</a> <a id="3212" href="Algebra.Definitions.html#1204" class="Function">Commutative</a> <a id="3224" href="Algebra.Structures.html#3122" class="Bound">∙</a>
|
|||
|
|
|||
|
<a id="3229" class="Keyword">open</a> <a id="3234" href="Algebra.Structures.html#2810" class="Module">IsMonoid</a> <a id="3243" href="Algebra.Structures.html#3173" class="Field">isMonoid</a> <a id="3252" class="Keyword">public</a>
|
|||
|
|
|||
|
<a id="IsCommutativeMonoid.isCommutativeSemigroup"></a><a id="3262" href="Algebra.Structures.html#3262" class="Function">isCommutativeSemigroup</a> <a id="3285" class="Symbol">:</a> <a id="3287" href="Algebra.Structures.html#2098" class="Record">IsCommutativeSemigroup</a> <a id="3310" href="Algebra.Structures.html#3122" class="Bound">∙</a>
|
|||
|
<a id="3314" href="Algebra.Structures.html#3262" class="Function">isCommutativeSemigroup</a> <a id="3337" class="Symbol">=</a> <a id="3339" class="Keyword">record</a>
|
|||
|
<a id="3350" class="Symbol">{</a> <a id="3352" href="Algebra.Structures.html#2165" class="Field">isSemigroup</a> <a id="3364" class="Symbol">=</a> <a id="3366" href="Algebra.Structures.html#2871" class="Function">isSemigroup</a>
|
|||
|
<a id="3382" class="Symbol">;</a> <a id="3384" href="Algebra.Structures.html#2197" class="Field">comm</a> <a id="3396" class="Symbol">=</a> <a id="3398" href="Algebra.Structures.html#3201" class="Field">comm</a>
|
|||
|
<a id="3407" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="3412" class="Keyword">open</a> <a id="3417" href="Algebra.Structures.html#2098" class="Module">IsCommutativeSemigroup</a> <a id="3440" href="Algebra.Structures.html#3262" class="Function">isCommutativeSemigroup</a> <a id="3463" class="Keyword">public</a>
|
|||
|
<a id="3474" class="Keyword">using</a> <a id="3480" class="Symbol">(</a><a id="3481" href="Algebra.Structures.html#2267" class="Function">isCommutativeMagma</a><a id="3499" class="Symbol">)</a>
|
|||
|
|
|||
|
|
|||
|
<a id="3503" class="Keyword">record</a> <a id="IsIdempotentCommutativeMonoid"></a><a id="3510" href="Algebra.Structures.html#3510" class="Record">IsIdempotentCommutativeMonoid</a> <a id="3540" class="Symbol">(</a><a id="3541" href="Algebra.Structures.html#3541" class="Bound">∙</a> <a id="3543" class="Symbol">:</a> <a id="3545" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="3549" href="Algebra.Structures.html#531" class="Bound">A</a><a id="3550" class="Symbol">)</a>
|
|||
|
<a id="3589" class="Symbol">(</a><a id="3590" href="Algebra.Structures.html#3590" class="Bound">ε</a> <a id="3592" class="Symbol">:</a> <a id="3594" href="Algebra.Structures.html#531" class="Bound">A</a><a id="3595" class="Symbol">)</a> <a id="3597" class="Symbol">:</a> <a id="3599" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3603" class="Symbol">(</a><a id="3604" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="3606" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="3608" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="3609" class="Symbol">)</a> <a id="3611" class="Keyword">where</a>
|
|||
|
<a id="3619" class="Keyword">field</a>
|
|||
|
<a id="IsIdempotentCommutativeMonoid.isCommutativeMonoid"></a><a id="3629" href="Algebra.Structures.html#3629" class="Field">isCommutativeMonoid</a> <a id="3649" class="Symbol">:</a> <a id="3651" href="Algebra.Structures.html#3101" class="Record">IsCommutativeMonoid</a> <a id="3671" href="Algebra.Structures.html#3541" class="Bound">∙</a> <a id="3673" href="Algebra.Structures.html#3590" class="Bound">ε</a>
|
|||
|
<a id="IsIdempotentCommutativeMonoid.idem"></a><a id="3679" href="Algebra.Structures.html#3679" class="Field">idem</a> <a id="3699" class="Symbol">:</a> <a id="3701" href="Algebra.Definitions.html#2656" class="Function">Idempotent</a> <a id="3712" href="Algebra.Structures.html#3541" class="Bound">∙</a>
|
|||
|
|
|||
|
<a id="3717" class="Keyword">open</a> <a id="3722" href="Algebra.Structures.html#3101" class="Module">IsCommutativeMonoid</a> <a id="3742" href="Algebra.Structures.html#3629" class="Field">isCommutativeMonoid</a> <a id="3762" class="Keyword">public</a>
|
|||
|
|
|||
|
|
|||
|
<a id="3771" class="Comment">-- Idempotent commutative monoids are also known as bounded lattices.</a>
|
|||
|
<a id="3841" class="Comment">-- Note that the BoundedLattice necessarily uses the notation inherited</a>
|
|||
|
<a id="3913" class="Comment">-- from monoids rather than lattices.</a>
|
|||
|
|
|||
|
<a id="IsBoundedLattice"></a><a id="3952" href="Algebra.Structures.html#3952" class="Function">IsBoundedLattice</a> <a id="3969" class="Symbol">=</a> <a id="3971" href="Algebra.Structures.html#3510" class="Record">IsIdempotentCommutativeMonoid</a>
|
|||
|
|
|||
|
<a id="4002" class="Keyword">module</a> <a id="IsBoundedLattice"></a><a id="4009" href="Algebra.Structures.html#4009" class="Module">IsBoundedLattice</a> <a id="4026" class="Symbol">{</a><a id="4027" href="Algebra.Structures.html#4027" class="Bound">∙</a> <a id="4029" class="Symbol">:</a> <a id="4031" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="4035" href="Algebra.Structures.html#531" class="Bound">A</a><a id="4036" class="Symbol">}</a>
|
|||
|
<a id="4062" class="Symbol">{</a><a id="4063" href="Algebra.Structures.html#4063" class="Bound">ε</a> <a id="4065" class="Symbol">:</a> <a id="4067" href="Algebra.Structures.html#531" class="Bound">A</a><a id="4068" class="Symbol">}</a>
|
|||
|
<a id="4094" class="Symbol">(</a><a id="4095" href="Algebra.Structures.html#4095" class="Bound">isIdemCommMonoid</a> <a id="4112" class="Symbol">:</a> <a id="4114" href="Algebra.Structures.html#3510" class="Record">IsIdempotentCommutativeMonoid</a> <a id="4144" href="Algebra.Structures.html#4027" class="Bound">∙</a> <a id="4146" href="Algebra.Structures.html#4063" class="Bound">ε</a><a id="4147" class="Symbol">)</a> <a id="4149" class="Symbol">=</a>
|
|||
|
<a id="4158" href="Algebra.Structures.html#3510" class="Module">IsIdempotentCommutativeMonoid</a> <a id="4188" href="Algebra.Structures.html#4095" class="Bound">isIdemCommMonoid</a>
|
|||
|
|
|||
|
|
|||
|
<a id="4207" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="4280" class="Comment">-- Structures with 1 binary operation, 1 unary operation & 1 element</a>
|
|||
|
<a id="4349" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
|
|||
|
<a id="4423" class="Keyword">record</a> <a id="IsGroup"></a><a id="4430" href="Algebra.Structures.html#4430" class="Record">IsGroup</a> <a id="4438" class="Symbol">(</a><a id="4439" href="Algebra.Structures.html#4439" class="Bound Operator">_∙_</a> <a id="4443" class="Symbol">:</a> <a id="4445" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="4449" href="Algebra.Structures.html#531" class="Bound">A</a><a id="4450" class="Symbol">)</a> <a id="4452" class="Symbol">(</a><a id="4453" href="Algebra.Structures.html#4453" class="Bound">ε</a> <a id="4455" class="Symbol">:</a> <a id="4457" href="Algebra.Structures.html#531" class="Bound">A</a><a id="4458" class="Symbol">)</a> <a id="4460" class="Symbol">(</a><a id="4461" href="Algebra.Structures.html#4461" class="Bound Operator">_⁻¹</a> <a id="4465" class="Symbol">:</a> <a id="4467" href="Algebra.Core.html#484" class="Function">Op₁</a> <a id="4471" href="Algebra.Structures.html#531" class="Bound">A</a><a id="4472" class="Symbol">)</a> <a id="4474" class="Symbol">:</a> <a id="4476" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="4480" class="Symbol">(</a><a id="4481" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="4483" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="4485" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="4486" class="Symbol">)</a> <a id="4488" class="Keyword">where</a>
|
|||
|
<a id="4496" class="Keyword">field</a>
|
|||
|
<a id="IsGroup.isMonoid"></a><a id="4506" href="Algebra.Structures.html#4506" class="Field">isMonoid</a> <a id="4516" class="Symbol">:</a> <a id="4518" href="Algebra.Structures.html#2810" class="Record">IsMonoid</a> <a id="4527" href="Algebra.Structures.html#4439" class="Bound Operator">_∙_</a> <a id="4531" href="Algebra.Structures.html#4453" class="Bound">ε</a>
|
|||
|
<a id="IsGroup.inverse"></a><a id="4537" href="Algebra.Structures.html#4537" class="Field">inverse</a> <a id="4547" class="Symbol">:</a> <a id="4549" href="Algebra.Definitions.html#1891" class="Function">Inverse</a> <a id="4557" href="Algebra.Structures.html#4453" class="Bound">ε</a> <a id="4559" href="Algebra.Structures.html#4461" class="Bound Operator">_⁻¹</a> <a id="4563" href="Algebra.Structures.html#4439" class="Bound Operator">_∙_</a>
|
|||
|
<a id="IsGroup.⁻¹-cong"></a><a id="4571" href="Algebra.Structures.html#4571" class="Field">⁻¹-cong</a> <a id="4581" class="Symbol">:</a> <a id="4583" href="Algebra.Definitions.html#806" class="Function">Congruent₁</a> <a id="4594" href="Algebra.Structures.html#4461" class="Bound Operator">_⁻¹</a>
|
|||
|
|
|||
|
<a id="4601" class="Keyword">open</a> <a id="4606" href="Algebra.Structures.html#2810" class="Module">IsMonoid</a> <a id="4615" href="Algebra.Structures.html#4506" class="Field">isMonoid</a> <a id="4624" class="Keyword">public</a>
|
|||
|
|
|||
|
<a id="4634" class="Keyword">infixl</a> <a id="4641" class="Number">6</a> <a id="4643" href="Algebra.Structures.html#4649" class="Function Operator">_-_</a>
|
|||
|
<a id="IsGroup._-_"></a><a id="4649" href="Algebra.Structures.html#4649" class="Function Operator">_-_</a> <a id="4653" class="Symbol">:</a> <a id="4655" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="4659" href="Algebra.Structures.html#531" class="Bound">A</a>
|
|||
|
<a id="4663" href="Algebra.Structures.html#4663" class="Bound">x</a> <a id="4665" href="Algebra.Structures.html#4649" class="Function Operator">-</a> <a id="4667" href="Algebra.Structures.html#4667" class="Bound">y</a> <a id="4669" class="Symbol">=</a> <a id="4671" href="Algebra.Structures.html#4663" class="Bound">x</a> <a id="4673" href="Algebra.Structures.html#4439" class="Bound Operator">∙</a> <a id="4675" class="Symbol">(</a><a id="4676" href="Algebra.Structures.html#4667" class="Bound">y</a> <a id="4678" href="Algebra.Structures.html#4461" class="Bound Operator">⁻¹</a><a id="4680" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="IsGroup.inverseˡ"></a><a id="4685" href="Algebra.Structures.html#4685" class="Function">inverseˡ</a> <a id="4694" class="Symbol">:</a> <a id="4696" href="Algebra.Definitions.html#1713" class="Function">LeftInverse</a> <a id="4708" href="Algebra.Structures.html#4453" class="Bound">ε</a> <a id="4710" href="Algebra.Structures.html#4461" class="Bound Operator">_⁻¹</a> <a id="4714" href="Algebra.Structures.html#4439" class="Bound Operator">_∙_</a>
|
|||
|
<a id="4720" href="Algebra.Structures.html#4685" class="Function">inverseˡ</a> <a id="4729" class="Symbol">=</a> <a id="4731" href="Agda.Builtin.Sigma.html#234" class="Field">proj₁</a> <a id="4737" href="Algebra.Structures.html#4537" class="Field">inverse</a>
|
|||
|
|
|||
|
<a id="IsGroup.inverseʳ"></a><a id="4748" href="Algebra.Structures.html#4748" class="Function">inverseʳ</a> <a id="4757" class="Symbol">:</a> <a id="4759" href="Algebra.Definitions.html#1801" class="Function">RightInverse</a> <a id="4772" href="Algebra.Structures.html#4453" class="Bound">ε</a> <a id="4774" href="Algebra.Structures.html#4461" class="Bound Operator">_⁻¹</a> <a id="4778" href="Algebra.Structures.html#4439" class="Bound Operator">_∙_</a>
|
|||
|
<a id="4784" href="Algebra.Structures.html#4748" class="Function">inverseʳ</a> <a id="4793" class="Symbol">=</a> <a id="4795" href="Agda.Builtin.Sigma.html#246" class="Field">proj₂</a> <a id="4801" href="Algebra.Structures.html#4537" class="Field">inverse</a>
|
|||
|
|
|||
|
<a id="IsGroup.uniqueˡ-⁻¹"></a><a id="4812" href="Algebra.Structures.html#4812" class="Function">uniqueˡ-⁻¹</a> <a id="4823" class="Symbol">:</a> <a id="4825" class="Symbol">∀</a> <a id="4827" href="Algebra.Structures.html#4827" class="Bound">x</a> <a id="4829" href="Algebra.Structures.html#4829" class="Bound">y</a> <a id="4831" class="Symbol">→</a> <a id="4833" class="Symbol">(</a><a id="4834" href="Algebra.Structures.html#4827" class="Bound">x</a> <a id="4836" href="Algebra.Structures.html#4439" class="Bound Operator">∙</a> <a id="4838" href="Algebra.Structures.html#4829" class="Bound">y</a><a id="4839" class="Symbol">)</a> <a id="4841" href="Algebra.Structures.html#568" class="Bound Operator">≈</a> <a id="4843" href="Algebra.Structures.html#4453" class="Bound">ε</a> <a id="4845" class="Symbol">→</a> <a id="4847" href="Algebra.Structures.html#4827" class="Bound">x</a> <a id="4849" href="Algebra.Structures.html#568" class="Bound Operator">≈</a> <a id="4851" class="Symbol">(</a><a id="4852" href="Algebra.Structures.html#4829" class="Bound">y</a> <a id="4854" href="Algebra.Structures.html#4461" class="Bound Operator">⁻¹</a><a id="4856" class="Symbol">)</a>
|
|||
|
<a id="4860" href="Algebra.Structures.html#4812" class="Function">uniqueˡ-⁻¹</a> <a id="4871" class="Symbol">=</a> <a id="4873" href="Algebra.Consequences.Setoid.html#3610" class="Function">Consequences.assoc+id+invʳ⇒invˡ-unique</a>
|
|||
|
<a id="4928" href="Algebra.Structures.html#1294" class="Function">setoid</a> <a id="4935" href="Algebra.Structures.html#1219" class="Function">∙-cong</a> <a id="4942" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="4948" href="Algebra.Structures.html#2903" class="Function">identity</a> <a id="4957" href="Algebra.Structures.html#4748" class="Function">inverseʳ</a>
|
|||
|
|
|||
|
<a id="IsGroup.uniqueʳ-⁻¹"></a><a id="4969" href="Algebra.Structures.html#4969" class="Function">uniqueʳ-⁻¹</a> <a id="4980" class="Symbol">:</a> <a id="4982" class="Symbol">∀</a> <a id="4984" href="Algebra.Structures.html#4984" class="Bound">x</a> <a id="4986" href="Algebra.Structures.html#4986" class="Bound">y</a> <a id="4988" class="Symbol">→</a> <a id="4990" class="Symbol">(</a><a id="4991" href="Algebra.Structures.html#4984" class="Bound">x</a> <a id="4993" href="Algebra.Structures.html#4439" class="Bound Operator">∙</a> <a id="4995" href="Algebra.Structures.html#4986" class="Bound">y</a><a id="4996" class="Symbol">)</a> <a id="4998" href="Algebra.Structures.html#568" class="Bound Operator">≈</a> <a id="5000" href="Algebra.Structures.html#4453" class="Bound">ε</a> <a id="5002" class="Symbol">→</a> <a id="5004" href="Algebra.Structures.html#4986" class="Bound">y</a> <a id="5006" href="Algebra.Structures.html#568" class="Bound Operator">≈</a> <a id="5008" class="Symbol">(</a><a id="5009" href="Algebra.Structures.html#4984" class="Bound">x</a> <a id="5011" href="Algebra.Structures.html#4461" class="Bound Operator">⁻¹</a><a id="5013" class="Symbol">)</a>
|
|||
|
<a id="5017" href="Algebra.Structures.html#4969" class="Function">uniqueʳ-⁻¹</a> <a id="5028" class="Symbol">=</a> <a id="5030" href="Algebra.Consequences.Setoid.html#4097" class="Function">Consequences.assoc+id+invˡ⇒invʳ-unique</a>
|
|||
|
<a id="5085" href="Algebra.Structures.html#1294" class="Function">setoid</a> <a id="5092" href="Algebra.Structures.html#1219" class="Function">∙-cong</a> <a id="5099" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="5105" href="Algebra.Structures.html#2903" class="Function">identity</a> <a id="5114" href="Algebra.Structures.html#4685" class="Function">inverseˡ</a>
|
|||
|
|
|||
|
|
|||
|
<a id="5125" class="Keyword">record</a> <a id="IsAbelianGroup"></a><a id="5132" href="Algebra.Structures.html#5132" class="Record">IsAbelianGroup</a> <a id="5147" class="Symbol">(</a><a id="5148" href="Algebra.Structures.html#5148" class="Bound">∙</a> <a id="5150" class="Symbol">:</a> <a id="5152" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="5156" href="Algebra.Structures.html#531" class="Bound">A</a><a id="5157" class="Symbol">)</a>
|
|||
|
<a id="5181" class="Symbol">(</a><a id="5182" href="Algebra.Structures.html#5182" class="Bound">ε</a> <a id="5184" class="Symbol">:</a> <a id="5186" href="Algebra.Structures.html#531" class="Bound">A</a><a id="5187" class="Symbol">)</a> <a id="5189" class="Symbol">(</a><a id="5190" href="Algebra.Structures.html#5190" class="Bound">⁻¹</a> <a id="5193" class="Symbol">:</a> <a id="5195" href="Algebra.Core.html#484" class="Function">Op₁</a> <a id="5199" href="Algebra.Structures.html#531" class="Bound">A</a><a id="5200" class="Symbol">)</a> <a id="5202" class="Symbol">:</a> <a id="5204" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="5208" class="Symbol">(</a><a id="5209" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="5211" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="5213" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="5214" class="Symbol">)</a> <a id="5216" class="Keyword">where</a>
|
|||
|
<a id="5224" class="Keyword">field</a>
|
|||
|
<a id="IsAbelianGroup.isGroup"></a><a id="5234" href="Algebra.Structures.html#5234" class="Field">isGroup</a> <a id="5242" class="Symbol">:</a> <a id="5244" href="Algebra.Structures.html#4430" class="Record">IsGroup</a> <a id="5252" href="Algebra.Structures.html#5148" class="Bound">∙</a> <a id="5254" href="Algebra.Structures.html#5182" class="Bound">ε</a> <a id="5256" href="Algebra.Structures.html#5190" class="Bound">⁻¹</a>
|
|||
|
<a id="IsAbelianGroup.comm"></a><a id="5263" href="Algebra.Structures.html#5263" class="Field">comm</a> <a id="5271" class="Symbol">:</a> <a id="5273" href="Algebra.Definitions.html#1204" class="Function">Commutative</a> <a id="5285" href="Algebra.Structures.html#5148" class="Bound">∙</a>
|
|||
|
|
|||
|
<a id="5290" class="Keyword">open</a> <a id="5295" href="Algebra.Structures.html#4430" class="Module">IsGroup</a> <a id="5303" href="Algebra.Structures.html#5234" class="Field">isGroup</a> <a id="5311" class="Keyword">public</a>
|
|||
|
|
|||
|
<a id="IsAbelianGroup.isCommutativeMonoid"></a><a id="5321" href="Algebra.Structures.html#5321" class="Function">isCommutativeMonoid</a> <a id="5341" class="Symbol">:</a> <a id="5343" href="Algebra.Structures.html#3101" class="Record">IsCommutativeMonoid</a> <a id="5363" href="Algebra.Structures.html#5148" class="Bound">∙</a> <a id="5365" href="Algebra.Structures.html#5182" class="Bound">ε</a>
|
|||
|
<a id="5369" href="Algebra.Structures.html#5321" class="Function">isCommutativeMonoid</a> <a id="5389" class="Symbol">=</a> <a id="5391" class="Keyword">record</a>
|
|||
|
<a id="5402" class="Symbol">{</a> <a id="5404" href="Algebra.Structures.html#3173" class="Field">isMonoid</a> <a id="5413" class="Symbol">=</a> <a id="5415" href="Algebra.Structures.html#4506" class="Function">isMonoid</a>
|
|||
|
<a id="5428" class="Symbol">;</a> <a id="5430" href="Algebra.Structures.html#3201" class="Field">comm</a> <a id="5439" class="Symbol">=</a> <a id="5441" href="Algebra.Structures.html#5263" class="Field">comm</a>
|
|||
|
<a id="5450" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="5455" class="Keyword">open</a> <a id="5460" href="Algebra.Structures.html#3101" class="Module">IsCommutativeMonoid</a> <a id="5480" href="Algebra.Structures.html#5321" class="Function">isCommutativeMonoid</a> <a id="5500" class="Keyword">public</a>
|
|||
|
<a id="5511" class="Keyword">using</a> <a id="5517" class="Symbol">(</a><a id="5518" href="Algebra.Structures.html#2267" class="Function">isCommutativeMagma</a><a id="5536" class="Symbol">;</a> <a id="5538" href="Algebra.Structures.html#3262" class="Function">isCommutativeSemigroup</a><a id="5560" class="Symbol">)</a>
|
|||
|
|
|||
|
|
|||
|
<a id="5564" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="5637" class="Comment">-- Structures with 2 binary operations</a>
|
|||
|
<a id="5676" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
|
|||
|
<a id="5750" class="Comment">-- Note that `IsLattice` is not defined in terms of `IsSemilattice`</a>
|
|||
|
<a id="5818" class="Comment">-- because the idempotence laws of ∨ and ∧ can be derived from the</a>
|
|||
|
<a id="5885" class="Comment">-- absorption laws, which makes the corresponding "idem" fields</a>
|
|||
|
<a id="5949" class="Comment">-- redundant. The derived idempotence laws are stated and proved in</a>
|
|||
|
<a id="6018" class="Comment">-- `Algebra.Properties.Lattice` along with the fact that every lattice</a>
|
|||
|
<a id="6089" class="Comment">-- consists of two semilattices.</a>
|
|||
|
|
|||
|
<a id="6123" class="Keyword">record</a> <a id="IsLattice"></a><a id="6130" href="Algebra.Structures.html#6130" class="Record">IsLattice</a> <a id="6140" class="Symbol">(</a><a id="6141" href="Algebra.Structures.html#6141" class="Bound">∨</a> <a id="6143" href="Algebra.Structures.html#6143" class="Bound">∧</a> <a id="6145" class="Symbol">:</a> <a id="6147" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="6151" href="Algebra.Structures.html#531" class="Bound">A</a><a id="6152" class="Symbol">)</a> <a id="6154" class="Symbol">:</a> <a id="6156" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="6160" class="Symbol">(</a><a id="6161" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="6163" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="6165" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="6166" class="Symbol">)</a> <a id="6168" class="Keyword">where</a>
|
|||
|
<a id="6176" class="Keyword">field</a>
|
|||
|
<a id="IsLattice.isEquivalence"></a><a id="6186" href="Algebra.Structures.html#6186" class="Field">isEquivalence</a> <a id="6200" class="Symbol">:</a> <a id="6202" href="Relation.Binary.Structures.html#1531" class="Record">IsEquivalence</a> <a id="6216" href="Algebra.Structures.html#568" class="Bound Operator">_≈_</a>
|
|||
|
<a id="IsLattice.∨-comm"></a><a id="6224" href="Algebra.Structures.html#6224" class="Field">∨-comm</a> <a id="6238" class="Symbol">:</a> <a id="6240" href="Algebra.Definitions.html#1204" class="Function">Commutative</a> <a id="6252" href="Algebra.Structures.html#6141" class="Bound">∨</a>
|
|||
|
<a id="IsLattice.∨-assoc"></a><a id="6258" href="Algebra.Structures.html#6258" class="Field">∨-assoc</a> <a id="6272" class="Symbol">:</a> <a id="6274" href="Algebra.Definitions.html#1117" class="Function">Associative</a> <a id="6286" href="Algebra.Structures.html#6141" class="Bound">∨</a>
|
|||
|
<a id="IsLattice.∨-cong"></a><a id="6292" href="Algebra.Structures.html#6292" class="Field">∨-cong</a> <a id="6306" class="Symbol">:</a> <a id="6308" href="Algebra.Definitions.html#871" class="Function">Congruent₂</a> <a id="6319" href="Algebra.Structures.html#6141" class="Bound">∨</a>
|
|||
|
<a id="IsLattice.∧-comm"></a><a id="6325" href="Algebra.Structures.html#6325" class="Field">∧-comm</a> <a id="6339" class="Symbol">:</a> <a id="6341" href="Algebra.Definitions.html#1204" class="Function">Commutative</a> <a id="6353" href="Algebra.Structures.html#6143" class="Bound">∧</a>
|
|||
|
<a id="IsLattice.∧-assoc"></a><a id="6359" href="Algebra.Structures.html#6359" class="Field">∧-assoc</a> <a id="6373" class="Symbol">:</a> <a id="6375" href="Algebra.Definitions.html#1117" class="Function">Associative</a> <a id="6387" href="Algebra.Structures.html#6143" class="Bound">∧</a>
|
|||
|
<a id="IsLattice.∧-cong"></a><a id="6393" href="Algebra.Structures.html#6393" class="Field">∧-cong</a> <a id="6407" class="Symbol">:</a> <a id="6409" href="Algebra.Definitions.html#871" class="Function">Congruent₂</a> <a id="6420" href="Algebra.Structures.html#6143" class="Bound">∧</a>
|
|||
|
<a id="IsLattice.absorptive"></a><a id="6426" href="Algebra.Structures.html#6426" class="Field">absorptive</a> <a id="6440" class="Symbol">:</a> <a id="6442" href="Algebra.Definitions.html#2947" class="Function">Absorptive</a> <a id="6453" href="Algebra.Structures.html#6141" class="Bound">∨</a> <a id="6455" href="Algebra.Structures.html#6143" class="Bound">∧</a>
|
|||
|
|
|||
|
<a id="6460" class="Keyword">open</a> <a id="6465" href="Relation.Binary.Structures.html#1531" class="Module">IsEquivalence</a> <a id="6479" href="Algebra.Structures.html#6186" class="Field">isEquivalence</a> <a id="6493" class="Keyword">public</a>
|
|||
|
|
|||
|
<a id="IsLattice.∨-absorbs-∧"></a><a id="6503" href="Algebra.Structures.html#6503" class="Function">∨-absorbs-∧</a> <a id="6515" class="Symbol">:</a> <a id="6517" href="Algebra.Structures.html#6141" class="Bound">∨</a> <a id="6519" href="Algebra.Definitions.html#2868" class="Function Operator">Absorbs</a> <a id="6527" href="Algebra.Structures.html#6143" class="Bound">∧</a>
|
|||
|
<a id="6531" href="Algebra.Structures.html#6503" class="Function">∨-absorbs-∧</a> <a id="6543" class="Symbol">=</a> <a id="6545" href="Agda.Builtin.Sigma.html#234" class="Field">proj₁</a> <a id="6551" href="Algebra.Structures.html#6426" class="Field">absorptive</a>
|
|||
|
|
|||
|
<a id="IsLattice.∧-absorbs-∨"></a><a id="6565" href="Algebra.Structures.html#6565" class="Function">∧-absorbs-∨</a> <a id="6577" class="Symbol">:</a> <a id="6579" href="Algebra.Structures.html#6143" class="Bound">∧</a> <a id="6581" href="Algebra.Definitions.html#2868" class="Function Operator">Absorbs</a> <a id="6589" href="Algebra.Structures.html#6141" class="Bound">∨</a>
|
|||
|
<a id="6593" href="Algebra.Structures.html#6565" class="Function">∧-absorbs-∨</a> <a id="6605" class="Symbol">=</a> <a id="6607" href="Agda.Builtin.Sigma.html#246" class="Field">proj₂</a> <a id="6613" href="Algebra.Structures.html#6426" class="Field">absorptive</a>
|
|||
|
|
|||
|
<a id="IsLattice.∧-congˡ"></a><a id="6627" href="Algebra.Structures.html#6627" class="Function">∧-congˡ</a> <a id="6635" class="Symbol">:</a> <a id="6637" href="Algebra.Definitions.html#943" class="Function">LeftCongruent</a> <a id="6651" href="Algebra.Structures.html#6143" class="Bound">∧</a>
|
|||
|
<a id="6655" href="Algebra.Structures.html#6627" class="Function">∧-congˡ</a> <a id="6663" href="Algebra.Structures.html#6663" class="Bound">y≈z</a> <a id="6667" class="Symbol">=</a> <a id="6669" href="Algebra.Structures.html#6393" class="Field">∧-cong</a> <a id="6676" href="Relation.Binary.Structures.html#1577" class="Function">refl</a> <a id="6681" href="Algebra.Structures.html#6663" class="Bound">y≈z</a>
|
|||
|
|
|||
|
<a id="IsLattice.∧-congʳ"></a><a id="6688" href="Algebra.Structures.html#6688" class="Function">∧-congʳ</a> <a id="6696" class="Symbol">:</a> <a id="6698" href="Algebra.Definitions.html#1029" class="Function">RightCongruent</a> <a id="6713" href="Algebra.Structures.html#6143" class="Bound">∧</a>
|
|||
|
<a id="6717" href="Algebra.Structures.html#6688" class="Function">∧-congʳ</a> <a id="6725" href="Algebra.Structures.html#6725" class="Bound">y≈z</a> <a id="6729" class="Symbol">=</a> <a id="6731" href="Algebra.Structures.html#6393" class="Field">∧-cong</a> <a id="6738" href="Algebra.Structures.html#6725" class="Bound">y≈z</a> <a id="6742" href="Relation.Binary.Structures.html#1577" class="Function">refl</a>
|
|||
|
|
|||
|
<a id="IsLattice.∨-congˡ"></a><a id="6750" href="Algebra.Structures.html#6750" class="Function">∨-congˡ</a> <a id="6758" class="Symbol">:</a> <a id="6760" href="Algebra.Definitions.html#943" class="Function">LeftCongruent</a> <a id="6774" href="Algebra.Structures.html#6141" class="Bound">∨</a>
|
|||
|
<a id="6778" href="Algebra.Structures.html#6750" class="Function">∨-congˡ</a> <a id="6786" href="Algebra.Structures.html#6786" class="Bound">y≈z</a> <a id="6790" class="Symbol">=</a> <a id="6792" href="Algebra.Structures.html#6292" class="Field">∨-cong</a> <a id="6799" href="Relation.Binary.Structures.html#1577" class="Function">refl</a> <a id="6804" href="Algebra.Structures.html#6786" class="Bound">y≈z</a>
|
|||
|
|
|||
|
<a id="IsLattice.∨-congʳ"></a><a id="6811" href="Algebra.Structures.html#6811" class="Function">∨-congʳ</a> <a id="6819" class="Symbol">:</a> <a id="6821" href="Algebra.Definitions.html#1029" class="Function">RightCongruent</a> <a id="6836" href="Algebra.Structures.html#6141" class="Bound">∨</a>
|
|||
|
<a id="6840" href="Algebra.Structures.html#6811" class="Function">∨-congʳ</a> <a id="6848" href="Algebra.Structures.html#6848" class="Bound">y≈z</a> <a id="6852" class="Symbol">=</a> <a id="6854" href="Algebra.Structures.html#6292" class="Field">∨-cong</a> <a id="6861" href="Algebra.Structures.html#6848" class="Bound">y≈z</a> <a id="6865" href="Relation.Binary.Structures.html#1577" class="Function">refl</a>
|
|||
|
|
|||
|
|
|||
|
<a id="6872" class="Keyword">record</a> <a id="IsDistributiveLattice"></a><a id="6879" href="Algebra.Structures.html#6879" class="Record">IsDistributiveLattice</a> <a id="6901" class="Symbol">(</a><a id="6902" href="Algebra.Structures.html#6902" class="Bound">∨</a> <a id="6904" href="Algebra.Structures.html#6904" class="Bound">∧</a> <a id="6906" class="Symbol">:</a> <a id="6908" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="6912" href="Algebra.Structures.html#531" class="Bound">A</a><a id="6913" class="Symbol">)</a> <a id="6915" class="Symbol">:</a> <a id="6917" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="6921" class="Symbol">(</a><a id="6922" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="6924" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="6926" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="6927" class="Symbol">)</a> <a id="6929" class="Keyword">where</a>
|
|||
|
<a id="6937" class="Keyword">field</a>
|
|||
|
<a id="IsDistributiveLattice.isLattice"></a><a id="6947" href="Algebra.Structures.html#6947" class="Field">isLattice</a> <a id="6960" class="Symbol">:</a> <a id="6962" href="Algebra.Structures.html#6130" class="Record">IsLattice</a> <a id="6972" href="Algebra.Structures.html#6902" class="Bound">∨</a> <a id="6974" href="Algebra.Structures.html#6904" class="Bound">∧</a>
|
|||
|
<a id="IsDistributiveLattice.∨-distribʳ-∧"></a><a id="6980" href="Algebra.Structures.html#6980" class="Field">∨-distribʳ-∧</a> <a id="6993" class="Symbol">:</a> <a id="6995" href="Algebra.Structures.html#6902" class="Bound">∨</a> <a id="6997" href="Algebra.Definitions.html#2355" class="Function Operator">DistributesOverʳ</a> <a id="7014" href="Algebra.Structures.html#6904" class="Bound">∧</a>
|
|||
|
|
|||
|
<a id="7019" class="Keyword">open</a> <a id="7024" href="Algebra.Structures.html#6130" class="Module">IsLattice</a> <a id="7034" href="Algebra.Structures.html#6947" class="Field">isLattice</a> <a id="7044" class="Keyword">public</a>
|
|||
|
|
|||
|
<a id="IsDistributiveLattice.∨-∧-distribʳ"></a><a id="7054" href="Algebra.Structures.html#7054" class="Function">∨-∧-distribʳ</a> <a id="7067" class="Symbol">=</a> <a id="7069" href="Algebra.Structures.html#6980" class="Field">∨-distribʳ-∧</a>
|
|||
|
<a id="7084" class="Symbol">{-#</a> <a id="7088" class="Keyword">WARNING_ON_USAGE</a> <a id="7105" class="Pragma">∨-∧-distribʳ</a>
|
|||
|
<a id="7120" class="String">"Warning: ∨-∧-distribʳ was deprecated in v1.1.
|
|||
|
Please use ∨-distribʳ-∧ instead."</a>
|
|||
|
<a id="7205" class="Symbol">#-}</a>
|
|||
|
|
|||
|
<a id="7210" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="7283" class="Comment">-- Structures with 2 binary operations & 1 element</a>
|
|||
|
<a id="7334" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
|
|||
|
<a id="7408" class="Keyword">record</a> <a id="IsNearSemiring"></a><a id="7415" href="Algebra.Structures.html#7415" class="Record">IsNearSemiring</a> <a id="7430" class="Symbol">(</a><a id="7431" href="Algebra.Structures.html#7431" class="Bound">+</a> <a id="7433" href="Algebra.Structures.html#7433" class="Bound">*</a> <a id="7435" class="Symbol">:</a> <a id="7437" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="7441" href="Algebra.Structures.html#531" class="Bound">A</a><a id="7442" class="Symbol">)</a> <a id="7444" class="Symbol">(</a><a id="7445" href="Algebra.Structures.html#7445" class="Bound">0#</a> <a id="7448" class="Symbol">:</a> <a id="7450" href="Algebra.Structures.html#531" class="Bound">A</a><a id="7451" class="Symbol">)</a> <a id="7453" class="Symbol">:</a> <a id="7455" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="7459" class="Symbol">(</a><a id="7460" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="7462" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="7464" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="7465" class="Symbol">)</a> <a id="7467" class="Keyword">where</a>
|
|||
|
<a id="7475" class="Keyword">field</a>
|
|||
|
<a id="IsNearSemiring.+-isMonoid"></a><a id="7485" href="Algebra.Structures.html#7485" class="Field">+-isMonoid</a> <a id="7499" class="Symbol">:</a> <a id="7501" href="Algebra.Structures.html#2810" class="Record">IsMonoid</a> <a id="7510" href="Algebra.Structures.html#7431" class="Bound">+</a> <a id="7512" href="Algebra.Structures.html#7445" class="Bound">0#</a>
|
|||
|
<a id="IsNearSemiring.*-isSemigroup"></a><a id="7519" href="Algebra.Structures.html#7519" class="Field">*-isSemigroup</a> <a id="7533" class="Symbol">:</a> <a id="7535" href="Algebra.Structures.html#1796" class="Record">IsSemigroup</a> <a id="7547" href="Algebra.Structures.html#7433" class="Bound">*</a>
|
|||
|
<a id="IsNearSemiring.distribʳ"></a><a id="7553" href="Algebra.Structures.html#7553" class="Field">distribʳ</a> <a id="7567" class="Symbol">:</a> <a id="7569" href="Algebra.Structures.html#7433" class="Bound">*</a> <a id="7571" href="Algebra.Definitions.html#2355" class="Function Operator">DistributesOverʳ</a> <a id="7588" href="Algebra.Structures.html#7431" class="Bound">+</a>
|
|||
|
<a id="IsNearSemiring.zeroˡ"></a><a id="7594" href="Algebra.Structures.html#7594" class="Field">zeroˡ</a> <a id="7608" class="Symbol">:</a> <a id="7610" href="Algebra.Definitions.html#1511" class="Function">LeftZero</a> <a id="7619" href="Algebra.Structures.html#7445" class="Bound">0#</a> <a id="7622" href="Algebra.Structures.html#7433" class="Bound">*</a>
|
|||
|
|
|||
|
<a id="7627" class="Keyword">open</a> <a id="7632" href="Algebra.Structures.html#2810" class="Module">IsMonoid</a> <a id="7641" href="Algebra.Structures.html#7485" class="Field">+-isMonoid</a> <a id="7652" class="Keyword">public</a>
|
|||
|
<a id="7663" class="Keyword">renaming</a>
|
|||
|
<a id="7676" class="Symbol">(</a> <a id="7678" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="7690" class="Symbol">to</a> <a id="7693" class="Function">+-assoc</a>
|
|||
|
<a id="7705" class="Symbol">;</a> <a id="7707" href="Algebra.Structures.html#1219" class="Function">∙-cong</a> <a id="7719" class="Symbol">to</a> <a id="7722" class="Function">+-cong</a>
|
|||
|
<a id="7733" class="Symbol">;</a> <a id="7735" href="Algebra.Structures.html#1369" class="Function">∙-congˡ</a> <a id="7747" class="Symbol">to</a> <a id="7750" class="Function">+-congˡ</a>
|
|||
|
<a id="7762" class="Symbol">;</a> <a id="7764" href="Algebra.Structures.html#1430" class="Function">∙-congʳ</a> <a id="7776" class="Symbol">to</a> <a id="7779" class="Function">+-congʳ</a>
|
|||
|
<a id="7791" class="Symbol">;</a> <a id="7793" href="Algebra.Structures.html#2903" class="Field">identity</a> <a id="7805" class="Symbol">to</a> <a id="7808" class="Field">+-identity</a>
|
|||
|
<a id="7823" class="Symbol">;</a> <a id="7825" href="Algebra.Structures.html#2972" class="Function">identityˡ</a> <a id="7837" class="Symbol">to</a> <a id="7840" class="Function">+-identityˡ</a>
|
|||
|
<a id="7856" class="Symbol">;</a> <a id="7858" href="Algebra.Structures.html#3033" class="Function">identityʳ</a> <a id="7870" class="Symbol">to</a> <a id="7873" class="Function">+-identityʳ</a>
|
|||
|
<a id="7889" class="Symbol">;</a> <a id="7891" href="Algebra.Structures.html#1852" class="Function">isMagma</a> <a id="7903" class="Symbol">to</a> <a id="7906" class="Function">+-isMagma</a>
|
|||
|
<a id="7920" class="Symbol">;</a> <a id="7922" href="Algebra.Structures.html#2871" class="Field">isSemigroup</a> <a id="7934" class="Symbol">to</a> <a id="7937" class="Field">+-isSemigroup</a>
|
|||
|
<a id="7955" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="7960" class="Keyword">open</a> <a id="7965" href="Algebra.Structures.html#1796" class="Module">IsSemigroup</a> <a id="7977" href="Algebra.Structures.html#7519" class="Field">*-isSemigroup</a> <a id="7991" class="Keyword">public</a>
|
|||
|
<a id="8002" class="Keyword">using</a> <a id="8008" class="Symbol">()</a>
|
|||
|
<a id="8015" class="Keyword">renaming</a>
|
|||
|
<a id="8028" class="Symbol">(</a> <a id="8030" href="Algebra.Structures.html#1876" class="Field">assoc</a> <a id="8039" class="Symbol">to</a> <a id="8042" class="Field">*-assoc</a>
|
|||
|
<a id="8054" class="Symbol">;</a> <a id="8056" href="Algebra.Structures.html#1219" class="Function">∙-cong</a> <a id="8065" class="Symbol">to</a> <a id="8068" class="Function">*-cong</a>
|
|||
|
<a id="8079" class="Symbol">;</a> <a id="8081" href="Algebra.Structures.html#1369" class="Function">∙-congˡ</a> <a id="8090" class="Symbol">to</a> <a id="8093" class="Function">*-congˡ</a>
|
|||
|
<a id="8105" class="Symbol">;</a> <a id="8107" href="Algebra.Structures.html#1430" class="Function">∙-congʳ</a> <a id="8116" class="Symbol">to</a> <a id="8119" class="Function">*-congʳ</a>
|
|||
|
<a id="8131" class="Symbol">;</a> <a id="8133" href="Algebra.Structures.html#1852" class="Field">isMagma</a> <a id="8142" class="Symbol">to</a> <a id="8145" class="Field">*-isMagma</a>
|
|||
|
<a id="8159" class="Symbol">)</a>
|
|||
|
|
|||
|
|
|||
|
<a id="8163" class="Keyword">record</a> <a id="IsSemiringWithoutOne"></a><a id="8170" href="Algebra.Structures.html#8170" class="Record">IsSemiringWithoutOne</a> <a id="8191" class="Symbol">(</a><a id="8192" href="Algebra.Structures.html#8192" class="Bound">+</a> <a id="8194" href="Algebra.Structures.html#8194" class="Bound">*</a> <a id="8196" class="Symbol">:</a> <a id="8198" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="8202" href="Algebra.Structures.html#531" class="Bound">A</a><a id="8203" class="Symbol">)</a> <a id="8205" class="Symbol">(</a><a id="8206" href="Algebra.Structures.html#8206" class="Bound">0#</a> <a id="8209" class="Symbol">:</a> <a id="8211" href="Algebra.Structures.html#531" class="Bound">A</a><a id="8212" class="Symbol">)</a> <a id="8214" class="Symbol">:</a> <a id="8216" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="8220" class="Symbol">(</a><a id="8221" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="8223" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="8225" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="8226" class="Symbol">)</a> <a id="8228" class="Keyword">where</a>
|
|||
|
<a id="8236" class="Keyword">field</a>
|
|||
|
<a id="IsSemiringWithoutOne.+-isCommutativeMonoid"></a><a id="8246" href="Algebra.Structures.html#8246" class="Field">+-isCommutativeMonoid</a> <a id="8268" class="Symbol">:</a> <a id="8270" href="Algebra.Structures.html#3101" class="Record">IsCommutativeMonoid</a> <a id="8290" href="Algebra.Structures.html#8192" class="Bound">+</a> <a id="8292" href="Algebra.Structures.html#8206" class="Bound">0#</a>
|
|||
|
<a id="IsSemiringWithoutOne.*-isSemigroup"></a><a id="8299" href="Algebra.Structures.html#8299" class="Field">*-isSemigroup</a> <a id="8321" class="Symbol">:</a> <a id="8323" href="Algebra.Structures.html#1796" class="Record">IsSemigroup</a> <a id="8335" href="Algebra.Structures.html#8194" class="Bound">*</a>
|
|||
|
<a id="IsSemiringWithoutOne.distrib"></a><a id="8341" href="Algebra.Structures.html#8341" class="Field">distrib</a> <a id="8363" class="Symbol">:</a> <a id="8365" href="Algebra.Structures.html#8194" class="Bound">*</a> <a id="8367" href="Algebra.Definitions.html#2474" class="Function Operator">DistributesOver</a> <a id="8383" href="Algebra.Structures.html#8192" class="Bound">+</a>
|
|||
|
<a id="IsSemiringWithoutOne.zero"></a><a id="8389" href="Algebra.Structures.html#8389" class="Field">zero</a> <a id="8411" class="Symbol">:</a> <a id="8413" href="Algebra.Definitions.html#1643" class="Function">Zero</a> <a id="8418" href="Algebra.Structures.html#8206" class="Bound">0#</a> <a id="8421" href="Algebra.Structures.html#8194" class="Bound">*</a>
|
|||
|
|
|||
|
<a id="8426" class="Keyword">open</a> <a id="8431" href="Algebra.Structures.html#3101" class="Module">IsCommutativeMonoid</a> <a id="8451" href="Algebra.Structures.html#8246" class="Field">+-isCommutativeMonoid</a> <a id="8473" class="Keyword">public</a>
|
|||
|
<a id="8484" class="Keyword">using</a> <a id="8490" class="Symbol">()</a>
|
|||
|
<a id="8497" class="Keyword">renaming</a>
|
|||
|
<a id="8510" class="Symbol">(</a> <a id="8512" href="Algebra.Structures.html#3201" class="Field">comm</a> <a id="8535" class="Symbol">to</a> <a id="8538" class="Field">+-comm</a>
|
|||
|
<a id="8549" class="Symbol">;</a> <a id="8551" href="Algebra.Structures.html#3173" class="Field">isMonoid</a> <a id="8574" class="Symbol">to</a> <a id="8577" class="Field">+-isMonoid</a>
|
|||
|
<a id="8592" class="Symbol">;</a> <a id="8594" href="Algebra.Structures.html#2267" class="Function">isCommutativeMagma</a> <a id="8617" class="Symbol">to</a> <a id="8620" class="Function">+-isCommutativeMagma</a>
|
|||
|
<a id="8645" class="Symbol">;</a> <a id="8647" href="Algebra.Structures.html#3262" class="Function">isCommutativeSemigroup</a> <a id="8670" class="Symbol">to</a> <a id="8673" class="Function">+-isCommutativeSemigroup</a>
|
|||
|
<a id="8702" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="IsSemiringWithoutOne.zeroˡ"></a><a id="8707" href="Algebra.Structures.html#8707" class="Function">zeroˡ</a> <a id="8713" class="Symbol">:</a> <a id="8715" href="Algebra.Definitions.html#1511" class="Function">LeftZero</a> <a id="8724" href="Algebra.Structures.html#8206" class="Bound">0#</a> <a id="8727" href="Algebra.Structures.html#8194" class="Bound">*</a>
|
|||
|
<a id="8731" href="Algebra.Structures.html#8707" class="Function">zeroˡ</a> <a id="8737" class="Symbol">=</a> <a id="8739" href="Agda.Builtin.Sigma.html#234" class="Field">proj₁</a> <a id="8745" href="Algebra.Structures.html#8389" class="Field">zero</a>
|
|||
|
|
|||
|
<a id="IsSemiringWithoutOne.zeroʳ"></a><a id="8753" href="Algebra.Structures.html#8753" class="Function">zeroʳ</a> <a id="8759" class="Symbol">:</a> <a id="8761" href="Algebra.Definitions.html#1576" class="Function">RightZero</a> <a id="8771" href="Algebra.Structures.html#8206" class="Bound">0#</a> <a id="8774" href="Algebra.Structures.html#8194" class="Bound">*</a>
|
|||
|
<a id="8778" href="Algebra.Structures.html#8753" class="Function">zeroʳ</a> <a id="8784" class="Symbol">=</a> <a id="8786" href="Agda.Builtin.Sigma.html#246" class="Field">proj₂</a> <a id="8792" href="Algebra.Structures.html#8389" class="Field">zero</a>
|
|||
|
|
|||
|
<a id="IsSemiringWithoutOne.isNearSemiring"></a><a id="8800" href="Algebra.Structures.html#8800" class="Function">isNearSemiring</a> <a id="8815" class="Symbol">:</a> <a id="8817" href="Algebra.Structures.html#7415" class="Record">IsNearSemiring</a> <a id="8832" href="Algebra.Structures.html#8192" class="Bound">+</a> <a id="8834" href="Algebra.Structures.html#8194" class="Bound">*</a> <a id="8836" href="Algebra.Structures.html#8206" class="Bound">0#</a>
|
|||
|
<a id="8841" href="Algebra.Structures.html#8800" class="Function">isNearSemiring</a> <a id="8856" class="Symbol">=</a> <a id="8858" class="Keyword">record</a>
|
|||
|
<a id="8869" class="Symbol">{</a> <a id="8871" href="Algebra.Structures.html#7485" class="Field">+-isMonoid</a> <a id="8885" class="Symbol">=</a> <a id="8887" href="Algebra.Structures.html#8577" class="Function">+-isMonoid</a>
|
|||
|
<a id="8902" class="Symbol">;</a> <a id="8904" href="Algebra.Structures.html#7519" class="Field">*-isSemigroup</a> <a id="8918" class="Symbol">=</a> <a id="8920" href="Algebra.Structures.html#8299" class="Field">*-isSemigroup</a>
|
|||
|
<a id="8938" class="Symbol">;</a> <a id="8940" href="Algebra.Structures.html#7553" class="Field">distribʳ</a> <a id="8954" class="Symbol">=</a> <a id="8956" href="Agda.Builtin.Sigma.html#246" class="Field">proj₂</a> <a id="8962" href="Algebra.Structures.html#8341" class="Field">distrib</a>
|
|||
|
<a id="8974" class="Symbol">;</a> <a id="8976" href="Algebra.Structures.html#7594" class="Field">zeroˡ</a> <a id="8990" class="Symbol">=</a> <a id="8992" href="Algebra.Structures.html#8707" class="Function">zeroˡ</a>
|
|||
|
<a id="9002" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="9007" class="Keyword">open</a> <a id="9012" href="Algebra.Structures.html#7415" class="Module">IsNearSemiring</a> <a id="9027" href="Algebra.Structures.html#8800" class="Function">isNearSemiring</a> <a id="9042" class="Keyword">public</a>
|
|||
|
<a id="9053" class="Keyword">hiding</a> <a id="9060" class="Symbol">(</a><a id="9061" href="Algebra.Structures.html#7485" class="Field">+-isMonoid</a><a id="9071" class="Symbol">;</a> <a id="9073" href="Algebra.Structures.html#7594" class="Field">zeroˡ</a><a id="9078" class="Symbol">;</a> <a id="9080" href="Algebra.Structures.html#7519" class="Field">*-isSemigroup</a><a id="9093" class="Symbol">)</a>
|
|||
|
|
|||
|
|
|||
|
<a id="9097" class="Keyword">record</a> <a id="IsCommutativeSemiringWithoutOne"></a><a id="9104" href="Algebra.Structures.html#9104" class="Record">IsCommutativeSemiringWithoutOne</a>
|
|||
|
<a id="9145" class="Symbol">(</a><a id="9146" href="Algebra.Structures.html#9146" class="Bound">+</a> <a id="9148" href="Algebra.Structures.html#9148" class="Bound">*</a> <a id="9150" class="Symbol">:</a> <a id="9152" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="9156" href="Algebra.Structures.html#531" class="Bound">A</a><a id="9157" class="Symbol">)</a> <a id="9159" class="Symbol">(</a><a id="9160" href="Algebra.Structures.html#9160" class="Bound">0#</a> <a id="9163" class="Symbol">:</a> <a id="9165" href="Algebra.Structures.html#531" class="Bound">A</a><a id="9166" class="Symbol">)</a> <a id="9168" class="Symbol">:</a> <a id="9170" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="9174" class="Symbol">(</a><a id="9175" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="9177" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="9179" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="9180" class="Symbol">)</a> <a id="9182" class="Keyword">where</a>
|
|||
|
<a id="9190" class="Keyword">field</a>
|
|||
|
<a id="IsCommutativeSemiringWithoutOne.isSemiringWithoutOne"></a><a id="9200" href="Algebra.Structures.html#9200" class="Field">isSemiringWithoutOne</a> <a id="9221" class="Symbol">:</a> <a id="9223" href="Algebra.Structures.html#8170" class="Record">IsSemiringWithoutOne</a> <a id="9244" href="Algebra.Structures.html#9146" class="Bound">+</a> <a id="9246" href="Algebra.Structures.html#9148" class="Bound">*</a> <a id="9248" href="Algebra.Structures.html#9160" class="Bound">0#</a>
|
|||
|
<a id="IsCommutativeSemiringWithoutOne.*-comm"></a><a id="9255" href="Algebra.Structures.html#9255" class="Field">*-comm</a> <a id="9276" class="Symbol">:</a> <a id="9278" href="Algebra.Definitions.html#1204" class="Function">Commutative</a> <a id="9290" href="Algebra.Structures.html#9148" class="Bound">*</a>
|
|||
|
|
|||
|
<a id="9295" class="Keyword">open</a> <a id="9300" href="Algebra.Structures.html#8170" class="Module">IsSemiringWithoutOne</a> <a id="9321" href="Algebra.Structures.html#9200" class="Field">isSemiringWithoutOne</a> <a id="9342" class="Keyword">public</a>
|
|||
|
|
|||
|
<a id="IsCommutativeSemiringWithoutOne.*-isCommutativeSemigroup"></a><a id="9352" href="Algebra.Structures.html#9352" class="Function">*-isCommutativeSemigroup</a> <a id="9377" class="Symbol">:</a> <a id="9379" href="Algebra.Structures.html#2098" class="Record">IsCommutativeSemigroup</a> <a id="9402" href="Algebra.Structures.html#9148" class="Bound">*</a>
|
|||
|
<a id="9406" href="Algebra.Structures.html#9352" class="Function">*-isCommutativeSemigroup</a> <a id="9431" class="Symbol">=</a> <a id="9433" class="Keyword">record</a>
|
|||
|
<a id="9444" class="Symbol">{</a> <a id="9446" href="Algebra.Structures.html#2165" class="Field">isSemigroup</a> <a id="9458" class="Symbol">=</a> <a id="9460" href="Algebra.Structures.html#8299" class="Function">*-isSemigroup</a>
|
|||
|
<a id="9478" class="Symbol">;</a> <a id="9480" href="Algebra.Structures.html#2197" class="Field">comm</a> <a id="9492" class="Symbol">=</a> <a id="9494" href="Algebra.Structures.html#9255" class="Field">*-comm</a>
|
|||
|
<a id="9505" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="9510" class="Keyword">open</a> <a id="9515" href="Algebra.Structures.html#2098" class="Module">IsCommutativeSemigroup</a> <a id="9538" href="Algebra.Structures.html#9352" class="Function">*-isCommutativeSemigroup</a> <a id="9563" class="Keyword">public</a>
|
|||
|
<a id="9574" class="Keyword">using</a> <a id="9580" class="Symbol">()</a> <a id="9583" class="Keyword">renaming</a> <a id="9592" class="Symbol">(</a><a id="9593" href="Algebra.Structures.html#2267" class="Function">isCommutativeMagma</a> <a id="9612" class="Symbol">to</a> <a id="9615" class="Function">*-isCommutativeMagma</a><a id="9635" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="9638" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="9711" class="Comment">-- Structures with 2 binary operations & 2 elements</a>
|
|||
|
<a id="9763" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
|
|||
|
<a id="9837" class="Keyword">record</a> <a id="IsSemiringWithoutAnnihilatingZero"></a><a id="9844" href="Algebra.Structures.html#9844" class="Record">IsSemiringWithoutAnnihilatingZero</a> <a id="9878" class="Symbol">(</a><a id="9879" href="Algebra.Structures.html#9879" class="Bound">+</a> <a id="9881" href="Algebra.Structures.html#9881" class="Bound">*</a> <a id="9883" class="Symbol">:</a> <a id="9885" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="9889" href="Algebra.Structures.html#531" class="Bound">A</a><a id="9890" class="Symbol">)</a>
|
|||
|
<a id="9933" class="Symbol">(</a><a id="9934" href="Algebra.Structures.html#9934" class="Bound">0#</a> <a id="9937" href="Algebra.Structures.html#9937" class="Bound">1#</a> <a id="9940" class="Symbol">:</a> <a id="9942" href="Algebra.Structures.html#531" class="Bound">A</a><a id="9943" class="Symbol">)</a> <a id="9945" class="Symbol">:</a> <a id="9947" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="9951" class="Symbol">(</a><a id="9952" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="9954" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="9956" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="9957" class="Symbol">)</a> <a id="9959" class="Keyword">where</a>
|
|||
|
<a id="9967" class="Keyword">field</a>
|
|||
|
<a id="9977" class="Comment">-- Note that these structures do have an additive unit, but this</a>
|
|||
|
<a id="10046" class="Comment">-- unit does not necessarily annihilate multiplication.</a>
|
|||
|
<a id="IsSemiringWithoutAnnihilatingZero.+-isCommutativeMonoid"></a><a id="10106" href="Algebra.Structures.html#10106" class="Field">+-isCommutativeMonoid</a> <a id="10128" class="Symbol">:</a> <a id="10130" href="Algebra.Structures.html#3101" class="Record">IsCommutativeMonoid</a> <a id="10150" href="Algebra.Structures.html#9879" class="Bound">+</a> <a id="10152" href="Algebra.Structures.html#9934" class="Bound">0#</a>
|
|||
|
<a id="IsSemiringWithoutAnnihilatingZero.*-isMonoid"></a><a id="10159" href="Algebra.Structures.html#10159" class="Field">*-isMonoid</a> <a id="10181" class="Symbol">:</a> <a id="10183" href="Algebra.Structures.html#2810" class="Record">IsMonoid</a> <a id="10192" href="Algebra.Structures.html#9881" class="Bound">*</a> <a id="10194" href="Algebra.Structures.html#9937" class="Bound">1#</a>
|
|||
|
<a id="IsSemiringWithoutAnnihilatingZero.distrib"></a><a id="10201" href="Algebra.Structures.html#10201" class="Field">distrib</a> <a id="10223" class="Symbol">:</a> <a id="10225" href="Algebra.Structures.html#9881" class="Bound">*</a> <a id="10227" href="Algebra.Definitions.html#2474" class="Function Operator">DistributesOver</a> <a id="10243" href="Algebra.Structures.html#9879" class="Bound">+</a>
|
|||
|
|
|||
|
<a id="IsSemiringWithoutAnnihilatingZero.distribˡ"></a><a id="10248" href="Algebra.Structures.html#10248" class="Function">distribˡ</a> <a id="10257" class="Symbol">:</a> <a id="10259" href="Algebra.Structures.html#9881" class="Bound">*</a> <a id="10261" href="Algebra.Definitions.html#2236" class="Function Operator">DistributesOverˡ</a> <a id="10278" href="Algebra.Structures.html#9879" class="Bound">+</a>
|
|||
|
<a id="10282" href="Algebra.Structures.html#10248" class="Function">distribˡ</a> <a id="10291" class="Symbol">=</a> <a id="10293" href="Agda.Builtin.Sigma.html#234" class="Field">proj₁</a> <a id="10299" href="Algebra.Structures.html#10201" class="Field">distrib</a>
|
|||
|
|
|||
|
<a id="IsSemiringWithoutAnnihilatingZero.distribʳ"></a><a id="10310" href="Algebra.Structures.html#10310" class="Function">distribʳ</a> <a id="10319" class="Symbol">:</a> <a id="10321" href="Algebra.Structures.html#9881" class="Bound">*</a> <a id="10323" href="Algebra.Definitions.html#2355" class="Function Operator">DistributesOverʳ</a> <a id="10340" href="Algebra.Structures.html#9879" class="Bound">+</a>
|
|||
|
<a id="10344" href="Algebra.Structures.html#10310" class="Function">distribʳ</a> <a id="10353" class="Symbol">=</a> <a id="10355" href="Agda.Builtin.Sigma.html#246" class="Field">proj₂</a> <a id="10361" href="Algebra.Structures.html#10201" class="Field">distrib</a>
|
|||
|
|
|||
|
<a id="10372" class="Keyword">open</a> <a id="10377" href="Algebra.Structures.html#3101" class="Module">IsCommutativeMonoid</a> <a id="10397" href="Algebra.Structures.html#10106" class="Field">+-isCommutativeMonoid</a> <a id="10419" class="Keyword">public</a>
|
|||
|
<a id="10430" class="Keyword">renaming</a>
|
|||
|
<a id="10443" class="Symbol">(</a> <a id="10445" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="10468" class="Symbol">to</a> <a id="10471" class="Function">+-assoc</a>
|
|||
|
<a id="10483" class="Symbol">;</a> <a id="10485" href="Algebra.Structures.html#1219" class="Function">∙-cong</a> <a id="10508" class="Symbol">to</a> <a id="10511" class="Function">+-cong</a>
|
|||
|
<a id="10522" class="Symbol">;</a> <a id="10524" href="Algebra.Structures.html#1369" class="Function">∙-congˡ</a> <a id="10547" class="Symbol">to</a> <a id="10550" class="Function">+-congˡ</a>
|
|||
|
<a id="10562" class="Symbol">;</a> <a id="10564" href="Algebra.Structures.html#1430" class="Function">∙-congʳ</a> <a id="10587" class="Symbol">to</a> <a id="10590" class="Function">+-congʳ</a>
|
|||
|
<a id="10602" class="Symbol">;</a> <a id="10604" href="Algebra.Structures.html#2903" class="Function">identity</a> <a id="10627" class="Symbol">to</a> <a id="10630" class="Function">+-identity</a>
|
|||
|
<a id="10645" class="Symbol">;</a> <a id="10647" href="Algebra.Structures.html#2972" class="Function">identityˡ</a> <a id="10670" class="Symbol">to</a> <a id="10673" class="Function">+-identityˡ</a>
|
|||
|
<a id="10689" class="Symbol">;</a> <a id="10691" href="Algebra.Structures.html#3033" class="Function">identityʳ</a> <a id="10714" class="Symbol">to</a> <a id="10717" class="Function">+-identityʳ</a>
|
|||
|
<a id="10733" class="Symbol">;</a> <a id="10735" href="Algebra.Structures.html#3201" class="Field">comm</a> <a id="10758" class="Symbol">to</a> <a id="10761" class="Field">+-comm</a>
|
|||
|
<a id="10772" class="Symbol">;</a> <a id="10774" href="Algebra.Structures.html#1852" class="Function">isMagma</a> <a id="10797" class="Symbol">to</a> <a id="10800" class="Function">+-isMagma</a>
|
|||
|
<a id="10814" class="Symbol">;</a> <a id="10816" href="Algebra.Structures.html#2871" class="Function">isSemigroup</a> <a id="10839" class="Symbol">to</a> <a id="10842" class="Function">+-isSemigroup</a>
|
|||
|
<a id="10860" class="Symbol">;</a> <a id="10862" href="Algebra.Structures.html#3173" class="Field">isMonoid</a> <a id="10885" class="Symbol">to</a> <a id="10888" class="Field">+-isMonoid</a>
|
|||
|
<a id="10903" class="Symbol">;</a> <a id="10905" href="Algebra.Structures.html#2267" class="Function">isCommutativeMagma</a> <a id="10928" class="Symbol">to</a> <a id="10931" class="Function">+-isCommutativeMagma</a>
|
|||
|
<a id="10956" class="Symbol">;</a> <a id="10958" href="Algebra.Structures.html#3262" class="Function">isCommutativeSemigroup</a> <a id="10981" class="Symbol">to</a> <a id="10984" class="Function">+-isCommutativeSemigroup</a>
|
|||
|
<a id="11013" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="11018" class="Keyword">open</a> <a id="11023" href="Algebra.Structures.html#2810" class="Module">IsMonoid</a> <a id="11032" href="Algebra.Structures.html#10159" class="Field">*-isMonoid</a> <a id="11043" class="Keyword">public</a>
|
|||
|
<a id="11054" class="Keyword">using</a> <a id="11060" class="Symbol">()</a>
|
|||
|
<a id="11067" class="Keyword">renaming</a>
|
|||
|
<a id="11080" class="Symbol">(</a> <a id="11082" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="11094" class="Symbol">to</a> <a id="11097" class="Function">*-assoc</a>
|
|||
|
<a id="11109" class="Symbol">;</a> <a id="11111" href="Algebra.Structures.html#1219" class="Function">∙-cong</a> <a id="11123" class="Symbol">to</a> <a id="11126" class="Function">*-cong</a>
|
|||
|
<a id="11137" class="Symbol">;</a> <a id="11139" href="Algebra.Structures.html#1369" class="Function">∙-congˡ</a> <a id="11151" class="Symbol">to</a> <a id="11154" class="Function">*-congˡ</a>
|
|||
|
<a id="11166" class="Symbol">;</a> <a id="11168" href="Algebra.Structures.html#1430" class="Function">∙-congʳ</a> <a id="11180" class="Symbol">to</a> <a id="11183" class="Function">*-congʳ</a>
|
|||
|
<a id="11195" class="Symbol">;</a> <a id="11197" href="Algebra.Structures.html#2903" class="Field">identity</a> <a id="11209" class="Symbol">to</a> <a id="11212" class="Field">*-identity</a>
|
|||
|
<a id="11227" class="Symbol">;</a> <a id="11229" href="Algebra.Structures.html#2972" class="Function">identityˡ</a> <a id="11241" class="Symbol">to</a> <a id="11244" class="Function">*-identityˡ</a>
|
|||
|
<a id="11260" class="Symbol">;</a> <a id="11262" href="Algebra.Structures.html#3033" class="Function">identityʳ</a> <a id="11274" class="Symbol">to</a> <a id="11277" class="Function">*-identityʳ</a>
|
|||
|
<a id="11293" class="Symbol">;</a> <a id="11295" href="Algebra.Structures.html#1852" class="Function">isMagma</a> <a id="11307" class="Symbol">to</a> <a id="11310" class="Function">*-isMagma</a>
|
|||
|
<a id="11324" class="Symbol">;</a> <a id="11326" href="Algebra.Structures.html#2871" class="Field">isSemigroup</a> <a id="11338" class="Symbol">to</a> <a id="11341" class="Field">*-isSemigroup</a>
|
|||
|
<a id="11359" class="Symbol">)</a>
|
|||
|
|
|||
|
|
|||
|
<a id="11363" class="Keyword">record</a> <a id="IsSemiring"></a><a id="11370" href="Algebra.Structures.html#11370" class="Record">IsSemiring</a> <a id="11381" class="Symbol">(</a><a id="11382" href="Algebra.Structures.html#11382" class="Bound">+</a> <a id="11384" href="Algebra.Structures.html#11384" class="Bound">*</a> <a id="11386" class="Symbol">:</a> <a id="11388" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="11392" href="Algebra.Structures.html#531" class="Bound">A</a><a id="11393" class="Symbol">)</a> <a id="11395" class="Symbol">(</a><a id="11396" href="Algebra.Structures.html#11396" class="Bound">0#</a> <a id="11399" href="Algebra.Structures.html#11399" class="Bound">1#</a> <a id="11402" class="Symbol">:</a> <a id="11404" href="Algebra.Structures.html#531" class="Bound">A</a><a id="11405" class="Symbol">)</a> <a id="11407" class="Symbol">:</a> <a id="11409" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="11413" class="Symbol">(</a><a id="11414" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="11416" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="11418" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="11419" class="Symbol">)</a> <a id="11421" class="Keyword">where</a>
|
|||
|
<a id="11429" class="Keyword">field</a>
|
|||
|
<a id="IsSemiring.isSemiringWithoutAnnihilatingZero"></a><a id="11439" href="Algebra.Structures.html#11439" class="Field">isSemiringWithoutAnnihilatingZero</a> <a id="11473" class="Symbol">:</a>
|
|||
|
<a id="11481" href="Algebra.Structures.html#9844" class="Record">IsSemiringWithoutAnnihilatingZero</a> <a id="11515" href="Algebra.Structures.html#11382" class="Bound">+</a> <a id="11517" href="Algebra.Structures.html#11384" class="Bound">*</a> <a id="11519" href="Algebra.Structures.html#11396" class="Bound">0#</a> <a id="11522" href="Algebra.Structures.html#11399" class="Bound">1#</a>
|
|||
|
<a id="IsSemiring.zero"></a><a id="11529" href="Algebra.Structures.html#11529" class="Field">zero</a> <a id="11534" class="Symbol">:</a> <a id="11536" href="Algebra.Definitions.html#1643" class="Function">Zero</a> <a id="11541" href="Algebra.Structures.html#11396" class="Bound">0#</a> <a id="11544" href="Algebra.Structures.html#11384" class="Bound">*</a>
|
|||
|
|
|||
|
<a id="11549" class="Keyword">open</a> <a id="11554" href="Algebra.Structures.html#9844" class="Module">IsSemiringWithoutAnnihilatingZero</a>
|
|||
|
<a id="11597" href="Algebra.Structures.html#11439" class="Field">isSemiringWithoutAnnihilatingZero</a> <a id="11631" class="Keyword">public</a>
|
|||
|
|
|||
|
<a id="IsSemiring.isSemiringWithoutOne"></a><a id="11641" href="Algebra.Structures.html#11641" class="Function">isSemiringWithoutOne</a> <a id="11662" class="Symbol">:</a> <a id="11664" href="Algebra.Structures.html#8170" class="Record">IsSemiringWithoutOne</a> <a id="11685" href="Algebra.Structures.html#11382" class="Bound">+</a> <a id="11687" href="Algebra.Structures.html#11384" class="Bound">*</a> <a id="11689" href="Algebra.Structures.html#11396" class="Bound">0#</a>
|
|||
|
<a id="11694" href="Algebra.Structures.html#11641" class="Function">isSemiringWithoutOne</a> <a id="11715" class="Symbol">=</a> <a id="11717" class="Keyword">record</a>
|
|||
|
<a id="11728" class="Symbol">{</a> <a id="11730" href="Algebra.Structures.html#8246" class="Field">+-isCommutativeMonoid</a> <a id="11752" class="Symbol">=</a> <a id="11754" href="Algebra.Structures.html#10106" class="Function">+-isCommutativeMonoid</a>
|
|||
|
<a id="11780" class="Symbol">;</a> <a id="11782" href="Algebra.Structures.html#8299" class="Field">*-isSemigroup</a> <a id="11804" class="Symbol">=</a> <a id="11806" href="Algebra.Structures.html#11341" class="Function">*-isSemigroup</a>
|
|||
|
<a id="11824" class="Symbol">;</a> <a id="11826" href="Algebra.Structures.html#8341" class="Field">distrib</a> <a id="11848" class="Symbol">=</a> <a id="11850" href="Algebra.Structures.html#10201" class="Function">distrib</a>
|
|||
|
<a id="11862" class="Symbol">;</a> <a id="11864" href="Algebra.Structures.html#8389" class="Field">zero</a> <a id="11886" class="Symbol">=</a> <a id="11888" href="Algebra.Structures.html#11529" class="Field">zero</a>
|
|||
|
<a id="11897" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="11902" class="Keyword">open</a> <a id="11907" href="Algebra.Structures.html#8170" class="Module">IsSemiringWithoutOne</a> <a id="11928" href="Algebra.Structures.html#11641" class="Function">isSemiringWithoutOne</a> <a id="11949" class="Keyword">public</a>
|
|||
|
<a id="11960" class="Keyword">using</a>
|
|||
|
<a id="11970" class="Symbol">(</a> <a id="11972" href="Algebra.Structures.html#8800" class="Function">isNearSemiring</a>
|
|||
|
<a id="11991" class="Symbol">;</a> <a id="11993" href="Algebra.Structures.html#8707" class="Function">zeroˡ</a>
|
|||
|
<a id="12003" class="Symbol">;</a> <a id="12005" href="Algebra.Structures.html#8753" class="Function">zeroʳ</a>
|
|||
|
<a id="12015" class="Symbol">)</a>
|
|||
|
|
|||
|
|
|||
|
<a id="12019" class="Keyword">record</a> <a id="IsCommutativeSemiring"></a><a id="12026" href="Algebra.Structures.html#12026" class="Record">IsCommutativeSemiring</a> <a id="12048" class="Symbol">(</a><a id="12049" href="Algebra.Structures.html#12049" class="Bound">+</a> <a id="12051" href="Algebra.Structures.html#12051" class="Bound">*</a> <a id="12053" class="Symbol">:</a> <a id="12055" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="12059" href="Algebra.Structures.html#531" class="Bound">A</a><a id="12060" class="Symbol">)</a> <a id="12062" class="Symbol">(</a><a id="12063" href="Algebra.Structures.html#12063" class="Bound">0#</a> <a id="12066" href="Algebra.Structures.html#12066" class="Bound">1#</a> <a id="12069" class="Symbol">:</a> <a id="12071" href="Algebra.Structures.html#531" class="Bound">A</a><a id="12072" class="Symbol">)</a> <a id="12074" class="Symbol">:</a> <a id="12076" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="12080" class="Symbol">(</a><a id="12081" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="12083" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="12085" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="12086" class="Symbol">)</a> <a id="12088" class="Keyword">where</a>
|
|||
|
<a id="12096" class="Keyword">field</a>
|
|||
|
<a id="IsCommutativeSemiring.isSemiring"></a><a id="12106" href="Algebra.Structures.html#12106" class="Field">isSemiring</a> <a id="12117" class="Symbol">:</a> <a id="12119" href="Algebra.Structures.html#11370" class="Record">IsSemiring</a> <a id="12130" href="Algebra.Structures.html#12049" class="Bound">+</a> <a id="12132" href="Algebra.Structures.html#12051" class="Bound">*</a> <a id="12134" href="Algebra.Structures.html#12063" class="Bound">0#</a> <a id="12137" href="Algebra.Structures.html#12066" class="Bound">1#</a>
|
|||
|
<a id="IsCommutativeSemiring.*-comm"></a><a id="12144" href="Algebra.Structures.html#12144" class="Field">*-comm</a> <a id="12155" class="Symbol">:</a> <a id="12157" href="Algebra.Definitions.html#1204" class="Function">Commutative</a> <a id="12169" href="Algebra.Structures.html#12051" class="Bound">*</a>
|
|||
|
|
|||
|
<a id="12174" class="Keyword">open</a> <a id="12179" href="Algebra.Structures.html#11370" class="Module">IsSemiring</a> <a id="12190" href="Algebra.Structures.html#12106" class="Field">isSemiring</a> <a id="12201" class="Keyword">public</a>
|
|||
|
|
|||
|
<a id="IsCommutativeSemiring.isCommutativeSemiringWithoutOne"></a><a id="12211" href="Algebra.Structures.html#12211" class="Function">isCommutativeSemiringWithoutOne</a> <a id="12243" class="Symbol">:</a>
|
|||
|
<a id="12249" href="Algebra.Structures.html#9104" class="Record">IsCommutativeSemiringWithoutOne</a> <a id="12281" href="Algebra.Structures.html#12049" class="Bound">+</a> <a id="12283" href="Algebra.Structures.html#12051" class="Bound">*</a> <a id="12285" href="Algebra.Structures.html#12063" class="Bound">0#</a>
|
|||
|
<a id="12290" href="Algebra.Structures.html#12211" class="Function">isCommutativeSemiringWithoutOne</a> <a id="12322" class="Symbol">=</a> <a id="12324" class="Keyword">record</a>
|
|||
|
<a id="12335" class="Symbol">{</a> <a id="12337" href="Algebra.Structures.html#9200" class="Field">isSemiringWithoutOne</a> <a id="12358" class="Symbol">=</a> <a id="12360" href="Algebra.Structures.html#11641" class="Function">isSemiringWithoutOne</a>
|
|||
|
<a id="12385" class="Symbol">;</a> <a id="12387" href="Algebra.Structures.html#9255" class="Field">*-comm</a> <a id="12394" class="Symbol">=</a> <a id="12396" href="Algebra.Structures.html#12144" class="Field">*-comm</a>
|
|||
|
<a id="12407" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="12412" class="Keyword">open</a> <a id="12417" href="Algebra.Structures.html#9104" class="Module">IsCommutativeSemiringWithoutOne</a> <a id="12449" href="Algebra.Structures.html#12211" class="Function">isCommutativeSemiringWithoutOne</a> <a id="12481" class="Keyword">public</a>
|
|||
|
<a id="12492" class="Keyword">using</a>
|
|||
|
<a id="12502" class="Symbol">(</a> <a id="12504" href="Algebra.Structures.html#9615" class="Function">*-isCommutativeMagma</a>
|
|||
|
<a id="12529" class="Symbol">;</a> <a id="12531" href="Algebra.Structures.html#9352" class="Function">*-isCommutativeSemigroup</a>
|
|||
|
<a id="12560" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="IsCommutativeSemiring.*-isCommutativeMonoid"></a><a id="12565" href="Algebra.Structures.html#12565" class="Function">*-isCommutativeMonoid</a> <a id="12587" class="Symbol">:</a> <a id="12589" href="Algebra.Structures.html#3101" class="Record">IsCommutativeMonoid</a> <a id="12609" href="Algebra.Structures.html#12051" class="Bound">*</a> <a id="12611" href="Algebra.Structures.html#12066" class="Bound">1#</a>
|
|||
|
<a id="12616" href="Algebra.Structures.html#12565" class="Function">*-isCommutativeMonoid</a> <a id="12638" class="Symbol">=</a> <a id="12640" class="Keyword">record</a>
|
|||
|
<a id="12651" class="Symbol">{</a> <a id="12653" href="Algebra.Structures.html#3173" class="Field">isMonoid</a> <a id="12662" class="Symbol">=</a> <a id="12664" href="Algebra.Structures.html#10159" class="Function">*-isMonoid</a>
|
|||
|
<a id="12679" class="Symbol">;</a> <a id="12681" href="Algebra.Structures.html#3201" class="Field">comm</a> <a id="12690" class="Symbol">=</a> <a id="12692" href="Algebra.Structures.html#12144" class="Field">*-comm</a>
|
|||
|
<a id="12703" class="Symbol">}</a>
|
|||
|
|
|||
|
|
|||
|
<a id="12707" class="Keyword">record</a> <a id="IsCancellativeCommutativeSemiring"></a><a id="12714" href="Algebra.Structures.html#12714" class="Record">IsCancellativeCommutativeSemiring</a> <a id="12748" class="Symbol">(</a><a id="12749" href="Algebra.Structures.html#12749" class="Bound">+</a> <a id="12751" href="Algebra.Structures.html#12751" class="Bound">*</a> <a id="12753" class="Symbol">:</a> <a id="12755" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="12759" href="Algebra.Structures.html#531" class="Bound">A</a><a id="12760" class="Symbol">)</a> <a id="12762" class="Symbol">(</a><a id="12763" href="Algebra.Structures.html#12763" class="Bound">0#</a> <a id="12766" href="Algebra.Structures.html#12766" class="Bound">1#</a> <a id="12769" class="Symbol">:</a> <a id="12771" href="Algebra.Structures.html#531" class="Bound">A</a><a id="12772" class="Symbol">)</a> <a id="12774" class="Symbol">:</a> <a id="12776" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="12780" class="Symbol">(</a><a id="12781" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="12783" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="12785" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="12786" class="Symbol">)</a> <a id="12788" class="Keyword">where</a>
|
|||
|
<a id="12796" class="Keyword">field</a>
|
|||
|
<a id="IsCancellativeCommutativeSemiring.isCommutativeSemiring"></a><a id="12806" href="Algebra.Structures.html#12806" class="Field">isCommutativeSemiring</a> <a id="12828" class="Symbol">:</a> <a id="12830" href="Algebra.Structures.html#12026" class="Record">IsCommutativeSemiring</a> <a id="12852" href="Algebra.Structures.html#12749" class="Bound">+</a> <a id="12854" href="Algebra.Structures.html#12751" class="Bound">*</a> <a id="12856" href="Algebra.Structures.html#12763" class="Bound">0#</a> <a id="12859" href="Algebra.Structures.html#12766" class="Bound">1#</a>
|
|||
|
<a id="IsCancellativeCommutativeSemiring.*-cancelˡ-nonZero"></a><a id="12866" href="Algebra.Structures.html#12866" class="Field">*-cancelˡ-nonZero</a> <a id="12888" class="Symbol">:</a> <a id="12890" href="Algebra.Definitions.html#3381" class="Function">AlmostLeftCancellative</a> <a id="12913" href="Algebra.Structures.html#12763" class="Bound">0#</a> <a id="12916" href="Algebra.Structures.html#12751" class="Bound">*</a>
|
|||
|
|
|||
|
<a id="12921" class="Keyword">open</a> <a id="12926" href="Algebra.Structures.html#12026" class="Module">IsCommutativeSemiring</a> <a id="12948" href="Algebra.Structures.html#12806" class="Field">isCommutativeSemiring</a> <a id="12970" class="Keyword">public</a>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<a id="12980" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="13053" class="Comment">-- Structures with 2 binary operations, 1 unary operation & 2 elements</a>
|
|||
|
<a id="13124" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
|
|||
|
<a id="13198" class="Keyword">record</a> <a id="IsRing"></a><a id="13205" href="Algebra.Structures.html#13205" class="Record">IsRing</a> <a id="13212" class="Symbol">(</a><a id="13213" href="Algebra.Structures.html#13213" class="Bound">+</a> <a id="13215" href="Algebra.Structures.html#13215" class="Bound">*</a> <a id="13217" class="Symbol">:</a> <a id="13219" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="13223" href="Algebra.Structures.html#531" class="Bound">A</a><a id="13224" class="Symbol">)</a> <a id="13226" class="Symbol">(</a><a id="13227" href="Algebra.Structures.html#13227" class="Bound Operator">-_</a> <a id="13230" class="Symbol">:</a> <a id="13232" href="Algebra.Core.html#484" class="Function">Op₁</a> <a id="13236" href="Algebra.Structures.html#531" class="Bound">A</a><a id="13237" class="Symbol">)</a> <a id="13239" class="Symbol">(</a><a id="13240" href="Algebra.Structures.html#13240" class="Bound">0#</a> <a id="13243" href="Algebra.Structures.html#13243" class="Bound">1#</a> <a id="13246" class="Symbol">:</a> <a id="13248" href="Algebra.Structures.html#531" class="Bound">A</a><a id="13249" class="Symbol">)</a> <a id="13251" class="Symbol">:</a> <a id="13253" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="13257" class="Symbol">(</a><a id="13258" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="13260" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="13262" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="13263" class="Symbol">)</a> <a id="13265" class="Keyword">where</a>
|
|||
|
<a id="13273" class="Keyword">field</a>
|
|||
|
<a id="IsRing.+-isAbelianGroup"></a><a id="13283" href="Algebra.Structures.html#13283" class="Field">+-isAbelianGroup</a> <a id="13300" class="Symbol">:</a> <a id="13302" href="Algebra.Structures.html#5132" class="Record">IsAbelianGroup</a> <a id="13317" href="Algebra.Structures.html#13213" class="Bound">+</a> <a id="13319" href="Algebra.Structures.html#13240" class="Bound">0#</a> <a id="13322" href="Algebra.Structures.html#13227" class="Bound Operator">-_</a>
|
|||
|
<a id="IsRing.*-isMonoid"></a><a id="13329" href="Algebra.Structures.html#13329" class="Field">*-isMonoid</a> <a id="13346" class="Symbol">:</a> <a id="13348" href="Algebra.Structures.html#2810" class="Record">IsMonoid</a> <a id="13357" href="Algebra.Structures.html#13215" class="Bound">*</a> <a id="13359" href="Algebra.Structures.html#13243" class="Bound">1#</a>
|
|||
|
<a id="IsRing.distrib"></a><a id="13366" href="Algebra.Structures.html#13366" class="Field">distrib</a> <a id="13383" class="Symbol">:</a> <a id="13385" href="Algebra.Structures.html#13215" class="Bound">*</a> <a id="13387" href="Algebra.Definitions.html#2474" class="Function Operator">DistributesOver</a> <a id="13403" href="Algebra.Structures.html#13213" class="Bound">+</a>
|
|||
|
<a id="IsRing.zero"></a><a id="13409" href="Algebra.Structures.html#13409" class="Field">zero</a> <a id="13426" class="Symbol">:</a> <a id="13428" href="Algebra.Definitions.html#1643" class="Function">Zero</a> <a id="13433" href="Algebra.Structures.html#13240" class="Bound">0#</a> <a id="13436" href="Algebra.Structures.html#13215" class="Bound">*</a>
|
|||
|
|
|||
|
<a id="13441" class="Keyword">open</a> <a id="13446" href="Algebra.Structures.html#5132" class="Module">IsAbelianGroup</a> <a id="13461" href="Algebra.Structures.html#13283" class="Field">+-isAbelianGroup</a> <a id="13478" class="Keyword">public</a>
|
|||
|
<a id="13489" class="Keyword">renaming</a>
|
|||
|
<a id="13502" class="Symbol">(</a> <a id="13504" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="13527" class="Symbol">to</a> <a id="13530" class="Function">+-assoc</a>
|
|||
|
<a id="13542" class="Symbol">;</a> <a id="13544" href="Algebra.Structures.html#1219" class="Function">∙-cong</a> <a id="13567" class="Symbol">to</a> <a id="13570" class="Function">+-cong</a>
|
|||
|
<a id="13581" class="Symbol">;</a> <a id="13583" href="Algebra.Structures.html#1369" class="Function">∙-congˡ</a> <a id="13606" class="Symbol">to</a> <a id="13609" class="Function">+-congˡ</a>
|
|||
|
<a id="13621" class="Symbol">;</a> <a id="13623" href="Algebra.Structures.html#1430" class="Function">∙-congʳ</a> <a id="13646" class="Symbol">to</a> <a id="13649" class="Function">+-congʳ</a>
|
|||
|
<a id="13661" class="Symbol">;</a> <a id="13663" href="Algebra.Structures.html#2903" class="Function">identity</a> <a id="13686" class="Symbol">to</a> <a id="13689" class="Function">+-identity</a>
|
|||
|
<a id="13704" class="Symbol">;</a> <a id="13706" href="Algebra.Structures.html#2972" class="Function">identityˡ</a> <a id="13729" class="Symbol">to</a> <a id="13732" class="Function">+-identityˡ</a>
|
|||
|
<a id="13748" class="Symbol">;</a> <a id="13750" href="Algebra.Structures.html#3033" class="Function">identityʳ</a> <a id="13773" class="Symbol">to</a> <a id="13776" class="Function">+-identityʳ</a>
|
|||
|
<a id="13792" class="Symbol">;</a> <a id="13794" href="Algebra.Structures.html#4537" class="Function">inverse</a> <a id="13817" class="Symbol">to</a> <a id="13820" class="Function">-‿inverse</a>
|
|||
|
<a id="13834" class="Symbol">;</a> <a id="13836" href="Algebra.Structures.html#4685" class="Function">inverseˡ</a> <a id="13859" class="Symbol">to</a> <a id="13862" class="Function">-‿inverseˡ</a>
|
|||
|
<a id="13877" class="Symbol">;</a> <a id="13879" href="Algebra.Structures.html#4748" class="Function">inverseʳ</a> <a id="13902" class="Symbol">to</a> <a id="13905" class="Function">-‿inverseʳ</a>
|
|||
|
<a id="13920" class="Symbol">;</a> <a id="13922" href="Algebra.Structures.html#4571" class="Function">⁻¹-cong</a> <a id="13945" class="Symbol">to</a> <a id="13948" class="Function">-‿cong</a>
|
|||
|
<a id="13959" class="Symbol">;</a> <a id="13961" href="Algebra.Structures.html#5263" class="Field">comm</a> <a id="13984" class="Symbol">to</a> <a id="13987" class="Field">+-comm</a>
|
|||
|
<a id="13998" class="Symbol">;</a> <a id="14000" href="Algebra.Structures.html#1852" class="Function">isMagma</a> <a id="14023" class="Symbol">to</a> <a id="14026" class="Function">+-isMagma</a>
|
|||
|
<a id="14040" class="Symbol">;</a> <a id="14042" href="Algebra.Structures.html#2871" class="Function">isSemigroup</a> <a id="14065" class="Symbol">to</a> <a id="14068" class="Function">+-isSemigroup</a>
|
|||
|
<a id="14086" class="Symbol">;</a> <a id="14088" href="Algebra.Structures.html#4506" class="Function">isMonoid</a> <a id="14111" class="Symbol">to</a> <a id="14114" class="Function">+-isMonoid</a>
|
|||
|
<a id="14129" class="Symbol">;</a> <a id="14131" href="Algebra.Structures.html#2267" class="Function">isCommutativeMagma</a> <a id="14154" class="Symbol">to</a> <a id="14157" class="Function">+-isCommutativeMagma</a>
|
|||
|
<a id="14182" class="Symbol">;</a> <a id="14184" href="Algebra.Structures.html#5321" class="Function">isCommutativeMonoid</a> <a id="14207" class="Symbol">to</a> <a id="14210" class="Function">+-isCommutativeMonoid</a>
|
|||
|
<a id="14236" class="Symbol">;</a> <a id="14238" href="Algebra.Structures.html#3262" class="Function">isCommutativeSemigroup</a> <a id="14261" class="Symbol">to</a> <a id="14264" class="Function">+-isCommutativeSemigroup</a>
|
|||
|
<a id="14293" class="Symbol">;</a> <a id="14295" href="Algebra.Structures.html#5234" class="Field">isGroup</a> <a id="14318" class="Symbol">to</a> <a id="14321" class="Field">+-isGroup</a>
|
|||
|
<a id="14335" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="14340" class="Keyword">open</a> <a id="14345" href="Algebra.Structures.html#2810" class="Module">IsMonoid</a> <a id="14354" href="Algebra.Structures.html#13329" class="Field">*-isMonoid</a> <a id="14365" class="Keyword">public</a>
|
|||
|
<a id="14376" class="Keyword">using</a> <a id="14382" class="Symbol">()</a>
|
|||
|
<a id="14389" class="Keyword">renaming</a>
|
|||
|
<a id="14402" class="Symbol">(</a> <a id="14404" href="Algebra.Structures.html#1876" class="Function">assoc</a> <a id="14416" class="Symbol">to</a> <a id="14419" class="Function">*-assoc</a>
|
|||
|
<a id="14431" class="Symbol">;</a> <a id="14433" href="Algebra.Structures.html#1219" class="Function">∙-cong</a> <a id="14445" class="Symbol">to</a> <a id="14448" class="Function">*-cong</a>
|
|||
|
<a id="14459" class="Symbol">;</a> <a id="14461" href="Algebra.Structures.html#1369" class="Function">∙-congˡ</a> <a id="14473" class="Symbol">to</a> <a id="14476" class="Function">*-congˡ</a>
|
|||
|
<a id="14488" class="Symbol">;</a> <a id="14490" href="Algebra.Structures.html#1430" class="Function">∙-congʳ</a> <a id="14502" class="Symbol">to</a> <a id="14505" class="Function">*-congʳ</a>
|
|||
|
<a id="14517" class="Symbol">;</a> <a id="14519" href="Algebra.Structures.html#2903" class="Field">identity</a> <a id="14531" class="Symbol">to</a> <a id="14534" class="Field">*-identity</a>
|
|||
|
<a id="14549" class="Symbol">;</a> <a id="14551" href="Algebra.Structures.html#2972" class="Function">identityˡ</a> <a id="14563" class="Symbol">to</a> <a id="14566" class="Function">*-identityˡ</a>
|
|||
|
<a id="14582" class="Symbol">;</a> <a id="14584" href="Algebra.Structures.html#3033" class="Function">identityʳ</a> <a id="14596" class="Symbol">to</a> <a id="14599" class="Function">*-identityʳ</a>
|
|||
|
<a id="14615" class="Symbol">;</a> <a id="14617" href="Algebra.Structures.html#1852" class="Function">isMagma</a> <a id="14629" class="Symbol">to</a> <a id="14632" class="Function">*-isMagma</a>
|
|||
|
<a id="14646" class="Symbol">;</a> <a id="14648" href="Algebra.Structures.html#2871" class="Field">isSemigroup</a> <a id="14660" class="Symbol">to</a> <a id="14663" class="Field">*-isSemigroup</a>
|
|||
|
<a id="14681" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="IsRing.zeroˡ"></a><a id="14686" href="Algebra.Structures.html#14686" class="Function">zeroˡ</a> <a id="14692" class="Symbol">:</a> <a id="14694" href="Algebra.Definitions.html#1511" class="Function">LeftZero</a> <a id="14703" href="Algebra.Structures.html#13240" class="Bound">0#</a> <a id="14706" href="Algebra.Structures.html#13215" class="Bound">*</a>
|
|||
|
<a id="14710" href="Algebra.Structures.html#14686" class="Function">zeroˡ</a> <a id="14716" class="Symbol">=</a> <a id="14718" href="Agda.Builtin.Sigma.html#234" class="Field">proj₁</a> <a id="14724" href="Algebra.Structures.html#13409" class="Field">zero</a>
|
|||
|
|
|||
|
<a id="IsRing.zeroʳ"></a><a id="14732" href="Algebra.Structures.html#14732" class="Function">zeroʳ</a> <a id="14738" class="Symbol">:</a> <a id="14740" href="Algebra.Definitions.html#1576" class="Function">RightZero</a> <a id="14750" href="Algebra.Structures.html#13240" class="Bound">0#</a> <a id="14753" href="Algebra.Structures.html#13215" class="Bound">*</a>
|
|||
|
<a id="14757" href="Algebra.Structures.html#14732" class="Function">zeroʳ</a> <a id="14763" class="Symbol">=</a> <a id="14765" href="Agda.Builtin.Sigma.html#246" class="Field">proj₂</a> <a id="14771" href="Algebra.Structures.html#13409" class="Field">zero</a>
|
|||
|
|
|||
|
<a id="IsRing.isSemiringWithoutAnnihilatingZero"></a><a id="14779" href="Algebra.Structures.html#14779" class="Function">isSemiringWithoutAnnihilatingZero</a>
|
|||
|
<a id="14817" class="Symbol">:</a> <a id="14819" href="Algebra.Structures.html#9844" class="Record">IsSemiringWithoutAnnihilatingZero</a> <a id="14853" href="Algebra.Structures.html#13213" class="Bound">+</a> <a id="14855" href="Algebra.Structures.html#13215" class="Bound">*</a> <a id="14857" href="Algebra.Structures.html#13240" class="Bound">0#</a> <a id="14860" href="Algebra.Structures.html#13243" class="Bound">1#</a>
|
|||
|
<a id="14865" href="Algebra.Structures.html#14779" class="Function">isSemiringWithoutAnnihilatingZero</a> <a id="14899" class="Symbol">=</a> <a id="14901" class="Keyword">record</a>
|
|||
|
<a id="14912" class="Symbol">{</a> <a id="14914" href="Algebra.Structures.html#10106" class="Field">+-isCommutativeMonoid</a> <a id="14936" class="Symbol">=</a> <a id="14938" href="Algebra.Structures.html#14210" class="Function">+-isCommutativeMonoid</a>
|
|||
|
<a id="14964" class="Symbol">;</a> <a id="14966" href="Algebra.Structures.html#10159" class="Field">*-isMonoid</a> <a id="14988" class="Symbol">=</a> <a id="14990" href="Algebra.Structures.html#13329" class="Field">*-isMonoid</a>
|
|||
|
<a id="15005" class="Symbol">;</a> <a id="15007" href="Algebra.Structures.html#10201" class="Field">distrib</a> <a id="15029" class="Symbol">=</a> <a id="15031" href="Algebra.Structures.html#13366" class="Field">distrib</a>
|
|||
|
<a id="15043" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="IsRing.isSemiring"></a><a id="15048" href="Algebra.Structures.html#15048" class="Function">isSemiring</a> <a id="15059" class="Symbol">:</a> <a id="15061" href="Algebra.Structures.html#11370" class="Record">IsSemiring</a> <a id="15072" href="Algebra.Structures.html#13213" class="Bound">+</a> <a id="15074" href="Algebra.Structures.html#13215" class="Bound">*</a> <a id="15076" href="Algebra.Structures.html#13240" class="Bound">0#</a> <a id="15079" href="Algebra.Structures.html#13243" class="Bound">1#</a>
|
|||
|
<a id="15084" href="Algebra.Structures.html#15048" class="Function">isSemiring</a> <a id="15095" class="Symbol">=</a> <a id="15097" class="Keyword">record</a>
|
|||
|
<a id="15108" class="Symbol">{</a> <a id="15110" href="Algebra.Structures.html#11439" class="Field">isSemiringWithoutAnnihilatingZero</a> <a id="15144" class="Symbol">=</a>
|
|||
|
<a id="15154" href="Algebra.Structures.html#14779" class="Function">isSemiringWithoutAnnihilatingZero</a>
|
|||
|
<a id="15192" class="Symbol">;</a> <a id="15194" href="Algebra.Structures.html#11529" class="Field">zero</a> <a id="15199" class="Symbol">=</a> <a id="15201" href="Algebra.Structures.html#13409" class="Field">zero</a>
|
|||
|
<a id="15210" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="15215" class="Keyword">open</a> <a id="15220" href="Algebra.Structures.html#11370" class="Module">IsSemiring</a> <a id="15231" href="Algebra.Structures.html#15048" class="Function">isSemiring</a> <a id="15242" class="Keyword">public</a>
|
|||
|
<a id="15253" class="Keyword">using</a> <a id="15259" class="Symbol">(</a><a id="15260" href="Algebra.Structures.html#10248" class="Function">distribˡ</a><a id="15268" class="Symbol">;</a> <a id="15270" href="Algebra.Structures.html#10310" class="Function">distribʳ</a><a id="15278" class="Symbol">;</a> <a id="15280" href="Algebra.Structures.html#8800" class="Function">isNearSemiring</a><a id="15294" class="Symbol">;</a> <a id="15296" href="Algebra.Structures.html#11641" class="Function">isSemiringWithoutOne</a><a id="15316" class="Symbol">)</a>
|
|||
|
|
|||
|
|
|||
|
<a id="15320" class="Keyword">record</a> <a id="IsCommutativeRing"></a><a id="15327" href="Algebra.Structures.html#15327" class="Record">IsCommutativeRing</a>
|
|||
|
<a id="15354" class="Symbol">(</a><a id="15355" href="Algebra.Structures.html#15355" class="Bound">+</a> <a id="15357" href="Algebra.Structures.html#15357" class="Bound">*</a> <a id="15359" class="Symbol">:</a> <a id="15361" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="15365" href="Algebra.Structures.html#531" class="Bound">A</a><a id="15366" class="Symbol">)</a> <a id="15368" class="Symbol">(</a><a id="15369" href="Algebra.Structures.html#15369" class="Bound">-</a> <a id="15371" class="Symbol">:</a> <a id="15373" href="Algebra.Core.html#484" class="Function">Op₁</a> <a id="15377" href="Algebra.Structures.html#531" class="Bound">A</a><a id="15378" class="Symbol">)</a> <a id="15380" class="Symbol">(</a><a id="15381" href="Algebra.Structures.html#15381" class="Bound">0#</a> <a id="15384" href="Algebra.Structures.html#15384" class="Bound">1#</a> <a id="15387" class="Symbol">:</a> <a id="15389" href="Algebra.Structures.html#531" class="Bound">A</a><a id="15390" class="Symbol">)</a> <a id="15392" class="Symbol">:</a> <a id="15394" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="15398" class="Symbol">(</a><a id="15399" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="15401" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="15403" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="15404" class="Symbol">)</a> <a id="15406" class="Keyword">where</a>
|
|||
|
<a id="15414" class="Keyword">field</a>
|
|||
|
<a id="IsCommutativeRing.isRing"></a><a id="15424" href="Algebra.Structures.html#15424" class="Field">isRing</a> <a id="15431" class="Symbol">:</a> <a id="15433" href="Algebra.Structures.html#13205" class="Record">IsRing</a> <a id="15440" href="Algebra.Structures.html#15355" class="Bound">+</a> <a id="15442" href="Algebra.Structures.html#15357" class="Bound">*</a> <a id="15444" href="Algebra.Structures.html#15369" class="Bound">-</a> <a id="15446" href="Algebra.Structures.html#15381" class="Bound">0#</a> <a id="15449" href="Algebra.Structures.html#15384" class="Bound">1#</a>
|
|||
|
<a id="IsCommutativeRing.*-comm"></a><a id="15456" href="Algebra.Structures.html#15456" class="Field">*-comm</a> <a id="15463" class="Symbol">:</a> <a id="15465" href="Algebra.Definitions.html#1204" class="Function">Commutative</a> <a id="15477" href="Algebra.Structures.html#15357" class="Bound">*</a>
|
|||
|
|
|||
|
<a id="15482" class="Keyword">open</a> <a id="15487" href="Algebra.Structures.html#13205" class="Module">IsRing</a> <a id="15494" href="Algebra.Structures.html#15424" class="Field">isRing</a> <a id="15501" class="Keyword">public</a>
|
|||
|
|
|||
|
<a id="IsCommutativeRing.isCommutativeSemiring"></a><a id="15511" href="Algebra.Structures.html#15511" class="Function">isCommutativeSemiring</a> <a id="15533" class="Symbol">:</a> <a id="15535" href="Algebra.Structures.html#12026" class="Record">IsCommutativeSemiring</a> <a id="15557" href="Algebra.Structures.html#15355" class="Bound">+</a> <a id="15559" href="Algebra.Structures.html#15357" class="Bound">*</a> <a id="15561" href="Algebra.Structures.html#15381" class="Bound">0#</a> <a id="15564" href="Algebra.Structures.html#15384" class="Bound">1#</a>
|
|||
|
<a id="15569" href="Algebra.Structures.html#15511" class="Function">isCommutativeSemiring</a> <a id="15591" class="Symbol">=</a> <a id="15593" class="Keyword">record</a>
|
|||
|
<a id="15604" class="Symbol">{</a> <a id="15606" href="Algebra.Structures.html#12106" class="Field">isSemiring</a> <a id="15617" class="Symbol">=</a> <a id="15619" href="Algebra.Structures.html#15048" class="Function">isSemiring</a>
|
|||
|
<a id="15634" class="Symbol">;</a> <a id="15636" href="Algebra.Structures.html#12144" class="Field">*-comm</a> <a id="15643" class="Symbol">=</a> <a id="15645" href="Algebra.Structures.html#15456" class="Field">*-comm</a>
|
|||
|
<a id="15656" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="15661" class="Keyword">open</a> <a id="15666" href="Algebra.Structures.html#12026" class="Module">IsCommutativeSemiring</a> <a id="15688" href="Algebra.Structures.html#15511" class="Function">isCommutativeSemiring</a> <a id="15710" class="Keyword">public</a>
|
|||
|
<a id="15721" class="Keyword">using</a>
|
|||
|
<a id="15731" class="Symbol">(</a> <a id="15733" href="Algebra.Structures.html#12211" class="Function">isCommutativeSemiringWithoutOne</a>
|
|||
|
<a id="15769" class="Symbol">;</a> <a id="15771" href="Algebra.Structures.html#9615" class="Function">*-isCommutativeMagma</a>
|
|||
|
<a id="15796" class="Symbol">;</a> <a id="15798" href="Algebra.Structures.html#9352" class="Function">*-isCommutativeSemigroup</a>
|
|||
|
<a id="15827" class="Symbol">;</a> <a id="15829" href="Algebra.Structures.html#12565" class="Function">*-isCommutativeMonoid</a>
|
|||
|
<a id="15855" class="Symbol">)</a>
|
|||
|
|
|||
|
|
|||
|
<a id="15859" class="Keyword">record</a> <a id="IsBooleanAlgebra"></a><a id="15866" href="Algebra.Structures.html#15866" class="Record">IsBooleanAlgebra</a>
|
|||
|
<a id="15892" class="Symbol">(</a><a id="15893" href="Algebra.Structures.html#15893" class="Bound">∨</a> <a id="15895" href="Algebra.Structures.html#15895" class="Bound">∧</a> <a id="15897" class="Symbol">:</a> <a id="15899" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="15903" href="Algebra.Structures.html#531" class="Bound">A</a><a id="15904" class="Symbol">)</a> <a id="15906" class="Symbol">(</a><a id="15907" href="Algebra.Structures.html#15907" class="Bound">¬</a> <a id="15909" class="Symbol">:</a> <a id="15911" href="Algebra.Core.html#484" class="Function">Op₁</a> <a id="15915" href="Algebra.Structures.html#531" class="Bound">A</a><a id="15916" class="Symbol">)</a> <a id="15918" class="Symbol">(</a><a id="15919" href="Algebra.Structures.html#15919" class="Bound">⊤</a> <a id="15921" href="Algebra.Structures.html#15921" class="Bound">⊥</a> <a id="15923" class="Symbol">:</a> <a id="15925" href="Algebra.Structures.html#531" class="Bound">A</a><a id="15926" class="Symbol">)</a> <a id="15928" class="Symbol">:</a> <a id="15930" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="15934" class="Symbol">(</a><a id="15935" href="Algebra.Structures.html#525" class="Bound">a</a> <a id="15937" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="15939" href="Algebra.Structures.html#527" class="Bound">ℓ</a><a id="15940" class="Symbol">)</a> <a id="15942" class="Keyword">where</a>
|
|||
|
<a id="15950" class="Keyword">field</a>
|
|||
|
<a id="IsBooleanAlgebra.isDistributiveLattice"></a><a id="15960" href="Algebra.Structures.html#15960" class="Field">isDistributiveLattice</a> <a id="15982" class="Symbol">:</a> <a id="15984" href="Algebra.Structures.html#6879" class="Record">IsDistributiveLattice</a> <a id="16006" href="Algebra.Structures.html#15893" class="Bound">∨</a> <a id="16008" href="Algebra.Structures.html#15895" class="Bound">∧</a>
|
|||
|
<a id="IsBooleanAlgebra.∨-complementʳ"></a><a id="16014" href="Algebra.Structures.html#16014" class="Field">∨-complementʳ</a> <a id="16036" class="Symbol">:</a> <a id="16038" href="Algebra.Definitions.html#1801" class="Function">RightInverse</a> <a id="16051" href="Algebra.Structures.html#15919" class="Bound">⊤</a> <a id="16053" href="Algebra.Structures.html#15907" class="Bound">¬</a> <a id="16055" href="Algebra.Structures.html#15893" class="Bound">∨</a>
|
|||
|
<a id="IsBooleanAlgebra.∧-complementʳ"></a><a id="16061" href="Algebra.Structures.html#16061" class="Field">∧-complementʳ</a> <a id="16083" class="Symbol">:</a> <a id="16085" href="Algebra.Definitions.html#1801" class="Function">RightInverse</a> <a id="16098" href="Algebra.Structures.html#15921" class="Bound">⊥</a> <a id="16100" href="Algebra.Structures.html#15907" class="Bound">¬</a> <a id="16102" href="Algebra.Structures.html#15895" class="Bound">∧</a>
|
|||
|
<a id="IsBooleanAlgebra.¬-cong"></a><a id="16108" href="Algebra.Structures.html#16108" class="Field">¬-cong</a> <a id="16130" class="Symbol">:</a> <a id="16132" href="Algebra.Definitions.html#806" class="Function">Congruent₁</a> <a id="16143" href="Algebra.Structures.html#15907" class="Bound">¬</a>
|
|||
|
|
|||
|
<a id="16148" class="Keyword">open</a> <a id="16153" href="Algebra.Structures.html#6879" class="Module">IsDistributiveLattice</a> <a id="16175" href="Algebra.Structures.html#15960" class="Field">isDistributiveLattice</a> <a id="16197" class="Keyword">public</a>
|
|||
|
</pre></body></html>
|