bsc-leon-vatthauer/public/Relation.Binary.Lattice.html

426 lines
No EOL
145 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

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

<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Binary.Lattice</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">-- Order-theoretic lattices</a>
<a id="134" class="Comment">------------------------------------------------------------------------</a>
<a id="208" class="Symbol">{-#</a> <a id="212" class="Keyword">OPTIONS</a> <a id="220" class="Pragma">--cubical-compatible</a> <a id="241" class="Pragma">--safe</a> <a id="248" class="Symbol">#-}</a>
<a id="253" class="Keyword">module</a> <a id="260" href="Relation.Binary.Lattice.html" class="Module">Relation.Binary.Lattice</a> <a id="284" class="Keyword">where</a>
<a id="291" class="Keyword">open</a> <a id="296" class="Keyword">import</a> <a id="303" href="Algebra.Core.html" class="Module">Algebra.Core</a>
<a id="316" class="Keyword">open</a> <a id="321" class="Keyword">import</a> <a id="328" href="Algebra.Definitions.html" class="Module">Algebra.Definitions</a>
<a id="348" class="Keyword">open</a> <a id="353" class="Keyword">import</a> <a id="360" href="Data.Product.html" class="Module">Data.Product</a> <a id="373" class="Keyword">using</a> <a id="379" class="Symbol">(</a><a id="380" href="Data.Product.html#1176" class="Function Operator">_×_</a><a id="383" class="Symbol">;</a> <a id="385" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">_,_</a><a id="388" class="Symbol">)</a>
<a id="390" class="Keyword">open</a> <a id="395" class="Keyword">import</a> <a id="402" href="Function.Base.html" class="Module">Function.Base</a> <a id="416" class="Keyword">using</a> <a id="422" class="Symbol">(</a><a id="423" href="Function.Base.html#1563" class="Function">flip</a><a id="427" class="Symbol">)</a>
<a id="429" class="Keyword">open</a> <a id="434" class="Keyword">import</a> <a id="441" href="Level.html" class="Module">Level</a> <a id="447" class="Keyword">using</a> <a id="453" class="Symbol">(</a><a id="454" href="Agda.Primitive.html#774" class="Primitive">suc</a><a id="457" class="Symbol">;</a> <a id="459" href="Agda.Primitive.html#804" class="Primitive Operator">_⊔_</a><a id="462" class="Symbol">)</a>
<a id="464" class="Keyword">open</a> <a id="469" class="Keyword">import</a> <a id="476" href="Relation.Binary.html" class="Module">Relation.Binary</a>
<a id="493" class="Comment">------------------------------------------------------------------------</a>
<a id="566" class="Comment">-- Relationships between orders and operators</a>
<a id="613" class="Keyword">open</a> <a id="618" class="Keyword">import</a> <a id="625" href="Relation.Binary.html" class="Module">Relation.Binary</a> <a id="641" class="Keyword">public</a> <a id="648" class="Keyword">using</a> <a id="654" class="Symbol">(</a><a id="655" href="Relation.Binary.Definitions.html#3197" class="Function">Maximum</a><a id="662" class="Symbol">;</a> <a id="664" href="Relation.Binary.Definitions.html#3346" class="Function">Minimum</a><a id="671" class="Symbol">)</a>
<a id="Supremum"></a><a id="674" href="Relation.Binary.Lattice.html#674" class="Function">Supremum</a> <a id="683" class="Symbol">:</a> <a id="685" class="Symbol"></a> <a id="687" class="Symbol">{</a><a id="688" href="Relation.Binary.Lattice.html#688" class="Bound">a</a> <a id="690" href="Relation.Binary.Lattice.html#690" class="Bound"></a><a id="691" class="Symbol">}</a> <a id="693" class="Symbol">{</a><a id="694" href="Relation.Binary.Lattice.html#694" class="Bound">A</a> <a id="696" class="Symbol">:</a> <a id="698" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="702" href="Relation.Binary.Lattice.html#688" class="Bound">a</a><a id="703" class="Symbol">}</a> <a id="705" class="Symbol"></a> <a id="707" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="711" href="Relation.Binary.Lattice.html#694" class="Bound">A</a> <a id="713" href="Relation.Binary.Lattice.html#690" class="Bound"></a> <a id="715" class="Symbol"></a> <a id="717" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="721" href="Relation.Binary.Lattice.html#694" class="Bound">A</a> <a id="723" class="Symbol"></a> <a id="725" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="729" class="Symbol">_</a>
<a id="731" href="Relation.Binary.Lattice.html#674" class="Function">Supremum</a> <a id="740" href="Relation.Binary.Lattice.html#740" class="Bound Operator">_≤_</a> <a id="744" href="Relation.Binary.Lattice.html#744" class="Bound Operator">__</a> <a id="748" class="Symbol">=</a>
<a id="752" class="Symbol"></a> <a id="754" href="Relation.Binary.Lattice.html#754" class="Bound">x</a> <a id="756" href="Relation.Binary.Lattice.html#756" class="Bound">y</a> <a id="758" class="Symbol"></a> <a id="760" href="Relation.Binary.Lattice.html#754" class="Bound">x</a> <a id="762" href="Relation.Binary.Lattice.html#740" class="Bound Operator"></a> <a id="764" class="Symbol">(</a><a id="765" href="Relation.Binary.Lattice.html#754" class="Bound">x</a> <a id="767" href="Relation.Binary.Lattice.html#744" class="Bound Operator"></a> <a id="769" href="Relation.Binary.Lattice.html#756" class="Bound">y</a><a id="770" class="Symbol">)</a> <a id="772" href="Data.Product.html#1176" class="Function Operator">×</a> <a id="774" href="Relation.Binary.Lattice.html#756" class="Bound">y</a> <a id="776" href="Relation.Binary.Lattice.html#740" class="Bound Operator"></a> <a id="778" class="Symbol">(</a><a id="779" href="Relation.Binary.Lattice.html#754" class="Bound">x</a> <a id="781" href="Relation.Binary.Lattice.html#744" class="Bound Operator"></a> <a id="783" href="Relation.Binary.Lattice.html#756" class="Bound">y</a><a id="784" class="Symbol">)</a> <a id="786" href="Data.Product.html#1176" class="Function Operator">×</a> <a id="788" class="Symbol"></a> <a id="790" href="Relation.Binary.Lattice.html#790" class="Bound">z</a> <a id="792" class="Symbol"></a> <a id="794" href="Relation.Binary.Lattice.html#754" class="Bound">x</a> <a id="796" href="Relation.Binary.Lattice.html#740" class="Bound Operator"></a> <a id="798" href="Relation.Binary.Lattice.html#790" class="Bound">z</a> <a id="800" class="Symbol"></a> <a id="802" href="Relation.Binary.Lattice.html#756" class="Bound">y</a> <a id="804" href="Relation.Binary.Lattice.html#740" class="Bound Operator"></a> <a id="806" href="Relation.Binary.Lattice.html#790" class="Bound">z</a> <a id="808" class="Symbol"></a> <a id="810" class="Symbol">(</a><a id="811" href="Relation.Binary.Lattice.html#754" class="Bound">x</a> <a id="813" href="Relation.Binary.Lattice.html#744" class="Bound Operator"></a> <a id="815" href="Relation.Binary.Lattice.html#756" class="Bound">y</a><a id="816" class="Symbol">)</a> <a id="818" href="Relation.Binary.Lattice.html#740" class="Bound Operator"></a> <a id="820" href="Relation.Binary.Lattice.html#790" class="Bound">z</a>
<a id="Infimum"></a><a id="823" href="Relation.Binary.Lattice.html#823" class="Function">Infimum</a> <a id="831" class="Symbol">:</a> <a id="833" class="Symbol"></a> <a id="835" class="Symbol">{</a><a id="836" href="Relation.Binary.Lattice.html#836" class="Bound">a</a> <a id="838" href="Relation.Binary.Lattice.html#838" class="Bound"></a><a id="839" class="Symbol">}</a> <a id="841" class="Symbol">{</a><a id="842" href="Relation.Binary.Lattice.html#842" class="Bound">A</a> <a id="844" class="Symbol">:</a> <a id="846" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="850" href="Relation.Binary.Lattice.html#836" class="Bound">a</a><a id="851" class="Symbol">}</a> <a id="853" class="Symbol"></a> <a id="855" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="859" href="Relation.Binary.Lattice.html#842" class="Bound">A</a> <a id="861" href="Relation.Binary.Lattice.html#838" class="Bound"></a> <a id="863" class="Symbol"></a> <a id="865" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="869" href="Relation.Binary.Lattice.html#842" class="Bound">A</a> <a id="871" class="Symbol"></a> <a id="873" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="877" class="Symbol">_</a>
<a id="879" href="Relation.Binary.Lattice.html#823" class="Function">Infimum</a> <a id="887" href="Relation.Binary.Lattice.html#887" class="Bound Operator">_≤_</a> <a id="891" class="Symbol">=</a> <a id="893" href="Relation.Binary.Lattice.html#674" class="Function">Supremum</a> <a id="902" class="Symbol">(</a><a id="903" href="Function.Base.html#1563" class="Function">flip</a> <a id="908" href="Relation.Binary.Lattice.html#887" class="Bound Operator">_≤_</a><a id="911" class="Symbol">)</a>
<a id="Exponential"></a><a id="914" href="Relation.Binary.Lattice.html#914" class="Function">Exponential</a> <a id="926" class="Symbol">:</a> <a id="928" class="Symbol"></a> <a id="930" class="Symbol">{</a><a id="931" href="Relation.Binary.Lattice.html#931" class="Bound">a</a> <a id="933" href="Relation.Binary.Lattice.html#933" class="Bound"></a><a id="934" class="Symbol">}</a> <a id="936" class="Symbol">{</a><a id="937" href="Relation.Binary.Lattice.html#937" class="Bound">A</a> <a id="939" class="Symbol">:</a> <a id="941" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="945" href="Relation.Binary.Lattice.html#931" class="Bound">a</a><a id="946" class="Symbol">}</a> <a id="948" class="Symbol"></a> <a id="950" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="954" href="Relation.Binary.Lattice.html#937" class="Bound">A</a> <a id="956" href="Relation.Binary.Lattice.html#933" class="Bound"></a> <a id="958" class="Symbol"></a> <a id="960" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="964" href="Relation.Binary.Lattice.html#937" class="Bound">A</a> <a id="966" class="Symbol"></a> <a id="968" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="972" href="Relation.Binary.Lattice.html#937" class="Bound">A</a> <a id="974" class="Symbol"></a> <a id="976" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="980" class="Symbol">_</a>
<a id="982" href="Relation.Binary.Lattice.html#914" class="Function">Exponential</a> <a id="994" href="Relation.Binary.Lattice.html#994" class="Bound Operator">_≤_</a> <a id="998" href="Relation.Binary.Lattice.html#998" class="Bound Operator">_∧_</a> <a id="1002" href="Relation.Binary.Lattice.html#1002" class="Bound Operator">_⇨_</a> <a id="1006" class="Symbol">=</a>
<a id="1010" class="Symbol"></a> <a id="1012" href="Relation.Binary.Lattice.html#1012" class="Bound">w</a> <a id="1014" href="Relation.Binary.Lattice.html#1014" class="Bound">x</a> <a id="1016" href="Relation.Binary.Lattice.html#1016" class="Bound">y</a> <a id="1018" class="Symbol"></a> <a id="1020" class="Symbol">((</a><a id="1022" href="Relation.Binary.Lattice.html#1012" class="Bound">w</a> <a id="1024" href="Relation.Binary.Lattice.html#998" class="Bound Operator"></a> <a id="1026" href="Relation.Binary.Lattice.html#1014" class="Bound">x</a><a id="1027" class="Symbol">)</a> <a id="1029" href="Relation.Binary.Lattice.html#994" class="Bound Operator"></a> <a id="1031" href="Relation.Binary.Lattice.html#1016" class="Bound">y</a> <a id="1033" class="Symbol"></a> <a id="1035" href="Relation.Binary.Lattice.html#1012" class="Bound">w</a> <a id="1037" href="Relation.Binary.Lattice.html#994" class="Bound Operator"></a> <a id="1039" class="Symbol">(</a><a id="1040" href="Relation.Binary.Lattice.html#1014" class="Bound">x</a> <a id="1042" href="Relation.Binary.Lattice.html#1002" class="Bound Operator"></a> <a id="1044" href="Relation.Binary.Lattice.html#1016" class="Bound">y</a><a id="1045" class="Symbol">))</a> <a id="1048" href="Data.Product.html#1176" class="Function Operator">×</a> <a id="1050" class="Symbol">(</a><a id="1051" href="Relation.Binary.Lattice.html#1012" class="Bound">w</a> <a id="1053" href="Relation.Binary.Lattice.html#994" class="Bound Operator"></a> <a id="1055" class="Symbol">(</a><a id="1056" href="Relation.Binary.Lattice.html#1014" class="Bound">x</a> <a id="1058" href="Relation.Binary.Lattice.html#1002" class="Bound Operator"></a> <a id="1060" href="Relation.Binary.Lattice.html#1016" class="Bound">y</a><a id="1061" class="Symbol">)</a> <a id="1063" class="Symbol"></a> <a id="1065" class="Symbol">(</a><a id="1066" href="Relation.Binary.Lattice.html#1012" class="Bound">w</a> <a id="1068" href="Relation.Binary.Lattice.html#998" class="Bound Operator"></a> <a id="1070" href="Relation.Binary.Lattice.html#1014" class="Bound">x</a><a id="1071" class="Symbol">)</a> <a id="1073" href="Relation.Binary.Lattice.html#994" class="Bound Operator"></a> <a id="1075" href="Relation.Binary.Lattice.html#1016" class="Bound">y</a><a id="1076" class="Symbol">)</a>
<a id="1079" class="Comment">------------------------------------------------------------------------</a>
<a id="1152" class="Comment">-- Join semilattices</a>
<a id="1174" class="Keyword">record</a> <a id="IsJoinSemilattice"></a><a id="1181" href="Relation.Binary.Lattice.html#1181" class="Record">IsJoinSemilattice</a> <a id="1199" class="Symbol">{</a><a id="1200" href="Relation.Binary.Lattice.html#1200" class="Bound">a</a> <a id="1202" href="Relation.Binary.Lattice.html#1202" class="Bound">ℓ₁</a> <a id="1205" href="Relation.Binary.Lattice.html#1205" class="Bound">ℓ₂</a><a id="1207" class="Symbol">}</a> <a id="1209" class="Symbol">{</a><a id="1210" href="Relation.Binary.Lattice.html#1210" class="Bound">A</a> <a id="1212" class="Symbol">:</a> <a id="1214" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1218" href="Relation.Binary.Lattice.html#1200" class="Bound">a</a><a id="1219" class="Symbol">}</a>
<a id="1246" class="Symbol">(</a><a id="1247" href="Relation.Binary.Lattice.html#1247" class="Bound Operator">_≈_</a> <a id="1251" class="Symbol">:</a> <a id="1253" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="1257" href="Relation.Binary.Lattice.html#1210" class="Bound">A</a> <a id="1259" href="Relation.Binary.Lattice.html#1202" class="Bound">ℓ₁</a><a id="1261" class="Symbol">)</a> <a id="1263" class="Comment">-- The underlying equality.</a>
<a id="1316" class="Symbol">(</a><a id="1317" href="Relation.Binary.Lattice.html#1317" class="Bound Operator">_≤_</a> <a id="1321" class="Symbol">:</a> <a id="1323" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="1327" href="Relation.Binary.Lattice.html#1210" class="Bound">A</a> <a id="1329" href="Relation.Binary.Lattice.html#1205" class="Bound">ℓ₂</a><a id="1331" class="Symbol">)</a> <a id="1333" class="Comment">-- The partial order.</a>
<a id="1380" class="Symbol">(</a><a id="1381" href="Relation.Binary.Lattice.html#1381" class="Bound Operator">__</a> <a id="1385" class="Symbol">:</a> <a id="1387" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="1391" href="Relation.Binary.Lattice.html#1210" class="Bound">A</a><a id="1392" class="Symbol">)</a> <a id="1397" class="Comment">-- The join operation.</a>
<a id="1445" class="Symbol">:</a> <a id="1447" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1451" class="Symbol">(</a><a id="1452" href="Relation.Binary.Lattice.html#1200" class="Bound">a</a> <a id="1454" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="1456" href="Relation.Binary.Lattice.html#1202" class="Bound">ℓ₁</a> <a id="1459" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="1461" href="Relation.Binary.Lattice.html#1205" class="Bound">ℓ₂</a><a id="1463" class="Symbol">)</a> <a id="1465" class="Keyword">where</a>
<a id="1473" class="Keyword">field</a>
<a id="IsJoinSemilattice.isPartialOrder"></a><a id="1483" href="Relation.Binary.Lattice.html#1483" class="Field">isPartialOrder</a> <a id="1498" class="Symbol">:</a> <a id="1500" href="Relation.Binary.Structures.html#3183" class="Record">IsPartialOrder</a> <a id="1515" href="Relation.Binary.Lattice.html#1247" class="Bound Operator">_≈_</a> <a id="1519" href="Relation.Binary.Lattice.html#1317" class="Bound Operator">_≤_</a>
<a id="IsJoinSemilattice.supremum"></a><a id="1527" href="Relation.Binary.Lattice.html#1527" class="Field">supremum</a> <a id="1542" class="Symbol">:</a> <a id="1544" href="Relation.Binary.Lattice.html#674" class="Function">Supremum</a> <a id="1553" href="Relation.Binary.Lattice.html#1317" class="Bound Operator">_≤_</a> <a id="1557" href="Relation.Binary.Lattice.html#1381" class="Bound Operator">__</a>
<a id="IsJoinSemilattice.x≤xy"></a><a id="1564" href="Relation.Binary.Lattice.html#1564" class="Function">x≤xy</a> <a id="1570" class="Symbol">:</a> <a id="1572" class="Symbol"></a> <a id="1574" href="Relation.Binary.Lattice.html#1574" class="Bound">x</a> <a id="1576" href="Relation.Binary.Lattice.html#1576" class="Bound">y</a> <a id="1578" class="Symbol"></a> <a id="1580" href="Relation.Binary.Lattice.html#1574" class="Bound">x</a> <a id="1582" href="Relation.Binary.Lattice.html#1317" class="Bound Operator"></a> <a id="1584" class="Symbol">(</a><a id="1585" href="Relation.Binary.Lattice.html#1574" class="Bound">x</a> <a id="1587" href="Relation.Binary.Lattice.html#1381" class="Bound Operator"></a> <a id="1589" href="Relation.Binary.Lattice.html#1576" class="Bound">y</a><a id="1590" class="Symbol">)</a>
<a id="1594" href="Relation.Binary.Lattice.html#1564" class="Function">x≤xy</a> <a id="1600" href="Relation.Binary.Lattice.html#1600" class="Bound">x</a> <a id="1602" href="Relation.Binary.Lattice.html#1602" class="Bound">y</a> <a id="1604" class="Symbol">=</a> <a id="1606" class="Keyword">let</a> <a id="1610" href="Relation.Binary.Lattice.html#1610" class="Bound">pf</a> <a id="1613" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1615" class="Symbol">_</a> <a id="1617" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1619" class="Symbol">_</a> <a id="1621" class="Symbol">=</a> <a id="1623" href="Relation.Binary.Lattice.html#1527" class="Field">supremum</a> <a id="1632" href="Relation.Binary.Lattice.html#1600" class="Bound">x</a> <a id="1634" href="Relation.Binary.Lattice.html#1602" class="Bound">y</a> <a id="1636" class="Keyword">in</a> <a id="1639" href="Relation.Binary.Lattice.html#1610" class="Bound">pf</a>
<a id="IsJoinSemilattice.y≤xy"></a><a id="1645" href="Relation.Binary.Lattice.html#1645" class="Function">y≤xy</a> <a id="1651" class="Symbol">:</a> <a id="1653" class="Symbol"></a> <a id="1655" href="Relation.Binary.Lattice.html#1655" class="Bound">x</a> <a id="1657" href="Relation.Binary.Lattice.html#1657" class="Bound">y</a> <a id="1659" class="Symbol"></a> <a id="1661" href="Relation.Binary.Lattice.html#1657" class="Bound">y</a> <a id="1663" href="Relation.Binary.Lattice.html#1317" class="Bound Operator"></a> <a id="1665" class="Symbol">(</a><a id="1666" href="Relation.Binary.Lattice.html#1655" class="Bound">x</a> <a id="1668" href="Relation.Binary.Lattice.html#1381" class="Bound Operator"></a> <a id="1670" href="Relation.Binary.Lattice.html#1657" class="Bound">y</a><a id="1671" class="Symbol">)</a>
<a id="1675" href="Relation.Binary.Lattice.html#1645" class="Function">y≤xy</a> <a id="1681" href="Relation.Binary.Lattice.html#1681" class="Bound">x</a> <a id="1683" href="Relation.Binary.Lattice.html#1683" class="Bound">y</a> <a id="1685" class="Symbol">=</a> <a id="1687" class="Keyword">let</a> <a id="1691" class="Symbol">_</a> <a id="1693" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1695" href="Relation.Binary.Lattice.html#1695" class="Bound">pf</a> <a id="1698" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1700" class="Symbol">_</a> <a id="1702" class="Symbol">=</a> <a id="1704" href="Relation.Binary.Lattice.html#1527" class="Field">supremum</a> <a id="1713" href="Relation.Binary.Lattice.html#1681" class="Bound">x</a> <a id="1715" href="Relation.Binary.Lattice.html#1683" class="Bound">y</a> <a id="1717" class="Keyword">in</a> <a id="1720" href="Relation.Binary.Lattice.html#1695" class="Bound">pf</a>
<a id="IsJoinSemilattice.-least"></a><a id="1726" href="Relation.Binary.Lattice.html#1726" class="Function">-least</a> <a id="1734" class="Symbol">:</a> <a id="1736" class="Symbol"></a> <a id="1738" class="Symbol">{</a><a id="1739" href="Relation.Binary.Lattice.html#1739" class="Bound">x</a> <a id="1741" href="Relation.Binary.Lattice.html#1741" class="Bound">y</a> <a id="1743" href="Relation.Binary.Lattice.html#1743" class="Bound">z</a><a id="1744" class="Symbol">}</a> <a id="1746" class="Symbol"></a> <a id="1748" href="Relation.Binary.Lattice.html#1739" class="Bound">x</a> <a id="1750" href="Relation.Binary.Lattice.html#1317" class="Bound Operator"></a> <a id="1752" href="Relation.Binary.Lattice.html#1743" class="Bound">z</a> <a id="1754" class="Symbol"></a> <a id="1756" href="Relation.Binary.Lattice.html#1741" class="Bound">y</a> <a id="1758" href="Relation.Binary.Lattice.html#1317" class="Bound Operator"></a> <a id="1760" href="Relation.Binary.Lattice.html#1743" class="Bound">z</a> <a id="1762" class="Symbol"></a> <a id="1764" class="Symbol">(</a><a id="1765" href="Relation.Binary.Lattice.html#1739" class="Bound">x</a> <a id="1767" href="Relation.Binary.Lattice.html#1381" class="Bound Operator"></a> <a id="1769" href="Relation.Binary.Lattice.html#1741" class="Bound">y</a><a id="1770" class="Symbol">)</a> <a id="1772" href="Relation.Binary.Lattice.html#1317" class="Bound Operator"></a> <a id="1774" href="Relation.Binary.Lattice.html#1743" class="Bound">z</a>
<a id="1778" href="Relation.Binary.Lattice.html#1726" class="Function">-least</a> <a id="1786" class="Symbol">{</a><a id="1787" href="Relation.Binary.Lattice.html#1787" class="Bound">x</a><a id="1788" class="Symbol">}</a> <a id="1790" class="Symbol">{</a><a id="1791" href="Relation.Binary.Lattice.html#1791" class="Bound">y</a><a id="1792" class="Symbol">}</a> <a id="1794" class="Symbol">{</a><a id="1795" href="Relation.Binary.Lattice.html#1795" class="Bound">z</a><a id="1796" class="Symbol">}</a> <a id="1798" class="Symbol">=</a> <a id="1800" class="Keyword">let</a> <a id="1804" class="Symbol">_</a> <a id="1806" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1808" class="Symbol">_</a> <a id="1810" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1812" href="Relation.Binary.Lattice.html#1812" class="Bound">pf</a> <a id="1815" class="Symbol">=</a> <a id="1817" href="Relation.Binary.Lattice.html#1527" class="Field">supremum</a> <a id="1826" href="Relation.Binary.Lattice.html#1787" class="Bound">x</a> <a id="1828" href="Relation.Binary.Lattice.html#1791" class="Bound">y</a> <a id="1830" class="Keyword">in</a> <a id="1833" href="Relation.Binary.Lattice.html#1812" class="Bound">pf</a> <a id="1836" href="Relation.Binary.Lattice.html#1795" class="Bound">z</a>
<a id="1841" class="Keyword">open</a> <a id="1846" href="Relation.Binary.Structures.html#3183" class="Module">IsPartialOrder</a> <a id="1861" href="Relation.Binary.Lattice.html#1483" class="Field">isPartialOrder</a> <a id="1876" class="Keyword">public</a>
<a id="1884" class="Keyword">record</a> <a id="JoinSemilattice"></a><a id="1891" href="Relation.Binary.Lattice.html#1891" class="Record">JoinSemilattice</a> <a id="1907" href="Relation.Binary.Lattice.html#1907" class="Bound">c</a> <a id="1909" href="Relation.Binary.Lattice.html#1909" class="Bound">ℓ₁</a> <a id="1912" href="Relation.Binary.Lattice.html#1912" class="Bound">ℓ₂</a> <a id="1915" class="Symbol">:</a> <a id="1917" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1921" class="Symbol">(</a><a id="1922" href="Agda.Primitive.html#774" class="Primitive">suc</a> <a id="1926" class="Symbol">(</a><a id="1927" href="Relation.Binary.Lattice.html#1907" class="Bound">c</a> <a id="1929" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="1931" href="Relation.Binary.Lattice.html#1909" class="Bound">ℓ₁</a> <a id="1934" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="1936" href="Relation.Binary.Lattice.html#1912" class="Bound">ℓ₂</a><a id="1938" class="Symbol">))</a> <a id="1941" class="Keyword">where</a>
<a id="1949" class="Keyword">infix</a> <a id="1956" class="Number">4</a> <a id="1958" href="Relation.Binary.Lattice.html#2023" class="Field Operator">_≈_</a> <a id="1962" href="Relation.Binary.Lattice.html#2091" class="Field Operator">_≤_</a>
<a id="1968" class="Keyword">infixr</a> <a id="1975" class="Number">6</a> <a id="1977" href="Relation.Binary.Lattice.html#2153" class="Field Operator">__</a>
<a id="1983" class="Keyword">field</a>
<a id="JoinSemilattice.Carrier"></a><a id="1993" href="Relation.Binary.Lattice.html#1993" class="Field">Carrier</a> <a id="2011" class="Symbol">:</a> <a id="2013" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2017" href="Relation.Binary.Lattice.html#1907" class="Bound">c</a>
<a id="JoinSemilattice._≈_"></a><a id="2023" href="Relation.Binary.Lattice.html#2023" class="Field Operator">_≈_</a> <a id="2041" class="Symbol">:</a> <a id="2043" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="2047" href="Relation.Binary.Lattice.html#1993" class="Field">Carrier</a> <a id="2055" href="Relation.Binary.Lattice.html#1909" class="Bound">ℓ₁</a> <a id="2059" class="Comment">-- The underlying equality.</a>
<a id="JoinSemilattice._≤_"></a><a id="2091" href="Relation.Binary.Lattice.html#2091" class="Field Operator">_≤_</a> <a id="2109" class="Symbol">:</a> <a id="2111" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="2115" href="Relation.Binary.Lattice.html#1993" class="Field">Carrier</a> <a id="2123" href="Relation.Binary.Lattice.html#1912" class="Bound">ℓ₂</a> <a id="2127" class="Comment">-- The partial order.</a>
<a id="JoinSemilattice.__"></a><a id="2153" href="Relation.Binary.Lattice.html#2153" class="Field Operator">__</a> <a id="2171" class="Symbol">:</a> <a id="2173" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="2177" href="Relation.Binary.Lattice.html#1993" class="Field">Carrier</a> <a id="2189" class="Comment">-- The join operation.</a>
<a id="JoinSemilattice.isJoinSemilattice"></a><a id="2216" href="Relation.Binary.Lattice.html#2216" class="Field">isJoinSemilattice</a> <a id="2234" class="Symbol">:</a> <a id="2236" href="Relation.Binary.Lattice.html#1181" class="Record">IsJoinSemilattice</a> <a id="2254" href="Relation.Binary.Lattice.html#2023" class="Field Operator">_≈_</a> <a id="2258" href="Relation.Binary.Lattice.html#2091" class="Field Operator">_≤_</a> <a id="2262" href="Relation.Binary.Lattice.html#2153" class="Field Operator">__</a>
<a id="2269" class="Keyword">open</a> <a id="2274" href="Relation.Binary.Lattice.html#1181" class="Module">IsJoinSemilattice</a> <a id="2292" href="Relation.Binary.Lattice.html#2216" class="Field">isJoinSemilattice</a> <a id="2310" class="Keyword">public</a>
<a id="JoinSemilattice.poset"></a><a id="2320" href="Relation.Binary.Lattice.html#2320" class="Function">poset</a> <a id="2326" class="Symbol">:</a> <a id="2328" href="Relation.Binary.Bundles.html#3037" class="Record">Poset</a> <a id="2334" href="Relation.Binary.Lattice.html#1907" class="Bound">c</a> <a id="2336" href="Relation.Binary.Lattice.html#1909" class="Bound">ℓ₁</a> <a id="2339" href="Relation.Binary.Lattice.html#1912" class="Bound">ℓ₂</a>
<a id="2344" href="Relation.Binary.Lattice.html#2320" class="Function">poset</a> <a id="2350" class="Symbol">=</a> <a id="2352" class="Keyword">record</a> <a id="2359" class="Symbol">{</a> <a id="2361" href="Relation.Binary.Bundles.html#3212" class="Field">isPartialOrder</a> <a id="2376" class="Symbol">=</a> <a id="2378" href="Relation.Binary.Lattice.html#1483" class="Function">isPartialOrder</a> <a id="2393" class="Symbol">}</a>
<a id="2398" class="Keyword">open</a> <a id="2403" href="Relation.Binary.Bundles.html#3037" class="Module">Poset</a> <a id="2409" href="Relation.Binary.Lattice.html#2320" class="Function">poset</a> <a id="2415" class="Keyword">public</a> <a id="2422" class="Keyword">using</a> <a id="2428" class="Symbol">(</a><a id="2429" href="Relation.Binary.Bundles.html#3323" class="Function">preorder</a><a id="2437" class="Symbol">)</a>
<a id="2440" class="Keyword">record</a> <a id="IsBoundedJoinSemilattice"></a><a id="2447" href="Relation.Binary.Lattice.html#2447" class="Record">IsBoundedJoinSemilattice</a> <a id="2472" class="Symbol">{</a><a id="2473" href="Relation.Binary.Lattice.html#2473" class="Bound">a</a> <a id="2475" href="Relation.Binary.Lattice.html#2475" class="Bound">ℓ₁</a> <a id="2478" href="Relation.Binary.Lattice.html#2478" class="Bound">ℓ₂</a><a id="2480" class="Symbol">}</a> <a id="2482" class="Symbol">{</a><a id="2483" href="Relation.Binary.Lattice.html#2483" class="Bound">A</a> <a id="2485" class="Symbol">:</a> <a id="2487" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2491" href="Relation.Binary.Lattice.html#2473" class="Bound">a</a><a id="2492" class="Symbol">}</a>
<a id="2526" class="Symbol">(</a><a id="2527" href="Relation.Binary.Lattice.html#2527" class="Bound Operator">_≈_</a> <a id="2531" class="Symbol">:</a> <a id="2533" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="2537" href="Relation.Binary.Lattice.html#2483" class="Bound">A</a> <a id="2539" href="Relation.Binary.Lattice.html#2475" class="Bound">ℓ₁</a><a id="2541" class="Symbol">)</a> <a id="2543" class="Comment">-- The underlying equality.</a>
<a id="2603" class="Symbol">(</a><a id="2604" href="Relation.Binary.Lattice.html#2604" class="Bound Operator">_≤_</a> <a id="2608" class="Symbol">:</a> <a id="2610" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="2614" href="Relation.Binary.Lattice.html#2483" class="Bound">A</a> <a id="2616" href="Relation.Binary.Lattice.html#2478" class="Bound">ℓ₂</a><a id="2618" class="Symbol">)</a> <a id="2620" class="Comment">-- The partial order.</a>
<a id="2674" class="Symbol">(</a><a id="2675" href="Relation.Binary.Lattice.html#2675" class="Bound Operator">__</a> <a id="2679" class="Symbol">:</a> <a id="2681" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="2685" href="Relation.Binary.Lattice.html#2483" class="Bound">A</a><a id="2686" class="Symbol">)</a> <a id="2691" class="Comment">-- The join operation.</a>
<a id="2746" class="Symbol">(</a><a id="2747" href="Relation.Binary.Lattice.html#2747" class="Bound"></a> <a id="2751" class="Symbol">:</a> <a id="2753" href="Relation.Binary.Lattice.html#2483" class="Bound">A</a><a id="2754" class="Symbol">)</a> <a id="2763" class="Comment">-- The minimum.</a>
<a id="2811" class="Symbol">:</a> <a id="2813" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2817" class="Symbol">(</a><a id="2818" href="Relation.Binary.Lattice.html#2473" class="Bound">a</a> <a id="2820" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="2822" href="Relation.Binary.Lattice.html#2475" class="Bound">ℓ₁</a> <a id="2825" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="2827" href="Relation.Binary.Lattice.html#2478" class="Bound">ℓ₂</a><a id="2829" class="Symbol">)</a> <a id="2831" class="Keyword">where</a>
<a id="2839" class="Keyword">field</a>
<a id="IsBoundedJoinSemilattice.isJoinSemilattice"></a><a id="2849" href="Relation.Binary.Lattice.html#2849" class="Field">isJoinSemilattice</a> <a id="2867" class="Symbol">:</a> <a id="2869" href="Relation.Binary.Lattice.html#1181" class="Record">IsJoinSemilattice</a> <a id="2887" href="Relation.Binary.Lattice.html#2527" class="Bound Operator">_≈_</a> <a id="2891" href="Relation.Binary.Lattice.html#2604" class="Bound Operator">_≤_</a> <a id="2895" href="Relation.Binary.Lattice.html#2675" class="Bound Operator">__</a>
<a id="IsBoundedJoinSemilattice.minimum"></a><a id="2903" href="Relation.Binary.Lattice.html#2903" class="Field">minimum</a> <a id="2921" class="Symbol">:</a> <a id="2923" href="Relation.Binary.Definitions.html#3346" class="Function">Minimum</a> <a id="2931" href="Relation.Binary.Lattice.html#2604" class="Bound Operator">_≤_</a> <a id="2935" href="Relation.Binary.Lattice.html#2747" class="Bound"></a>
<a id="2940" class="Keyword">open</a> <a id="2945" href="Relation.Binary.Lattice.html#1181" class="Module">IsJoinSemilattice</a> <a id="2963" href="Relation.Binary.Lattice.html#2849" class="Field">isJoinSemilattice</a> <a id="2981" class="Keyword">public</a>
<a id="2989" class="Keyword">record</a> <a id="BoundedJoinSemilattice"></a><a id="2996" href="Relation.Binary.Lattice.html#2996" class="Record">BoundedJoinSemilattice</a> <a id="3019" href="Relation.Binary.Lattice.html#3019" class="Bound">c</a> <a id="3021" href="Relation.Binary.Lattice.html#3021" class="Bound">ℓ₁</a> <a id="3024" href="Relation.Binary.Lattice.html#3024" class="Bound">ℓ₂</a> <a id="3027" class="Symbol">:</a> <a id="3029" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3033" class="Symbol">(</a><a id="3034" href="Agda.Primitive.html#774" class="Primitive">suc</a> <a id="3038" class="Symbol">(</a><a id="3039" href="Relation.Binary.Lattice.html#3019" class="Bound">c</a> <a id="3041" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="3043" href="Relation.Binary.Lattice.html#3021" class="Bound">ℓ₁</a> <a id="3046" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="3048" href="Relation.Binary.Lattice.html#3024" class="Bound">ℓ₂</a><a id="3050" class="Symbol">))</a> <a id="3053" class="Keyword">where</a>
<a id="3061" class="Keyword">infix</a> <a id="3068" class="Number">4</a> <a id="3070" href="Relation.Binary.Lattice.html#3142" class="Field Operator">_≈_</a> <a id="3074" href="Relation.Binary.Lattice.html#3217" class="Field Operator">_≤_</a>
<a id="3080" class="Keyword">infixr</a> <a id="3087" class="Number">6</a> <a id="3089" href="Relation.Binary.Lattice.html#3286" class="Field Operator">__</a>
<a id="3095" class="Keyword">field</a>
<a id="BoundedJoinSemilattice.Carrier"></a><a id="3105" href="Relation.Binary.Lattice.html#3105" class="Field">Carrier</a> <a id="3130" class="Symbol">:</a> <a id="3132" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3136" href="Relation.Binary.Lattice.html#3019" class="Bound">c</a>
<a id="BoundedJoinSemilattice._≈_"></a><a id="3142" href="Relation.Binary.Lattice.html#3142" class="Field Operator">_≈_</a> <a id="3167" class="Symbol">:</a> <a id="3169" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="3173" href="Relation.Binary.Lattice.html#3105" class="Field">Carrier</a> <a id="3181" href="Relation.Binary.Lattice.html#3021" class="Bound">ℓ₁</a> <a id="3185" class="Comment">-- The underlying equality.</a>
<a id="BoundedJoinSemilattice._≤_"></a><a id="3217" href="Relation.Binary.Lattice.html#3217" class="Field Operator">_≤_</a> <a id="3242" class="Symbol">:</a> <a id="3244" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="3248" href="Relation.Binary.Lattice.html#3105" class="Field">Carrier</a> <a id="3256" href="Relation.Binary.Lattice.html#3024" class="Bound">ℓ₂</a> <a id="3260" class="Comment">-- The partial order.</a>
<a id="BoundedJoinSemilattice.__"></a><a id="3286" href="Relation.Binary.Lattice.html#3286" class="Field Operator">__</a> <a id="3311" class="Symbol">:</a> <a id="3313" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="3317" href="Relation.Binary.Lattice.html#3105" class="Field">Carrier</a> <a id="3329" class="Comment">-- The join operation.</a>
<a id="BoundedJoinSemilattice.⊥"></a><a id="3356" href="Relation.Binary.Lattice.html#3356" class="Field"></a> <a id="3381" class="Symbol">:</a> <a id="3383" href="Relation.Binary.Lattice.html#3105" class="Field">Carrier</a> <a id="3399" class="Comment">-- The minimum.</a>
<a id="BoundedJoinSemilattice.isBoundedJoinSemilattice"></a><a id="3419" href="Relation.Binary.Lattice.html#3419" class="Field">isBoundedJoinSemilattice</a> <a id="3444" class="Symbol">:</a> <a id="3446" href="Relation.Binary.Lattice.html#2447" class="Record">IsBoundedJoinSemilattice</a> <a id="3471" href="Relation.Binary.Lattice.html#3142" class="Field Operator">_≈_</a> <a id="3475" href="Relation.Binary.Lattice.html#3217" class="Field Operator">_≤_</a> <a id="3479" href="Relation.Binary.Lattice.html#3286" class="Field Operator">__</a> <a id="3483" href="Relation.Binary.Lattice.html#3356" class="Field"></a>
<a id="3488" class="Keyword">open</a> <a id="3493" href="Relation.Binary.Lattice.html#2447" class="Module">IsBoundedJoinSemilattice</a> <a id="3518" href="Relation.Binary.Lattice.html#3419" class="Field">isBoundedJoinSemilattice</a> <a id="3543" class="Keyword">public</a>
<a id="BoundedJoinSemilattice.joinSemilattice"></a><a id="3553" href="Relation.Binary.Lattice.html#3553" class="Function">joinSemilattice</a> <a id="3569" class="Symbol">:</a> <a id="3571" href="Relation.Binary.Lattice.html#1891" class="Record">JoinSemilattice</a> <a id="3587" href="Relation.Binary.Lattice.html#3019" class="Bound">c</a> <a id="3589" href="Relation.Binary.Lattice.html#3021" class="Bound">ℓ₁</a> <a id="3592" href="Relation.Binary.Lattice.html#3024" class="Bound">ℓ₂</a>
<a id="3597" href="Relation.Binary.Lattice.html#3553" class="Function">joinSemilattice</a> <a id="3613" class="Symbol">=</a> <a id="3615" class="Keyword">record</a> <a id="3622" class="Symbol">{</a> <a id="3624" href="Relation.Binary.Lattice.html#2216" class="Field">isJoinSemilattice</a> <a id="3642" class="Symbol">=</a> <a id="3644" href="Relation.Binary.Lattice.html#2849" class="Function">isJoinSemilattice</a> <a id="3662" class="Symbol">}</a>
<a id="BoundedJoinSemilattice.joinSemiLattice"></a><a id="3667" href="Relation.Binary.Lattice.html#3667" class="Function">joinSemiLattice</a> <a id="3683" class="Symbol">=</a> <a id="3685" href="Relation.Binary.Lattice.html#3553" class="Function">joinSemilattice</a>
<a id="3703" class="Symbol">{-#</a> <a id="3707" class="Keyword">WARNING_ON_USAGE</a> <a id="3724" class="Pragma">joinSemiLattice</a>
<a id="3742" class="String">&quot;Warning: joinSemiLattice was deprecated in v0.17.
Please use joinSemilattice instead.&quot;</a>
<a id="3834" class="Symbol">#-}</a>
<a id="3841" class="Keyword">open</a> <a id="3846" href="Relation.Binary.Lattice.html#1891" class="Module">JoinSemilattice</a> <a id="3862" href="Relation.Binary.Lattice.html#3553" class="Function">joinSemilattice</a> <a id="3878" class="Keyword">public</a> <a id="3885" class="Keyword">using</a> <a id="3891" class="Symbol">(</a><a id="3892" href="Relation.Binary.Bundles.html#3323" class="Function">preorder</a><a id="3900" class="Symbol">;</a> <a id="3902" href="Relation.Binary.Lattice.html#2320" class="Function">poset</a><a id="3907" class="Symbol">)</a>
<a id="3910" class="Comment">------------------------------------------------------------------------</a>
<a id="3983" class="Comment">-- Meet semilattices</a>
<a id="4005" class="Keyword">record</a> <a id="IsMeetSemilattice"></a><a id="4012" href="Relation.Binary.Lattice.html#4012" class="Record">IsMeetSemilattice</a> <a id="4030" class="Symbol">{</a><a id="4031" href="Relation.Binary.Lattice.html#4031" class="Bound">a</a> <a id="4033" href="Relation.Binary.Lattice.html#4033" class="Bound">ℓ₁</a> <a id="4036" href="Relation.Binary.Lattice.html#4036" class="Bound">ℓ₂</a><a id="4038" class="Symbol">}</a> <a id="4040" class="Symbol">{</a><a id="4041" href="Relation.Binary.Lattice.html#4041" class="Bound">A</a> <a id="4043" class="Symbol">:</a> <a id="4045" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="4049" href="Relation.Binary.Lattice.html#4031" class="Bound">a</a><a id="4050" class="Symbol">}</a>
<a id="4077" class="Symbol">(</a><a id="4078" href="Relation.Binary.Lattice.html#4078" class="Bound Operator">_≈_</a> <a id="4082" class="Symbol">:</a> <a id="4084" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="4088" href="Relation.Binary.Lattice.html#4041" class="Bound">A</a> <a id="4090" href="Relation.Binary.Lattice.html#4033" class="Bound">ℓ₁</a><a id="4092" class="Symbol">)</a> <a id="4094" class="Comment">-- The underlying equality.</a>
<a id="4147" class="Symbol">(</a><a id="4148" href="Relation.Binary.Lattice.html#4148" class="Bound Operator">_≤_</a> <a id="4152" class="Symbol">:</a> <a id="4154" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="4158" href="Relation.Binary.Lattice.html#4041" class="Bound">A</a> <a id="4160" href="Relation.Binary.Lattice.html#4036" class="Bound">ℓ₂</a><a id="4162" class="Symbol">)</a> <a id="4164" class="Comment">-- The partial order.</a>
<a id="4211" class="Symbol">(</a><a id="4212" href="Relation.Binary.Lattice.html#4212" class="Bound Operator">_∧_</a> <a id="4216" class="Symbol">:</a> <a id="4218" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="4222" href="Relation.Binary.Lattice.html#4041" class="Bound">A</a><a id="4223" class="Symbol">)</a> <a id="4228" class="Comment">-- The meet operation.</a>
<a id="4276" class="Symbol">:</a> <a id="4278" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="4282" class="Symbol">(</a><a id="4283" href="Relation.Binary.Lattice.html#4031" class="Bound">a</a> <a id="4285" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="4287" href="Relation.Binary.Lattice.html#4033" class="Bound">ℓ₁</a> <a id="4290" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="4292" href="Relation.Binary.Lattice.html#4036" class="Bound">ℓ₂</a><a id="4294" class="Symbol">)</a> <a id="4296" class="Keyword">where</a>
<a id="4304" class="Keyword">field</a>
<a id="IsMeetSemilattice.isPartialOrder"></a><a id="4314" href="Relation.Binary.Lattice.html#4314" class="Field">isPartialOrder</a> <a id="4329" class="Symbol">:</a> <a id="4331" href="Relation.Binary.Structures.html#3183" class="Record">IsPartialOrder</a> <a id="4346" href="Relation.Binary.Lattice.html#4078" class="Bound Operator">_≈_</a> <a id="4350" href="Relation.Binary.Lattice.html#4148" class="Bound Operator">_≤_</a>
<a id="IsMeetSemilattice.infimum"></a><a id="4358" href="Relation.Binary.Lattice.html#4358" class="Field">infimum</a> <a id="4373" class="Symbol">:</a> <a id="4375" href="Relation.Binary.Lattice.html#823" class="Function">Infimum</a> <a id="4383" href="Relation.Binary.Lattice.html#4148" class="Bound Operator">_≤_</a> <a id="4387" href="Relation.Binary.Lattice.html#4212" class="Bound Operator">_∧_</a>
<a id="IsMeetSemilattice.x∧y≤x"></a><a id="4394" href="Relation.Binary.Lattice.html#4394" class="Function">x∧y≤x</a> <a id="4400" class="Symbol">:</a> <a id="4402" class="Symbol"></a> <a id="4404" href="Relation.Binary.Lattice.html#4404" class="Bound">x</a> <a id="4406" href="Relation.Binary.Lattice.html#4406" class="Bound">y</a> <a id="4408" class="Symbol"></a> <a id="4410" class="Symbol">(</a><a id="4411" href="Relation.Binary.Lattice.html#4404" class="Bound">x</a> <a id="4413" href="Relation.Binary.Lattice.html#4212" class="Bound Operator"></a> <a id="4415" href="Relation.Binary.Lattice.html#4406" class="Bound">y</a><a id="4416" class="Symbol">)</a> <a id="4418" href="Relation.Binary.Lattice.html#4148" class="Bound Operator"></a> <a id="4420" href="Relation.Binary.Lattice.html#4404" class="Bound">x</a>
<a id="4424" href="Relation.Binary.Lattice.html#4394" class="Function">x∧y≤x</a> <a id="4430" href="Relation.Binary.Lattice.html#4430" class="Bound">x</a> <a id="4432" href="Relation.Binary.Lattice.html#4432" class="Bound">y</a> <a id="4434" class="Symbol">=</a> <a id="4436" class="Keyword">let</a> <a id="4440" href="Relation.Binary.Lattice.html#4440" class="Bound">pf</a> <a id="4443" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4445" class="Symbol">_</a> <a id="4447" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4449" class="Symbol">_</a> <a id="4451" class="Symbol">=</a> <a id="4453" href="Relation.Binary.Lattice.html#4358" class="Field">infimum</a> <a id="4461" href="Relation.Binary.Lattice.html#4430" class="Bound">x</a> <a id="4463" href="Relation.Binary.Lattice.html#4432" class="Bound">y</a> <a id="4465" class="Keyword">in</a> <a id="4468" href="Relation.Binary.Lattice.html#4440" class="Bound">pf</a>
<a id="IsMeetSemilattice.x∧y≤y"></a><a id="4474" href="Relation.Binary.Lattice.html#4474" class="Function">x∧y≤y</a> <a id="4480" class="Symbol">:</a> <a id="4482" class="Symbol"></a> <a id="4484" href="Relation.Binary.Lattice.html#4484" class="Bound">x</a> <a id="4486" href="Relation.Binary.Lattice.html#4486" class="Bound">y</a> <a id="4488" class="Symbol"></a> <a id="4490" class="Symbol">(</a><a id="4491" href="Relation.Binary.Lattice.html#4484" class="Bound">x</a> <a id="4493" href="Relation.Binary.Lattice.html#4212" class="Bound Operator"></a> <a id="4495" href="Relation.Binary.Lattice.html#4486" class="Bound">y</a><a id="4496" class="Symbol">)</a> <a id="4498" href="Relation.Binary.Lattice.html#4148" class="Bound Operator"></a> <a id="4500" href="Relation.Binary.Lattice.html#4486" class="Bound">y</a>
<a id="4504" href="Relation.Binary.Lattice.html#4474" class="Function">x∧y≤y</a> <a id="4510" href="Relation.Binary.Lattice.html#4510" class="Bound">x</a> <a id="4512" href="Relation.Binary.Lattice.html#4512" class="Bound">y</a> <a id="4514" class="Symbol">=</a> <a id="4516" class="Keyword">let</a> <a id="4520" class="Symbol">_</a> <a id="4522" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4524" href="Relation.Binary.Lattice.html#4524" class="Bound">pf</a> <a id="4527" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4529" class="Symbol">_</a> <a id="4531" class="Symbol">=</a> <a id="4533" href="Relation.Binary.Lattice.html#4358" class="Field">infimum</a> <a id="4541" href="Relation.Binary.Lattice.html#4510" class="Bound">x</a> <a id="4543" href="Relation.Binary.Lattice.html#4512" class="Bound">y</a> <a id="4545" class="Keyword">in</a> <a id="4548" href="Relation.Binary.Lattice.html#4524" class="Bound">pf</a>
<a id="IsMeetSemilattice.∧-greatest"></a><a id="4554" href="Relation.Binary.Lattice.html#4554" class="Function">∧-greatest</a> <a id="4565" class="Symbol">:</a> <a id="4567" class="Symbol"></a> <a id="4569" class="Symbol">{</a><a id="4570" href="Relation.Binary.Lattice.html#4570" class="Bound">x</a> <a id="4572" href="Relation.Binary.Lattice.html#4572" class="Bound">y</a> <a id="4574" href="Relation.Binary.Lattice.html#4574" class="Bound">z</a><a id="4575" class="Symbol">}</a> <a id="4577" class="Symbol"></a> <a id="4579" href="Relation.Binary.Lattice.html#4570" class="Bound">x</a> <a id="4581" href="Relation.Binary.Lattice.html#4148" class="Bound Operator"></a> <a id="4583" href="Relation.Binary.Lattice.html#4572" class="Bound">y</a> <a id="4585" class="Symbol"></a> <a id="4587" href="Relation.Binary.Lattice.html#4570" class="Bound">x</a> <a id="4589" href="Relation.Binary.Lattice.html#4148" class="Bound Operator"></a> <a id="4591" href="Relation.Binary.Lattice.html#4574" class="Bound">z</a> <a id="4593" class="Symbol"></a> <a id="4595" href="Relation.Binary.Lattice.html#4570" class="Bound">x</a> <a id="4597" href="Relation.Binary.Lattice.html#4148" class="Bound Operator"></a> <a id="4599" class="Symbol">(</a><a id="4600" href="Relation.Binary.Lattice.html#4572" class="Bound">y</a> <a id="4602" href="Relation.Binary.Lattice.html#4212" class="Bound Operator"></a> <a id="4604" href="Relation.Binary.Lattice.html#4574" class="Bound">z</a><a id="4605" class="Symbol">)</a>
<a id="4609" href="Relation.Binary.Lattice.html#4554" class="Function">∧-greatest</a> <a id="4620" class="Symbol">{</a><a id="4621" href="Relation.Binary.Lattice.html#4621" class="Bound">x</a><a id="4622" class="Symbol">}</a> <a id="4624" class="Symbol">{</a><a id="4625" href="Relation.Binary.Lattice.html#4625" class="Bound">y</a><a id="4626" class="Symbol">}</a> <a id="4628" class="Symbol">{</a><a id="4629" href="Relation.Binary.Lattice.html#4629" class="Bound">z</a><a id="4630" class="Symbol">}</a> <a id="4632" class="Symbol">=</a> <a id="4634" class="Keyword">let</a> <a id="4638" class="Symbol">_</a> <a id="4640" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4642" class="Symbol">_</a> <a id="4644" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4646" href="Relation.Binary.Lattice.html#4646" class="Bound">pf</a> <a id="4649" class="Symbol">=</a> <a id="4651" href="Relation.Binary.Lattice.html#4358" class="Field">infimum</a> <a id="4659" href="Relation.Binary.Lattice.html#4625" class="Bound">y</a> <a id="4661" href="Relation.Binary.Lattice.html#4629" class="Bound">z</a> <a id="4663" class="Keyword">in</a> <a id="4666" href="Relation.Binary.Lattice.html#4646" class="Bound">pf</a> <a id="4669" href="Relation.Binary.Lattice.html#4621" class="Bound">x</a>
<a id="4674" class="Keyword">open</a> <a id="4679" href="Relation.Binary.Structures.html#3183" class="Module">IsPartialOrder</a> <a id="4694" href="Relation.Binary.Lattice.html#4314" class="Field">isPartialOrder</a> <a id="4709" class="Keyword">public</a>
<a id="4717" class="Keyword">record</a> <a id="MeetSemilattice"></a><a id="4724" href="Relation.Binary.Lattice.html#4724" class="Record">MeetSemilattice</a> <a id="4740" href="Relation.Binary.Lattice.html#4740" class="Bound">c</a> <a id="4742" href="Relation.Binary.Lattice.html#4742" class="Bound">ℓ₁</a> <a id="4745" href="Relation.Binary.Lattice.html#4745" class="Bound">ℓ₂</a> <a id="4748" class="Symbol">:</a> <a id="4750" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="4754" class="Symbol">(</a><a id="4755" href="Agda.Primitive.html#774" class="Primitive">suc</a> <a id="4759" class="Symbol">(</a><a id="4760" href="Relation.Binary.Lattice.html#4740" class="Bound">c</a> <a id="4762" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="4764" href="Relation.Binary.Lattice.html#4742" class="Bound">ℓ₁</a> <a id="4767" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="4769" href="Relation.Binary.Lattice.html#4745" class="Bound">ℓ₂</a><a id="4771" class="Symbol">))</a> <a id="4774" class="Keyword">where</a>
<a id="4782" class="Keyword">infix</a> <a id="4789" class="Number">4</a> <a id="4791" href="Relation.Binary.Lattice.html#4856" class="Field Operator">_≈_</a> <a id="4795" href="Relation.Binary.Lattice.html#4924" class="Field Operator">_≤_</a>
<a id="4801" class="Keyword">infixr</a> <a id="4808" class="Number">7</a> <a id="4810" href="Relation.Binary.Lattice.html#4986" class="Field Operator">_∧_</a>
<a id="4816" class="Keyword">field</a>
<a id="MeetSemilattice.Carrier"></a><a id="4826" href="Relation.Binary.Lattice.html#4826" class="Field">Carrier</a> <a id="4844" class="Symbol">:</a> <a id="4846" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="4850" href="Relation.Binary.Lattice.html#4740" class="Bound">c</a>
<a id="MeetSemilattice._≈_"></a><a id="4856" href="Relation.Binary.Lattice.html#4856" class="Field Operator">_≈_</a> <a id="4874" class="Symbol">:</a> <a id="4876" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="4880" href="Relation.Binary.Lattice.html#4826" class="Field">Carrier</a> <a id="4888" href="Relation.Binary.Lattice.html#4742" class="Bound">ℓ₁</a> <a id="4892" class="Comment">-- The underlying equality.</a>
<a id="MeetSemilattice._≤_"></a><a id="4924" href="Relation.Binary.Lattice.html#4924" class="Field Operator">_≤_</a> <a id="4942" class="Symbol">:</a> <a id="4944" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="4948" href="Relation.Binary.Lattice.html#4826" class="Field">Carrier</a> <a id="4956" href="Relation.Binary.Lattice.html#4745" class="Bound">ℓ₂</a> <a id="4960" class="Comment">-- The partial order.</a>
<a id="MeetSemilattice._∧_"></a><a id="4986" href="Relation.Binary.Lattice.html#4986" class="Field Operator">_∧_</a> <a id="5004" class="Symbol">:</a> <a id="5006" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="5010" href="Relation.Binary.Lattice.html#4826" class="Field">Carrier</a> <a id="5022" class="Comment">-- The meet operation.</a>
<a id="MeetSemilattice.isMeetSemilattice"></a><a id="5049" href="Relation.Binary.Lattice.html#5049" class="Field">isMeetSemilattice</a> <a id="5067" class="Symbol">:</a> <a id="5069" href="Relation.Binary.Lattice.html#4012" class="Record">IsMeetSemilattice</a> <a id="5087" href="Relation.Binary.Lattice.html#4856" class="Field Operator">_≈_</a> <a id="5091" href="Relation.Binary.Lattice.html#4924" class="Field Operator">_≤_</a> <a id="5095" href="Relation.Binary.Lattice.html#4986" class="Field Operator">_∧_</a>
<a id="5102" class="Keyword">open</a> <a id="5107" href="Relation.Binary.Lattice.html#4012" class="Module">IsMeetSemilattice</a> <a id="5125" href="Relation.Binary.Lattice.html#5049" class="Field">isMeetSemilattice</a> <a id="5143" class="Keyword">public</a>
<a id="MeetSemilattice.poset"></a><a id="5153" href="Relation.Binary.Lattice.html#5153" class="Function">poset</a> <a id="5159" class="Symbol">:</a> <a id="5161" href="Relation.Binary.Bundles.html#3037" class="Record">Poset</a> <a id="5167" href="Relation.Binary.Lattice.html#4740" class="Bound">c</a> <a id="5169" href="Relation.Binary.Lattice.html#4742" class="Bound">ℓ₁</a> <a id="5172" href="Relation.Binary.Lattice.html#4745" class="Bound">ℓ₂</a>
<a id="5177" href="Relation.Binary.Lattice.html#5153" class="Function">poset</a> <a id="5183" class="Symbol">=</a> <a id="5185" class="Keyword">record</a> <a id="5192" class="Symbol">{</a> <a id="5194" href="Relation.Binary.Bundles.html#3212" class="Field">isPartialOrder</a> <a id="5209" class="Symbol">=</a> <a id="5211" href="Relation.Binary.Lattice.html#4314" class="Function">isPartialOrder</a> <a id="5226" class="Symbol">}</a>
<a id="5231" class="Keyword">open</a> <a id="5236" href="Relation.Binary.Bundles.html#3037" class="Module">Poset</a> <a id="5242" href="Relation.Binary.Lattice.html#5153" class="Function">poset</a> <a id="5248" class="Keyword">public</a> <a id="5255" class="Keyword">using</a> <a id="5261" class="Symbol">(</a><a id="5262" href="Relation.Binary.Bundles.html#3323" class="Function">preorder</a><a id="5270" class="Symbol">)</a>
<a id="5273" class="Keyword">record</a> <a id="IsBoundedMeetSemilattice"></a><a id="5280" href="Relation.Binary.Lattice.html#5280" class="Record">IsBoundedMeetSemilattice</a> <a id="5305" class="Symbol">{</a><a id="5306" href="Relation.Binary.Lattice.html#5306" class="Bound">a</a> <a id="5308" href="Relation.Binary.Lattice.html#5308" class="Bound">ℓ₁</a> <a id="5311" href="Relation.Binary.Lattice.html#5311" class="Bound">ℓ₂</a><a id="5313" class="Symbol">}</a> <a id="5315" class="Symbol">{</a><a id="5316" href="Relation.Binary.Lattice.html#5316" class="Bound">A</a> <a id="5318" class="Symbol">:</a> <a id="5320" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="5324" href="Relation.Binary.Lattice.html#5306" class="Bound">a</a><a id="5325" class="Symbol">}</a>
<a id="5359" class="Symbol">(</a><a id="5360" href="Relation.Binary.Lattice.html#5360" class="Bound Operator">_≈_</a> <a id="5364" class="Symbol">:</a> <a id="5366" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="5370" href="Relation.Binary.Lattice.html#5316" class="Bound">A</a> <a id="5372" href="Relation.Binary.Lattice.html#5308" class="Bound">ℓ₁</a><a id="5374" class="Symbol">)</a> <a id="5376" class="Comment">-- The underlying equality.</a>
<a id="5436" class="Symbol">(</a><a id="5437" href="Relation.Binary.Lattice.html#5437" class="Bound Operator">_≤_</a> <a id="5441" class="Symbol">:</a> <a id="5443" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="5447" href="Relation.Binary.Lattice.html#5316" class="Bound">A</a> <a id="5449" href="Relation.Binary.Lattice.html#5311" class="Bound">ℓ₂</a><a id="5451" class="Symbol">)</a> <a id="5453" class="Comment">-- The partial order.</a>
<a id="5507" class="Symbol">(</a><a id="5508" href="Relation.Binary.Lattice.html#5508" class="Bound Operator">_∧_</a> <a id="5512" class="Symbol">:</a> <a id="5514" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="5518" href="Relation.Binary.Lattice.html#5316" class="Bound">A</a><a id="5519" class="Symbol">)</a> <a id="5524" class="Comment">-- The join operation.</a>
<a id="5579" class="Symbol">(</a><a id="5580" href="Relation.Binary.Lattice.html#5580" class="Bound"></a> <a id="5584" class="Symbol">:</a> <a id="5586" href="Relation.Binary.Lattice.html#5316" class="Bound">A</a><a id="5587" class="Symbol">)</a> <a id="5596" class="Comment">-- The maximum.</a>
<a id="5644" class="Symbol">:</a> <a id="5646" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="5650" class="Symbol">(</a><a id="5651" href="Relation.Binary.Lattice.html#5306" class="Bound">a</a> <a id="5653" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="5655" href="Relation.Binary.Lattice.html#5308" class="Bound">ℓ₁</a> <a id="5658" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="5660" href="Relation.Binary.Lattice.html#5311" class="Bound">ℓ₂</a><a id="5662" class="Symbol">)</a> <a id="5664" class="Keyword">where</a>
<a id="5672" class="Keyword">field</a>
<a id="IsBoundedMeetSemilattice.isMeetSemilattice"></a><a id="5682" href="Relation.Binary.Lattice.html#5682" class="Field">isMeetSemilattice</a> <a id="5700" class="Symbol">:</a> <a id="5702" href="Relation.Binary.Lattice.html#4012" class="Record">IsMeetSemilattice</a> <a id="5720" href="Relation.Binary.Lattice.html#5360" class="Bound Operator">_≈_</a> <a id="5724" href="Relation.Binary.Lattice.html#5437" class="Bound Operator">_≤_</a> <a id="5728" href="Relation.Binary.Lattice.html#5508" class="Bound Operator">_∧_</a>
<a id="IsBoundedMeetSemilattice.maximum"></a><a id="5736" href="Relation.Binary.Lattice.html#5736" class="Field">maximum</a> <a id="5754" class="Symbol">:</a> <a id="5756" href="Relation.Binary.Definitions.html#3197" class="Function">Maximum</a> <a id="5764" href="Relation.Binary.Lattice.html#5437" class="Bound Operator">_≤_</a> <a id="5768" href="Relation.Binary.Lattice.html#5580" class="Bound"></a>
<a id="5773" class="Keyword">open</a> <a id="5778" href="Relation.Binary.Lattice.html#4012" class="Module">IsMeetSemilattice</a> <a id="5796" href="Relation.Binary.Lattice.html#5682" class="Field">isMeetSemilattice</a> <a id="5814" class="Keyword">public</a>
<a id="5822" class="Keyword">record</a> <a id="BoundedMeetSemilattice"></a><a id="5829" href="Relation.Binary.Lattice.html#5829" class="Record">BoundedMeetSemilattice</a> <a id="5852" href="Relation.Binary.Lattice.html#5852" class="Bound">c</a> <a id="5854" href="Relation.Binary.Lattice.html#5854" class="Bound">ℓ₁</a> <a id="5857" href="Relation.Binary.Lattice.html#5857" class="Bound">ℓ₂</a> <a id="5860" class="Symbol">:</a> <a id="5862" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="5866" class="Symbol">(</a><a id="5867" href="Agda.Primitive.html#774" class="Primitive">suc</a> <a id="5871" class="Symbol">(</a><a id="5872" href="Relation.Binary.Lattice.html#5852" class="Bound">c</a> <a id="5874" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="5876" href="Relation.Binary.Lattice.html#5854" class="Bound">ℓ₁</a> <a id="5879" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="5881" href="Relation.Binary.Lattice.html#5857" class="Bound">ℓ₂</a><a id="5883" class="Symbol">))</a> <a id="5886" class="Keyword">where</a>
<a id="5894" class="Keyword">infix</a> <a id="5901" class="Number">4</a> <a id="5903" href="Relation.Binary.Lattice.html#5975" class="Field Operator">_≈_</a> <a id="5907" href="Relation.Binary.Lattice.html#6050" class="Field Operator">_≤_</a>
<a id="5913" class="Keyword">infixr</a> <a id="5920" class="Number">7</a> <a id="5922" href="Relation.Binary.Lattice.html#6119" class="Field Operator">_∧_</a>
<a id="5928" class="Keyword">field</a>
<a id="BoundedMeetSemilattice.Carrier"></a><a id="5938" href="Relation.Binary.Lattice.html#5938" class="Field">Carrier</a> <a id="5963" class="Symbol">:</a> <a id="5965" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="5969" href="Relation.Binary.Lattice.html#5852" class="Bound">c</a>
<a id="BoundedMeetSemilattice._≈_"></a><a id="5975" href="Relation.Binary.Lattice.html#5975" class="Field Operator">_≈_</a> <a id="6000" class="Symbol">:</a> <a id="6002" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="6006" href="Relation.Binary.Lattice.html#5938" class="Field">Carrier</a> <a id="6014" href="Relation.Binary.Lattice.html#5854" class="Bound">ℓ₁</a> <a id="6018" class="Comment">-- The underlying equality.</a>
<a id="BoundedMeetSemilattice._≤_"></a><a id="6050" href="Relation.Binary.Lattice.html#6050" class="Field Operator">_≤_</a> <a id="6075" class="Symbol">:</a> <a id="6077" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="6081" href="Relation.Binary.Lattice.html#5938" class="Field">Carrier</a> <a id="6089" href="Relation.Binary.Lattice.html#5857" class="Bound">ℓ₂</a> <a id="6093" class="Comment">-- The partial order.</a>
<a id="BoundedMeetSemilattice._∧_"></a><a id="6119" href="Relation.Binary.Lattice.html#6119" class="Field Operator">_∧_</a> <a id="6144" class="Symbol">:</a> <a id="6146" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="6150" href="Relation.Binary.Lattice.html#5938" class="Field">Carrier</a> <a id="6162" class="Comment">-- The join operation.</a>
<a id="BoundedMeetSemilattice."></a><a id="6189" href="Relation.Binary.Lattice.html#6189" class="Field"></a> <a id="6214" class="Symbol">:</a> <a id="6216" href="Relation.Binary.Lattice.html#5938" class="Field">Carrier</a> <a id="6232" class="Comment">-- The maximum.</a>
<a id="BoundedMeetSemilattice.isBoundedMeetSemilattice"></a><a id="6252" href="Relation.Binary.Lattice.html#6252" class="Field">isBoundedMeetSemilattice</a> <a id="6277" class="Symbol">:</a> <a id="6279" href="Relation.Binary.Lattice.html#5280" class="Record">IsBoundedMeetSemilattice</a> <a id="6304" href="Relation.Binary.Lattice.html#5975" class="Field Operator">_≈_</a> <a id="6308" href="Relation.Binary.Lattice.html#6050" class="Field Operator">_≤_</a> <a id="6312" href="Relation.Binary.Lattice.html#6119" class="Field Operator">_∧_</a> <a id="6316" href="Relation.Binary.Lattice.html#6189" class="Field"></a>
<a id="6321" class="Keyword">open</a> <a id="6326" href="Relation.Binary.Lattice.html#5280" class="Module">IsBoundedMeetSemilattice</a> <a id="6351" href="Relation.Binary.Lattice.html#6252" class="Field">isBoundedMeetSemilattice</a> <a id="6376" class="Keyword">public</a>
<a id="BoundedMeetSemilattice.meetSemilattice"></a><a id="6386" href="Relation.Binary.Lattice.html#6386" class="Function">meetSemilattice</a> <a id="6402" class="Symbol">:</a> <a id="6404" href="Relation.Binary.Lattice.html#4724" class="Record">MeetSemilattice</a> <a id="6420" href="Relation.Binary.Lattice.html#5852" class="Bound">c</a> <a id="6422" href="Relation.Binary.Lattice.html#5854" class="Bound">ℓ₁</a> <a id="6425" href="Relation.Binary.Lattice.html#5857" class="Bound">ℓ₂</a>
<a id="6430" href="Relation.Binary.Lattice.html#6386" class="Function">meetSemilattice</a> <a id="6446" class="Symbol">=</a> <a id="6448" class="Keyword">record</a> <a id="6455" class="Symbol">{</a> <a id="6457" href="Relation.Binary.Lattice.html#5049" class="Field">isMeetSemilattice</a> <a id="6475" class="Symbol">=</a> <a id="6477" href="Relation.Binary.Lattice.html#5682" class="Function">isMeetSemilattice</a> <a id="6495" class="Symbol">}</a>
<a id="BoundedMeetSemilattice.meetSemiLattice"></a><a id="6500" href="Relation.Binary.Lattice.html#6500" class="Function">meetSemiLattice</a> <a id="6516" class="Symbol">=</a> <a id="6518" href="Relation.Binary.Lattice.html#6386" class="Function">meetSemilattice</a>
<a id="6536" class="Symbol">{-#</a> <a id="6540" class="Keyword">WARNING_ON_USAGE</a> <a id="6557" class="Pragma">meetSemiLattice</a>
<a id="6575" class="String">&quot;Warning: meetSemiLattice was deprecated in v0.17.
Please use meetSemilattice instead.&quot;</a>
<a id="6667" class="Symbol">#-}</a>
<a id="6674" class="Keyword">open</a> <a id="6679" href="Relation.Binary.Lattice.html#4724" class="Module">MeetSemilattice</a> <a id="6695" href="Relation.Binary.Lattice.html#6386" class="Function">meetSemilattice</a> <a id="6711" class="Keyword">public</a> <a id="6718" class="Keyword">using</a> <a id="6724" class="Symbol">(</a><a id="6725" href="Relation.Binary.Bundles.html#3323" class="Function">preorder</a><a id="6733" class="Symbol">;</a> <a id="6735" href="Relation.Binary.Lattice.html#5153" class="Function">poset</a><a id="6740" class="Symbol">)</a>
<a id="6743" class="Comment">------------------------------------------------------------------------</a>
<a id="6816" class="Comment">-- Lattices</a>
<a id="6829" class="Keyword">record</a> <a id="IsLattice"></a><a id="6836" href="Relation.Binary.Lattice.html#6836" class="Record">IsLattice</a> <a id="6846" class="Symbol">{</a><a id="6847" href="Relation.Binary.Lattice.html#6847" class="Bound">a</a> <a id="6849" href="Relation.Binary.Lattice.html#6849" class="Bound">ℓ₁</a> <a id="6852" href="Relation.Binary.Lattice.html#6852" class="Bound">ℓ₂</a><a id="6854" class="Symbol">}</a> <a id="6856" class="Symbol">{</a><a id="6857" href="Relation.Binary.Lattice.html#6857" class="Bound">A</a> <a id="6859" class="Symbol">:</a> <a id="6861" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="6865" href="Relation.Binary.Lattice.html#6847" class="Bound">a</a><a id="6866" class="Symbol">}</a>
<a id="6885" class="Symbol">(</a><a id="6886" href="Relation.Binary.Lattice.html#6886" class="Bound Operator">_≈_</a> <a id="6890" class="Symbol">:</a> <a id="6892" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="6896" href="Relation.Binary.Lattice.html#6857" class="Bound">A</a> <a id="6898" href="Relation.Binary.Lattice.html#6849" class="Bound">ℓ₁</a><a id="6900" class="Symbol">)</a> <a id="6902" class="Comment">-- The underlying equality.</a>
<a id="6947" class="Symbol">(</a><a id="6948" href="Relation.Binary.Lattice.html#6948" class="Bound Operator">_≤_</a> <a id="6952" class="Symbol">:</a> <a id="6954" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="6958" href="Relation.Binary.Lattice.html#6857" class="Bound">A</a> <a id="6960" href="Relation.Binary.Lattice.html#6852" class="Bound">ℓ₂</a><a id="6962" class="Symbol">)</a> <a id="6964" class="Comment">-- The partial order.</a>
<a id="7003" class="Symbol">(</a><a id="7004" href="Relation.Binary.Lattice.html#7004" class="Bound Operator">__</a> <a id="7008" class="Symbol">:</a> <a id="7010" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="7014" href="Relation.Binary.Lattice.html#6857" class="Bound">A</a><a id="7015" class="Symbol">)</a> <a id="7020" class="Comment">-- The join operation.</a>
<a id="7060" class="Symbol">(</a><a id="7061" href="Relation.Binary.Lattice.html#7061" class="Bound Operator">_∧_</a> <a id="7065" class="Symbol">:</a> <a id="7067" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="7071" href="Relation.Binary.Lattice.html#6857" class="Bound">A</a><a id="7072" class="Symbol">)</a> <a id="7077" class="Comment">-- The meet operation.</a>
<a id="7117" class="Symbol">:</a> <a id="7119" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="7123" class="Symbol">(</a><a id="7124" href="Relation.Binary.Lattice.html#6847" class="Bound">a</a> <a id="7126" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="7128" href="Relation.Binary.Lattice.html#6849" class="Bound">ℓ₁</a> <a id="7131" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="7133" href="Relation.Binary.Lattice.html#6852" class="Bound">ℓ₂</a><a id="7135" class="Symbol">)</a> <a id="7137" class="Keyword">where</a>
<a id="7145" class="Keyword">field</a>
<a id="IsLattice.isPartialOrder"></a><a id="7155" href="Relation.Binary.Lattice.html#7155" class="Field">isPartialOrder</a> <a id="7170" class="Symbol">:</a> <a id="7172" href="Relation.Binary.Structures.html#3183" class="Record">IsPartialOrder</a> <a id="7187" href="Relation.Binary.Lattice.html#6886" class="Bound Operator">_≈_</a> <a id="7191" href="Relation.Binary.Lattice.html#6948" class="Bound Operator">_≤_</a>
<a id="IsLattice.supremum"></a><a id="7199" href="Relation.Binary.Lattice.html#7199" class="Field">supremum</a> <a id="7214" class="Symbol">:</a> <a id="7216" href="Relation.Binary.Lattice.html#674" class="Function">Supremum</a> <a id="7225" href="Relation.Binary.Lattice.html#6948" class="Bound Operator">_≤_</a> <a id="7229" href="Relation.Binary.Lattice.html#7004" class="Bound Operator">__</a>
<a id="IsLattice.infimum"></a><a id="7237" href="Relation.Binary.Lattice.html#7237" class="Field">infimum</a> <a id="7252" class="Symbol">:</a> <a id="7254" href="Relation.Binary.Lattice.html#823" class="Function">Infimum</a> <a id="7262" href="Relation.Binary.Lattice.html#6948" class="Bound Operator">_≤_</a> <a id="7266" href="Relation.Binary.Lattice.html#7061" class="Bound Operator">_∧_</a>
<a id="IsLattice.isJoinSemilattice"></a><a id="7273" href="Relation.Binary.Lattice.html#7273" class="Function">isJoinSemilattice</a> <a id="7291" class="Symbol">:</a> <a id="7293" href="Relation.Binary.Lattice.html#1181" class="Record">IsJoinSemilattice</a> <a id="7311" href="Relation.Binary.Lattice.html#6886" class="Bound Operator">_≈_</a> <a id="7315" href="Relation.Binary.Lattice.html#6948" class="Bound Operator">_≤_</a> <a id="7319" href="Relation.Binary.Lattice.html#7004" class="Bound Operator">__</a>
<a id="7325" href="Relation.Binary.Lattice.html#7273" class="Function">isJoinSemilattice</a> <a id="7343" class="Symbol">=</a> <a id="7345" class="Keyword">record</a>
<a id="7356" class="Symbol">{</a> <a id="7358" href="Relation.Binary.Lattice.html#1483" class="Field">isPartialOrder</a> <a id="7373" class="Symbol">=</a> <a id="7375" href="Relation.Binary.Lattice.html#7155" class="Field">isPartialOrder</a>
<a id="7394" class="Symbol">;</a> <a id="7396" href="Relation.Binary.Lattice.html#1527" class="Field">supremum</a> <a id="7411" class="Symbol">=</a> <a id="7413" href="Relation.Binary.Lattice.html#7199" class="Field">supremum</a>
<a id="7426" class="Symbol">}</a>
<a id="IsLattice.isMeetSemilattice"></a><a id="7431" href="Relation.Binary.Lattice.html#7431" class="Function">isMeetSemilattice</a> <a id="7449" class="Symbol">:</a> <a id="7451" href="Relation.Binary.Lattice.html#4012" class="Record">IsMeetSemilattice</a> <a id="7469" href="Relation.Binary.Lattice.html#6886" class="Bound Operator">_≈_</a> <a id="7473" href="Relation.Binary.Lattice.html#6948" class="Bound Operator">_≤_</a> <a id="7477" href="Relation.Binary.Lattice.html#7061" class="Bound Operator">_∧_</a>
<a id="7483" href="Relation.Binary.Lattice.html#7431" class="Function">isMeetSemilattice</a> <a id="7501" class="Symbol">=</a> <a id="7503" class="Keyword">record</a>
<a id="7514" class="Symbol">{</a> <a id="7516" href="Relation.Binary.Lattice.html#4314" class="Field">isPartialOrder</a> <a id="7531" class="Symbol">=</a> <a id="7533" href="Relation.Binary.Lattice.html#7155" class="Field">isPartialOrder</a>
<a id="7552" class="Symbol">;</a> <a id="7554" href="Relation.Binary.Lattice.html#4358" class="Field">infimum</a> <a id="7569" class="Symbol">=</a> <a id="7571" href="Relation.Binary.Lattice.html#7237" class="Field">infimum</a>
<a id="7583" class="Symbol">}</a>
<a id="7588" class="Keyword">open</a> <a id="7593" href="Relation.Binary.Lattice.html#1181" class="Module">IsJoinSemilattice</a> <a id="7611" href="Relation.Binary.Lattice.html#7273" class="Function">isJoinSemilattice</a> <a id="7629" class="Keyword">public</a>
<a id="7640" class="Keyword">using</a> <a id="7646" class="Symbol">(</a><a id="7647" href="Relation.Binary.Lattice.html#1564" class="Function">x≤xy</a><a id="7652" class="Symbol">;</a> <a id="7654" href="Relation.Binary.Lattice.html#1645" class="Function">y≤xy</a><a id="7659" class="Symbol">;</a> <a id="7661" href="Relation.Binary.Lattice.html#1726" class="Function">-least</a><a id="7668" class="Symbol">)</a>
<a id="7672" class="Keyword">open</a> <a id="7677" href="Relation.Binary.Lattice.html#4012" class="Module">IsMeetSemilattice</a> <a id="7695" href="Relation.Binary.Lattice.html#7431" class="Function">isMeetSemilattice</a> <a id="7713" class="Keyword">public</a>
<a id="7724" class="Keyword">using</a> <a id="7730" class="Symbol">(</a><a id="7731" href="Relation.Binary.Lattice.html#4394" class="Function">x∧y≤x</a><a id="7736" class="Symbol">;</a> <a id="7738" href="Relation.Binary.Lattice.html#4474" class="Function">x∧y≤y</a><a id="7743" class="Symbol">;</a> <a id="7745" href="Relation.Binary.Lattice.html#4554" class="Function">∧-greatest</a><a id="7755" class="Symbol">)</a>
<a id="7759" class="Keyword">open</a> <a id="7764" href="Relation.Binary.Structures.html#3183" class="Module">IsPartialOrder</a> <a id="7779" href="Relation.Binary.Lattice.html#7155" class="Field">isPartialOrder</a> <a id="7794" class="Keyword">public</a>
<a id="7802" class="Keyword">record</a> <a id="Lattice"></a><a id="7809" href="Relation.Binary.Lattice.html#7809" class="Record">Lattice</a> <a id="7817" href="Relation.Binary.Lattice.html#7817" class="Bound">c</a> <a id="7819" href="Relation.Binary.Lattice.html#7819" class="Bound">ℓ₁</a> <a id="7822" href="Relation.Binary.Lattice.html#7822" class="Bound">ℓ₂</a> <a id="7825" class="Symbol">:</a> <a id="7827" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="7831" class="Symbol">(</a><a id="7832" href="Agda.Primitive.html#774" class="Primitive">suc</a> <a id="7836" class="Symbol">(</a><a id="7837" href="Relation.Binary.Lattice.html#7817" class="Bound">c</a> <a id="7839" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="7841" href="Relation.Binary.Lattice.html#7819" class="Bound">ℓ₁</a> <a id="7844" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="7846" href="Relation.Binary.Lattice.html#7822" class="Bound">ℓ₂</a><a id="7848" class="Symbol">))</a> <a id="7851" class="Keyword">where</a>
<a id="7859" class="Keyword">infix</a> <a id="7866" class="Number">4</a> <a id="7868" href="Relation.Binary.Lattice.html#7940" class="Field Operator">_≈_</a> <a id="7872" href="Relation.Binary.Lattice.html#8000" class="Field Operator">_≤_</a>
<a id="7878" class="Keyword">infixr</a> <a id="7885" class="Number">6</a> <a id="7887" href="Relation.Binary.Lattice.html#8054" class="Field Operator">__</a>
<a id="7893" class="Keyword">infixr</a> <a id="7900" class="Number">7</a> <a id="7902" href="Relation.Binary.Lattice.html#8109" class="Field Operator">_∧_</a>
<a id="7908" class="Keyword">field</a>
<a id="Lattice.Carrier"></a><a id="7918" href="Relation.Binary.Lattice.html#7918" class="Field">Carrier</a> <a id="7928" class="Symbol">:</a> <a id="7930" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="7934" href="Relation.Binary.Lattice.html#7817" class="Bound">c</a>
<a id="Lattice._≈_"></a><a id="7940" href="Relation.Binary.Lattice.html#7940" class="Field Operator">_≈_</a> <a id="7950" class="Symbol">:</a> <a id="7952" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="7956" href="Relation.Binary.Lattice.html#7918" class="Field">Carrier</a> <a id="7964" href="Relation.Binary.Lattice.html#7819" class="Bound">ℓ₁</a> <a id="7968" class="Comment">-- The underlying equality.</a>
<a id="Lattice._≤_"></a><a id="8000" href="Relation.Binary.Lattice.html#8000" class="Field Operator">_≤_</a> <a id="8010" class="Symbol">:</a> <a id="8012" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="8016" href="Relation.Binary.Lattice.html#7918" class="Field">Carrier</a> <a id="8024" href="Relation.Binary.Lattice.html#7822" class="Bound">ℓ₂</a> <a id="8028" class="Comment">-- The partial order.</a>
<a id="Lattice.__"></a><a id="8054" href="Relation.Binary.Lattice.html#8054" class="Field Operator">__</a> <a id="8064" class="Symbol">:</a> <a id="8066" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="8070" href="Relation.Binary.Lattice.html#7918" class="Field">Carrier</a> <a id="8082" class="Comment">-- The join operation.</a>
<a id="Lattice._∧_"></a><a id="8109" href="Relation.Binary.Lattice.html#8109" class="Field Operator">_∧_</a> <a id="8119" class="Symbol">:</a> <a id="8121" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="8125" href="Relation.Binary.Lattice.html#7918" class="Field">Carrier</a> <a id="8137" class="Comment">-- The meet operation.</a>
<a id="Lattice.isLattice"></a><a id="8164" href="Relation.Binary.Lattice.html#8164" class="Field">isLattice</a> <a id="8174" class="Symbol">:</a> <a id="8176" href="Relation.Binary.Lattice.html#6836" class="Record">IsLattice</a> <a id="8186" href="Relation.Binary.Lattice.html#7940" class="Field Operator">_≈_</a> <a id="8190" href="Relation.Binary.Lattice.html#8000" class="Field Operator">_≤_</a> <a id="8194" href="Relation.Binary.Lattice.html#8054" class="Field Operator">__</a> <a id="8198" href="Relation.Binary.Lattice.html#8109" class="Field Operator">_∧_</a>
<a id="8205" class="Keyword">open</a> <a id="8210" href="Relation.Binary.Lattice.html#6836" class="Module">IsLattice</a> <a id="8220" href="Relation.Binary.Lattice.html#8164" class="Field">isLattice</a> <a id="8230" class="Keyword">public</a>
<a id="Lattice.setoid"></a><a id="8240" href="Relation.Binary.Lattice.html#8240" class="Function">setoid</a> <a id="8247" class="Symbol">:</a> <a id="8249" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a> <a id="8256" href="Relation.Binary.Lattice.html#7817" class="Bound">c</a> <a id="8258" href="Relation.Binary.Lattice.html#7819" class="Bound">ℓ₁</a>
<a id="8263" href="Relation.Binary.Lattice.html#8240" class="Function">setoid</a> <a id="8270" class="Symbol">=</a> <a id="8272" class="Keyword">record</a> <a id="8279" class="Symbol">{</a> <a id="8281" href="Relation.Binary.Bundles.html#1141" class="Field">isEquivalence</a> <a id="8295" class="Symbol">=</a> <a id="8297" href="Relation.Binary.Structures.html#2237" class="Function">isEquivalence</a> <a id="8311" class="Symbol">}</a>
<a id="Lattice.joinSemilattice"></a><a id="8316" href="Relation.Binary.Lattice.html#8316" class="Function">joinSemilattice</a> <a id="8332" class="Symbol">:</a> <a id="8334" href="Relation.Binary.Lattice.html#1891" class="Record">JoinSemilattice</a> <a id="8350" href="Relation.Binary.Lattice.html#7817" class="Bound">c</a> <a id="8352" href="Relation.Binary.Lattice.html#7819" class="Bound">ℓ₁</a> <a id="8355" href="Relation.Binary.Lattice.html#7822" class="Bound">ℓ₂</a>
<a id="8360" href="Relation.Binary.Lattice.html#8316" class="Function">joinSemilattice</a> <a id="8376" class="Symbol">=</a> <a id="8378" class="Keyword">record</a> <a id="8385" class="Symbol">{</a> <a id="8387" href="Relation.Binary.Lattice.html#2216" class="Field">isJoinSemilattice</a> <a id="8405" class="Symbol">=</a> <a id="8407" href="Relation.Binary.Lattice.html#7273" class="Function">isJoinSemilattice</a> <a id="8425" class="Symbol">}</a>
<a id="Lattice.meetSemilattice"></a><a id="8430" href="Relation.Binary.Lattice.html#8430" class="Function">meetSemilattice</a> <a id="8446" class="Symbol">:</a> <a id="8448" href="Relation.Binary.Lattice.html#4724" class="Record">MeetSemilattice</a> <a id="8464" href="Relation.Binary.Lattice.html#7817" class="Bound">c</a> <a id="8466" href="Relation.Binary.Lattice.html#7819" class="Bound">ℓ₁</a> <a id="8469" href="Relation.Binary.Lattice.html#7822" class="Bound">ℓ₂</a>
<a id="8474" href="Relation.Binary.Lattice.html#8430" class="Function">meetSemilattice</a> <a id="8490" class="Symbol">=</a> <a id="8492" class="Keyword">record</a> <a id="8499" class="Symbol">{</a> <a id="8501" href="Relation.Binary.Lattice.html#5049" class="Field">isMeetSemilattice</a> <a id="8519" class="Symbol">=</a> <a id="8521" href="Relation.Binary.Lattice.html#7431" class="Function">isMeetSemilattice</a> <a id="8539" class="Symbol">}</a>
<a id="8544" class="Keyword">open</a> <a id="8549" href="Relation.Binary.Lattice.html#1891" class="Module">JoinSemilattice</a> <a id="8565" href="Relation.Binary.Lattice.html#8316" class="Function">joinSemilattice</a> <a id="8581" class="Keyword">public</a> <a id="8588" class="Keyword">using</a> <a id="8594" class="Symbol">(</a><a id="8595" href="Relation.Binary.Lattice.html#2320" class="Function">poset</a><a id="8600" class="Symbol">;</a> <a id="8602" href="Relation.Binary.Bundles.html#3323" class="Function">preorder</a><a id="8610" class="Symbol">)</a>
<a id="8613" class="Keyword">record</a> <a id="IsDistributiveLattice"></a><a id="8620" href="Relation.Binary.Lattice.html#8620" class="Record">IsDistributiveLattice</a> <a id="8642" class="Symbol">{</a><a id="8643" href="Relation.Binary.Lattice.html#8643" class="Bound">a</a> <a id="8645" href="Relation.Binary.Lattice.html#8645" class="Bound">ℓ₁</a> <a id="8648" href="Relation.Binary.Lattice.html#8648" class="Bound">ℓ₂</a><a id="8650" class="Symbol">}</a> <a id="8652" class="Symbol">{</a><a id="8653" href="Relation.Binary.Lattice.html#8653" class="Bound">A</a> <a id="8655" class="Symbol">:</a> <a id="8657" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="8661" href="Relation.Binary.Lattice.html#8643" class="Bound">a</a><a id="8662" class="Symbol">}</a>
<a id="8693" class="Symbol">(</a><a id="8694" href="Relation.Binary.Lattice.html#8694" class="Bound Operator">_≈_</a> <a id="8698" class="Symbol">:</a> <a id="8700" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="8704" href="Relation.Binary.Lattice.html#8653" class="Bound">A</a> <a id="8706" href="Relation.Binary.Lattice.html#8645" class="Bound">ℓ₁</a><a id="8708" class="Symbol">)</a> <a id="8710" class="Comment">-- The underlying equality.</a>
<a id="8767" class="Symbol">(</a><a id="8768" href="Relation.Binary.Lattice.html#8768" class="Bound Operator">_≤_</a> <a id="8772" class="Symbol">:</a> <a id="8774" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="8778" href="Relation.Binary.Lattice.html#8653" class="Bound">A</a> <a id="8780" href="Relation.Binary.Lattice.html#8648" class="Bound">ℓ₂</a><a id="8782" class="Symbol">)</a> <a id="8784" class="Comment">-- The partial order.</a>
<a id="8835" class="Symbol">(</a><a id="8836" href="Relation.Binary.Lattice.html#8836" class="Bound Operator">__</a> <a id="8840" class="Symbol">:</a> <a id="8842" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="8846" href="Relation.Binary.Lattice.html#8653" class="Bound">A</a><a id="8847" class="Symbol">)</a> <a id="8852" class="Comment">-- The join operation.</a>
<a id="8904" class="Symbol">(</a><a id="8905" href="Relation.Binary.Lattice.html#8905" class="Bound Operator">_∧_</a> <a id="8909" class="Symbol">:</a> <a id="8911" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="8915" href="Relation.Binary.Lattice.html#8653" class="Bound">A</a><a id="8916" class="Symbol">)</a> <a id="8921" class="Comment">-- The meet operation.</a>
<a id="8973" class="Symbol">:</a> <a id="8975" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="8979" class="Symbol">(</a><a id="8980" href="Relation.Binary.Lattice.html#8643" class="Bound">a</a> <a id="8982" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="8984" href="Relation.Binary.Lattice.html#8645" class="Bound">ℓ₁</a> <a id="8987" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="8989" href="Relation.Binary.Lattice.html#8648" class="Bound">ℓ₂</a><a id="8991" class="Symbol">)</a> <a id="8993" class="Keyword">where</a>
<a id="9001" class="Keyword">field</a>
<a id="IsDistributiveLattice.isLattice"></a><a id="9011" href="Relation.Binary.Lattice.html#9011" class="Field">isLattice</a> <a id="9024" class="Symbol">:</a> <a id="9026" href="Relation.Binary.Lattice.html#6836" class="Record">IsLattice</a> <a id="9036" href="Relation.Binary.Lattice.html#8694" class="Bound Operator">_≈_</a> <a id="9040" href="Relation.Binary.Lattice.html#8768" class="Bound Operator">_≤_</a> <a id="9044" href="Relation.Binary.Lattice.html#8836" class="Bound Operator">__</a> <a id="9048" href="Relation.Binary.Lattice.html#8905" class="Bound Operator">_∧_</a>
<a id="IsDistributiveLattice.∧-distribˡ-"></a><a id="9056" href="Relation.Binary.Lattice.html#9056" class="Field">∧-distribˡ-</a> <a id="9069" class="Symbol">:</a> <a id="9071" href="Algebra.Definitions.html#2236" class="Function Operator">_DistributesOverˡ_</a> <a id="9090" href="Relation.Binary.Lattice.html#8694" class="Bound Operator">_≈_</a> <a id="9094" href="Relation.Binary.Lattice.html#8905" class="Bound Operator">_∧_</a> <a id="9098" href="Relation.Binary.Lattice.html#8836" class="Bound Operator">__</a>
<a id="9105" class="Keyword">open</a> <a id="9110" href="Relation.Binary.Lattice.html#6836" class="Module">IsLattice</a> <a id="9120" href="Relation.Binary.Lattice.html#9011" class="Field">isLattice</a> <a id="9130" class="Keyword">public</a>
<a id="9138" class="Keyword">record</a> <a id="DistributiveLattice"></a><a id="9145" href="Relation.Binary.Lattice.html#9145" class="Record">DistributiveLattice</a> <a id="9165" href="Relation.Binary.Lattice.html#9165" class="Bound">c</a> <a id="9167" href="Relation.Binary.Lattice.html#9167" class="Bound">ℓ₁</a> <a id="9170" href="Relation.Binary.Lattice.html#9170" class="Bound">ℓ₂</a> <a id="9173" class="Symbol">:</a> <a id="9175" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="9179" class="Symbol">(</a><a id="9180" href="Agda.Primitive.html#774" class="Primitive">suc</a> <a id="9184" class="Symbol">(</a><a id="9185" href="Relation.Binary.Lattice.html#9165" class="Bound">c</a> <a id="9187" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="9189" href="Relation.Binary.Lattice.html#9167" class="Bound">ℓ₁</a> <a id="9192" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="9194" href="Relation.Binary.Lattice.html#9170" class="Bound">ℓ₂</a><a id="9196" class="Symbol">))</a> <a id="9199" class="Keyword">where</a>
<a id="9207" class="Keyword">infix</a> <a id="9214" class="Number">4</a> <a id="9216" href="Relation.Binary.Lattice.html#9286" class="Field Operator">_≈_</a> <a id="9220" href="Relation.Binary.Lattice.html#9344" class="Field Operator">_≤_</a>
<a id="9226" class="Keyword">infixr</a> <a id="9233" class="Number">6</a> <a id="9235" href="Relation.Binary.Lattice.html#9396" class="Field Operator">__</a>
<a id="9241" class="Keyword">infixr</a> <a id="9248" class="Number">7</a> <a id="9250" href="Relation.Binary.Lattice.html#9449" class="Field Operator">_∧_</a>
<a id="9256" class="Keyword">field</a>
<a id="DistributiveLattice.Carrier"></a><a id="9266" href="Relation.Binary.Lattice.html#9266" class="Field">Carrier</a> <a id="9274" class="Symbol">:</a> <a id="9276" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="9280" href="Relation.Binary.Lattice.html#9165" class="Bound">c</a>
<a id="DistributiveLattice._≈_"></a><a id="9286" href="Relation.Binary.Lattice.html#9286" class="Field Operator">_≈_</a> <a id="9294" class="Symbol">:</a> <a id="9296" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="9300" href="Relation.Binary.Lattice.html#9266" class="Field">Carrier</a> <a id="9308" href="Relation.Binary.Lattice.html#9167" class="Bound">ℓ₁</a> <a id="9312" class="Comment">-- The underlying equality.</a>
<a id="DistributiveLattice._≤_"></a><a id="9344" href="Relation.Binary.Lattice.html#9344" class="Field Operator">_≤_</a> <a id="9352" class="Symbol">:</a> <a id="9354" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="9358" href="Relation.Binary.Lattice.html#9266" class="Field">Carrier</a> <a id="9366" href="Relation.Binary.Lattice.html#9170" class="Bound">ℓ₂</a> <a id="9370" class="Comment">-- The partial order.</a>
<a id="DistributiveLattice.__"></a><a id="9396" href="Relation.Binary.Lattice.html#9396" class="Field Operator">__</a> <a id="9404" class="Symbol">:</a> <a id="9406" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="9410" href="Relation.Binary.Lattice.html#9266" class="Field">Carrier</a> <a id="9422" class="Comment">-- The join operation.</a>
<a id="DistributiveLattice._∧_"></a><a id="9449" href="Relation.Binary.Lattice.html#9449" class="Field Operator">_∧_</a> <a id="9457" class="Symbol">:</a> <a id="9459" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="9463" href="Relation.Binary.Lattice.html#9266" class="Field">Carrier</a> <a id="9475" class="Comment">-- The meet operation.</a>
<a id="DistributiveLattice.isDistributiveLattice"></a><a id="9502" href="Relation.Binary.Lattice.html#9502" class="Field">isDistributiveLattice</a> <a id="9524" class="Symbol">:</a> <a id="9526" href="Relation.Binary.Lattice.html#8620" class="Record">IsDistributiveLattice</a> <a id="9548" href="Relation.Binary.Lattice.html#9286" class="Field Operator">_≈_</a> <a id="9552" href="Relation.Binary.Lattice.html#9344" class="Field Operator">_≤_</a> <a id="9556" href="Relation.Binary.Lattice.html#9396" class="Field Operator">__</a> <a id="9560" href="Relation.Binary.Lattice.html#9449" class="Field Operator">_∧_</a>
<a id="9567" class="Keyword">open</a> <a id="9572" href="Relation.Binary.Lattice.html#8620" class="Module">IsDistributiveLattice</a> <a id="9594" href="Relation.Binary.Lattice.html#9502" class="Field">isDistributiveLattice</a> <a id="9616" class="Keyword">using</a> <a id="9622" class="Symbol">(</a><a id="9623" href="Relation.Binary.Lattice.html#9056" class="Field">∧-distribˡ-</a><a id="9635" class="Symbol">)</a> <a id="9637" class="Keyword">public</a>
<a id="9646" class="Keyword">open</a> <a id="9651" href="Relation.Binary.Lattice.html#8620" class="Module">IsDistributiveLattice</a> <a id="9673" href="Relation.Binary.Lattice.html#9502" class="Field">isDistributiveLattice</a> <a id="9695" class="Keyword">using</a> <a id="9701" class="Symbol">(</a><a id="9702" href="Relation.Binary.Lattice.html#9011" class="Field">isLattice</a><a id="9711" class="Symbol">)</a>
<a id="DistributiveLattice.lattice"></a><a id="9716" href="Relation.Binary.Lattice.html#9716" class="Function">lattice</a> <a id="9724" class="Symbol">:</a> <a id="9726" href="Relation.Binary.Lattice.html#7809" class="Record">Lattice</a> <a id="9734" href="Relation.Binary.Lattice.html#9165" class="Bound">c</a> <a id="9736" href="Relation.Binary.Lattice.html#9167" class="Bound">ℓ₁</a> <a id="9739" href="Relation.Binary.Lattice.html#9170" class="Bound">ℓ₂</a>
<a id="9744" href="Relation.Binary.Lattice.html#9716" class="Function">lattice</a> <a id="9752" class="Symbol">=</a> <a id="9754" class="Keyword">record</a> <a id="9761" class="Symbol">{</a> <a id="9763" href="Relation.Binary.Lattice.html#8164" class="Field">isLattice</a> <a id="9773" class="Symbol">=</a> <a id="9775" href="Relation.Binary.Lattice.html#9011" class="Function">isLattice</a> <a id="9785" class="Symbol">}</a>
<a id="9790" class="Keyword">open</a> <a id="9795" href="Relation.Binary.Lattice.html#7809" class="Module">Lattice</a> <a id="9803" href="Relation.Binary.Lattice.html#9716" class="Function">lattice</a> <a id="9811" class="Keyword">hiding</a> <a id="9818" class="Symbol">(</a><a id="9819" href="Relation.Binary.Lattice.html#7918" class="Field">Carrier</a><a id="9826" class="Symbol">;</a> <a id="9828" href="Relation.Binary.Lattice.html#7940" class="Field Operator">_≈_</a><a id="9831" class="Symbol">;</a> <a id="9833" href="Relation.Binary.Lattice.html#8000" class="Field Operator">_≤_</a><a id="9836" class="Symbol">;</a> <a id="9838" href="Relation.Binary.Lattice.html#8054" class="Field Operator">__</a><a id="9841" class="Symbol">;</a> <a id="9843" href="Relation.Binary.Lattice.html#8109" class="Field Operator">_∧_</a><a id="9846" class="Symbol">)</a> <a id="9848" class="Keyword">public</a>
<a id="9856" class="Keyword">record</a> <a id="IsBoundedLattice"></a><a id="9863" href="Relation.Binary.Lattice.html#9863" class="Record">IsBoundedLattice</a> <a id="9880" class="Symbol">{</a><a id="9881" href="Relation.Binary.Lattice.html#9881" class="Bound">a</a> <a id="9883" href="Relation.Binary.Lattice.html#9883" class="Bound">ℓ₁</a> <a id="9886" href="Relation.Binary.Lattice.html#9886" class="Bound">ℓ₂</a><a id="9888" class="Symbol">}</a> <a id="9890" class="Symbol">{</a><a id="9891" href="Relation.Binary.Lattice.html#9891" class="Bound">A</a> <a id="9893" class="Symbol">:</a> <a id="9895" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="9899" href="Relation.Binary.Lattice.html#9881" class="Bound">a</a><a id="9900" class="Symbol">}</a>
<a id="9926" class="Symbol">(</a><a id="9927" href="Relation.Binary.Lattice.html#9927" class="Bound Operator">_≈_</a> <a id="9931" class="Symbol">:</a> <a id="9933" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="9937" href="Relation.Binary.Lattice.html#9891" class="Bound">A</a> <a id="9939" href="Relation.Binary.Lattice.html#9883" class="Bound">ℓ₁</a><a id="9941" class="Symbol">)</a> <a id="9943" class="Comment">-- The underlying equality.</a>
<a id="9995" class="Symbol">(</a><a id="9996" href="Relation.Binary.Lattice.html#9996" class="Bound Operator">_≤_</a> <a id="10000" class="Symbol">:</a> <a id="10002" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="10006" href="Relation.Binary.Lattice.html#9891" class="Bound">A</a> <a id="10008" href="Relation.Binary.Lattice.html#9886" class="Bound">ℓ₂</a><a id="10010" class="Symbol">)</a> <a id="10012" class="Comment">-- The partial order.</a>
<a id="10058" class="Symbol">(</a><a id="10059" href="Relation.Binary.Lattice.html#10059" class="Bound Operator">__</a> <a id="10063" class="Symbol">:</a> <a id="10065" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="10069" href="Relation.Binary.Lattice.html#9891" class="Bound">A</a><a id="10070" class="Symbol">)</a> <a id="10075" class="Comment">-- The join operation.</a>
<a id="10122" class="Symbol">(</a><a id="10123" href="Relation.Binary.Lattice.html#10123" class="Bound Operator">_∧_</a> <a id="10127" class="Symbol">:</a> <a id="10129" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="10133" href="Relation.Binary.Lattice.html#9891" class="Bound">A</a><a id="10134" class="Symbol">)</a> <a id="10139" class="Comment">-- The meet operation.</a>
<a id="10186" class="Symbol">(</a><a id="10187" href="Relation.Binary.Lattice.html#10187" class="Bound"></a> <a id="10191" class="Symbol">:</a> <a id="10193" href="Relation.Binary.Lattice.html#9891" class="Bound">A</a><a id="10194" class="Symbol">)</a> <a id="10203" class="Comment">-- The maximum.</a>
<a id="10243" class="Symbol">(</a><a id="10244" href="Relation.Binary.Lattice.html#10244" class="Bound"></a> <a id="10248" class="Symbol">:</a> <a id="10250" href="Relation.Binary.Lattice.html#9891" class="Bound">A</a><a id="10251" class="Symbol">)</a> <a id="10260" class="Comment">-- The minimum.</a>
<a id="10300" class="Symbol">:</a> <a id="10302" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="10306" class="Symbol">(</a><a id="10307" href="Relation.Binary.Lattice.html#9881" class="Bound">a</a> <a id="10309" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="10311" href="Relation.Binary.Lattice.html#9883" class="Bound">ℓ₁</a> <a id="10314" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="10316" href="Relation.Binary.Lattice.html#9886" class="Bound">ℓ₂</a><a id="10318" class="Symbol">)</a> <a id="10320" class="Keyword">where</a>
<a id="10328" class="Keyword">field</a>
<a id="IsBoundedLattice.isLattice"></a><a id="10338" href="Relation.Binary.Lattice.html#10338" class="Field">isLattice</a> <a id="10348" class="Symbol">:</a> <a id="10350" href="Relation.Binary.Lattice.html#6836" class="Record">IsLattice</a> <a id="10360" href="Relation.Binary.Lattice.html#9927" class="Bound Operator">_≈_</a> <a id="10364" href="Relation.Binary.Lattice.html#9996" class="Bound Operator">_≤_</a> <a id="10368" href="Relation.Binary.Lattice.html#10059" class="Bound Operator">__</a> <a id="10372" href="Relation.Binary.Lattice.html#10123" class="Bound Operator">_∧_</a>
<a id="IsBoundedLattice.maximum"></a><a id="10380" href="Relation.Binary.Lattice.html#10380" class="Field">maximum</a> <a id="10390" class="Symbol">:</a> <a id="10392" href="Relation.Binary.Definitions.html#3197" class="Function">Maximum</a> <a id="10400" href="Relation.Binary.Lattice.html#9996" class="Bound Operator">_≤_</a> <a id="10404" href="Relation.Binary.Lattice.html#10187" class="Bound"></a>
<a id="IsBoundedLattice.minimum"></a><a id="10410" href="Relation.Binary.Lattice.html#10410" class="Field">minimum</a> <a id="10420" class="Symbol">:</a> <a id="10422" href="Relation.Binary.Definitions.html#3346" class="Function">Minimum</a> <a id="10430" href="Relation.Binary.Lattice.html#9996" class="Bound Operator">_≤_</a> <a id="10434" href="Relation.Binary.Lattice.html#10244" class="Bound"></a>
<a id="10439" class="Keyword">open</a> <a id="10444" href="Relation.Binary.Lattice.html#6836" class="Module">IsLattice</a> <a id="10454" href="Relation.Binary.Lattice.html#10338" class="Field">isLattice</a> <a id="10464" class="Keyword">public</a>
<a id="IsBoundedLattice.isBoundedJoinSemilattice"></a><a id="10474" href="Relation.Binary.Lattice.html#10474" class="Function">isBoundedJoinSemilattice</a> <a id="10499" class="Symbol">:</a> <a id="10501" href="Relation.Binary.Lattice.html#2447" class="Record">IsBoundedJoinSemilattice</a> <a id="10526" href="Relation.Binary.Lattice.html#9927" class="Bound Operator">_≈_</a> <a id="10530" href="Relation.Binary.Lattice.html#9996" class="Bound Operator">_≤_</a> <a id="10534" href="Relation.Binary.Lattice.html#10059" class="Bound Operator">__</a> <a id="10538" href="Relation.Binary.Lattice.html#10244" class="Bound"></a>
<a id="10542" href="Relation.Binary.Lattice.html#10474" class="Function">isBoundedJoinSemilattice</a> <a id="10567" class="Symbol">=</a> <a id="10569" class="Keyword">record</a>
<a id="10580" class="Symbol">{</a> <a id="10582" href="Relation.Binary.Lattice.html#2849" class="Field">isJoinSemilattice</a> <a id="10600" class="Symbol">=</a> <a id="10602" href="Relation.Binary.Lattice.html#7273" class="Function">isJoinSemilattice</a>
<a id="10624" class="Symbol">;</a> <a id="10626" href="Relation.Binary.Lattice.html#2903" class="Field">minimum</a> <a id="10644" class="Symbol">=</a> <a id="10646" href="Relation.Binary.Lattice.html#10410" class="Field">minimum</a>
<a id="10658" class="Symbol">}</a>
<a id="IsBoundedLattice.isBoundedMeetSemilattice"></a><a id="10663" href="Relation.Binary.Lattice.html#10663" class="Function">isBoundedMeetSemilattice</a> <a id="10688" class="Symbol">:</a> <a id="10690" href="Relation.Binary.Lattice.html#5280" class="Record">IsBoundedMeetSemilattice</a> <a id="10715" href="Relation.Binary.Lattice.html#9927" class="Bound Operator">_≈_</a> <a id="10719" href="Relation.Binary.Lattice.html#9996" class="Bound Operator">_≤_</a> <a id="10723" href="Relation.Binary.Lattice.html#10123" class="Bound Operator">_∧_</a> <a id="10727" href="Relation.Binary.Lattice.html#10187" class="Bound"></a>
<a id="10731" href="Relation.Binary.Lattice.html#10663" class="Function">isBoundedMeetSemilattice</a> <a id="10756" class="Symbol">=</a> <a id="10758" class="Keyword">record</a>
<a id="10769" class="Symbol">{</a> <a id="10771" href="Relation.Binary.Lattice.html#5682" class="Field">isMeetSemilattice</a> <a id="10789" class="Symbol">=</a> <a id="10791" href="Relation.Binary.Lattice.html#7431" class="Function">isMeetSemilattice</a>
<a id="10813" class="Symbol">;</a> <a id="10815" href="Relation.Binary.Lattice.html#5736" class="Field">maximum</a> <a id="10833" class="Symbol">=</a> <a id="10835" href="Relation.Binary.Lattice.html#10380" class="Field">maximum</a>
<a id="10847" class="Symbol">}</a>
<a id="10850" class="Keyword">record</a> <a id="BoundedLattice"></a><a id="10857" href="Relation.Binary.Lattice.html#10857" class="Record">BoundedLattice</a> <a id="10872" href="Relation.Binary.Lattice.html#10872" class="Bound">c</a> <a id="10874" href="Relation.Binary.Lattice.html#10874" class="Bound">ℓ₁</a> <a id="10877" href="Relation.Binary.Lattice.html#10877" class="Bound">ℓ₂</a> <a id="10880" class="Symbol">:</a> <a id="10882" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="10886" class="Symbol">(</a><a id="10887" href="Agda.Primitive.html#774" class="Primitive">suc</a> <a id="10891" class="Symbol">(</a><a id="10892" href="Relation.Binary.Lattice.html#10872" class="Bound">c</a> <a id="10894" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="10896" href="Relation.Binary.Lattice.html#10874" class="Bound">ℓ₁</a> <a id="10899" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="10901" href="Relation.Binary.Lattice.html#10877" class="Bound">ℓ₂</a><a id="10903" class="Symbol">))</a> <a id="10906" class="Keyword">where</a>
<a id="10914" class="Keyword">infix</a> <a id="10921" class="Number">4</a> <a id="10923" href="Relation.Binary.Lattice.html#11002" class="Field Operator">_≈_</a> <a id="10927" href="Relation.Binary.Lattice.html#11069" class="Field Operator">_≤_</a>
<a id="10933" class="Keyword">infixr</a> <a id="10940" class="Number">6</a> <a id="10942" href="Relation.Binary.Lattice.html#11130" class="Field Operator">__</a>
<a id="10948" class="Keyword">infixr</a> <a id="10955" class="Number">7</a> <a id="10957" href="Relation.Binary.Lattice.html#11192" class="Field Operator">_∧_</a>
<a id="10963" class="Keyword">field</a>
<a id="BoundedLattice.Carrier"></a><a id="10973" href="Relation.Binary.Lattice.html#10973" class="Field">Carrier</a> <a id="10990" class="Symbol">:</a> <a id="10992" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="10996" href="Relation.Binary.Lattice.html#10872" class="Bound">c</a>
<a id="BoundedLattice._≈_"></a><a id="11002" href="Relation.Binary.Lattice.html#11002" class="Field Operator">_≈_</a> <a id="11019" class="Symbol">:</a> <a id="11021" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="11025" href="Relation.Binary.Lattice.html#10973" class="Field">Carrier</a> <a id="11033" href="Relation.Binary.Lattice.html#10874" class="Bound">ℓ₁</a> <a id="11037" class="Comment">-- The underlying equality.</a>
<a id="BoundedLattice._≤_"></a><a id="11069" href="Relation.Binary.Lattice.html#11069" class="Field Operator">_≤_</a> <a id="11086" class="Symbol">:</a> <a id="11088" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="11092" href="Relation.Binary.Lattice.html#10973" class="Field">Carrier</a> <a id="11100" href="Relation.Binary.Lattice.html#10877" class="Bound">ℓ₂</a> <a id="11104" class="Comment">-- The partial order.</a>
<a id="BoundedLattice.__"></a><a id="11130" href="Relation.Binary.Lattice.html#11130" class="Field Operator">__</a> <a id="11147" class="Symbol">:</a> <a id="11149" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="11153" href="Relation.Binary.Lattice.html#10973" class="Field">Carrier</a> <a id="11165" class="Comment">-- The join operation.</a>
<a id="BoundedLattice._∧_"></a><a id="11192" href="Relation.Binary.Lattice.html#11192" class="Field Operator">_∧_</a> <a id="11209" class="Symbol">:</a> <a id="11211" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="11215" href="Relation.Binary.Lattice.html#10973" class="Field">Carrier</a> <a id="11227" class="Comment">-- The meet operation.</a>
<a id="BoundedLattice."></a><a id="11254" href="Relation.Binary.Lattice.html#11254" class="Field"></a> <a id="11271" class="Symbol">:</a> <a id="11273" href="Relation.Binary.Lattice.html#10973" class="Field">Carrier</a> <a id="11289" class="Comment">-- The maximum.</a>
<a id="BoundedLattice.⊥"></a><a id="11309" href="Relation.Binary.Lattice.html#11309" class="Field"></a> <a id="11326" class="Symbol">:</a> <a id="11328" href="Relation.Binary.Lattice.html#10973" class="Field">Carrier</a> <a id="11344" class="Comment">-- The minimum.</a>
<a id="BoundedLattice.isBoundedLattice"></a><a id="11364" href="Relation.Binary.Lattice.html#11364" class="Field">isBoundedLattice</a> <a id="11381" class="Symbol">:</a> <a id="11383" href="Relation.Binary.Lattice.html#9863" class="Record">IsBoundedLattice</a> <a id="11400" href="Relation.Binary.Lattice.html#11002" class="Field Operator">_≈_</a> <a id="11404" href="Relation.Binary.Lattice.html#11069" class="Field Operator">_≤_</a> <a id="11408" href="Relation.Binary.Lattice.html#11130" class="Field Operator">__</a> <a id="11412" href="Relation.Binary.Lattice.html#11192" class="Field Operator">_∧_</a> <a id="11416" href="Relation.Binary.Lattice.html#11254" class="Field"></a> <a id="11418" href="Relation.Binary.Lattice.html#11309" class="Field"></a>
<a id="11423" class="Keyword">open</a> <a id="11428" href="Relation.Binary.Lattice.html#9863" class="Module">IsBoundedLattice</a> <a id="11445" href="Relation.Binary.Lattice.html#11364" class="Field">isBoundedLattice</a> <a id="11462" class="Keyword">public</a>
<a id="BoundedLattice.boundedJoinSemilattice"></a><a id="11472" href="Relation.Binary.Lattice.html#11472" class="Function">boundedJoinSemilattice</a> <a id="11495" class="Symbol">:</a> <a id="11497" href="Relation.Binary.Lattice.html#2996" class="Record">BoundedJoinSemilattice</a> <a id="11520" href="Relation.Binary.Lattice.html#10872" class="Bound">c</a> <a id="11522" href="Relation.Binary.Lattice.html#10874" class="Bound">ℓ₁</a> <a id="11525" href="Relation.Binary.Lattice.html#10877" class="Bound">ℓ₂</a>
<a id="11530" href="Relation.Binary.Lattice.html#11472" class="Function">boundedJoinSemilattice</a> <a id="11553" class="Symbol">=</a> <a id="11555" class="Keyword">record</a>
<a id="11566" class="Symbol">{</a> <a id="11568" href="Relation.Binary.Lattice.html#3419" class="Field">isBoundedJoinSemilattice</a> <a id="11593" class="Symbol">=</a> <a id="11595" href="Relation.Binary.Lattice.html#10474" class="Function">isBoundedJoinSemilattice</a> <a id="11620" class="Symbol">}</a>
<a id="BoundedLattice.boundedMeetSemilattice"></a><a id="11625" href="Relation.Binary.Lattice.html#11625" class="Function">boundedMeetSemilattice</a> <a id="11648" class="Symbol">:</a> <a id="11650" href="Relation.Binary.Lattice.html#5829" class="Record">BoundedMeetSemilattice</a> <a id="11673" href="Relation.Binary.Lattice.html#10872" class="Bound">c</a> <a id="11675" href="Relation.Binary.Lattice.html#10874" class="Bound">ℓ₁</a> <a id="11678" href="Relation.Binary.Lattice.html#10877" class="Bound">ℓ₂</a>
<a id="11683" href="Relation.Binary.Lattice.html#11625" class="Function">boundedMeetSemilattice</a> <a id="11706" class="Symbol">=</a> <a id="11708" class="Keyword">record</a>
<a id="11719" class="Symbol">{</a> <a id="11721" href="Relation.Binary.Lattice.html#6252" class="Field">isBoundedMeetSemilattice</a> <a id="11746" class="Symbol">=</a> <a id="11748" href="Relation.Binary.Lattice.html#10663" class="Function">isBoundedMeetSemilattice</a> <a id="11773" class="Symbol">}</a>
<a id="BoundedLattice.lattice"></a><a id="11778" href="Relation.Binary.Lattice.html#11778" class="Function">lattice</a> <a id="11786" class="Symbol">:</a> <a id="11788" href="Relation.Binary.Lattice.html#7809" class="Record">Lattice</a> <a id="11796" href="Relation.Binary.Lattice.html#10872" class="Bound">c</a> <a id="11798" href="Relation.Binary.Lattice.html#10874" class="Bound">ℓ₁</a> <a id="11801" href="Relation.Binary.Lattice.html#10877" class="Bound">ℓ₂</a>
<a id="11806" href="Relation.Binary.Lattice.html#11778" class="Function">lattice</a> <a id="11814" class="Symbol">=</a> <a id="11816" class="Keyword">record</a> <a id="11823" class="Symbol">{</a> <a id="11825" href="Relation.Binary.Lattice.html#8164" class="Field">isLattice</a> <a id="11835" class="Symbol">=</a> <a id="11837" href="Relation.Binary.Lattice.html#10338" class="Function">isLattice</a> <a id="11847" class="Symbol">}</a>
<a id="11852" class="Keyword">open</a> <a id="11857" href="Relation.Binary.Lattice.html#7809" class="Module">Lattice</a> <a id="11865" href="Relation.Binary.Lattice.html#11778" class="Function">lattice</a> <a id="11873" class="Keyword">public</a>
<a id="11884" class="Keyword">using</a> <a id="11890" class="Symbol">(</a><a id="11891" href="Relation.Binary.Lattice.html#8316" class="Function">joinSemilattice</a><a id="11906" class="Symbol">;</a> <a id="11908" href="Relation.Binary.Lattice.html#8430" class="Function">meetSemilattice</a><a id="11923" class="Symbol">;</a> <a id="11925" href="Relation.Binary.Lattice.html#2320" class="Function">poset</a><a id="11930" class="Symbol">;</a> <a id="11932" href="Relation.Binary.Bundles.html#3323" class="Function">preorder</a><a id="11940" class="Symbol">;</a> <a id="11942" href="Relation.Binary.Lattice.html#8240" class="Function">setoid</a><a id="11948" class="Symbol">)</a>
<a id="11951" class="Comment">------------------------------------------------------------------------</a>
<a id="12024" class="Comment">-- Heyting algebras (a bounded lattice with exponential operator)</a>
<a id="12091" class="Keyword">record</a> <a id="IsHeytingAlgebra"></a><a id="12098" href="Relation.Binary.Lattice.html#12098" class="Record">IsHeytingAlgebra</a> <a id="12115" class="Symbol">{</a><a id="12116" href="Relation.Binary.Lattice.html#12116" class="Bound">a</a> <a id="12118" href="Relation.Binary.Lattice.html#12118" class="Bound">ℓ₁</a> <a id="12121" href="Relation.Binary.Lattice.html#12121" class="Bound">ℓ₂</a><a id="12123" class="Symbol">}</a> <a id="12125" class="Symbol">{</a><a id="12126" href="Relation.Binary.Lattice.html#12126" class="Bound">A</a> <a id="12128" class="Symbol">:</a> <a id="12130" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="12134" href="Relation.Binary.Lattice.html#12116" class="Bound">a</a><a id="12135" class="Symbol">}</a>
<a id="12161" class="Symbol">(</a><a id="12162" href="Relation.Binary.Lattice.html#12162" class="Bound Operator">_≈_</a> <a id="12166" class="Symbol">:</a> <a id="12168" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="12172" href="Relation.Binary.Lattice.html#12126" class="Bound">A</a> <a id="12174" href="Relation.Binary.Lattice.html#12118" class="Bound">ℓ₁</a><a id="12176" class="Symbol">)</a> <a id="12178" class="Comment">-- The underlying equality.</a>
<a id="12230" class="Symbol">(</a><a id="12231" href="Relation.Binary.Lattice.html#12231" class="Bound Operator">_≤_</a> <a id="12235" class="Symbol">:</a> <a id="12237" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="12241" href="Relation.Binary.Lattice.html#12126" class="Bound">A</a> <a id="12243" href="Relation.Binary.Lattice.html#12121" class="Bound">ℓ₂</a><a id="12245" class="Symbol">)</a> <a id="12247" class="Comment">-- The partial order.</a>
<a id="12293" class="Symbol">(</a><a id="12294" href="Relation.Binary.Lattice.html#12294" class="Bound Operator">__</a> <a id="12298" class="Symbol">:</a> <a id="12300" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="12304" href="Relation.Binary.Lattice.html#12126" class="Bound">A</a><a id="12305" class="Symbol">)</a> <a id="12310" class="Comment">-- The join operation.</a>
<a id="12357" class="Symbol">(</a><a id="12358" href="Relation.Binary.Lattice.html#12358" class="Bound Operator">_∧_</a> <a id="12362" class="Symbol">:</a> <a id="12364" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="12368" href="Relation.Binary.Lattice.html#12126" class="Bound">A</a><a id="12369" class="Symbol">)</a> <a id="12374" class="Comment">-- The meet operation.</a>
<a id="12421" class="Symbol">(</a><a id="12422" href="Relation.Binary.Lattice.html#12422" class="Bound Operator">_⇨_</a> <a id="12426" class="Symbol">:</a> <a id="12428" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="12432" href="Relation.Binary.Lattice.html#12126" class="Bound">A</a><a id="12433" class="Symbol">)</a> <a id="12438" class="Comment">-- The exponential operation.</a>
<a id="12492" class="Symbol">(</a><a id="12493" href="Relation.Binary.Lattice.html#12493" class="Bound"></a> <a id="12497" class="Symbol">:</a> <a id="12499" href="Relation.Binary.Lattice.html#12126" class="Bound">A</a><a id="12500" class="Symbol">)</a> <a id="12509" class="Comment">-- The maximum.</a>
<a id="12549" class="Symbol">(</a><a id="12550" href="Relation.Binary.Lattice.html#12550" class="Bound"></a> <a id="12554" class="Symbol">:</a> <a id="12556" href="Relation.Binary.Lattice.html#12126" class="Bound">A</a><a id="12557" class="Symbol">)</a> <a id="12566" class="Comment">-- The minimum.</a>
<a id="12606" class="Symbol">:</a> <a id="12608" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="12612" class="Symbol">(</a><a id="12613" href="Relation.Binary.Lattice.html#12116" class="Bound">a</a> <a id="12615" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="12617" href="Relation.Binary.Lattice.html#12118" class="Bound">ℓ₁</a> <a id="12620" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="12622" href="Relation.Binary.Lattice.html#12121" class="Bound">ℓ₂</a><a id="12624" class="Symbol">)</a> <a id="12626" class="Keyword">where</a>
<a id="12634" class="Keyword">field</a>
<a id="IsHeytingAlgebra.isBoundedLattice"></a><a id="12644" href="Relation.Binary.Lattice.html#12644" class="Field">isBoundedLattice</a> <a id="12661" class="Symbol">:</a> <a id="12663" href="Relation.Binary.Lattice.html#9863" class="Record">IsBoundedLattice</a> <a id="12680" href="Relation.Binary.Lattice.html#12162" class="Bound Operator">_≈_</a> <a id="12684" href="Relation.Binary.Lattice.html#12231" class="Bound Operator">_≤_</a> <a id="12688" href="Relation.Binary.Lattice.html#12294" class="Bound Operator">__</a> <a id="12692" href="Relation.Binary.Lattice.html#12358" class="Bound Operator">_∧_</a> <a id="12696" href="Relation.Binary.Lattice.html#12493" class="Bound"></a> <a id="12698" href="Relation.Binary.Lattice.html#12550" class="Bound"></a>
<a id="IsHeytingAlgebra.exponential"></a><a id="12704" href="Relation.Binary.Lattice.html#12704" class="Field">exponential</a> <a id="12721" class="Symbol">:</a> <a id="12723" href="Relation.Binary.Lattice.html#914" class="Function">Exponential</a> <a id="12735" href="Relation.Binary.Lattice.html#12231" class="Bound Operator">_≤_</a> <a id="12739" href="Relation.Binary.Lattice.html#12358" class="Bound Operator">_∧_</a> <a id="12743" href="Relation.Binary.Lattice.html#12422" class="Bound Operator">_⇨_</a>
<a id="IsHeytingAlgebra.transpose-⇨"></a><a id="12750" href="Relation.Binary.Lattice.html#12750" class="Function">transpose-⇨</a> <a id="12762" class="Symbol">:</a> <a id="12764" class="Symbol"></a> <a id="12766" class="Symbol">{</a><a id="12767" href="Relation.Binary.Lattice.html#12767" class="Bound">w</a> <a id="12769" href="Relation.Binary.Lattice.html#12769" class="Bound">x</a> <a id="12771" href="Relation.Binary.Lattice.html#12771" class="Bound">y</a><a id="12772" class="Symbol">}</a> <a id="12774" class="Symbol"></a> <a id="12776" class="Symbol">(</a><a id="12777" href="Relation.Binary.Lattice.html#12767" class="Bound">w</a> <a id="12779" href="Relation.Binary.Lattice.html#12358" class="Bound Operator"></a> <a id="12781" href="Relation.Binary.Lattice.html#12769" class="Bound">x</a><a id="12782" class="Symbol">)</a> <a id="12784" href="Relation.Binary.Lattice.html#12231" class="Bound Operator"></a> <a id="12786" href="Relation.Binary.Lattice.html#12771" class="Bound">y</a> <a id="12788" class="Symbol"></a> <a id="12790" href="Relation.Binary.Lattice.html#12767" class="Bound">w</a> <a id="12792" href="Relation.Binary.Lattice.html#12231" class="Bound Operator"></a> <a id="12794" class="Symbol">(</a><a id="12795" href="Relation.Binary.Lattice.html#12769" class="Bound">x</a> <a id="12797" href="Relation.Binary.Lattice.html#12422" class="Bound Operator"></a> <a id="12799" href="Relation.Binary.Lattice.html#12771" class="Bound">y</a><a id="12800" class="Symbol">)</a>
<a id="12804" href="Relation.Binary.Lattice.html#12750" class="Function">transpose-⇨</a> <a id="12816" class="Symbol">{</a><a id="12817" href="Relation.Binary.Lattice.html#12817" class="Bound">w</a><a id="12818" class="Symbol">}</a> <a id="12820" class="Symbol">{</a><a id="12821" href="Relation.Binary.Lattice.html#12821" class="Bound">x</a><a id="12822" class="Symbol">}</a> <a id="12824" class="Symbol">{</a><a id="12825" href="Relation.Binary.Lattice.html#12825" class="Bound">y</a><a id="12826" class="Symbol">}</a> <a id="12828" class="Symbol">=</a> <a id="12830" class="Keyword">let</a> <a id="12834" href="Relation.Binary.Lattice.html#12834" class="Bound">pf</a> <a id="12837" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="12839" class="Symbol">_</a> <a id="12841" class="Symbol">=</a> <a id="12843" href="Relation.Binary.Lattice.html#12704" class="Field">exponential</a> <a id="12855" href="Relation.Binary.Lattice.html#12817" class="Bound">w</a> <a id="12857" href="Relation.Binary.Lattice.html#12821" class="Bound">x</a> <a id="12859" href="Relation.Binary.Lattice.html#12825" class="Bound">y</a> <a id="12861" class="Keyword">in</a> <a id="12864" href="Relation.Binary.Lattice.html#12834" class="Bound">pf</a>
<a id="IsHeytingAlgebra.transpose-∧"></a><a id="12870" href="Relation.Binary.Lattice.html#12870" class="Function">transpose-∧</a> <a id="12882" class="Symbol">:</a> <a id="12884" class="Symbol"></a> <a id="12886" class="Symbol">{</a><a id="12887" href="Relation.Binary.Lattice.html#12887" class="Bound">w</a> <a id="12889" href="Relation.Binary.Lattice.html#12889" class="Bound">x</a> <a id="12891" href="Relation.Binary.Lattice.html#12891" class="Bound">y</a><a id="12892" class="Symbol">}</a> <a id="12894" class="Symbol"></a> <a id="12896" href="Relation.Binary.Lattice.html#12887" class="Bound">w</a> <a id="12898" href="Relation.Binary.Lattice.html#12231" class="Bound Operator"></a> <a id="12900" class="Symbol">(</a><a id="12901" href="Relation.Binary.Lattice.html#12889" class="Bound">x</a> <a id="12903" href="Relation.Binary.Lattice.html#12422" class="Bound Operator"></a> <a id="12905" href="Relation.Binary.Lattice.html#12891" class="Bound">y</a><a id="12906" class="Symbol">)</a> <a id="12908" class="Symbol"></a> <a id="12910" class="Symbol">(</a><a id="12911" href="Relation.Binary.Lattice.html#12887" class="Bound">w</a> <a id="12913" href="Relation.Binary.Lattice.html#12358" class="Bound Operator"></a> <a id="12915" href="Relation.Binary.Lattice.html#12889" class="Bound">x</a><a id="12916" class="Symbol">)</a> <a id="12918" href="Relation.Binary.Lattice.html#12231" class="Bound Operator"></a> <a id="12920" href="Relation.Binary.Lattice.html#12891" class="Bound">y</a>
<a id="12924" href="Relation.Binary.Lattice.html#12870" class="Function">transpose-∧</a> <a id="12936" class="Symbol">{</a><a id="12937" href="Relation.Binary.Lattice.html#12937" class="Bound">w</a><a id="12938" class="Symbol">}</a> <a id="12940" class="Symbol">{</a><a id="12941" href="Relation.Binary.Lattice.html#12941" class="Bound">x</a><a id="12942" class="Symbol">}</a> <a id="12944" class="Symbol">{</a><a id="12945" href="Relation.Binary.Lattice.html#12945" class="Bound">y</a><a id="12946" class="Symbol">}</a> <a id="12948" class="Symbol">=</a> <a id="12950" class="Keyword">let</a> <a id="12954" class="Symbol">_</a> <a id="12956" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="12958" href="Relation.Binary.Lattice.html#12958" class="Bound">pf</a> <a id="12961" class="Symbol">=</a> <a id="12963" href="Relation.Binary.Lattice.html#12704" class="Field">exponential</a> <a id="12975" href="Relation.Binary.Lattice.html#12937" class="Bound">w</a> <a id="12977" href="Relation.Binary.Lattice.html#12941" class="Bound">x</a> <a id="12979" href="Relation.Binary.Lattice.html#12945" class="Bound">y</a> <a id="12981" class="Keyword">in</a> <a id="12984" href="Relation.Binary.Lattice.html#12958" class="Bound">pf</a>
<a id="12990" class="Keyword">open</a> <a id="12995" href="Relation.Binary.Lattice.html#9863" class="Module">IsBoundedLattice</a> <a id="13012" href="Relation.Binary.Lattice.html#12644" class="Field">isBoundedLattice</a> <a id="13029" class="Keyword">public</a>
<a id="13037" class="Keyword">record</a> <a id="HeytingAlgebra"></a><a id="13044" href="Relation.Binary.Lattice.html#13044" class="Record">HeytingAlgebra</a> <a id="13059" href="Relation.Binary.Lattice.html#13059" class="Bound">c</a> <a id="13061" href="Relation.Binary.Lattice.html#13061" class="Bound">ℓ₁</a> <a id="13064" href="Relation.Binary.Lattice.html#13064" class="Bound">ℓ₂</a> <a id="13067" class="Symbol">:</a> <a id="13069" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="13073" class="Symbol">(</a><a id="13074" href="Agda.Primitive.html#774" class="Primitive">suc</a> <a id="13078" class="Symbol">(</a><a id="13079" href="Relation.Binary.Lattice.html#13059" class="Bound">c</a> <a id="13081" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="13083" href="Relation.Binary.Lattice.html#13061" class="Bound">ℓ₁</a> <a id="13086" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="13088" href="Relation.Binary.Lattice.html#13064" class="Bound">ℓ₂</a><a id="13090" class="Symbol">))</a> <a id="13093" class="Keyword">where</a>
<a id="13101" class="Keyword">infix</a> <a id="13108" class="Number">4</a> <a id="13110" href="Relation.Binary.Lattice.html#13204" class="Field Operator">_≈_</a> <a id="13114" href="Relation.Binary.Lattice.html#13271" class="Field Operator">_≤_</a>
<a id="13120" class="Keyword">infixr</a> <a id="13127" class="Number">5</a> <a id="13129" href="Relation.Binary.Lattice.html#13456" class="Field Operator">_⇨_</a>
<a id="13135" class="Keyword">infixr</a> <a id="13142" class="Number">6</a> <a id="13144" href="Relation.Binary.Lattice.html#13332" class="Field Operator">__</a>
<a id="13150" class="Keyword">infixr</a> <a id="13157" class="Number">7</a> <a id="13159" href="Relation.Binary.Lattice.html#13394" class="Field Operator">_∧_</a>
<a id="13165" class="Keyword">field</a>
<a id="HeytingAlgebra.Carrier"></a><a id="13175" href="Relation.Binary.Lattice.html#13175" class="Field">Carrier</a> <a id="13192" class="Symbol">:</a> <a id="13194" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="13198" href="Relation.Binary.Lattice.html#13059" class="Bound">c</a>
<a id="HeytingAlgebra._≈_"></a><a id="13204" href="Relation.Binary.Lattice.html#13204" class="Field Operator">_≈_</a> <a id="13221" class="Symbol">:</a> <a id="13223" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="13227" href="Relation.Binary.Lattice.html#13175" class="Field">Carrier</a> <a id="13235" href="Relation.Binary.Lattice.html#13061" class="Bound">ℓ₁</a> <a id="13239" class="Comment">-- The underlying equality.</a>
<a id="HeytingAlgebra._≤_"></a><a id="13271" href="Relation.Binary.Lattice.html#13271" class="Field Operator">_≤_</a> <a id="13288" class="Symbol">:</a> <a id="13290" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="13294" href="Relation.Binary.Lattice.html#13175" class="Field">Carrier</a> <a id="13302" href="Relation.Binary.Lattice.html#13064" class="Bound">ℓ₂</a> <a id="13306" class="Comment">-- The partial order.</a>
<a id="HeytingAlgebra.__"></a><a id="13332" href="Relation.Binary.Lattice.html#13332" class="Field Operator">__</a> <a id="13349" class="Symbol">:</a> <a id="13351" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="13355" href="Relation.Binary.Lattice.html#13175" class="Field">Carrier</a> <a id="13367" class="Comment">-- The join operation.</a>
<a id="HeytingAlgebra._∧_"></a><a id="13394" href="Relation.Binary.Lattice.html#13394" class="Field Operator">_∧_</a> <a id="13411" class="Symbol">:</a> <a id="13413" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="13417" href="Relation.Binary.Lattice.html#13175" class="Field">Carrier</a> <a id="13429" class="Comment">-- The meet operation.</a>
<a id="HeytingAlgebra._⇨_"></a><a id="13456" href="Relation.Binary.Lattice.html#13456" class="Field Operator">_⇨_</a> <a id="13473" class="Symbol">:</a> <a id="13475" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="13479" href="Relation.Binary.Lattice.html#13175" class="Field">Carrier</a> <a id="13491" class="Comment">-- The exponential operation.</a>
<a id="HeytingAlgebra."></a><a id="13525" href="Relation.Binary.Lattice.html#13525" class="Field"></a> <a id="13542" class="Symbol">:</a> <a id="13544" href="Relation.Binary.Lattice.html#13175" class="Field">Carrier</a> <a id="13560" class="Comment">-- The maximum.</a>
<a id="HeytingAlgebra.⊥"></a><a id="13580" href="Relation.Binary.Lattice.html#13580" class="Field"></a> <a id="13597" class="Symbol">:</a> <a id="13599" href="Relation.Binary.Lattice.html#13175" class="Field">Carrier</a> <a id="13615" class="Comment">-- The minimum.</a>
<a id="HeytingAlgebra.isHeytingAlgebra"></a><a id="13635" href="Relation.Binary.Lattice.html#13635" class="Field">isHeytingAlgebra</a> <a id="13652" class="Symbol">:</a> <a id="13654" href="Relation.Binary.Lattice.html#12098" class="Record">IsHeytingAlgebra</a> <a id="13671" href="Relation.Binary.Lattice.html#13204" class="Field Operator">_≈_</a> <a id="13675" href="Relation.Binary.Lattice.html#13271" class="Field Operator">_≤_</a> <a id="13679" href="Relation.Binary.Lattice.html#13332" class="Field Operator">__</a> <a id="13683" href="Relation.Binary.Lattice.html#13394" class="Field Operator">_∧_</a> <a id="13687" href="Relation.Binary.Lattice.html#13456" class="Field Operator">_⇨_</a> <a id="13691" href="Relation.Binary.Lattice.html#13525" class="Field"></a> <a id="13693" href="Relation.Binary.Lattice.html#13580" class="Field"></a>
<a id="HeytingAlgebra.boundedLattice"></a><a id="13698" href="Relation.Binary.Lattice.html#13698" class="Function">boundedLattice</a> <a id="13713" class="Symbol">:</a> <a id="13715" href="Relation.Binary.Lattice.html#10857" class="Record">BoundedLattice</a> <a id="13730" href="Relation.Binary.Lattice.html#13059" class="Bound">c</a> <a id="13732" href="Relation.Binary.Lattice.html#13061" class="Bound">ℓ₁</a> <a id="13735" href="Relation.Binary.Lattice.html#13064" class="Bound">ℓ₂</a>
<a id="13740" href="Relation.Binary.Lattice.html#13698" class="Function">boundedLattice</a> <a id="13755" class="Symbol">=</a> <a id="13757" class="Keyword">record</a>
<a id="13768" class="Symbol">{</a> <a id="13770" href="Relation.Binary.Lattice.html#11364" class="Field">isBoundedLattice</a> <a id="13787" class="Symbol">=</a> <a id="13789" href="Relation.Binary.Lattice.html#12644" class="Field">IsHeytingAlgebra.isBoundedLattice</a> <a id="13823" href="Relation.Binary.Lattice.html#13635" class="Field">isHeytingAlgebra</a> <a id="13840" class="Symbol">}</a>
<a id="13845" class="Keyword">open</a> <a id="13850" href="Relation.Binary.Lattice.html#12098" class="Module">IsHeytingAlgebra</a> <a id="13867" href="Relation.Binary.Lattice.html#13635" class="Field">isHeytingAlgebra</a>
<a id="13888" class="Keyword">using</a> <a id="13894" class="Symbol">(</a><a id="13895" href="Relation.Binary.Lattice.html#12704" class="Field">exponential</a><a id="13906" class="Symbol">;</a> <a id="13908" href="Relation.Binary.Lattice.html#12750" class="Function">transpose-⇨</a><a id="13919" class="Symbol">;</a> <a id="13921" href="Relation.Binary.Lattice.html#12870" class="Function">transpose-∧</a><a id="13932" class="Symbol">)</a> <a id="13934" class="Keyword">public</a>
<a id="13943" class="Keyword">open</a> <a id="13948" href="Relation.Binary.Lattice.html#10857" class="Module">BoundedLattice</a> <a id="13963" href="Relation.Binary.Lattice.html#13698" class="Function">boundedLattice</a>
<a id="13982" class="Keyword">hiding</a> <a id="13989" class="Symbol">(</a><a id="13990" href="Relation.Binary.Lattice.html#10973" class="Field">Carrier</a><a id="13997" class="Symbol">;</a> <a id="13999" href="Relation.Binary.Lattice.html#11002" class="Field Operator">_≈_</a><a id="14002" class="Symbol">;</a> <a id="14004" href="Relation.Binary.Lattice.html#11069" class="Field Operator">_≤_</a><a id="14007" class="Symbol">;</a> <a id="14009" href="Relation.Binary.Lattice.html#11130" class="Field Operator">__</a><a id="14012" class="Symbol">;</a> <a id="14014" href="Relation.Binary.Lattice.html#11192" class="Field Operator">_∧_</a><a id="14017" class="Symbol">;</a> <a id="14019" href="Relation.Binary.Lattice.html#11254" class="Field"></a><a id="14020" class="Symbol">;</a> <a id="14022" href="Relation.Binary.Lattice.html#11309" class="Field"></a><a id="14023" class="Symbol">)</a> <a id="14025" class="Keyword">public</a>
<a id="14033" class="Comment">------------------------------------------------------------------------</a>
<a id="14106" class="Comment">-- Boolean algebras (a specialized Heyting algebra)</a>
<a id="14159" class="Keyword">record</a> <a id="IsBooleanAlgebra"></a><a id="14166" href="Relation.Binary.Lattice.html#14166" class="Record">IsBooleanAlgebra</a> <a id="14183" class="Symbol">{</a><a id="14184" href="Relation.Binary.Lattice.html#14184" class="Bound">a</a> <a id="14186" href="Relation.Binary.Lattice.html#14186" class="Bound">ℓ₁</a> <a id="14189" href="Relation.Binary.Lattice.html#14189" class="Bound">ℓ₂</a><a id="14191" class="Symbol">}</a> <a id="14193" class="Symbol">{</a><a id="14194" href="Relation.Binary.Lattice.html#14194" class="Bound">A</a> <a id="14196" class="Symbol">:</a> <a id="14198" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="14202" href="Relation.Binary.Lattice.html#14184" class="Bound">a</a><a id="14203" class="Symbol">}</a>
<a id="14229" class="Symbol">(</a><a id="14230" href="Relation.Binary.Lattice.html#14230" class="Bound Operator">_≈_</a> <a id="14234" class="Symbol">:</a> <a id="14236" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="14240" href="Relation.Binary.Lattice.html#14194" class="Bound">A</a> <a id="14242" href="Relation.Binary.Lattice.html#14186" class="Bound">ℓ₁</a><a id="14244" class="Symbol">)</a> <a id="14246" class="Comment">-- The underlying equality.</a>
<a id="14298" class="Symbol">(</a><a id="14299" href="Relation.Binary.Lattice.html#14299" class="Bound Operator">_≤_</a> <a id="14303" class="Symbol">:</a> <a id="14305" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="14309" href="Relation.Binary.Lattice.html#14194" class="Bound">A</a> <a id="14311" href="Relation.Binary.Lattice.html#14189" class="Bound">ℓ₂</a><a id="14313" class="Symbol">)</a> <a id="14315" class="Comment">-- The partial order.</a>
<a id="14361" class="Symbol">(</a><a id="14362" href="Relation.Binary.Lattice.html#14362" class="Bound Operator">__</a> <a id="14366" class="Symbol">:</a> <a id="14368" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="14372" href="Relation.Binary.Lattice.html#14194" class="Bound">A</a><a id="14373" class="Symbol">)</a> <a id="14378" class="Comment">-- The join operation.</a>
<a id="14425" class="Symbol">(</a><a id="14426" href="Relation.Binary.Lattice.html#14426" class="Bound Operator">_∧_</a> <a id="14430" class="Symbol">:</a> <a id="14432" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="14436" href="Relation.Binary.Lattice.html#14194" class="Bound">A</a><a id="14437" class="Symbol">)</a> <a id="14442" class="Comment">-- The meet operation.</a>
<a id="14489" class="Symbol">(</a><a id="14490" href="Relation.Binary.Lattice.html#14490" class="Bound Operator">¬_</a> <a id="14493" class="Symbol">:</a> <a id="14495" href="Algebra.Core.html#484" class="Function">Op₁</a> <a id="14499" href="Relation.Binary.Lattice.html#14194" class="Bound">A</a><a id="14500" class="Symbol">)</a> <a id="14506" class="Comment">-- The negation operation.</a>
<a id="14557" class="Symbol">(</a><a id="14558" href="Relation.Binary.Lattice.html#14558" class="Bound"></a> <a id="14562" class="Symbol">:</a> <a id="14564" href="Relation.Binary.Lattice.html#14194" class="Bound">A</a><a id="14565" class="Symbol">)</a> <a id="14574" class="Comment">-- The maximum.</a>
<a id="14614" class="Symbol">(</a><a id="14615" href="Relation.Binary.Lattice.html#14615" class="Bound"></a> <a id="14619" class="Symbol">:</a> <a id="14621" href="Relation.Binary.Lattice.html#14194" class="Bound">A</a><a id="14622" class="Symbol">)</a> <a id="14631" class="Comment">-- The minimum.</a>
<a id="14671" class="Symbol">:</a> <a id="14673" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="14677" class="Symbol">(</a><a id="14678" href="Relation.Binary.Lattice.html#14184" class="Bound">a</a> <a id="14680" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="14682" href="Relation.Binary.Lattice.html#14186" class="Bound">ℓ₁</a> <a id="14685" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="14687" href="Relation.Binary.Lattice.html#14189" class="Bound">ℓ₂</a><a id="14689" class="Symbol">)</a> <a id="14691" class="Keyword">where</a>
<a id="14699" class="Keyword">infixr</a> <a id="14706" class="Number">5</a> <a id="14708" href="Relation.Binary.Lattice.html#14714" class="Function Operator">_⇨_</a>
<a id="IsBooleanAlgebra._⇨_"></a><a id="14714" href="Relation.Binary.Lattice.html#14714" class="Function Operator">_⇨_</a> <a id="14718" class="Symbol">:</a> <a id="14720" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="14724" href="Relation.Binary.Lattice.html#14194" class="Bound">A</a>
<a id="14728" href="Relation.Binary.Lattice.html#14728" class="Bound">x</a> <a id="14730" href="Relation.Binary.Lattice.html#14714" class="Function Operator"></a> <a id="14732" href="Relation.Binary.Lattice.html#14732" class="Bound">y</a> <a id="14734" class="Symbol">=</a> <a id="14736" class="Symbol">(</a><a id="14737" href="Relation.Binary.Lattice.html#14490" class="Bound Operator">¬</a> <a id="14739" href="Relation.Binary.Lattice.html#14728" class="Bound">x</a><a id="14740" class="Symbol">)</a> <a id="14742" href="Relation.Binary.Lattice.html#14362" class="Bound Operator"></a> <a id="14744" href="Relation.Binary.Lattice.html#14732" class="Bound">y</a>
<a id="14749" class="Keyword">field</a>
<a id="IsBooleanAlgebra.isHeytingAlgebra"></a><a id="14759" href="Relation.Binary.Lattice.html#14759" class="Field">isHeytingAlgebra</a> <a id="14776" class="Symbol">:</a> <a id="14778" href="Relation.Binary.Lattice.html#12098" class="Record">IsHeytingAlgebra</a> <a id="14795" href="Relation.Binary.Lattice.html#14230" class="Bound Operator">_≈_</a> <a id="14799" href="Relation.Binary.Lattice.html#14299" class="Bound Operator">_≤_</a> <a id="14803" href="Relation.Binary.Lattice.html#14362" class="Bound Operator">__</a> <a id="14807" href="Relation.Binary.Lattice.html#14426" class="Bound Operator">_∧_</a> <a id="14811" href="Relation.Binary.Lattice.html#14714" class="Function Operator">_⇨_</a> <a id="14815" href="Relation.Binary.Lattice.html#14558" class="Bound"></a> <a id="14817" href="Relation.Binary.Lattice.html#14615" class="Bound"></a>
<a id="14822" class="Keyword">open</a> <a id="14827" href="Relation.Binary.Lattice.html#12098" class="Module">IsHeytingAlgebra</a> <a id="14844" href="Relation.Binary.Lattice.html#14759" class="Field">isHeytingAlgebra</a> <a id="14861" class="Keyword">public</a>
<a id="14869" class="Keyword">record</a> <a id="BooleanAlgebra"></a><a id="14876" href="Relation.Binary.Lattice.html#14876" class="Record">BooleanAlgebra</a> <a id="14891" href="Relation.Binary.Lattice.html#14891" class="Bound">c</a> <a id="14893" href="Relation.Binary.Lattice.html#14893" class="Bound">ℓ₁</a> <a id="14896" href="Relation.Binary.Lattice.html#14896" class="Bound">ℓ₂</a> <a id="14899" class="Symbol">:</a> <a id="14901" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="14905" class="Symbol">(</a><a id="14906" href="Agda.Primitive.html#774" class="Primitive">suc</a> <a id="14910" class="Symbol">(</a><a id="14911" href="Relation.Binary.Lattice.html#14891" class="Bound">c</a> <a id="14913" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="14915" href="Relation.Binary.Lattice.html#14893" class="Bound">ℓ₁</a> <a id="14918" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="14920" href="Relation.Binary.Lattice.html#14896" class="Bound">ℓ₂</a><a id="14922" class="Symbol">))</a> <a id="14925" class="Keyword">where</a>
<a id="14933" class="Keyword">infix</a> <a id="14940" class="Number">4</a> <a id="14942" href="Relation.Binary.Lattice.html#15034" class="Field Operator">_≈_</a> <a id="14946" href="Relation.Binary.Lattice.html#15101" class="Field Operator">_≤_</a>
<a id="14952" class="Keyword">infixr</a> <a id="14959" class="Number">6</a> <a id="14961" href="Relation.Binary.Lattice.html#15162" class="Field Operator">__</a>
<a id="14967" class="Keyword">infixr</a> <a id="14974" class="Number">7</a> <a id="14976" href="Relation.Binary.Lattice.html#15224" class="Field Operator">_∧_</a>
<a id="14982" class="Keyword">infix</a> <a id="14988" class="Number">8</a> <a id="14990" href="Relation.Binary.Lattice.html#15286" class="Field Operator">¬_</a>
<a id="14995" class="Keyword">field</a>
<a id="BooleanAlgebra.Carrier"></a><a id="15005" href="Relation.Binary.Lattice.html#15005" class="Field">Carrier</a> <a id="15022" class="Symbol">:</a> <a id="15024" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="15028" href="Relation.Binary.Lattice.html#14891" class="Bound">c</a>
<a id="BooleanAlgebra._≈_"></a><a id="15034" href="Relation.Binary.Lattice.html#15034" class="Field Operator">_≈_</a> <a id="15051" class="Symbol">:</a> <a id="15053" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="15057" href="Relation.Binary.Lattice.html#15005" class="Field">Carrier</a> <a id="15065" href="Relation.Binary.Lattice.html#14893" class="Bound">ℓ₁</a> <a id="15069" class="Comment">-- The underlying equality.</a>
<a id="BooleanAlgebra._≤_"></a><a id="15101" href="Relation.Binary.Lattice.html#15101" class="Field Operator">_≤_</a> <a id="15118" class="Symbol">:</a> <a id="15120" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="15124" href="Relation.Binary.Lattice.html#15005" class="Field">Carrier</a> <a id="15132" href="Relation.Binary.Lattice.html#14896" class="Bound">ℓ₂</a> <a id="15136" class="Comment">-- The partial order.</a>
<a id="BooleanAlgebra.__"></a><a id="15162" href="Relation.Binary.Lattice.html#15162" class="Field Operator">__</a> <a id="15179" class="Symbol">:</a> <a id="15181" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="15185" href="Relation.Binary.Lattice.html#15005" class="Field">Carrier</a> <a id="15197" class="Comment">-- The join operation.</a>
<a id="BooleanAlgebra._∧_"></a><a id="15224" href="Relation.Binary.Lattice.html#15224" class="Field Operator">_∧_</a> <a id="15241" class="Symbol">:</a> <a id="15243" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="15247" href="Relation.Binary.Lattice.html#15005" class="Field">Carrier</a> <a id="15259" class="Comment">-- The meet operation.</a>
<a id="BooleanAlgebra.¬_"></a><a id="15286" href="Relation.Binary.Lattice.html#15286" class="Field Operator">¬_</a> <a id="15303" class="Symbol">:</a> <a id="15305" href="Algebra.Core.html#484" class="Function">Op₁</a> <a id="15309" href="Relation.Binary.Lattice.html#15005" class="Field">Carrier</a> <a id="15321" class="Comment">-- The negation operation.</a>
<a id="BooleanAlgebra."></a><a id="15352" href="Relation.Binary.Lattice.html#15352" class="Field"></a> <a id="15369" class="Symbol">:</a> <a id="15371" href="Relation.Binary.Lattice.html#15005" class="Field">Carrier</a> <a id="15387" class="Comment">-- The maximum.</a>
<a id="BooleanAlgebra.⊥"></a><a id="15407" href="Relation.Binary.Lattice.html#15407" class="Field"></a> <a id="15424" class="Symbol">:</a> <a id="15426" href="Relation.Binary.Lattice.html#15005" class="Field">Carrier</a> <a id="15442" class="Comment">-- The minimum.</a>
<a id="BooleanAlgebra.isBooleanAlgebra"></a><a id="15462" href="Relation.Binary.Lattice.html#15462" class="Field">isBooleanAlgebra</a> <a id="15479" class="Symbol">:</a> <a id="15481" href="Relation.Binary.Lattice.html#14166" class="Record">IsBooleanAlgebra</a> <a id="15498" href="Relation.Binary.Lattice.html#15034" class="Field Operator">_≈_</a> <a id="15502" href="Relation.Binary.Lattice.html#15101" class="Field Operator">_≤_</a> <a id="15506" href="Relation.Binary.Lattice.html#15162" class="Field Operator">__</a> <a id="15510" href="Relation.Binary.Lattice.html#15224" class="Field Operator">_∧_</a> <a id="15514" href="Relation.Binary.Lattice.html#15286" class="Field Operator">¬_</a> <a id="15517" href="Relation.Binary.Lattice.html#15352" class="Field"></a> <a id="15519" href="Relation.Binary.Lattice.html#15407" class="Field"></a>
<a id="15524" class="Keyword">open</a> <a id="15529" href="Relation.Binary.Lattice.html#14166" class="Module">IsBooleanAlgebra</a> <a id="15546" href="Relation.Binary.Lattice.html#15462" class="Field">isBooleanAlgebra</a> <a id="15563" class="Keyword">using</a> <a id="15569" class="Symbol">(</a><a id="15570" href="Relation.Binary.Lattice.html#14759" class="Field">isHeytingAlgebra</a><a id="15586" class="Symbol">)</a>
<a id="BooleanAlgebra.heytingAlgebra"></a><a id="15591" href="Relation.Binary.Lattice.html#15591" class="Function">heytingAlgebra</a> <a id="15606" class="Symbol">:</a> <a id="15608" href="Relation.Binary.Lattice.html#13044" class="Record">HeytingAlgebra</a> <a id="15623" href="Relation.Binary.Lattice.html#14891" class="Bound">c</a> <a id="15625" href="Relation.Binary.Lattice.html#14893" class="Bound">ℓ₁</a> <a id="15628" href="Relation.Binary.Lattice.html#14896" class="Bound">ℓ₂</a>
<a id="15633" href="Relation.Binary.Lattice.html#15591" class="Function">heytingAlgebra</a> <a id="15648" class="Symbol">=</a> <a id="15650" class="Keyword">record</a> <a id="15657" class="Symbol">{</a> <a id="15659" href="Relation.Binary.Lattice.html#13635" class="Field">isHeytingAlgebra</a> <a id="15676" class="Symbol">=</a> <a id="15678" href="Relation.Binary.Lattice.html#14759" class="Function">isHeytingAlgebra</a> <a id="15695" class="Symbol">}</a>
<a id="15700" class="Keyword">open</a> <a id="15705" href="Relation.Binary.Lattice.html#13044" class="Module">HeytingAlgebra</a> <a id="15720" href="Relation.Binary.Lattice.html#15591" class="Function">heytingAlgebra</a> <a id="15735" class="Keyword">public</a>
<a id="15746" class="Keyword">hiding</a> <a id="15753" class="Symbol">(</a><a id="15754" href="Relation.Binary.Lattice.html#13175" class="Field">Carrier</a><a id="15761" class="Symbol">;</a> <a id="15763" href="Relation.Binary.Lattice.html#13204" class="Field Operator">_≈_</a><a id="15766" class="Symbol">;</a> <a id="15768" href="Relation.Binary.Lattice.html#13271" class="Field Operator">_≤_</a><a id="15771" class="Symbol">;</a> <a id="15773" href="Relation.Binary.Lattice.html#13332" class="Field Operator">__</a><a id="15776" class="Symbol">;</a> <a id="15778" href="Relation.Binary.Lattice.html#13394" class="Field Operator">_∧_</a><a id="15781" class="Symbol">;</a> <a id="15783" href="Relation.Binary.Lattice.html#13525" class="Field"></a><a id="15784" class="Symbol">;</a> <a id="15786" href="Relation.Binary.Lattice.html#13580" class="Field"></a><a id="15787" class="Symbol">)</a>
</pre></body></html>