bsc-leon-vatthauer/agda/bsc-thesis/Relation.Binary.Definitions.html
2024-02-09 17:53:52 +01:00

253 lines
No EOL
96 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.Definitions</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">-- Properties of binary relations</a>
<a id="140" class="Comment">------------------------------------------------------------------------</a>
<a id="214" class="Comment">-- The contents of this module should be accessed via `Relation.Binary`.</a>
<a id="288" class="Symbol">{-#</a> <a id="292" class="Keyword">OPTIONS</a> <a id="300" class="Pragma">--cubical-compatible</a> <a id="321" class="Pragma">--safe</a> <a id="328" class="Symbol">#-}</a>
<a id="333" class="Keyword">module</a> <a id="340" href="Relation.Binary.Definitions.html" class="Module">Relation.Binary.Definitions</a> <a id="368" class="Keyword">where</a>
<a id="375" class="Keyword">open</a> <a id="380" class="Keyword">import</a> <a id="387" href="Agda.Builtin.Equality.html" class="Module">Agda.Builtin.Equality</a> <a id="409" class="Keyword">using</a> <a id="415" class="Symbol">(</a><a id="416" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a><a id="419" class="Symbol">)</a>
<a id="422" class="Keyword">open</a> <a id="427" class="Keyword">import</a> <a id="434" href="Data.Maybe.Base.html" class="Module">Data.Maybe.Base</a> <a id="450" class="Keyword">using</a> <a id="456" class="Symbol">(</a><a id="457" href="Agda.Builtin.Maybe.html#135" class="Datatype">Maybe</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="Data.Product.Base.html" class="Module">Data.Product.Base</a> <a id="494" class="Keyword">using</a> <a id="500" class="Symbol">(</a><a id="501" href="Data.Product.Base.html#1618" class="Function Operator">_×_</a><a id="504" class="Symbol">;</a> <a id="506" href="Data.Product.Base.html#1371" class="Function">∃-syntax</a><a id="514" class="Symbol">)</a>
<a id="516" class="Keyword">open</a> <a id="521" class="Keyword">import</a> <a id="528" href="Data.Sum.Base.html" class="Module">Data.Sum.Base</a> <a id="542" class="Keyword">using</a> <a id="548" class="Symbol">(</a><a id="549" href="Data.Sum.Base.html#625" class="Datatype Operator">_⊎_</a><a id="552" class="Symbol">)</a>
<a id="554" class="Keyword">open</a> <a id="559" class="Keyword">import</a> <a id="566" href="Function.Base.html" class="Module">Function.Base</a> <a id="580" class="Keyword">using</a> <a id="586" class="Symbol">(</a><a id="587" href="Function.Base.html#6209" class="Function Operator">_on_</a><a id="591" class="Symbol">;</a> <a id="593" href="Function.Base.html#1638" class="Function">flip</a><a id="597" class="Symbol">)</a>
<a id="599" class="Keyword">open</a> <a id="604" class="Keyword">import</a> <a id="611" href="Level.html" class="Module">Level</a>
<a id="617" class="Keyword">open</a> <a id="622" class="Keyword">import</a> <a id="629" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a>
<a id="650" class="Keyword">open</a> <a id="655" class="Keyword">import</a> <a id="662" href="Relation.Nullary.Decidable.Core.html" class="Module">Relation.Nullary.Decidable.Core</a> <a id="694" class="Keyword">using</a> <a id="700" class="Symbol">(</a><a id="701" href="Relation.Nullary.Decidable.Core.html#1485" class="Record">Dec</a><a id="704" class="Symbol">)</a>
<a id="706" class="Keyword">open</a> <a id="711" class="Keyword">import</a> <a id="718" href="Relation.Nullary.Negation.Core.html" class="Module">Relation.Nullary.Negation.Core</a> <a id="749" class="Keyword">using</a> <a id="755" class="Symbol">(</a><a id="756" href="Relation.Nullary.Negation.Core.html#698" class="Function Operator">¬_</a><a id="758" class="Symbol">)</a>
<a id="761" class="Keyword">private</a>
<a id="771" class="Keyword">variable</a>
<a id="784" href="Relation.Binary.Definitions.html#784" class="Generalizable">a</a> <a id="786" href="Relation.Binary.Definitions.html#786" class="Generalizable">b</a> <a id="788" href="Relation.Binary.Definitions.html#788" class="Generalizable">c</a> <a id="790" href="Relation.Binary.Definitions.html#790" class="Generalizable"></a> <a id="792" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a> <a id="795" href="Relation.Binary.Definitions.html#795" class="Generalizable">ℓ₂</a> <a id="798" href="Relation.Binary.Definitions.html#798" class="Generalizable">ℓ₃</a> <a id="801" class="Symbol">:</a> <a id="803" href="Agda.Primitive.html#742" class="Postulate">Level</a>
<a id="813" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="815" class="Symbol">:</a> <a id="817" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="821" href="Relation.Binary.Definitions.html#784" class="Generalizable">a</a>
<a id="827" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="829" class="Symbol">:</a> <a id="831" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="835" href="Relation.Binary.Definitions.html#786" class="Generalizable">b</a>
<a id="841" href="Relation.Binary.Definitions.html#841" class="Generalizable">C</a> <a id="843" class="Symbol">:</a> <a id="845" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="849" href="Relation.Binary.Definitions.html#788" class="Generalizable">c</a>
<a id="852" class="Comment">------------------------------------------------------------------------</a>
<a id="925" class="Comment">-- Definitions</a>
<a id="940" class="Comment">------------------------------------------------------------------------</a>
<a id="1014" class="Comment">-- Reflexivity - defined without an underlying equality. It could</a>
<a id="1080" class="Comment">-- alternatively be defined as `_≈_ ⇒ __` for some equality `_≈_`.</a>
<a id="1149" class="Comment">-- Confusingly the convention in the library is to use the name &quot;refl&quot;</a>
<a id="1220" class="Comment">-- for proofs of Reflexive and `reflexive` for proofs of type `_≈_ ⇒ __`,</a>
<a id="1295" class="Comment">-- e.g. in the definition of `IsEquivalence` later in this file. This</a>
<a id="1365" class="Comment">-- convention is a legacy from the early days of the library.</a>
<a id="Reflexive"></a><a id="1428" href="Relation.Binary.Definitions.html#1428" class="Function">Reflexive</a> <a id="1438" class="Symbol">:</a> <a id="1440" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="1444" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="1446" href="Relation.Binary.Definitions.html#790" class="Generalizable"></a> <a id="1448" class="Symbol"></a> <a id="1450" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1454" class="Symbol">_</a>
<a id="1456" href="Relation.Binary.Definitions.html#1428" class="Function">Reflexive</a> <a id="1466" href="Relation.Binary.Definitions.html#1466" class="Bound Operator">__</a> <a id="1470" class="Symbol">=</a> <a id="1472" class="Symbol"></a> <a id="1474" class="Symbol">{</a><a id="1475" href="Relation.Binary.Definitions.html#1475" class="Bound">x</a><a id="1476" class="Symbol">}</a> <a id="1478" class="Symbol"></a> <a id="1480" href="Relation.Binary.Definitions.html#1475" class="Bound">x</a> <a id="1482" href="Relation.Binary.Definitions.html#1466" class="Bound Operator"></a> <a id="1484" href="Relation.Binary.Definitions.html#1475" class="Bound">x</a>
<a id="1487" class="Comment">-- Generalised symmetry.</a>
<a id="Sym"></a><a id="1513" href="Relation.Binary.Definitions.html#1513" class="Function">Sym</a> <a id="1517" class="Symbol">:</a> <a id="1519" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="1523" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="1525" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="1527" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a> <a id="1530" class="Symbol"></a> <a id="1532" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="1536" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="1538" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="1540" href="Relation.Binary.Definitions.html#795" class="Generalizable">ℓ₂</a> <a id="1543" class="Symbol"></a> <a id="1545" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1549" class="Symbol">_</a>
<a id="1551" href="Relation.Binary.Definitions.html#1513" class="Function">Sym</a> <a id="1555" href="Relation.Binary.Definitions.html#1555" class="Bound">P</a> <a id="1557" href="Relation.Binary.Definitions.html#1557" class="Bound">Q</a> <a id="1559" class="Symbol">=</a> <a id="1561" href="Relation.Binary.Definitions.html#1555" class="Bound">P</a> <a id="1563" href="Relation.Binary.Core.html#1268" class="Function Operator"></a> <a id="1565" href="Function.Base.html#1638" class="Function">flip</a> <a id="1570" href="Relation.Binary.Definitions.html#1557" class="Bound">Q</a>
<a id="1573" class="Comment">-- Symmetry.</a>
<a id="Symmetric"></a><a id="1587" href="Relation.Binary.Definitions.html#1587" class="Function">Symmetric</a> <a id="1597" class="Symbol">:</a> <a id="1599" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="1603" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="1605" href="Relation.Binary.Definitions.html#790" class="Generalizable"></a> <a id="1607" class="Symbol"></a> <a id="1609" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1613" class="Symbol">_</a>
<a id="1615" href="Relation.Binary.Definitions.html#1587" class="Function">Symmetric</a> <a id="1625" href="Relation.Binary.Definitions.html#1625" class="Bound Operator">__</a> <a id="1629" class="Symbol">=</a> <a id="1631" href="Relation.Binary.Definitions.html#1513" class="Function">Sym</a> <a id="1635" href="Relation.Binary.Definitions.html#1625" class="Bound Operator">__</a> <a id="1639" href="Relation.Binary.Definitions.html#1625" class="Bound Operator">__</a>
<a id="1644" class="Comment">-- Generalised transitivity.</a>
<a id="Trans"></a><a id="1674" href="Relation.Binary.Definitions.html#1674" class="Function">Trans</a> <a id="1680" class="Symbol">:</a> <a id="1682" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="1686" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="1688" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="1690" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a> <a id="1693" class="Symbol"></a> <a id="1695" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="1699" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="1701" href="Relation.Binary.Definitions.html#841" class="Generalizable">C</a> <a id="1703" href="Relation.Binary.Definitions.html#795" class="Generalizable">ℓ₂</a> <a id="1706" class="Symbol"></a> <a id="1708" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="1712" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="1714" href="Relation.Binary.Definitions.html#841" class="Generalizable">C</a> <a id="1716" href="Relation.Binary.Definitions.html#798" class="Generalizable">ℓ₃</a> <a id="1719" class="Symbol"></a> <a id="1721" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1725" class="Symbol">_</a>
<a id="1727" href="Relation.Binary.Definitions.html#1674" class="Function">Trans</a> <a id="1733" href="Relation.Binary.Definitions.html#1733" class="Bound">P</a> <a id="1735" href="Relation.Binary.Definitions.html#1735" class="Bound">Q</a> <a id="1737" href="Relation.Binary.Definitions.html#1737" class="Bound">R</a> <a id="1739" class="Symbol">=</a> <a id="1741" class="Symbol"></a> <a id="1743" class="Symbol">{</a><a id="1744" href="Relation.Binary.Definitions.html#1744" class="Bound">i</a> <a id="1746" href="Relation.Binary.Definitions.html#1746" class="Bound">j</a> <a id="1748" href="Relation.Binary.Definitions.html#1748" class="Bound">k</a><a id="1749" class="Symbol">}</a> <a id="1751" class="Symbol"></a> <a id="1753" href="Relation.Binary.Definitions.html#1733" class="Bound">P</a> <a id="1755" href="Relation.Binary.Definitions.html#1744" class="Bound">i</a> <a id="1757" href="Relation.Binary.Definitions.html#1746" class="Bound">j</a> <a id="1759" class="Symbol"></a> <a id="1761" href="Relation.Binary.Definitions.html#1735" class="Bound">Q</a> <a id="1763" href="Relation.Binary.Definitions.html#1746" class="Bound">j</a> <a id="1765" href="Relation.Binary.Definitions.html#1748" class="Bound">k</a> <a id="1767" class="Symbol"></a> <a id="1769" href="Relation.Binary.Definitions.html#1737" class="Bound">R</a> <a id="1771" href="Relation.Binary.Definitions.html#1744" class="Bound">i</a> <a id="1773" href="Relation.Binary.Definitions.html#1748" class="Bound">k</a>
<a id="RightTrans"></a><a id="1776" href="Relation.Binary.Definitions.html#1776" class="Function">RightTrans</a> <a id="1787" class="Symbol">:</a> <a id="1789" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="1793" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="1795" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="1797" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a> <a id="1800" class="Symbol"></a> <a id="1802" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="1806" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="1808" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="1810" href="Relation.Binary.Definitions.html#795" class="Generalizable">ℓ₂</a> <a id="1813" class="Symbol"></a> <a id="1815" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1819" class="Symbol">_</a>
<a id="1821" href="Relation.Binary.Definitions.html#1776" class="Function">RightTrans</a> <a id="1832" href="Relation.Binary.Definitions.html#1832" class="Bound">R</a> <a id="1834" href="Relation.Binary.Definitions.html#1834" class="Bound">S</a> <a id="1836" class="Symbol">=</a> <a id="1838" href="Relation.Binary.Definitions.html#1674" class="Function">Trans</a> <a id="1844" href="Relation.Binary.Definitions.html#1832" class="Bound">R</a> <a id="1846" href="Relation.Binary.Definitions.html#1834" class="Bound">S</a> <a id="1848" href="Relation.Binary.Definitions.html#1832" class="Bound">R</a>
<a id="LeftTrans"></a><a id="1851" href="Relation.Binary.Definitions.html#1851" class="Function">LeftTrans</a> <a id="1861" class="Symbol">:</a> <a id="1863" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="1867" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="1869" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="1871" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a> <a id="1874" class="Symbol"></a> <a id="1876" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="1880" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="1882" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="1884" href="Relation.Binary.Definitions.html#795" class="Generalizable">ℓ₂</a> <a id="1887" class="Symbol"></a> <a id="1889" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1893" class="Symbol">_</a>
<a id="1895" href="Relation.Binary.Definitions.html#1851" class="Function">LeftTrans</a> <a id="1905" href="Relation.Binary.Definitions.html#1905" class="Bound">S</a> <a id="1907" href="Relation.Binary.Definitions.html#1907" class="Bound">R</a> <a id="1909" class="Symbol">=</a> <a id="1911" href="Relation.Binary.Definitions.html#1674" class="Function">Trans</a> <a id="1917" href="Relation.Binary.Definitions.html#1905" class="Bound">S</a> <a id="1919" href="Relation.Binary.Definitions.html#1907" class="Bound">R</a> <a id="1921" href="Relation.Binary.Definitions.html#1907" class="Bound">R</a>
<a id="1924" class="Comment">-- A flipped variant of generalised transitivity.</a>
<a id="TransFlip"></a><a id="1975" href="Relation.Binary.Definitions.html#1975" class="Function">TransFlip</a> <a id="1985" class="Symbol">:</a> <a id="1987" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="1991" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="1993" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="1995" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a> <a id="1998" class="Symbol"></a> <a id="2000" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="2004" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="2006" href="Relation.Binary.Definitions.html#841" class="Generalizable">C</a> <a id="2008" href="Relation.Binary.Definitions.html#795" class="Generalizable">ℓ₂</a> <a id="2011" class="Symbol"></a> <a id="2013" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="2017" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="2019" href="Relation.Binary.Definitions.html#841" class="Generalizable">C</a> <a id="2021" href="Relation.Binary.Definitions.html#798" class="Generalizable">ℓ₃</a> <a id="2024" class="Symbol"></a> <a id="2026" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2030" class="Symbol">_</a>
<a id="2032" href="Relation.Binary.Definitions.html#1975" class="Function">TransFlip</a> <a id="2042" href="Relation.Binary.Definitions.html#2042" class="Bound">P</a> <a id="2044" href="Relation.Binary.Definitions.html#2044" class="Bound">Q</a> <a id="2046" href="Relation.Binary.Definitions.html#2046" class="Bound">R</a> <a id="2048" class="Symbol">=</a> <a id="2050" class="Symbol"></a> <a id="2052" class="Symbol">{</a><a id="2053" href="Relation.Binary.Definitions.html#2053" class="Bound">i</a> <a id="2055" href="Relation.Binary.Definitions.html#2055" class="Bound">j</a> <a id="2057" href="Relation.Binary.Definitions.html#2057" class="Bound">k</a><a id="2058" class="Symbol">}</a> <a id="2060" class="Symbol"></a> <a id="2062" href="Relation.Binary.Definitions.html#2044" class="Bound">Q</a> <a id="2064" href="Relation.Binary.Definitions.html#2055" class="Bound">j</a> <a id="2066" href="Relation.Binary.Definitions.html#2057" class="Bound">k</a> <a id="2068" class="Symbol"></a> <a id="2070" href="Relation.Binary.Definitions.html#2042" class="Bound">P</a> <a id="2072" href="Relation.Binary.Definitions.html#2053" class="Bound">i</a> <a id="2074" href="Relation.Binary.Definitions.html#2055" class="Bound">j</a> <a id="2076" class="Symbol"></a> <a id="2078" href="Relation.Binary.Definitions.html#2046" class="Bound">R</a> <a id="2080" href="Relation.Binary.Definitions.html#2053" class="Bound">i</a> <a id="2082" href="Relation.Binary.Definitions.html#2057" class="Bound">k</a>
<a id="2085" class="Comment">-- Transitivity.</a>
<a id="Transitive"></a><a id="2103" href="Relation.Binary.Definitions.html#2103" class="Function">Transitive</a> <a id="2114" class="Symbol">:</a> <a id="2116" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="2120" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="2122" href="Relation.Binary.Definitions.html#790" class="Generalizable"></a> <a id="2124" class="Symbol"></a> <a id="2126" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2130" class="Symbol">_</a>
<a id="2132" href="Relation.Binary.Definitions.html#2103" class="Function">Transitive</a> <a id="2143" href="Relation.Binary.Definitions.html#2143" class="Bound Operator">__</a> <a id="2147" class="Symbol">=</a> <a id="2149" href="Relation.Binary.Definitions.html#1674" class="Function">Trans</a> <a id="2155" href="Relation.Binary.Definitions.html#2143" class="Bound Operator">__</a> <a id="2159" href="Relation.Binary.Definitions.html#2143" class="Bound Operator">__</a> <a id="2163" href="Relation.Binary.Definitions.html#2143" class="Bound Operator">__</a>
<a id="2168" class="Comment">-- Generalised antisymmetry</a>
<a id="Antisym"></a><a id="2197" href="Relation.Binary.Definitions.html#2197" class="Function">Antisym</a> <a id="2205" class="Symbol">:</a> <a id="2207" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="2211" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="2213" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="2215" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a> <a id="2218" class="Symbol"></a> <a id="2220" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="2224" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="2226" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="2228" href="Relation.Binary.Definitions.html#795" class="Generalizable">ℓ₂</a> <a id="2231" class="Symbol"></a> <a id="2233" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="2237" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="2239" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="2241" href="Relation.Binary.Definitions.html#798" class="Generalizable">ℓ₃</a> <a id="2244" class="Symbol"></a> <a id="2246" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2250" class="Symbol">_</a>
<a id="2252" href="Relation.Binary.Definitions.html#2197" class="Function">Antisym</a> <a id="2260" href="Relation.Binary.Definitions.html#2260" class="Bound">R</a> <a id="2262" href="Relation.Binary.Definitions.html#2262" class="Bound">S</a> <a id="2264" href="Relation.Binary.Definitions.html#2264" class="Bound">E</a> <a id="2266" class="Symbol">=</a> <a id="2268" class="Symbol"></a> <a id="2270" class="Symbol">{</a><a id="2271" href="Relation.Binary.Definitions.html#2271" class="Bound">i</a> <a id="2273" href="Relation.Binary.Definitions.html#2273" class="Bound">j</a><a id="2274" class="Symbol">}</a> <a id="2276" class="Symbol"></a> <a id="2278" href="Relation.Binary.Definitions.html#2260" class="Bound">R</a> <a id="2280" href="Relation.Binary.Definitions.html#2271" class="Bound">i</a> <a id="2282" href="Relation.Binary.Definitions.html#2273" class="Bound">j</a> <a id="2284" class="Symbol"></a> <a id="2286" href="Relation.Binary.Definitions.html#2262" class="Bound">S</a> <a id="2288" href="Relation.Binary.Definitions.html#2273" class="Bound">j</a> <a id="2290" href="Relation.Binary.Definitions.html#2271" class="Bound">i</a> <a id="2292" class="Symbol"></a> <a id="2294" href="Relation.Binary.Definitions.html#2264" class="Bound">E</a> <a id="2296" href="Relation.Binary.Definitions.html#2271" class="Bound">i</a> <a id="2298" href="Relation.Binary.Definitions.html#2273" class="Bound">j</a>
<a id="2301" class="Comment">-- Antisymmetry.</a>
<a id="Antisymmetric"></a><a id="2319" href="Relation.Binary.Definitions.html#2319" class="Function">Antisymmetric</a> <a id="2333" class="Symbol">:</a> <a id="2335" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="2339" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="2341" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a> <a id="2344" class="Symbol"></a> <a id="2346" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="2350" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="2352" href="Relation.Binary.Definitions.html#795" class="Generalizable">ℓ₂</a> <a id="2355" class="Symbol"></a> <a id="2357" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2361" class="Symbol">_</a>
<a id="2363" href="Relation.Binary.Definitions.html#2319" class="Function">Antisymmetric</a> <a id="2377" href="Relation.Binary.Definitions.html#2377" class="Bound Operator">_≈_</a> <a id="2381" href="Relation.Binary.Definitions.html#2381" class="Bound Operator">_≤_</a> <a id="2385" class="Symbol">=</a> <a id="2387" href="Relation.Binary.Definitions.html#2197" class="Function">Antisym</a> <a id="2395" href="Relation.Binary.Definitions.html#2381" class="Bound Operator">_≤_</a> <a id="2399" href="Relation.Binary.Definitions.html#2381" class="Bound Operator">_≤_</a> <a id="2403" href="Relation.Binary.Definitions.html#2377" class="Bound Operator">_≈_</a>
<a id="2408" class="Comment">-- Irreflexivity - this is defined terms of the underlying equality.</a>
<a id="Irreflexive"></a><a id="2478" href="Relation.Binary.Definitions.html#2478" class="Function">Irreflexive</a> <a id="2490" class="Symbol">:</a> <a id="2492" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="2496" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="2498" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="2500" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a> <a id="2503" class="Symbol"></a> <a id="2505" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="2509" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="2511" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="2513" href="Relation.Binary.Definitions.html#795" class="Generalizable">ℓ₂</a> <a id="2516" class="Symbol"></a> <a id="2518" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2522" class="Symbol">_</a>
<a id="2524" href="Relation.Binary.Definitions.html#2478" class="Function">Irreflexive</a> <a id="2536" href="Relation.Binary.Definitions.html#2536" class="Bound Operator">_≈_</a> <a id="2540" href="Relation.Binary.Definitions.html#2540" class="Bound Operator">_&lt;_</a> <a id="2544" class="Symbol">=</a> <a id="2546" class="Symbol"></a> <a id="2548" class="Symbol">{</a><a id="2549" href="Relation.Binary.Definitions.html#2549" class="Bound">x</a> <a id="2551" href="Relation.Binary.Definitions.html#2551" class="Bound">y</a><a id="2552" class="Symbol">}</a> <a id="2554" class="Symbol"></a> <a id="2556" href="Relation.Binary.Definitions.html#2549" class="Bound">x</a> <a id="2558" href="Relation.Binary.Definitions.html#2536" class="Bound Operator"></a> <a id="2560" href="Relation.Binary.Definitions.html#2551" class="Bound">y</a> <a id="2562" class="Symbol"></a> <a id="2564" href="Relation.Nullary.Negation.Core.html#698" class="Function Operator">¬</a> <a id="2566" class="Symbol">(</a><a id="2567" href="Relation.Binary.Definitions.html#2549" class="Bound">x</a> <a id="2569" href="Relation.Binary.Definitions.html#2540" class="Bound Operator">&lt;</a> <a id="2571" href="Relation.Binary.Definitions.html#2551" class="Bound">y</a><a id="2572" class="Symbol">)</a>
<a id="2575" class="Comment">-- Asymmetry.</a>
<a id="Asymmetric"></a><a id="2590" href="Relation.Binary.Definitions.html#2590" class="Function">Asymmetric</a> <a id="2601" class="Symbol">:</a> <a id="2603" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="2607" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="2609" href="Relation.Binary.Definitions.html#790" class="Generalizable"></a> <a id="2611" class="Symbol"></a> <a id="2613" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2617" class="Symbol">_</a>
<a id="2619" href="Relation.Binary.Definitions.html#2590" class="Function">Asymmetric</a> <a id="2630" href="Relation.Binary.Definitions.html#2630" class="Bound Operator">_&lt;_</a> <a id="2634" class="Symbol">=</a> <a id="2636" class="Symbol"></a> <a id="2638" class="Symbol">{</a><a id="2639" href="Relation.Binary.Definitions.html#2639" class="Bound">x</a> <a id="2641" href="Relation.Binary.Definitions.html#2641" class="Bound">y</a><a id="2642" class="Symbol">}</a> <a id="2644" class="Symbol"></a> <a id="2646" href="Relation.Binary.Definitions.html#2639" class="Bound">x</a> <a id="2648" href="Relation.Binary.Definitions.html#2630" class="Bound Operator">&lt;</a> <a id="2650" href="Relation.Binary.Definitions.html#2641" class="Bound">y</a> <a id="2652" class="Symbol"></a> <a id="2654" href="Relation.Nullary.Negation.Core.html#698" class="Function Operator">¬</a> <a id="2656" class="Symbol">(</a><a id="2657" href="Relation.Binary.Definitions.html#2641" class="Bound">y</a> <a id="2659" href="Relation.Binary.Definitions.html#2630" class="Bound Operator">&lt;</a> <a id="2661" href="Relation.Binary.Definitions.html#2639" class="Bound">x</a><a id="2662" class="Symbol">)</a>
<a id="2665" class="Comment">-- Density</a>
<a id="Dense"></a><a id="2677" href="Relation.Binary.Definitions.html#2677" class="Function">Dense</a> <a id="2683" class="Symbol">:</a> <a id="2685" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="2689" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="2691" href="Relation.Binary.Definitions.html#790" class="Generalizable"></a> <a id="2693" class="Symbol"></a> <a id="2695" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2699" class="Symbol">_</a>
<a id="2701" href="Relation.Binary.Definitions.html#2677" class="Function">Dense</a> <a id="2707" href="Relation.Binary.Definitions.html#2707" class="Bound Operator">_&lt;_</a> <a id="2711" class="Symbol">=</a> <a id="2713" class="Symbol"></a> <a id="2715" class="Symbol">{</a><a id="2716" href="Relation.Binary.Definitions.html#2716" class="Bound">x</a> <a id="2718" href="Relation.Binary.Definitions.html#2718" class="Bound">y</a><a id="2719" class="Symbol">}</a> <a id="2721" class="Symbol"></a> <a id="2723" href="Relation.Binary.Definitions.html#2716" class="Bound">x</a> <a id="2725" href="Relation.Binary.Definitions.html#2707" class="Bound Operator">&lt;</a> <a id="2727" href="Relation.Binary.Definitions.html#2718" class="Bound">y</a> <a id="2729" class="Symbol"></a> <a id="2731" href="Data.Product.Base.html#1371" class="Function">∃[</a> <a id="2734" href="Relation.Binary.Definitions.html#2734" class="Bound">z</a> <a id="2736" href="Data.Product.Base.html#1371" class="Function">]</a> <a id="2738" href="Relation.Binary.Definitions.html#2716" class="Bound">x</a> <a id="2740" href="Relation.Binary.Definitions.html#2707" class="Bound Operator">&lt;</a> <a id="2742" href="Relation.Binary.Definitions.html#2734" class="Bound">z</a> <a id="2744" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="2746" href="Relation.Binary.Definitions.html#2734" class="Bound">z</a> <a id="2748" href="Relation.Binary.Definitions.html#2707" class="Bound Operator">&lt;</a> <a id="2750" href="Relation.Binary.Definitions.html#2718" class="Bound">y</a>
<a id="2753" class="Comment">-- Generalised connex - at least one of the two relations holds.</a>
<a id="Connex"></a><a id="2819" href="Relation.Binary.Definitions.html#2819" class="Function">Connex</a> <a id="2826" class="Symbol">:</a> <a id="2828" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="2832" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="2834" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="2836" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a> <a id="2839" class="Symbol"></a> <a id="2841" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="2845" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="2847" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="2849" href="Relation.Binary.Definitions.html#795" class="Generalizable">ℓ₂</a> <a id="2852" class="Symbol"></a> <a id="2854" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2858" class="Symbol">_</a>
<a id="2860" href="Relation.Binary.Definitions.html#2819" class="Function">Connex</a> <a id="2867" href="Relation.Binary.Definitions.html#2867" class="Bound">P</a> <a id="2869" href="Relation.Binary.Definitions.html#2869" class="Bound">Q</a> <a id="2871" class="Symbol">=</a> <a id="2873" class="Symbol"></a> <a id="2875" href="Relation.Binary.Definitions.html#2875" class="Bound">x</a> <a id="2877" href="Relation.Binary.Definitions.html#2877" class="Bound">y</a> <a id="2879" class="Symbol"></a> <a id="2881" href="Relation.Binary.Definitions.html#2867" class="Bound">P</a> <a id="2883" href="Relation.Binary.Definitions.html#2875" class="Bound">x</a> <a id="2885" href="Relation.Binary.Definitions.html#2877" class="Bound">y</a> <a id="2887" href="Data.Sum.Base.html#625" class="Datatype Operator"></a> <a id="2889" href="Relation.Binary.Definitions.html#2869" class="Bound">Q</a> <a id="2891" href="Relation.Binary.Definitions.html#2877" class="Bound">y</a> <a id="2893" href="Relation.Binary.Definitions.html#2875" class="Bound">x</a>
<a id="2896" class="Comment">-- Totality.</a>
<a id="Total"></a><a id="2910" href="Relation.Binary.Definitions.html#2910" class="Function">Total</a> <a id="2916" class="Symbol">:</a> <a id="2918" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="2922" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="2924" href="Relation.Binary.Definitions.html#790" class="Generalizable"></a> <a id="2926" class="Symbol"></a> <a id="2928" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2932" class="Symbol">_</a>
<a id="2934" href="Relation.Binary.Definitions.html#2910" class="Function">Total</a> <a id="2940" href="Relation.Binary.Definitions.html#2940" class="Bound Operator">__</a> <a id="2944" class="Symbol">=</a> <a id="2946" href="Relation.Binary.Definitions.html#2819" class="Function">Connex</a> <a id="2953" href="Relation.Binary.Definitions.html#2940" class="Bound Operator">__</a> <a id="2957" href="Relation.Binary.Definitions.html#2940" class="Bound Operator">__</a>
<a id="2962" class="Comment">-- Generalised trichotomy - exactly one of three types has a witness.</a>
<a id="3033" class="Keyword">data</a> <a id="Tri"></a><a id="3038" href="Relation.Binary.Definitions.html#3038" class="Datatype">Tri</a> <a id="3042" class="Symbol">(</a><a id="3043" href="Relation.Binary.Definitions.html#3043" class="Bound">A</a> <a id="3045" class="Symbol">:</a> <a id="3047" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3051" href="Relation.Binary.Definitions.html#784" class="Generalizable">a</a><a id="3052" class="Symbol">)</a> <a id="3054" class="Symbol">(</a><a id="3055" href="Relation.Binary.Definitions.html#3055" class="Bound">B</a> <a id="3057" class="Symbol">:</a> <a id="3059" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3063" href="Relation.Binary.Definitions.html#786" class="Generalizable">b</a><a id="3064" class="Symbol">)</a> <a id="3066" class="Symbol">(</a><a id="3067" href="Relation.Binary.Definitions.html#3067" class="Bound">C</a> <a id="3069" class="Symbol">:</a> <a id="3071" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3075" href="Relation.Binary.Definitions.html#788" class="Generalizable">c</a><a id="3076" class="Symbol">)</a> <a id="3078" class="Symbol">:</a> <a id="3080" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3084" class="Symbol">(</a><a id="3085" href="Relation.Binary.Definitions.html#3051" class="Bound">a</a> <a id="3087" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="3089" href="Relation.Binary.Definitions.html#3063" class="Bound">b</a> <a id="3091" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="3093" href="Relation.Binary.Definitions.html#3075" class="Bound">c</a><a id="3094" class="Symbol">)</a> <a id="3096" class="Keyword">where</a>
<a id="Tri.tri&lt;"></a><a id="3104" href="Relation.Binary.Definitions.html#3104" class="InductiveConstructor">tri&lt;</a> <a id="3109" class="Symbol">:</a> <a id="3111" class="Symbol">(</a> <a id="3113" href="Relation.Binary.Definitions.html#3113" class="Bound">a</a> <a id="3115" class="Symbol">:</a> <a id="3119" href="Relation.Binary.Definitions.html#3043" class="Bound">A</a><a id="3120" class="Symbol">)</a> <a id="3122" class="Symbol">(</a><a id="3123" href="Relation.Binary.Definitions.html#3123" class="Bound">¬b</a> <a id="3126" class="Symbol">:</a> <a id="3128" href="Relation.Nullary.Negation.Core.html#698" class="Function Operator">¬</a> <a id="3130" href="Relation.Binary.Definitions.html#3055" class="Bound">B</a><a id="3131" class="Symbol">)</a> <a id="3133" class="Symbol">(</a><a id="3134" href="Relation.Binary.Definitions.html#3134" class="Bound">¬c</a> <a id="3137" class="Symbol">:</a> <a id="3139" href="Relation.Nullary.Negation.Core.html#698" class="Function Operator">¬</a> <a id="3141" href="Relation.Binary.Definitions.html#3067" class="Bound">C</a><a id="3142" class="Symbol">)</a> <a id="3144" class="Symbol"></a> <a id="3146" href="Relation.Binary.Definitions.html#3038" class="Datatype">Tri</a> <a id="3150" href="Relation.Binary.Definitions.html#3043" class="Bound">A</a> <a id="3152" href="Relation.Binary.Definitions.html#3055" class="Bound">B</a> <a id="3154" href="Relation.Binary.Definitions.html#3067" class="Bound">C</a>
<a id="Tri.tri≈"></a><a id="3158" href="Relation.Binary.Definitions.html#3158" class="InductiveConstructor">tri≈</a> <a id="3163" class="Symbol">:</a> <a id="3165" class="Symbol">(</a><a id="3166" href="Relation.Binary.Definitions.html#3166" class="Bound">¬a</a> <a id="3169" class="Symbol">:</a> <a id="3171" href="Relation.Nullary.Negation.Core.html#698" class="Function Operator">¬</a> <a id="3173" href="Relation.Binary.Definitions.html#3043" class="Bound">A</a><a id="3174" class="Symbol">)</a> <a id="3176" class="Symbol">(</a> <a id="3178" href="Relation.Binary.Definitions.html#3178" class="Bound">b</a> <a id="3180" class="Symbol">:</a> <a id="3184" href="Relation.Binary.Definitions.html#3055" class="Bound">B</a><a id="3185" class="Symbol">)</a> <a id="3187" class="Symbol">(</a><a id="3188" href="Relation.Binary.Definitions.html#3188" class="Bound">¬c</a> <a id="3191" class="Symbol">:</a> <a id="3193" href="Relation.Nullary.Negation.Core.html#698" class="Function Operator">¬</a> <a id="3195" href="Relation.Binary.Definitions.html#3067" class="Bound">C</a><a id="3196" class="Symbol">)</a> <a id="3198" class="Symbol"></a> <a id="3200" href="Relation.Binary.Definitions.html#3038" class="Datatype">Tri</a> <a id="3204" href="Relation.Binary.Definitions.html#3043" class="Bound">A</a> <a id="3206" href="Relation.Binary.Definitions.html#3055" class="Bound">B</a> <a id="3208" href="Relation.Binary.Definitions.html#3067" class="Bound">C</a>
<a id="Tri.tri&gt;"></a><a id="3212" href="Relation.Binary.Definitions.html#3212" class="InductiveConstructor">tri&gt;</a> <a id="3217" class="Symbol">:</a> <a id="3219" class="Symbol">(</a><a id="3220" href="Relation.Binary.Definitions.html#3220" class="Bound">¬a</a> <a id="3223" class="Symbol">:</a> <a id="3225" href="Relation.Nullary.Negation.Core.html#698" class="Function Operator">¬</a> <a id="3227" href="Relation.Binary.Definitions.html#3043" class="Bound">A</a><a id="3228" class="Symbol">)</a> <a id="3230" class="Symbol">(</a><a id="3231" href="Relation.Binary.Definitions.html#3231" class="Bound">¬b</a> <a id="3234" class="Symbol">:</a> <a id="3236" href="Relation.Nullary.Negation.Core.html#698" class="Function Operator">¬</a> <a id="3238" href="Relation.Binary.Definitions.html#3055" class="Bound">B</a><a id="3239" class="Symbol">)</a> <a id="3241" class="Symbol">(</a> <a id="3243" href="Relation.Binary.Definitions.html#3243" class="Bound">c</a> <a id="3245" class="Symbol">:</a> <a id="3249" href="Relation.Binary.Definitions.html#3067" class="Bound">C</a><a id="3250" class="Symbol">)</a> <a id="3252" class="Symbol"></a> <a id="3254" href="Relation.Binary.Definitions.html#3038" class="Datatype">Tri</a> <a id="3258" href="Relation.Binary.Definitions.html#3043" class="Bound">A</a> <a id="3260" href="Relation.Binary.Definitions.html#3055" class="Bound">B</a> <a id="3262" href="Relation.Binary.Definitions.html#3067" class="Bound">C</a>
<a id="3265" class="Comment">-- Trichotomy.</a>
<a id="Trichotomous"></a><a id="3281" href="Relation.Binary.Definitions.html#3281" class="Function">Trichotomous</a> <a id="3294" class="Symbol">:</a> <a id="3296" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="3300" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="3302" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a> <a id="3305" class="Symbol"></a> <a id="3307" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="3311" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="3313" href="Relation.Binary.Definitions.html#795" class="Generalizable">ℓ₂</a> <a id="3316" class="Symbol"></a> <a id="3318" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3322" class="Symbol">_</a>
<a id="3324" href="Relation.Binary.Definitions.html#3281" class="Function">Trichotomous</a> <a id="3337" href="Relation.Binary.Definitions.html#3337" class="Bound Operator">_≈_</a> <a id="3341" href="Relation.Binary.Definitions.html#3341" class="Bound Operator">_&lt;_</a> <a id="3345" class="Symbol">=</a> <a id="3347" class="Symbol"></a> <a id="3349" href="Relation.Binary.Definitions.html#3349" class="Bound">x</a> <a id="3351" href="Relation.Binary.Definitions.html#3351" class="Bound">y</a> <a id="3353" class="Symbol"></a> <a id="3355" href="Relation.Binary.Definitions.html#3038" class="Datatype">Tri</a> <a id="3359" class="Symbol">(</a><a id="3360" href="Relation.Binary.Definitions.html#3349" class="Bound">x</a> <a id="3362" href="Relation.Binary.Definitions.html#3341" class="Bound Operator">&lt;</a> <a id="3364" href="Relation.Binary.Definitions.html#3351" class="Bound">y</a><a id="3365" class="Symbol">)</a> <a id="3367" class="Symbol">(</a><a id="3368" href="Relation.Binary.Definitions.html#3349" class="Bound">x</a> <a id="3370" href="Relation.Binary.Definitions.html#3337" class="Bound Operator"></a> <a id="3372" href="Relation.Binary.Definitions.html#3351" class="Bound">y</a><a id="3373" class="Symbol">)</a> <a id="3375" class="Symbol">(</a><a id="3376" href="Relation.Binary.Definitions.html#3349" class="Bound">x</a> <a id="3378" href="Relation.Binary.Definitions.html#3391" class="Function Operator">&gt;</a> <a id="3380" href="Relation.Binary.Definitions.html#3351" class="Bound">y</a><a id="3381" class="Symbol">)</a>
<a id="3385" class="Keyword">where</a> <a id="3391" href="Relation.Binary.Definitions.html#3391" class="Function Operator">_&gt;_</a> <a id="3395" class="Symbol">=</a> <a id="3397" href="Function.Base.html#1638" class="Function">flip</a> <a id="3402" href="Relation.Binary.Definitions.html#3341" class="Bound Operator">_&lt;_</a>
<a id="3407" class="Comment">-- Generalised maximum element.</a>
<a id="Max"></a><a id="3440" href="Relation.Binary.Definitions.html#3440" class="Function">Max</a> <a id="3444" class="Symbol">:</a> <a id="3446" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="3450" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="3452" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="3454" href="Relation.Binary.Definitions.html#790" class="Generalizable"></a> <a id="3456" class="Symbol"></a> <a id="3458" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="3460" class="Symbol"></a> <a id="3462" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3466" class="Symbol">_</a>
<a id="3468" href="Relation.Binary.Definitions.html#3440" class="Function">Max</a> <a id="3472" href="Relation.Binary.Definitions.html#3472" class="Bound Operator">_≤_</a> <a id="3476" href="Relation.Binary.Definitions.html#3476" class="Bound">T</a> <a id="3478" class="Symbol">=</a> <a id="3480" class="Symbol"></a> <a id="3482" href="Relation.Binary.Definitions.html#3482" class="Bound">x</a> <a id="3484" class="Symbol"></a> <a id="3486" href="Relation.Binary.Definitions.html#3482" class="Bound">x</a> <a id="3488" href="Relation.Binary.Definitions.html#3472" class="Bound Operator"></a> <a id="3490" href="Relation.Binary.Definitions.html#3476" class="Bound">T</a>
<a id="3493" class="Comment">-- Maximum element.</a>
<a id="Maximum"></a><a id="3514" href="Relation.Binary.Definitions.html#3514" class="Function">Maximum</a> <a id="3522" class="Symbol">:</a> <a id="3524" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="3528" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="3530" href="Relation.Binary.Definitions.html#790" class="Generalizable"></a> <a id="3532" class="Symbol"></a> <a id="3534" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="3536" class="Symbol"></a> <a id="3538" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3542" class="Symbol">_</a>
<a id="3544" href="Relation.Binary.Definitions.html#3514" class="Function">Maximum</a> <a id="3552" class="Symbol">=</a> <a id="3554" href="Relation.Binary.Definitions.html#3440" class="Function">Max</a>
<a id="3559" class="Comment">-- Generalised minimum element.</a>
<a id="Min"></a><a id="3592" href="Relation.Binary.Definitions.html#3592" class="Function">Min</a> <a id="3596" class="Symbol">:</a> <a id="3598" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="3602" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="3604" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="3606" href="Relation.Binary.Definitions.html#790" class="Generalizable"></a> <a id="3608" class="Symbol"></a> <a id="3610" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="3612" class="Symbol"></a> <a id="3614" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3618" class="Symbol">_</a>
<a id="3620" href="Relation.Binary.Definitions.html#3592" class="Function">Min</a> <a id="3624" href="Relation.Binary.Definitions.html#3624" class="Bound">R</a> <a id="3626" class="Symbol">=</a> <a id="3628" href="Relation.Binary.Definitions.html#3440" class="Function">Max</a> <a id="3632" class="Symbol">(</a><a id="3633" href="Function.Base.html#1638" class="Function">flip</a> <a id="3638" href="Relation.Binary.Definitions.html#3624" class="Bound">R</a><a id="3639" class="Symbol">)</a>
<a id="3642" class="Comment">-- Minimum element.</a>
<a id="Minimum"></a><a id="3663" href="Relation.Binary.Definitions.html#3663" class="Function">Minimum</a> <a id="3671" class="Symbol">:</a> <a id="3673" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="3677" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="3679" href="Relation.Binary.Definitions.html#790" class="Generalizable"></a> <a id="3681" class="Symbol"></a> <a id="3683" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="3685" class="Symbol"></a> <a id="3687" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3691" class="Symbol">_</a>
<a id="3693" href="Relation.Binary.Definitions.html#3663" class="Function">Minimum</a> <a id="3701" class="Symbol">=</a> <a id="3703" href="Relation.Binary.Definitions.html#3592" class="Function">Min</a>
<a id="3708" class="Comment">-- Definitions for apartness relations</a>
<a id="3748" class="Comment">-- Note that Cotransitive&#39;s arguments are permuted with respect to Transitive&#39;s.</a>
<a id="Cotransitive"></a><a id="3829" href="Relation.Binary.Definitions.html#3829" class="Function">Cotransitive</a> <a id="3842" class="Symbol">:</a> <a id="3844" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="3848" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="3850" href="Relation.Binary.Definitions.html#790" class="Generalizable"></a> <a id="3852" class="Symbol"></a> <a id="3854" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3858" class="Symbol">_</a>
<a id="3860" href="Relation.Binary.Definitions.html#3829" class="Function">Cotransitive</a> <a id="3873" href="Relation.Binary.Definitions.html#3873" class="Bound Operator">_#_</a> <a id="3877" class="Symbol">=</a> <a id="3879" class="Symbol"></a> <a id="3881" class="Symbol">{</a><a id="3882" href="Relation.Binary.Definitions.html#3882" class="Bound">x</a> <a id="3884" href="Relation.Binary.Definitions.html#3884" class="Bound">y</a><a id="3885" class="Symbol">}</a> <a id="3887" class="Symbol"></a> <a id="3889" href="Relation.Binary.Definitions.html#3882" class="Bound">x</a> <a id="3891" href="Relation.Binary.Definitions.html#3873" class="Bound Operator">#</a> <a id="3893" href="Relation.Binary.Definitions.html#3884" class="Bound">y</a> <a id="3895" class="Symbol"></a> <a id="3897" class="Symbol"></a> <a id="3899" href="Relation.Binary.Definitions.html#3899" class="Bound">z</a> <a id="3901" class="Symbol"></a> <a id="3903" class="Symbol">(</a><a id="3904" href="Relation.Binary.Definitions.html#3882" class="Bound">x</a> <a id="3906" href="Relation.Binary.Definitions.html#3873" class="Bound Operator">#</a> <a id="3908" href="Relation.Binary.Definitions.html#3899" class="Bound">z</a><a id="3909" class="Symbol">)</a> <a id="3911" href="Data.Sum.Base.html#625" class="Datatype Operator"></a> <a id="3913" class="Symbol">(</a><a id="3914" href="Relation.Binary.Definitions.html#3899" class="Bound">z</a> <a id="3916" href="Relation.Binary.Definitions.html#3873" class="Bound Operator">#</a> <a id="3918" href="Relation.Binary.Definitions.html#3884" class="Bound">y</a><a id="3919" class="Symbol">)</a>
<a id="Tight"></a><a id="3922" href="Relation.Binary.Definitions.html#3922" class="Function">Tight</a> <a id="3928" class="Symbol">:</a> <a id="3930" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="3934" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="3936" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a> <a id="3939" class="Symbol"></a> <a id="3941" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="3945" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="3947" href="Relation.Binary.Definitions.html#795" class="Generalizable">ℓ₂</a> <a id="3950" class="Symbol"></a> <a id="3952" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3956" class="Symbol">_</a>
<a id="3958" href="Relation.Binary.Definitions.html#3922" class="Function">Tight</a> <a id="3964" href="Relation.Binary.Definitions.html#3964" class="Bound Operator">_≈_</a> <a id="3968" href="Relation.Binary.Definitions.html#3968" class="Bound Operator">_#_</a> <a id="3972" class="Symbol">=</a> <a id="3974" class="Symbol"></a> <a id="3976" href="Relation.Binary.Definitions.html#3976" class="Bound">x</a> <a id="3978" href="Relation.Binary.Definitions.html#3978" class="Bound">y</a> <a id="3980" class="Symbol"></a> <a id="3982" class="Symbol">(</a><a id="3983" href="Relation.Nullary.Negation.Core.html#698" class="Function Operator">¬</a> <a id="3985" href="Relation.Binary.Definitions.html#3976" class="Bound">x</a> <a id="3987" href="Relation.Binary.Definitions.html#3968" class="Bound Operator">#</a> <a id="3989" href="Relation.Binary.Definitions.html#3978" class="Bound">y</a> <a id="3991" class="Symbol"></a> <a id="3993" href="Relation.Binary.Definitions.html#3976" class="Bound">x</a> <a id="3995" href="Relation.Binary.Definitions.html#3964" class="Bound Operator"></a> <a id="3997" href="Relation.Binary.Definitions.html#3978" class="Bound">y</a><a id="3998" class="Symbol">)</a> <a id="4000" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="4002" class="Symbol">(</a><a id="4003" href="Relation.Binary.Definitions.html#3976" class="Bound">x</a> <a id="4005" href="Relation.Binary.Definitions.html#3964" class="Bound Operator"></a> <a id="4007" href="Relation.Binary.Definitions.html#3978" class="Bound">y</a> <a id="4009" class="Symbol"></a> <a id="4011" href="Relation.Nullary.Negation.Core.html#698" class="Function Operator">¬</a> <a id="4013" href="Relation.Binary.Definitions.html#3976" class="Bound">x</a> <a id="4015" href="Relation.Binary.Definitions.html#3968" class="Bound Operator">#</a> <a id="4017" href="Relation.Binary.Definitions.html#3978" class="Bound">y</a><a id="4018" class="Symbol">)</a>
<a id="4021" class="Comment">-- Properties of order morphisms, aka order-preserving maps</a>
<a id="Monotonic₁"></a><a id="4082" href="Relation.Binary.Definitions.html#4082" class="Function">Monotonic₁</a> <a id="4093" class="Symbol">:</a> <a id="4095" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="4099" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="4101" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a> <a id="4104" class="Symbol"></a> <a id="4106" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="4110" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="4112" href="Relation.Binary.Definitions.html#795" class="Generalizable">ℓ₂</a> <a id="4115" class="Symbol"></a> <a id="4117" class="Symbol">(</a><a id="4118" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="4120" class="Symbol"></a> <a id="4122" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a><a id="4123" class="Symbol">)</a> <a id="4125" class="Symbol"></a> <a id="4127" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="4131" class="Symbol">_</a>
<a id="4133" href="Relation.Binary.Definitions.html#4082" class="Function">Monotonic₁</a> <a id="4144" href="Relation.Binary.Definitions.html#4144" class="Bound Operator">_≤_</a> <a id="4148" href="Relation.Binary.Definitions.html#4148" class="Bound Operator">_⊑_</a> <a id="4152" href="Relation.Binary.Definitions.html#4152" class="Bound">f</a> <a id="4154" class="Symbol">=</a> <a id="4156" href="Relation.Binary.Definitions.html#4152" class="Bound">f</a> <a id="4158" href="Relation.Binary.Core.html#1577" class="Function Operator">Preserves</a> <a id="4168" href="Relation.Binary.Definitions.html#4144" class="Bound Operator">_≤_</a> <a id="4172" href="Relation.Binary.Core.html#1577" class="Function Operator"></a> <a id="4174" href="Relation.Binary.Definitions.html#4148" class="Bound Operator">_⊑_</a>
<a id="Antitonic₁"></a><a id="4179" href="Relation.Binary.Definitions.html#4179" class="Function">Antitonic₁</a> <a id="4190" class="Symbol">:</a> <a id="4192" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="4196" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="4198" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a> <a id="4201" class="Symbol"></a> <a id="4203" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="4207" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="4209" href="Relation.Binary.Definitions.html#795" class="Generalizable">ℓ₂</a> <a id="4212" class="Symbol"></a> <a id="4214" class="Symbol">(</a><a id="4215" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="4217" class="Symbol"></a> <a id="4219" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a><a id="4220" class="Symbol">)</a> <a id="4222" class="Symbol"></a> <a id="4224" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="4228" class="Symbol">_</a>
<a id="4230" href="Relation.Binary.Definitions.html#4179" class="Function">Antitonic₁</a> <a id="4241" href="Relation.Binary.Definitions.html#4241" class="Bound Operator">_≤_</a> <a id="4245" href="Relation.Binary.Definitions.html#4245" class="Bound Operator">_⊑_</a> <a id="4249" href="Relation.Binary.Definitions.html#4249" class="Bound">f</a> <a id="4251" class="Symbol">=</a> <a id="4253" href="Relation.Binary.Definitions.html#4249" class="Bound">f</a> <a id="4255" href="Relation.Binary.Core.html#1577" class="Function Operator">Preserves</a> <a id="4265" class="Symbol">(</a><a id="4266" href="Function.Base.html#1638" class="Function">flip</a> <a id="4271" href="Relation.Binary.Definitions.html#4241" class="Bound Operator">_≤_</a><a id="4274" class="Symbol">)</a> <a id="4276" href="Relation.Binary.Core.html#1577" class="Function Operator"></a> <a id="4278" href="Relation.Binary.Definitions.html#4245" class="Bound Operator">_⊑_</a>
<a id="Monotonic₂"></a><a id="4283" href="Relation.Binary.Definitions.html#4283" class="Function">Monotonic₂</a> <a id="4294" class="Symbol">:</a> <a id="4296" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="4300" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="4302" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a> <a id="4305" class="Symbol"></a> <a id="4307" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="4311" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="4313" href="Relation.Binary.Definitions.html#795" class="Generalizable">ℓ₂</a> <a id="4316" class="Symbol"></a> <a id="4318" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="4322" href="Relation.Binary.Definitions.html#841" class="Generalizable">C</a> <a id="4324" href="Relation.Binary.Definitions.html#798" class="Generalizable">ℓ₃</a> <a id="4327" class="Symbol"></a> <a id="4329" class="Symbol">(</a><a id="4330" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="4332" class="Symbol"></a> <a id="4334" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="4336" class="Symbol"></a> <a id="4338" href="Relation.Binary.Definitions.html#841" class="Generalizable">C</a><a id="4339" class="Symbol">)</a> <a id="4341" class="Symbol"></a> <a id="4343" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="4347" class="Symbol">_</a>
<a id="4349" href="Relation.Binary.Definitions.html#4283" class="Function">Monotonic₂</a> <a id="4360" href="Relation.Binary.Definitions.html#4360" class="Bound Operator">_≤_</a> <a id="4364" href="Relation.Binary.Definitions.html#4364" class="Bound Operator">_⊑_</a> <a id="4368" href="Relation.Binary.Definitions.html#4368" class="Bound Operator">_≼_</a> <a id="4372" href="Relation.Binary.Definitions.html#4372" class="Bound"></a> <a id="4374" class="Symbol">=</a> <a id="4376" href="Relation.Binary.Definitions.html#4372" class="Bound"></a> <a id="4378" href="Relation.Binary.Core.html#1703" class="Function Operator">Preserves₂</a> <a id="4389" href="Relation.Binary.Definitions.html#4360" class="Bound Operator">_≤_</a> <a id="4393" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="4395" href="Relation.Binary.Definitions.html#4364" class="Bound Operator">_⊑_</a> <a id="4399" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="4401" href="Relation.Binary.Definitions.html#4368" class="Bound Operator">_≼_</a>
<a id="MonotonicAntitonic"></a><a id="4406" href="Relation.Binary.Definitions.html#4406" class="Function">MonotonicAntitonic</a> <a id="4425" class="Symbol">:</a> <a id="4427" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="4431" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="4433" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a> <a id="4436" class="Symbol"></a> <a id="4438" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="4442" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="4444" href="Relation.Binary.Definitions.html#795" class="Generalizable">ℓ₂</a> <a id="4447" class="Symbol"></a> <a id="4449" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="4453" href="Relation.Binary.Definitions.html#841" class="Generalizable">C</a> <a id="4455" href="Relation.Binary.Definitions.html#798" class="Generalizable">ℓ₃</a> <a id="4458" class="Symbol"></a> <a id="4460" class="Symbol">(</a><a id="4461" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="4463" class="Symbol"></a> <a id="4465" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="4467" class="Symbol"></a> <a id="4469" href="Relation.Binary.Definitions.html#841" class="Generalizable">C</a><a id="4470" class="Symbol">)</a> <a id="4472" class="Symbol"></a> <a id="4474" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="4478" class="Symbol">_</a>
<a id="4480" href="Relation.Binary.Definitions.html#4406" class="Function">MonotonicAntitonic</a> <a id="4499" href="Relation.Binary.Definitions.html#4499" class="Bound Operator">_≤_</a> <a id="4503" href="Relation.Binary.Definitions.html#4503" class="Bound Operator">_⊑_</a> <a id="4507" href="Relation.Binary.Definitions.html#4507" class="Bound Operator">_≼_</a> <a id="4511" href="Relation.Binary.Definitions.html#4511" class="Bound"></a> <a id="4513" class="Symbol">=</a> <a id="4515" href="Relation.Binary.Definitions.html#4511" class="Bound"></a> <a id="4517" href="Relation.Binary.Core.html#1703" class="Function Operator">Preserves₂</a> <a id="4528" href="Relation.Binary.Definitions.html#4499" class="Bound Operator">_≤_</a> <a id="4532" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="4534" class="Symbol">(</a><a id="4535" href="Function.Base.html#1638" class="Function">flip</a> <a id="4540" href="Relation.Binary.Definitions.html#4503" class="Bound Operator">_⊑_</a><a id="4543" class="Symbol">)</a> <a id="4545" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="4547" href="Relation.Binary.Definitions.html#4507" class="Bound Operator">_≼_</a>
<a id="AntitonicMonotonic"></a><a id="4552" href="Relation.Binary.Definitions.html#4552" class="Function">AntitonicMonotonic</a> <a id="4571" class="Symbol">:</a> <a id="4573" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="4577" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="4579" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a> <a id="4582" class="Symbol"></a> <a id="4584" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="4588" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="4590" href="Relation.Binary.Definitions.html#795" class="Generalizable">ℓ₂</a> <a id="4593" class="Symbol"></a> <a id="4595" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="4599" href="Relation.Binary.Definitions.html#841" class="Generalizable">C</a> <a id="4601" href="Relation.Binary.Definitions.html#798" class="Generalizable">ℓ₃</a> <a id="4604" class="Symbol"></a> <a id="4606" class="Symbol">(</a><a id="4607" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="4609" class="Symbol"></a> <a id="4611" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="4613" class="Symbol"></a> <a id="4615" href="Relation.Binary.Definitions.html#841" class="Generalizable">C</a><a id="4616" class="Symbol">)</a> <a id="4618" class="Symbol"></a> <a id="4620" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="4624" class="Symbol">_</a>
<a id="4626" href="Relation.Binary.Definitions.html#4552" class="Function">AntitonicMonotonic</a> <a id="4645" href="Relation.Binary.Definitions.html#4645" class="Bound Operator">_≤_</a> <a id="4649" href="Relation.Binary.Definitions.html#4649" class="Bound Operator">_⊑_</a> <a id="4653" href="Relation.Binary.Definitions.html#4653" class="Bound Operator">_≼_</a> <a id="4657" href="Relation.Binary.Definitions.html#4657" class="Bound"></a> <a id="4659" class="Symbol">=</a> <a id="4661" href="Relation.Binary.Definitions.html#4657" class="Bound"></a> <a id="4663" href="Relation.Binary.Core.html#1703" class="Function Operator">Preserves₂</a> <a id="4674" class="Symbol">(</a><a id="4675" href="Function.Base.html#1638" class="Function">flip</a> <a id="4680" href="Relation.Binary.Definitions.html#4645" class="Bound Operator">_≤_</a><a id="4683" class="Symbol">)</a> <a id="4685" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="4687" href="Relation.Binary.Definitions.html#4649" class="Bound Operator">_⊑_</a> <a id="4691" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="4693" href="Relation.Binary.Definitions.html#4653" class="Bound Operator">_≼_</a>
<a id="Antitonic₂"></a><a id="4698" href="Relation.Binary.Definitions.html#4698" class="Function">Antitonic₂</a> <a id="4709" class="Symbol">:</a> <a id="4711" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="4715" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="4717" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a> <a id="4720" class="Symbol"></a> <a id="4722" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="4726" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="4728" href="Relation.Binary.Definitions.html#795" class="Generalizable">ℓ₂</a> <a id="4731" class="Symbol"></a> <a id="4733" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="4737" href="Relation.Binary.Definitions.html#841" class="Generalizable">C</a> <a id="4739" href="Relation.Binary.Definitions.html#798" class="Generalizable">ℓ₃</a> <a id="4742" class="Symbol"></a> <a id="4744" class="Symbol">(</a><a id="4745" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="4747" class="Symbol"></a> <a id="4749" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="4751" class="Symbol"></a> <a id="4753" href="Relation.Binary.Definitions.html#841" class="Generalizable">C</a><a id="4754" class="Symbol">)</a> <a id="4756" class="Symbol"></a> <a id="4758" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="4762" class="Symbol">_</a>
<a id="4764" href="Relation.Binary.Definitions.html#4698" class="Function">Antitonic₂</a> <a id="4775" href="Relation.Binary.Definitions.html#4775" class="Bound Operator">_≤_</a> <a id="4779" href="Relation.Binary.Definitions.html#4779" class="Bound Operator">_⊑_</a> <a id="4783" href="Relation.Binary.Definitions.html#4783" class="Bound Operator">_≼_</a> <a id="4787" href="Relation.Binary.Definitions.html#4787" class="Bound"></a> <a id="4789" class="Symbol">=</a> <a id="4791" href="Relation.Binary.Definitions.html#4787" class="Bound"></a> <a id="4793" href="Relation.Binary.Core.html#1703" class="Function Operator">Preserves₂</a> <a id="4804" class="Symbol">(</a><a id="4805" href="Function.Base.html#1638" class="Function">flip</a> <a id="4810" href="Relation.Binary.Definitions.html#4775" class="Bound Operator">_≤_</a><a id="4813" class="Symbol">)</a> <a id="4815" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="4817" class="Symbol">(</a><a id="4818" href="Function.Base.html#1638" class="Function">flip</a> <a id="4823" href="Relation.Binary.Definitions.html#4779" class="Bound Operator">_⊑_</a><a id="4826" class="Symbol">)</a> <a id="4828" href="Relation.Binary.Core.html#1703" class="Function Operator"></a> <a id="4830" href="Relation.Binary.Definitions.html#4783" class="Bound Operator">_≼_</a>
<a id="Adjoint"></a><a id="4835" href="Relation.Binary.Definitions.html#4835" class="Function">Adjoint</a> <a id="4843" class="Symbol">:</a> <a id="4845" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="4849" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="4851" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a> <a id="4854" class="Symbol"></a> <a id="4856" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="4860" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="4862" href="Relation.Binary.Definitions.html#795" class="Generalizable">ℓ₂</a> <a id="4865" class="Symbol"></a> <a id="4867" class="Symbol">(</a><a id="4868" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="4870" class="Symbol"></a> <a id="4872" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a><a id="4873" class="Symbol">)</a> <a id="4875" class="Symbol"></a> <a id="4877" class="Symbol">(</a><a id="4878" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="4880" class="Symbol"></a> <a id="4882" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a><a id="4883" class="Symbol">)</a> <a id="4885" class="Symbol"></a> <a id="4887" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="4891" class="Symbol">_</a>
<a id="4893" href="Relation.Binary.Definitions.html#4835" class="Function">Adjoint</a> <a id="4901" href="Relation.Binary.Definitions.html#4901" class="Bound Operator">_≤_</a> <a id="4905" href="Relation.Binary.Definitions.html#4905" class="Bound Operator">_⊑_</a> <a id="4909" href="Relation.Binary.Definitions.html#4909" class="Bound">f</a> <a id="4911" href="Relation.Binary.Definitions.html#4911" class="Bound">g</a> <a id="4913" class="Symbol">=</a> <a id="4915" class="Symbol"></a> <a id="4917" class="Symbol">{</a><a id="4918" href="Relation.Binary.Definitions.html#4918" class="Bound">x</a> <a id="4920" href="Relation.Binary.Definitions.html#4920" class="Bound">y</a><a id="4921" class="Symbol">}</a> <a id="4923" class="Symbol"></a> <a id="4925" class="Symbol">(</a><a id="4926" href="Relation.Binary.Definitions.html#4909" class="Bound">f</a> <a id="4928" href="Relation.Binary.Definitions.html#4918" class="Bound">x</a> <a id="4930" href="Relation.Binary.Definitions.html#4905" class="Bound Operator"></a> <a id="4932" href="Relation.Binary.Definitions.html#4920" class="Bound">y</a> <a id="4934" class="Symbol"></a> <a id="4936" href="Relation.Binary.Definitions.html#4918" class="Bound">x</a> <a id="4938" href="Relation.Binary.Definitions.html#4901" class="Bound Operator"></a> <a id="4940" href="Relation.Binary.Definitions.html#4911" class="Bound">g</a> <a id="4942" href="Relation.Binary.Definitions.html#4920" class="Bound">y</a><a id="4943" class="Symbol">)</a> <a id="4945" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="4947" class="Symbol">(</a><a id="4948" href="Relation.Binary.Definitions.html#4918" class="Bound">x</a> <a id="4950" href="Relation.Binary.Definitions.html#4901" class="Bound Operator"></a> <a id="4952" href="Relation.Binary.Definitions.html#4911" class="Bound">g</a> <a id="4954" href="Relation.Binary.Definitions.html#4920" class="Bound">y</a> <a id="4956" class="Symbol"></a> <a id="4958" href="Relation.Binary.Definitions.html#4909" class="Bound">f</a> <a id="4960" href="Relation.Binary.Definitions.html#4918" class="Bound">x</a> <a id="4962" href="Relation.Binary.Definitions.html#4905" class="Bound Operator"></a> <a id="4964" href="Relation.Binary.Definitions.html#4920" class="Bound">y</a><a id="4965" class="Symbol">)</a>
<a id="4968" class="Comment">-- Unary relations respecting a binary relation.</a>
<a id="_⟶_Respects_"></a><a id="5018" href="Relation.Binary.Definitions.html#5018" class="Function Operator">_⟶_Respects_</a> <a id="5031" class="Symbol">:</a> <a id="5033" class="Symbol">(</a><a id="5034" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="5036" class="Symbol"></a> <a id="5038" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="5042" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a><a id="5044" class="Symbol">)</a> <a id="5046" class="Symbol"></a> <a id="5048" class="Symbol">(</a><a id="5049" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="5051" class="Symbol"></a> <a id="5053" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="5057" href="Relation.Binary.Definitions.html#795" class="Generalizable">ℓ₂</a><a id="5059" class="Symbol">)</a> <a id="5061" class="Symbol"></a> <a id="5063" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="5067" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="5069" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="5071" href="Relation.Binary.Definitions.html#798" class="Generalizable">ℓ₃</a> <a id="5074" class="Symbol"></a> <a id="5076" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="5080" class="Symbol">_</a>
<a id="5082" href="Relation.Binary.Definitions.html#5082" class="Bound">P</a> <a id="5084" href="Relation.Binary.Definitions.html#5018" class="Function Operator"></a> <a id="5086" href="Relation.Binary.Definitions.html#5086" class="Bound">Q</a> <a id="5088" href="Relation.Binary.Definitions.html#5018" class="Function Operator">Respects</a> <a id="5097" href="Relation.Binary.Definitions.html#5097" class="Bound Operator">__</a> <a id="5101" class="Symbol">=</a> <a id="5103" class="Symbol"></a> <a id="5105" class="Symbol">{</a><a id="5106" href="Relation.Binary.Definitions.html#5106" class="Bound">x</a> <a id="5108" href="Relation.Binary.Definitions.html#5108" class="Bound">y</a><a id="5109" class="Symbol">}</a> <a id="5111" class="Symbol"></a> <a id="5113" href="Relation.Binary.Definitions.html#5106" class="Bound">x</a> <a id="5115" href="Relation.Binary.Definitions.html#5097" class="Bound Operator"></a> <a id="5117" href="Relation.Binary.Definitions.html#5108" class="Bound">y</a> <a id="5119" class="Symbol"></a> <a id="5121" href="Relation.Binary.Definitions.html#5082" class="Bound">P</a> <a id="5123" href="Relation.Binary.Definitions.html#5106" class="Bound">x</a> <a id="5125" class="Symbol"></a> <a id="5127" href="Relation.Binary.Definitions.html#5086" class="Bound">Q</a> <a id="5129" href="Relation.Binary.Definitions.html#5108" class="Bound">y</a>
<a id="5132" class="Comment">-- Unary relation respects a binary relation.</a>
<a id="_Respects_"></a><a id="5179" href="Relation.Binary.Definitions.html#5179" class="Function Operator">_Respects_</a> <a id="5190" class="Symbol">:</a> <a id="5192" class="Symbol">(</a><a id="5193" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="5195" class="Symbol"></a> <a id="5197" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="5201" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a><a id="5203" class="Symbol">)</a> <a id="5205" class="Symbol"></a> <a id="5207" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="5211" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="5213" href="Relation.Binary.Definitions.html#795" class="Generalizable">ℓ₂</a> <a id="5216" class="Symbol"></a> <a id="5218" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="5222" class="Symbol">_</a>
<a id="5224" href="Relation.Binary.Definitions.html#5224" class="Bound">P</a> <a id="5226" href="Relation.Binary.Definitions.html#5179" class="Function Operator">Respects</a> <a id="5235" href="Relation.Binary.Definitions.html#5235" class="Bound Operator">__</a> <a id="5239" class="Symbol">=</a> <a id="5241" href="Relation.Binary.Definitions.html#5224" class="Bound">P</a> <a id="5243" href="Relation.Binary.Definitions.html#5018" class="Function Operator"></a> <a id="5245" href="Relation.Binary.Definitions.html#5224" class="Bound">P</a> <a id="5247" href="Relation.Binary.Definitions.html#5018" class="Function Operator">Respects</a> <a id="5256" href="Relation.Binary.Definitions.html#5235" class="Bound Operator">__</a>
<a id="5261" class="Comment">-- Right respecting - relatedness is preserved on the right by equality.</a>
<a id="_Respectsʳ_"></a><a id="5335" href="Relation.Binary.Definitions.html#5335" class="Function Operator">_Respectsʳ_</a> <a id="5347" class="Symbol">:</a> <a id="5349" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="5353" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="5355" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="5357" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a> <a id="5360" class="Symbol"></a> <a id="5362" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="5366" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="5368" href="Relation.Binary.Definitions.html#795" class="Generalizable">ℓ₂</a> <a id="5371" class="Symbol"></a> <a id="5373" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="5377" class="Symbol">_</a>
<a id="5379" href="Relation.Binary.Definitions.html#5379" class="Bound Operator">__</a> <a id="5383" href="Relation.Binary.Definitions.html#5335" class="Function Operator">Respectsʳ</a> <a id="5393" href="Relation.Binary.Definitions.html#5393" class="Bound Operator">_≈_</a> <a id="5397" class="Symbol">=</a> <a id="5399" class="Symbol"></a> <a id="5401" class="Symbol">{</a><a id="5402" href="Relation.Binary.Definitions.html#5402" class="Bound">x</a><a id="5403" class="Symbol">}</a> <a id="5405" class="Symbol"></a> <a id="5407" class="Symbol">(</a><a id="5408" href="Relation.Binary.Definitions.html#5402" class="Bound">x</a> <a id="5410" href="Relation.Binary.Definitions.html#5379" class="Bound Operator">_</a><a id="5412" class="Symbol">)</a> <a id="5414" href="Relation.Binary.Definitions.html#5179" class="Function Operator">Respects</a> <a id="5423" href="Relation.Binary.Definitions.html#5393" class="Bound Operator">_≈_</a>
<a id="5428" class="Comment">-- Left respecting - relatedness is preserved on the left by equality.</a>
<a id="_Respectsˡ_"></a><a id="5500" href="Relation.Binary.Definitions.html#5500" class="Function Operator">_Respectsˡ_</a> <a id="5512" class="Symbol">:</a> <a id="5514" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="5518" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="5520" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="5522" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a> <a id="5525" class="Symbol"></a> <a id="5527" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="5531" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="5533" href="Relation.Binary.Definitions.html#795" class="Generalizable">ℓ₂</a> <a id="5536" class="Symbol"></a> <a id="5538" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="5542" class="Symbol">_</a>
<a id="5544" href="Relation.Binary.Definitions.html#5544" class="Bound">P</a> <a id="5546" href="Relation.Binary.Definitions.html#5500" class="Function Operator">Respectsˡ</a> <a id="5556" href="Relation.Binary.Definitions.html#5556" class="Bound Operator">__</a> <a id="5560" class="Symbol">=</a> <a id="5562" class="Symbol"></a> <a id="5564" class="Symbol">{</a><a id="5565" href="Relation.Binary.Definitions.html#5565" class="Bound">y</a><a id="5566" class="Symbol">}</a> <a id="5568" class="Symbol"></a> <a id="5570" class="Symbol">(</a><a id="5571" href="Function.Base.html#1638" class="Function">flip</a> <a id="5576" href="Relation.Binary.Definitions.html#5544" class="Bound">P</a> <a id="5578" href="Relation.Binary.Definitions.html#5565" class="Bound">y</a><a id="5579" class="Symbol">)</a> <a id="5581" href="Relation.Binary.Definitions.html#5179" class="Function Operator">Respects</a> <a id="5590" href="Relation.Binary.Definitions.html#5556" class="Bound Operator">__</a>
<a id="5595" class="Comment">-- Respecting - relatedness is preserved on both sides by equality</a>
<a id="_Respects₂_"></a><a id="5663" href="Relation.Binary.Definitions.html#5663" class="Function Operator">_Respects₂_</a> <a id="5675" class="Symbol">:</a> <a id="5677" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="5681" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="5683" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a> <a id="5686" class="Symbol"></a> <a id="5688" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="5692" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="5694" href="Relation.Binary.Definitions.html#795" class="Generalizable">ℓ₂</a> <a id="5697" class="Symbol"></a> <a id="5699" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="5703" class="Symbol">_</a>
<a id="5705" href="Relation.Binary.Definitions.html#5705" class="Bound">P</a> <a id="5707" href="Relation.Binary.Definitions.html#5663" class="Function Operator">Respects₂</a> <a id="5717" href="Relation.Binary.Definitions.html#5717" class="Bound Operator">__</a> <a id="5721" class="Symbol">=</a> <a id="5723" class="Symbol">(</a><a id="5724" href="Relation.Binary.Definitions.html#5705" class="Bound">P</a> <a id="5726" href="Relation.Binary.Definitions.html#5335" class="Function Operator">Respectsʳ</a> <a id="5736" href="Relation.Binary.Definitions.html#5717" class="Bound Operator">__</a><a id="5739" class="Symbol">)</a> <a id="5741" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="5743" class="Symbol">(</a><a id="5744" href="Relation.Binary.Definitions.html#5705" class="Bound">P</a> <a id="5746" href="Relation.Binary.Definitions.html#5500" class="Function Operator">Respectsˡ</a> <a id="5756" href="Relation.Binary.Definitions.html#5717" class="Bound Operator">__</a><a id="5759" class="Symbol">)</a>
<a id="5762" class="Comment">-- Substitutivity - any two related elements satisfy exactly the same</a>
<a id="5832" class="Comment">-- set of unary relations. Note that only the various derivatives</a>
<a id="5898" class="Comment">-- of propositional equality can satisfy this property.</a>
<a id="Substitutive"></a><a id="5955" href="Relation.Binary.Definitions.html#5955" class="Function">Substitutive</a> <a id="5968" class="Symbol">:</a> <a id="5970" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="5974" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="5976" href="Relation.Binary.Definitions.html#792" class="Generalizable">ℓ₁</a> <a id="5979" class="Symbol"></a> <a id="5981" class="Symbol">(</a><a id="5982" href="Relation.Binary.Definitions.html#5982" class="Bound">ℓ₂</a> <a id="5985" class="Symbol">:</a> <a id="5987" href="Agda.Primitive.html#742" class="Postulate">Level</a><a id="5992" class="Symbol">)</a> <a id="5994" class="Symbol"></a> <a id="5996" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="6000" class="Symbol">_</a>
<a id="6002" href="Relation.Binary.Definitions.html#5955" class="Function">Substitutive</a> <a id="6015" class="Symbol">{</a><a id="6016" class="Argument">A</a> <a id="6018" class="Symbol">=</a> <a id="6020" href="Relation.Binary.Definitions.html#6020" class="Bound">A</a><a id="6021" class="Symbol">}</a> <a id="6023" href="Relation.Binary.Definitions.html#6023" class="Bound Operator">__</a> <a id="6027" href="Relation.Binary.Definitions.html#6027" class="Bound">p</a> <a id="6029" class="Symbol">=</a> <a id="6031" class="Symbol">(</a><a id="6032" href="Relation.Binary.Definitions.html#6032" class="Bound">P</a> <a id="6034" class="Symbol">:</a> <a id="6036" href="Relation.Binary.Definitions.html#6020" class="Bound">A</a> <a id="6038" class="Symbol"></a> <a id="6040" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="6044" href="Relation.Binary.Definitions.html#6027" class="Bound">p</a><a id="6045" class="Symbol">)</a> <a id="6047" class="Symbol"></a> <a id="6049" href="Relation.Binary.Definitions.html#6032" class="Bound">P</a> <a id="6051" href="Relation.Binary.Definitions.html#5179" class="Function Operator">Respects</a> <a id="6060" href="Relation.Binary.Definitions.html#6023" class="Bound Operator">__</a>
<a id="6065" class="Comment">-- Decidability - it is possible to determine whether a given pair of</a>
<a id="6135" class="Comment">-- elements are related.</a>
<a id="Decidable"></a><a id="6161" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="6171" class="Symbol">:</a> <a id="6173" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="6177" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="6179" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="6181" href="Relation.Binary.Definitions.html#790" class="Generalizable"></a> <a id="6183" class="Symbol"></a> <a id="6185" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="6189" class="Symbol">_</a>
<a id="6191" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="6201" href="Relation.Binary.Definitions.html#6201" class="Bound Operator">__</a> <a id="6205" class="Symbol">=</a> <a id="6207" class="Symbol"></a> <a id="6209" href="Relation.Binary.Definitions.html#6209" class="Bound">x</a> <a id="6211" href="Relation.Binary.Definitions.html#6211" class="Bound">y</a> <a id="6213" class="Symbol"></a> <a id="6215" href="Relation.Nullary.Decidable.Core.html#1485" class="Record">Dec</a> <a id="6219" class="Symbol">(</a><a id="6220" href="Relation.Binary.Definitions.html#6209" class="Bound">x</a> <a id="6222" href="Relation.Binary.Definitions.html#6201" class="Bound Operator"></a> <a id="6224" href="Relation.Binary.Definitions.html#6211" class="Bound">y</a><a id="6225" class="Symbol">)</a>
<a id="6228" class="Comment">-- Weak decidability - it is sometimes possible to determine if a given</a>
<a id="6300" class="Comment">-- pair of elements are related.</a>
<a id="WeaklyDecidable"></a><a id="6334" href="Relation.Binary.Definitions.html#6334" class="Function">WeaklyDecidable</a> <a id="6350" class="Symbol">:</a> <a id="6352" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="6356" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="6358" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="6360" href="Relation.Binary.Definitions.html#790" class="Generalizable"></a> <a id="6362" class="Symbol"></a> <a id="6364" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="6368" class="Symbol">_</a>
<a id="6370" href="Relation.Binary.Definitions.html#6334" class="Function">WeaklyDecidable</a> <a id="6386" href="Relation.Binary.Definitions.html#6386" class="Bound Operator">__</a> <a id="6390" class="Symbol">=</a> <a id="6392" class="Symbol"></a> <a id="6394" href="Relation.Binary.Definitions.html#6394" class="Bound">x</a> <a id="6396" href="Relation.Binary.Definitions.html#6396" class="Bound">y</a> <a id="6398" class="Symbol"></a> <a id="6400" href="Agda.Builtin.Maybe.html#135" class="Datatype">Maybe</a> <a id="6406" class="Symbol">(</a><a id="6407" href="Relation.Binary.Definitions.html#6394" class="Bound">x</a> <a id="6409" href="Relation.Binary.Definitions.html#6386" class="Bound Operator"></a> <a id="6411" href="Relation.Binary.Definitions.html#6396" class="Bound">y</a><a id="6412" class="Symbol">)</a>
<a id="6415" class="Comment">-- Propositional equality is decidable for the type.</a>
<a id="DecidableEquality"></a><a id="6469" href="Relation.Binary.Definitions.html#6469" class="Function">DecidableEquality</a> <a id="6487" class="Symbol">:</a> <a id="6489" class="Symbol">(</a><a id="6490" href="Relation.Binary.Definitions.html#6490" class="Bound">A</a> <a id="6492" class="Symbol">:</a> <a id="6494" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="6498" href="Relation.Binary.Definitions.html#784" class="Generalizable">a</a><a id="6499" class="Symbol">)</a> <a id="6501" class="Symbol"></a> <a id="6503" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="6507" class="Symbol">_</a>
<a id="6509" href="Relation.Binary.Definitions.html#6469" class="Function">DecidableEquality</a> <a id="6527" href="Relation.Binary.Definitions.html#6527" class="Bound">A</a> <a id="6529" class="Symbol">=</a> <a id="6531" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="6541" class="Symbol">{</a><a id="6542" class="Argument">A</a> <a id="6544" class="Symbol">=</a> <a id="6546" href="Relation.Binary.Definitions.html#6527" class="Bound">A</a><a id="6547" class="Symbol">}</a> <a id="6549" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a>
<a id="6554" class="Comment">-- Irrelevancy - all proofs that a given pair of elements are related</a>
<a id="6624" class="Comment">-- are indistinguishable.</a>
<a id="Irrelevant"></a><a id="6651" href="Relation.Binary.Definitions.html#6651" class="Function">Irrelevant</a> <a id="6662" class="Symbol">:</a> <a id="6664" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="6668" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="6670" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="6672" href="Relation.Binary.Definitions.html#790" class="Generalizable"></a> <a id="6674" class="Symbol"></a> <a id="6676" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="6680" class="Symbol">_</a>
<a id="6682" href="Relation.Binary.Definitions.html#6651" class="Function">Irrelevant</a> <a id="6693" href="Relation.Binary.Definitions.html#6693" class="Bound Operator">__</a> <a id="6697" class="Symbol">=</a> <a id="6699" class="Symbol"></a> <a id="6701" class="Symbol">{</a><a id="6702" href="Relation.Binary.Definitions.html#6702" class="Bound">x</a> <a id="6704" href="Relation.Binary.Definitions.html#6704" class="Bound">y</a><a id="6705" class="Symbol">}</a> <a id="6707" class="Symbol">(</a><a id="6708" href="Relation.Binary.Definitions.html#6708" class="Bound">a</a> <a id="6710" href="Relation.Binary.Definitions.html#6710" class="Bound">b</a> <a id="6712" class="Symbol">:</a> <a id="6714" href="Relation.Binary.Definitions.html#6702" class="Bound">x</a> <a id="6716" href="Relation.Binary.Definitions.html#6693" class="Bound Operator"></a> <a id="6718" href="Relation.Binary.Definitions.html#6704" class="Bound">y</a><a id="6719" class="Symbol">)</a> <a id="6721" class="Symbol"></a> <a id="6723" href="Relation.Binary.Definitions.html#6708" class="Bound">a</a> <a id="6725" href="Agda.Builtin.Equality.html#150" class="Datatype Operator"></a> <a id="6727" href="Relation.Binary.Definitions.html#6710" class="Bound">b</a>
<a id="6730" class="Comment">-- Recomputability - we can rebuild a relevant proof given an</a>
<a id="6792" class="Comment">-- irrelevant one.</a>
<a id="Recomputable"></a><a id="6812" href="Relation.Binary.Definitions.html#6812" class="Function">Recomputable</a> <a id="6825" class="Symbol">:</a> <a id="6827" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="6831" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="6833" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="6835" href="Relation.Binary.Definitions.html#790" class="Generalizable"></a> <a id="6837" class="Symbol"></a> <a id="6839" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="6843" class="Symbol">_</a>
<a id="6845" href="Relation.Binary.Definitions.html#6812" class="Function">Recomputable</a> <a id="6858" href="Relation.Binary.Definitions.html#6858" class="Bound Operator">__</a> <a id="6862" class="Symbol">=</a> <a id="6864" class="Symbol"></a> <a id="6866" class="Symbol">{</a><a id="6867" href="Relation.Binary.Definitions.html#6867" class="Bound">x</a> <a id="6869" href="Relation.Binary.Definitions.html#6869" class="Bound">y</a><a id="6870" class="Symbol">}</a> <a id="6872" class="Symbol"></a> <a id="6874" class="Symbol">.(</a><a id="6876" href="Relation.Binary.Definitions.html#6867" class="Bound">x</a> <a id="6878" href="Relation.Binary.Definitions.html#6858" class="Bound Operator"></a> <a id="6880" href="Relation.Binary.Definitions.html#6869" class="Bound">y</a><a id="6881" class="Symbol">)</a> <a id="6883" class="Symbol"></a> <a id="6885" href="Relation.Binary.Definitions.html#6867" class="Bound">x</a> <a id="6887" href="Relation.Binary.Definitions.html#6858" class="Bound Operator"></a> <a id="6889" href="Relation.Binary.Definitions.html#6869" class="Bound">y</a>
<a id="6892" class="Comment">-- Universal - all pairs of elements are related</a>
<a id="Universal"></a><a id="6942" href="Relation.Binary.Definitions.html#6942" class="Function">Universal</a> <a id="6952" class="Symbol">:</a> <a id="6954" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="6958" href="Relation.Binary.Definitions.html#813" class="Generalizable">A</a> <a id="6960" href="Relation.Binary.Definitions.html#827" class="Generalizable">B</a> <a id="6962" href="Relation.Binary.Definitions.html#790" class="Generalizable"></a> <a id="6964" class="Symbol"></a> <a id="6966" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="6970" class="Symbol">_</a>
<a id="6972" href="Relation.Binary.Definitions.html#6942" class="Function">Universal</a> <a id="6982" href="Relation.Binary.Definitions.html#6982" class="Bound Operator">__</a> <a id="6986" class="Symbol">=</a> <a id="6988" class="Symbol"></a> <a id="6990" href="Relation.Binary.Definitions.html#6990" class="Bound">x</a> <a id="6992" href="Relation.Binary.Definitions.html#6992" class="Bound">y</a> <a id="6994" class="Symbol"></a> <a id="6996" href="Relation.Binary.Definitions.html#6990" class="Bound">x</a> <a id="6998" href="Relation.Binary.Definitions.html#6982" class="Bound Operator"></a> <a id="7000" href="Relation.Binary.Definitions.html#6992" class="Bound">y</a>
<a id="7003" class="Comment">-- Non-emptiness - at least one pair of elements are related.</a>
<a id="7066" class="Keyword">record</a> <a id="NonEmpty"></a><a id="7073" href="Relation.Binary.Definitions.html#7073" class="Record">NonEmpty</a> <a id="7082" class="Symbol">{</a><a id="7083" href="Relation.Binary.Definitions.html#7083" class="Bound">A</a> <a id="7085" class="Symbol">:</a> <a id="7087" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="7091" href="Relation.Binary.Definitions.html#784" class="Generalizable">a</a><a id="7092" class="Symbol">}</a> <a id="7094" class="Symbol">{</a><a id="7095" href="Relation.Binary.Definitions.html#7095" class="Bound">B</a> <a id="7097" class="Symbol">:</a> <a id="7099" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="7103" href="Relation.Binary.Definitions.html#786" class="Generalizable">b</a><a id="7104" class="Symbol">}</a>
<a id="7122" class="Symbol">(</a><a id="7123" href="Relation.Binary.Definitions.html#7123" class="Bound">T</a> <a id="7125" class="Symbol">:</a> <a id="7127" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="7131" href="Relation.Binary.Definitions.html#7083" class="Bound">A</a> <a id="7133" href="Relation.Binary.Definitions.html#7095" class="Bound">B</a> <a id="7135" href="Relation.Binary.Definitions.html#790" class="Generalizable"></a><a id="7136" class="Symbol">)</a> <a id="7138" class="Symbol">:</a> <a id="7140" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="7144" class="Symbol">(</a><a id="7145" href="Relation.Binary.Definitions.html#7091" class="Bound">a</a> <a id="7147" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="7149" href="Relation.Binary.Definitions.html#7103" class="Bound">b</a> <a id="7151" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="7153" href="Relation.Binary.Definitions.html#7135" class="Bound"></a><a id="7154" class="Symbol">)</a> <a id="7156" class="Keyword">where</a>
<a id="7164" class="Keyword">constructor</a> <a id="nonEmpty"></a><a id="7176" href="Relation.Binary.Definitions.html#7176" class="InductiveConstructor">nonEmpty</a>
<a id="7187" class="Keyword">field</a>
<a id="7197" class="Symbol">{</a><a id="NonEmpty.x"></a><a id="7198" href="Relation.Binary.Definitions.html#7198" class="Field">x</a><a id="7199" class="Symbol">}</a> <a id="7203" class="Symbol">:</a> <a id="7205" href="Relation.Binary.Definitions.html#7083" class="Bound">A</a>
<a id="7211" class="Symbol">{</a><a id="NonEmpty.y"></a><a id="7212" href="Relation.Binary.Definitions.html#7212" class="Field">y</a><a id="7213" class="Symbol">}</a> <a id="7217" class="Symbol">:</a> <a id="7219" href="Relation.Binary.Definitions.html#7095" class="Bound">B</a>
<a id="NonEmpty.proof"></a><a id="7225" href="Relation.Binary.Definitions.html#7225" class="Field">proof</a> <a id="7231" class="Symbol">:</a> <a id="7233" href="Relation.Binary.Definitions.html#7123" class="Bound">T</a> <a id="7235" href="Relation.Binary.Definitions.html#7198" class="Field">x</a> <a id="7237" href="Relation.Binary.Definitions.html#7212" class="Field">y</a>
</pre></body></html>