mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
225 lines
No EOL
68 KiB
HTML
225 lines
No EOL
68 KiB
HTML
<!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#133" 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#118" 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.html" class="Module">Data.Product</a> <a id="489" class="Keyword">using</a> <a id="495" class="Symbol">(</a><a id="496" href="Data.Product.html#1176" class="Function Operator">_×_</a><a id="499" class="Symbol">)</a>
|
||
<a id="501" class="Keyword">open</a> <a id="506" class="Keyword">import</a> <a id="513" href="Data.Sum.Base.html" class="Module">Data.Sum.Base</a> <a id="527" class="Keyword">using</a> <a id="533" class="Symbol">(</a><a id="534" href="Data.Sum.Base.html#743" class="Datatype Operator">_⊎_</a><a id="537" class="Symbol">)</a>
|
||
<a id="539" class="Keyword">open</a> <a id="544" class="Keyword">import</a> <a id="551" href="Function.Base.html" class="Module">Function.Base</a> <a id="565" class="Keyword">using</a> <a id="571" class="Symbol">(</a><a id="572" href="Function.Base.html#6294" class="Function Operator">_on_</a><a id="576" class="Symbol">;</a> <a id="578" href="Function.Base.html#1563" class="Function">flip</a><a id="582" class="Symbol">)</a>
|
||
<a id="584" class="Keyword">open</a> <a id="589" class="Keyword">import</a> <a id="596" href="Level.html" class="Module">Level</a>
|
||
<a id="602" class="Keyword">open</a> <a id="607" class="Keyword">import</a> <a id="614" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a>
|
||
<a id="635" class="Keyword">open</a> <a id="640" class="Keyword">import</a> <a id="647" href="Relation.Nullary.html" class="Module">Relation.Nullary</a> <a id="664" class="Keyword">using</a> <a id="670" class="Symbol">(</a><a id="671" href="Relation.Nullary.html#1520" class="Record">Dec</a><a id="674" class="Symbol">;</a> <a id="676" href="Relation.Nullary.html#665" class="Function Operator">¬_</a><a id="678" class="Symbol">)</a>
|
||
|
||
<a id="681" class="Keyword">private</a>
|
||
<a id="691" class="Keyword">variable</a>
|
||
<a id="704" href="Relation.Binary.Definitions.html#704" class="Generalizable">a</a> <a id="706" href="Relation.Binary.Definitions.html#706" class="Generalizable">b</a> <a id="708" href="Relation.Binary.Definitions.html#708" class="Generalizable">c</a> <a id="710" href="Relation.Binary.Definitions.html#710" class="Generalizable">ℓ</a> <a id="712" href="Relation.Binary.Definitions.html#712" class="Generalizable">ℓ₁</a> <a id="715" href="Relation.Binary.Definitions.html#715" class="Generalizable">ℓ₂</a> <a id="718" href="Relation.Binary.Definitions.html#718" class="Generalizable">ℓ₃</a> <a id="721" class="Symbol">:</a> <a id="723" href="Agda.Primitive.html#591" class="Postulate">Level</a>
|
||
<a id="733" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="735" class="Symbol">:</a> <a id="737" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="741" href="Relation.Binary.Definitions.html#704" class="Generalizable">a</a>
|
||
<a id="747" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="749" class="Symbol">:</a> <a id="751" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="755" href="Relation.Binary.Definitions.html#706" class="Generalizable">b</a>
|
||
<a id="761" href="Relation.Binary.Definitions.html#761" class="Generalizable">C</a> <a id="763" class="Symbol">:</a> <a id="765" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="769" href="Relation.Binary.Definitions.html#708" class="Generalizable">c</a>
|
||
|
||
<a id="772" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="845" class="Comment">-- Definitions</a>
|
||
<a id="860" class="Comment">------------------------------------------------------------------------</a>
|
||
|
||
<a id="934" class="Comment">-- Reflexivity - defined without an underlying equality. It could</a>
|
||
<a id="1000" class="Comment">-- alternatively be defined as `_≈_ ⇒ _∼_` for some equality `_≈_`.</a>
|
||
|
||
<a id="1069" class="Comment">-- Confusingly the convention in the library is to use the name "refl"</a>
|
||
<a id="1140" class="Comment">-- for proofs of Reflexive and `reflexive` for proofs of type `_≈_ ⇒ _∼_`,</a>
|
||
<a id="1215" class="Comment">-- e.g. in the definition of `IsEquivalence` later in this file. This</a>
|
||
<a id="1285" class="Comment">-- convention is a legacy from the early days of the library.</a>
|
||
|
||
<a id="Reflexive"></a><a id="1348" href="Relation.Binary.Definitions.html#1348" class="Function">Reflexive</a> <a id="1358" class="Symbol">:</a> <a id="1360" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="1364" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="1366" href="Relation.Binary.Definitions.html#710" class="Generalizable">ℓ</a> <a id="1368" class="Symbol">→</a> <a id="1370" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1374" class="Symbol">_</a>
|
||
<a id="1376" href="Relation.Binary.Definitions.html#1348" class="Function">Reflexive</a> <a id="1386" href="Relation.Binary.Definitions.html#1386" class="Bound Operator">_∼_</a> <a id="1390" class="Symbol">=</a> <a id="1392" class="Symbol">∀</a> <a id="1394" class="Symbol">{</a><a id="1395" href="Relation.Binary.Definitions.html#1395" class="Bound">x</a><a id="1396" class="Symbol">}</a> <a id="1398" class="Symbol">→</a> <a id="1400" href="Relation.Binary.Definitions.html#1395" class="Bound">x</a> <a id="1402" href="Relation.Binary.Definitions.html#1386" class="Bound Operator">∼</a> <a id="1404" href="Relation.Binary.Definitions.html#1395" class="Bound">x</a>
|
||
|
||
<a id="1407" class="Comment">-- Generalised symmetry.</a>
|
||
|
||
<a id="Sym"></a><a id="1433" href="Relation.Binary.Definitions.html#1433" class="Function">Sym</a> <a id="1437" class="Symbol">:</a> <a id="1439" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="1443" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="1445" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="1447" href="Relation.Binary.Definitions.html#712" class="Generalizable">ℓ₁</a> <a id="1450" class="Symbol">→</a> <a id="1452" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="1456" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="1458" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="1460" href="Relation.Binary.Definitions.html#715" class="Generalizable">ℓ₂</a> <a id="1463" class="Symbol">→</a> <a id="1465" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1469" class="Symbol">_</a>
|
||
<a id="1471" href="Relation.Binary.Definitions.html#1433" class="Function">Sym</a> <a id="1475" href="Relation.Binary.Definitions.html#1475" class="Bound">P</a> <a id="1477" href="Relation.Binary.Definitions.html#1477" class="Bound">Q</a> <a id="1479" class="Symbol">=</a> <a id="1481" href="Relation.Binary.Definitions.html#1475" class="Bound">P</a> <a id="1483" href="Relation.Binary.Core.html#1263" class="Function Operator">⇒</a> <a id="1485" href="Function.Base.html#1563" class="Function">flip</a> <a id="1490" href="Relation.Binary.Definitions.html#1477" class="Bound">Q</a>
|
||
|
||
<a id="1493" class="Comment">-- Symmetry.</a>
|
||
|
||
<a id="Symmetric"></a><a id="1507" href="Relation.Binary.Definitions.html#1507" class="Function">Symmetric</a> <a id="1517" class="Symbol">:</a> <a id="1519" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="1523" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="1525" href="Relation.Binary.Definitions.html#710" class="Generalizable">ℓ</a> <a id="1527" class="Symbol">→</a> <a id="1529" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1533" class="Symbol">_</a>
|
||
<a id="1535" href="Relation.Binary.Definitions.html#1507" class="Function">Symmetric</a> <a id="1545" href="Relation.Binary.Definitions.html#1545" class="Bound Operator">_∼_</a> <a id="1549" class="Symbol">=</a> <a id="1551" href="Relation.Binary.Definitions.html#1433" class="Function">Sym</a> <a id="1555" href="Relation.Binary.Definitions.html#1545" class="Bound Operator">_∼_</a> <a id="1559" href="Relation.Binary.Definitions.html#1545" class="Bound Operator">_∼_</a>
|
||
|
||
<a id="1564" class="Comment">-- Generalised transitivity.</a>
|
||
|
||
<a id="Trans"></a><a id="1594" href="Relation.Binary.Definitions.html#1594" class="Function">Trans</a> <a id="1600" class="Symbol">:</a> <a id="1602" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="1606" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="1608" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="1610" href="Relation.Binary.Definitions.html#712" class="Generalizable">ℓ₁</a> <a id="1613" class="Symbol">→</a> <a id="1615" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="1619" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="1621" href="Relation.Binary.Definitions.html#761" class="Generalizable">C</a> <a id="1623" href="Relation.Binary.Definitions.html#715" class="Generalizable">ℓ₂</a> <a id="1626" class="Symbol">→</a> <a id="1628" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="1632" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="1634" href="Relation.Binary.Definitions.html#761" class="Generalizable">C</a> <a id="1636" href="Relation.Binary.Definitions.html#718" class="Generalizable">ℓ₃</a> <a id="1639" class="Symbol">→</a> <a id="1641" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1645" class="Symbol">_</a>
|
||
<a id="1647" href="Relation.Binary.Definitions.html#1594" class="Function">Trans</a> <a id="1653" href="Relation.Binary.Definitions.html#1653" class="Bound">P</a> <a id="1655" href="Relation.Binary.Definitions.html#1655" class="Bound">Q</a> <a id="1657" href="Relation.Binary.Definitions.html#1657" class="Bound">R</a> <a id="1659" class="Symbol">=</a> <a id="1661" class="Symbol">∀</a> <a id="1663" class="Symbol">{</a><a id="1664" href="Relation.Binary.Definitions.html#1664" class="Bound">i</a> <a id="1666" href="Relation.Binary.Definitions.html#1666" class="Bound">j</a> <a id="1668" href="Relation.Binary.Definitions.html#1668" class="Bound">k</a><a id="1669" class="Symbol">}</a> <a id="1671" class="Symbol">→</a> <a id="1673" href="Relation.Binary.Definitions.html#1653" class="Bound">P</a> <a id="1675" href="Relation.Binary.Definitions.html#1664" class="Bound">i</a> <a id="1677" href="Relation.Binary.Definitions.html#1666" class="Bound">j</a> <a id="1679" class="Symbol">→</a> <a id="1681" href="Relation.Binary.Definitions.html#1655" class="Bound">Q</a> <a id="1683" href="Relation.Binary.Definitions.html#1666" class="Bound">j</a> <a id="1685" href="Relation.Binary.Definitions.html#1668" class="Bound">k</a> <a id="1687" class="Symbol">→</a> <a id="1689" href="Relation.Binary.Definitions.html#1657" class="Bound">R</a> <a id="1691" href="Relation.Binary.Definitions.html#1664" class="Bound">i</a> <a id="1693" href="Relation.Binary.Definitions.html#1668" class="Bound">k</a>
|
||
|
||
<a id="1696" class="Comment">-- A flipped variant of generalised transitivity.</a>
|
||
|
||
<a id="TransFlip"></a><a id="1747" href="Relation.Binary.Definitions.html#1747" class="Function">TransFlip</a> <a id="1757" class="Symbol">:</a> <a id="1759" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="1763" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="1765" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="1767" href="Relation.Binary.Definitions.html#712" class="Generalizable">ℓ₁</a> <a id="1770" class="Symbol">→</a> <a id="1772" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="1776" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="1778" href="Relation.Binary.Definitions.html#761" class="Generalizable">C</a> <a id="1780" href="Relation.Binary.Definitions.html#715" class="Generalizable">ℓ₂</a> <a id="1783" class="Symbol">→</a> <a id="1785" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="1789" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="1791" href="Relation.Binary.Definitions.html#761" class="Generalizable">C</a> <a id="1793" href="Relation.Binary.Definitions.html#718" class="Generalizable">ℓ₃</a> <a id="1796" class="Symbol">→</a> <a id="1798" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1802" class="Symbol">_</a>
|
||
<a id="1804" href="Relation.Binary.Definitions.html#1747" class="Function">TransFlip</a> <a id="1814" href="Relation.Binary.Definitions.html#1814" class="Bound">P</a> <a id="1816" href="Relation.Binary.Definitions.html#1816" class="Bound">Q</a> <a id="1818" href="Relation.Binary.Definitions.html#1818" class="Bound">R</a> <a id="1820" class="Symbol">=</a> <a id="1822" class="Symbol">∀</a> <a id="1824" class="Symbol">{</a><a id="1825" href="Relation.Binary.Definitions.html#1825" class="Bound">i</a> <a id="1827" href="Relation.Binary.Definitions.html#1827" class="Bound">j</a> <a id="1829" href="Relation.Binary.Definitions.html#1829" class="Bound">k</a><a id="1830" class="Symbol">}</a> <a id="1832" class="Symbol">→</a> <a id="1834" href="Relation.Binary.Definitions.html#1816" class="Bound">Q</a> <a id="1836" href="Relation.Binary.Definitions.html#1827" class="Bound">j</a> <a id="1838" href="Relation.Binary.Definitions.html#1829" class="Bound">k</a> <a id="1840" class="Symbol">→</a> <a id="1842" href="Relation.Binary.Definitions.html#1814" class="Bound">P</a> <a id="1844" href="Relation.Binary.Definitions.html#1825" class="Bound">i</a> <a id="1846" href="Relation.Binary.Definitions.html#1827" class="Bound">j</a> <a id="1848" class="Symbol">→</a> <a id="1850" href="Relation.Binary.Definitions.html#1818" class="Bound">R</a> <a id="1852" href="Relation.Binary.Definitions.html#1825" class="Bound">i</a> <a id="1854" href="Relation.Binary.Definitions.html#1829" class="Bound">k</a>
|
||
|
||
<a id="1857" class="Comment">-- Transitivity.</a>
|
||
|
||
<a id="Transitive"></a><a id="1875" href="Relation.Binary.Definitions.html#1875" class="Function">Transitive</a> <a id="1886" class="Symbol">:</a> <a id="1888" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="1892" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="1894" href="Relation.Binary.Definitions.html#710" class="Generalizable">ℓ</a> <a id="1896" class="Symbol">→</a> <a id="1898" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1902" class="Symbol">_</a>
|
||
<a id="1904" href="Relation.Binary.Definitions.html#1875" class="Function">Transitive</a> <a id="1915" href="Relation.Binary.Definitions.html#1915" class="Bound Operator">_∼_</a> <a id="1919" class="Symbol">=</a> <a id="1921" href="Relation.Binary.Definitions.html#1594" class="Function">Trans</a> <a id="1927" href="Relation.Binary.Definitions.html#1915" class="Bound Operator">_∼_</a> <a id="1931" href="Relation.Binary.Definitions.html#1915" class="Bound Operator">_∼_</a> <a id="1935" href="Relation.Binary.Definitions.html#1915" class="Bound Operator">_∼_</a>
|
||
|
||
<a id="1940" class="Comment">-- Generalised antisymmetry</a>
|
||
|
||
<a id="Antisym"></a><a id="1969" href="Relation.Binary.Definitions.html#1969" class="Function">Antisym</a> <a id="1977" class="Symbol">:</a> <a id="1979" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="1983" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="1985" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="1987" href="Relation.Binary.Definitions.html#712" class="Generalizable">ℓ₁</a> <a id="1990" class="Symbol">→</a> <a id="1992" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="1996" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="1998" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="2000" href="Relation.Binary.Definitions.html#715" class="Generalizable">ℓ₂</a> <a id="2003" class="Symbol">→</a> <a id="2005" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="2009" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="2011" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="2013" href="Relation.Binary.Definitions.html#718" class="Generalizable">ℓ₃</a> <a id="2016" class="Symbol">→</a> <a id="2018" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2022" class="Symbol">_</a>
|
||
<a id="2024" href="Relation.Binary.Definitions.html#1969" class="Function">Antisym</a> <a id="2032" href="Relation.Binary.Definitions.html#2032" class="Bound">R</a> <a id="2034" href="Relation.Binary.Definitions.html#2034" class="Bound">S</a> <a id="2036" href="Relation.Binary.Definitions.html#2036" class="Bound">E</a> <a id="2038" class="Symbol">=</a> <a id="2040" class="Symbol">∀</a> <a id="2042" class="Symbol">{</a><a id="2043" href="Relation.Binary.Definitions.html#2043" class="Bound">i</a> <a id="2045" href="Relation.Binary.Definitions.html#2045" class="Bound">j</a><a id="2046" class="Symbol">}</a> <a id="2048" class="Symbol">→</a> <a id="2050" href="Relation.Binary.Definitions.html#2032" class="Bound">R</a> <a id="2052" href="Relation.Binary.Definitions.html#2043" class="Bound">i</a> <a id="2054" href="Relation.Binary.Definitions.html#2045" class="Bound">j</a> <a id="2056" class="Symbol">→</a> <a id="2058" href="Relation.Binary.Definitions.html#2034" class="Bound">S</a> <a id="2060" href="Relation.Binary.Definitions.html#2045" class="Bound">j</a> <a id="2062" href="Relation.Binary.Definitions.html#2043" class="Bound">i</a> <a id="2064" class="Symbol">→</a> <a id="2066" href="Relation.Binary.Definitions.html#2036" class="Bound">E</a> <a id="2068" href="Relation.Binary.Definitions.html#2043" class="Bound">i</a> <a id="2070" href="Relation.Binary.Definitions.html#2045" class="Bound">j</a>
|
||
|
||
<a id="2073" class="Comment">-- Antisymmetry.</a>
|
||
|
||
<a id="Antisymmetric"></a><a id="2091" href="Relation.Binary.Definitions.html#2091" class="Function">Antisymmetric</a> <a id="2105" class="Symbol">:</a> <a id="2107" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="2111" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="2113" href="Relation.Binary.Definitions.html#712" class="Generalizable">ℓ₁</a> <a id="2116" class="Symbol">→</a> <a id="2118" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="2122" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="2124" href="Relation.Binary.Definitions.html#715" class="Generalizable">ℓ₂</a> <a id="2127" class="Symbol">→</a> <a id="2129" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2133" class="Symbol">_</a>
|
||
<a id="2135" href="Relation.Binary.Definitions.html#2091" class="Function">Antisymmetric</a> <a id="2149" href="Relation.Binary.Definitions.html#2149" class="Bound Operator">_≈_</a> <a id="2153" href="Relation.Binary.Definitions.html#2153" class="Bound Operator">_≤_</a> <a id="2157" class="Symbol">=</a> <a id="2159" href="Relation.Binary.Definitions.html#1969" class="Function">Antisym</a> <a id="2167" href="Relation.Binary.Definitions.html#2153" class="Bound Operator">_≤_</a> <a id="2171" href="Relation.Binary.Definitions.html#2153" class="Bound Operator">_≤_</a> <a id="2175" href="Relation.Binary.Definitions.html#2149" class="Bound Operator">_≈_</a>
|
||
|
||
<a id="2180" class="Comment">-- Irreflexivity - this is defined terms of the underlying equality.</a>
|
||
|
||
<a id="Irreflexive"></a><a id="2250" href="Relation.Binary.Definitions.html#2250" class="Function">Irreflexive</a> <a id="2262" class="Symbol">:</a> <a id="2264" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="2268" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="2270" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="2272" href="Relation.Binary.Definitions.html#712" class="Generalizable">ℓ₁</a> <a id="2275" class="Symbol">→</a> <a id="2277" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="2281" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="2283" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="2285" href="Relation.Binary.Definitions.html#715" class="Generalizable">ℓ₂</a> <a id="2288" class="Symbol">→</a> <a id="2290" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2294" class="Symbol">_</a>
|
||
<a id="2296" href="Relation.Binary.Definitions.html#2250" class="Function">Irreflexive</a> <a id="2308" href="Relation.Binary.Definitions.html#2308" class="Bound Operator">_≈_</a> <a id="2312" href="Relation.Binary.Definitions.html#2312" class="Bound Operator">_<_</a> <a id="2316" class="Symbol">=</a> <a id="2318" class="Symbol">∀</a> <a id="2320" class="Symbol">{</a><a id="2321" href="Relation.Binary.Definitions.html#2321" class="Bound">x</a> <a id="2323" href="Relation.Binary.Definitions.html#2323" class="Bound">y</a><a id="2324" class="Symbol">}</a> <a id="2326" class="Symbol">→</a> <a id="2328" href="Relation.Binary.Definitions.html#2321" class="Bound">x</a> <a id="2330" href="Relation.Binary.Definitions.html#2308" class="Bound Operator">≈</a> <a id="2332" href="Relation.Binary.Definitions.html#2323" class="Bound">y</a> <a id="2334" class="Symbol">→</a> <a id="2336" href="Relation.Nullary.html#665" class="Function Operator">¬</a> <a id="2338" class="Symbol">(</a><a id="2339" href="Relation.Binary.Definitions.html#2321" class="Bound">x</a> <a id="2341" href="Relation.Binary.Definitions.html#2312" class="Bound Operator"><</a> <a id="2343" href="Relation.Binary.Definitions.html#2323" class="Bound">y</a><a id="2344" class="Symbol">)</a>
|
||
|
||
<a id="2347" class="Comment">-- Asymmetry.</a>
|
||
|
||
<a id="Asymmetric"></a><a id="2362" href="Relation.Binary.Definitions.html#2362" class="Function">Asymmetric</a> <a id="2373" class="Symbol">:</a> <a id="2375" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="2379" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="2381" href="Relation.Binary.Definitions.html#710" class="Generalizable">ℓ</a> <a id="2383" class="Symbol">→</a> <a id="2385" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2389" class="Symbol">_</a>
|
||
<a id="2391" href="Relation.Binary.Definitions.html#2362" class="Function">Asymmetric</a> <a id="2402" href="Relation.Binary.Definitions.html#2402" class="Bound Operator">_<_</a> <a id="2406" class="Symbol">=</a> <a id="2408" class="Symbol">∀</a> <a id="2410" class="Symbol">{</a><a id="2411" href="Relation.Binary.Definitions.html#2411" class="Bound">x</a> <a id="2413" href="Relation.Binary.Definitions.html#2413" class="Bound">y</a><a id="2414" class="Symbol">}</a> <a id="2416" class="Symbol">→</a> <a id="2418" href="Relation.Binary.Definitions.html#2411" class="Bound">x</a> <a id="2420" href="Relation.Binary.Definitions.html#2402" class="Bound Operator"><</a> <a id="2422" href="Relation.Binary.Definitions.html#2413" class="Bound">y</a> <a id="2424" class="Symbol">→</a> <a id="2426" href="Relation.Nullary.html#665" class="Function Operator">¬</a> <a id="2428" class="Symbol">(</a><a id="2429" href="Relation.Binary.Definitions.html#2413" class="Bound">y</a> <a id="2431" href="Relation.Binary.Definitions.html#2402" class="Bound Operator"><</a> <a id="2433" href="Relation.Binary.Definitions.html#2411" class="Bound">x</a><a id="2434" class="Symbol">)</a>
|
||
|
||
<a id="2437" class="Comment">-- Generalised connex - exactly one of the two relations holds.</a>
|
||
|
||
<a id="Connex"></a><a id="2502" href="Relation.Binary.Definitions.html#2502" class="Function">Connex</a> <a id="2509" class="Symbol">:</a> <a id="2511" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="2515" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="2517" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="2519" href="Relation.Binary.Definitions.html#712" class="Generalizable">ℓ₁</a> <a id="2522" class="Symbol">→</a> <a id="2524" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="2528" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="2530" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="2532" href="Relation.Binary.Definitions.html#715" class="Generalizable">ℓ₂</a> <a id="2535" class="Symbol">→</a> <a id="2537" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2541" class="Symbol">_</a>
|
||
<a id="2543" href="Relation.Binary.Definitions.html#2502" class="Function">Connex</a> <a id="2550" href="Relation.Binary.Definitions.html#2550" class="Bound">P</a> <a id="2552" href="Relation.Binary.Definitions.html#2552" class="Bound">Q</a> <a id="2554" class="Symbol">=</a> <a id="2556" class="Symbol">∀</a> <a id="2558" href="Relation.Binary.Definitions.html#2558" class="Bound">x</a> <a id="2560" href="Relation.Binary.Definitions.html#2560" class="Bound">y</a> <a id="2562" class="Symbol">→</a> <a id="2564" href="Relation.Binary.Definitions.html#2550" class="Bound">P</a> <a id="2566" href="Relation.Binary.Definitions.html#2558" class="Bound">x</a> <a id="2568" href="Relation.Binary.Definitions.html#2560" class="Bound">y</a> <a id="2570" href="Data.Sum.Base.html#743" class="Datatype Operator">⊎</a> <a id="2572" href="Relation.Binary.Definitions.html#2552" class="Bound">Q</a> <a id="2574" href="Relation.Binary.Definitions.html#2560" class="Bound">y</a> <a id="2576" href="Relation.Binary.Definitions.html#2558" class="Bound">x</a>
|
||
|
||
<a id="2579" class="Comment">-- Totality.</a>
|
||
|
||
<a id="Total"></a><a id="2593" href="Relation.Binary.Definitions.html#2593" class="Function">Total</a> <a id="2599" class="Symbol">:</a> <a id="2601" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="2605" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="2607" href="Relation.Binary.Definitions.html#710" class="Generalizable">ℓ</a> <a id="2609" class="Symbol">→</a> <a id="2611" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2615" class="Symbol">_</a>
|
||
<a id="2617" href="Relation.Binary.Definitions.html#2593" class="Function">Total</a> <a id="2623" href="Relation.Binary.Definitions.html#2623" class="Bound Operator">_∼_</a> <a id="2627" class="Symbol">=</a> <a id="2629" href="Relation.Binary.Definitions.html#2502" class="Function">Connex</a> <a id="2636" href="Relation.Binary.Definitions.html#2623" class="Bound Operator">_∼_</a> <a id="2640" href="Relation.Binary.Definitions.html#2623" class="Bound Operator">_∼_</a>
|
||
|
||
<a id="2645" class="Comment">-- Generalised trichotomy - exactly one of three types has a witness.</a>
|
||
|
||
<a id="2716" class="Keyword">data</a> <a id="Tri"></a><a id="2721" href="Relation.Binary.Definitions.html#2721" class="Datatype">Tri</a> <a id="2725" class="Symbol">(</a><a id="2726" href="Relation.Binary.Definitions.html#2726" class="Bound">A</a> <a id="2728" class="Symbol">:</a> <a id="2730" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2734" href="Relation.Binary.Definitions.html#704" class="Generalizable">a</a><a id="2735" class="Symbol">)</a> <a id="2737" class="Symbol">(</a><a id="2738" href="Relation.Binary.Definitions.html#2738" class="Bound">B</a> <a id="2740" class="Symbol">:</a> <a id="2742" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2746" href="Relation.Binary.Definitions.html#706" class="Generalizable">b</a><a id="2747" class="Symbol">)</a> <a id="2749" class="Symbol">(</a><a id="2750" href="Relation.Binary.Definitions.html#2750" class="Bound">C</a> <a id="2752" class="Symbol">:</a> <a id="2754" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2758" href="Relation.Binary.Definitions.html#708" class="Generalizable">c</a><a id="2759" class="Symbol">)</a> <a id="2761" class="Symbol">:</a> <a id="2763" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2767" class="Symbol">(</a><a id="2768" href="Relation.Binary.Definitions.html#2734" class="Bound">a</a> <a id="2770" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="2772" href="Relation.Binary.Definitions.html#2746" class="Bound">b</a> <a id="2774" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="2776" href="Relation.Binary.Definitions.html#2758" class="Bound">c</a><a id="2777" class="Symbol">)</a> <a id="2779" class="Keyword">where</a>
|
||
<a id="Tri.tri<"></a><a id="2787" href="Relation.Binary.Definitions.html#2787" class="InductiveConstructor">tri<</a> <a id="2792" class="Symbol">:</a> <a id="2794" class="Symbol">(</a> <a id="2796" href="Relation.Binary.Definitions.html#2796" class="Bound">a</a> <a id="2798" class="Symbol">:</a> <a id="2802" href="Relation.Binary.Definitions.html#2726" class="Bound">A</a><a id="2803" class="Symbol">)</a> <a id="2805" class="Symbol">(</a><a id="2806" href="Relation.Binary.Definitions.html#2806" class="Bound">¬b</a> <a id="2809" class="Symbol">:</a> <a id="2811" href="Relation.Nullary.html#665" class="Function Operator">¬</a> <a id="2813" href="Relation.Binary.Definitions.html#2738" class="Bound">B</a><a id="2814" class="Symbol">)</a> <a id="2816" class="Symbol">(</a><a id="2817" href="Relation.Binary.Definitions.html#2817" class="Bound">¬c</a> <a id="2820" class="Symbol">:</a> <a id="2822" href="Relation.Nullary.html#665" class="Function Operator">¬</a> <a id="2824" href="Relation.Binary.Definitions.html#2750" class="Bound">C</a><a id="2825" class="Symbol">)</a> <a id="2827" class="Symbol">→</a> <a id="2829" href="Relation.Binary.Definitions.html#2721" class="Datatype">Tri</a> <a id="2833" href="Relation.Binary.Definitions.html#2726" class="Bound">A</a> <a id="2835" href="Relation.Binary.Definitions.html#2738" class="Bound">B</a> <a id="2837" href="Relation.Binary.Definitions.html#2750" class="Bound">C</a>
|
||
<a id="Tri.tri≈"></a><a id="2841" href="Relation.Binary.Definitions.html#2841" class="InductiveConstructor">tri≈</a> <a id="2846" class="Symbol">:</a> <a id="2848" class="Symbol">(</a><a id="2849" href="Relation.Binary.Definitions.html#2849" class="Bound">¬a</a> <a id="2852" class="Symbol">:</a> <a id="2854" href="Relation.Nullary.html#665" class="Function Operator">¬</a> <a id="2856" href="Relation.Binary.Definitions.html#2726" class="Bound">A</a><a id="2857" class="Symbol">)</a> <a id="2859" class="Symbol">(</a> <a id="2861" href="Relation.Binary.Definitions.html#2861" class="Bound">b</a> <a id="2863" class="Symbol">:</a> <a id="2867" href="Relation.Binary.Definitions.html#2738" class="Bound">B</a><a id="2868" class="Symbol">)</a> <a id="2870" class="Symbol">(</a><a id="2871" href="Relation.Binary.Definitions.html#2871" class="Bound">¬c</a> <a id="2874" class="Symbol">:</a> <a id="2876" href="Relation.Nullary.html#665" class="Function Operator">¬</a> <a id="2878" href="Relation.Binary.Definitions.html#2750" class="Bound">C</a><a id="2879" class="Symbol">)</a> <a id="2881" class="Symbol">→</a> <a id="2883" href="Relation.Binary.Definitions.html#2721" class="Datatype">Tri</a> <a id="2887" href="Relation.Binary.Definitions.html#2726" class="Bound">A</a> <a id="2889" href="Relation.Binary.Definitions.html#2738" class="Bound">B</a> <a id="2891" href="Relation.Binary.Definitions.html#2750" class="Bound">C</a>
|
||
<a id="Tri.tri>"></a><a id="2895" href="Relation.Binary.Definitions.html#2895" class="InductiveConstructor">tri></a> <a id="2900" class="Symbol">:</a> <a id="2902" class="Symbol">(</a><a id="2903" href="Relation.Binary.Definitions.html#2903" class="Bound">¬a</a> <a id="2906" class="Symbol">:</a> <a id="2908" href="Relation.Nullary.html#665" class="Function Operator">¬</a> <a id="2910" href="Relation.Binary.Definitions.html#2726" class="Bound">A</a><a id="2911" class="Symbol">)</a> <a id="2913" class="Symbol">(</a><a id="2914" href="Relation.Binary.Definitions.html#2914" class="Bound">¬b</a> <a id="2917" class="Symbol">:</a> <a id="2919" href="Relation.Nullary.html#665" class="Function Operator">¬</a> <a id="2921" href="Relation.Binary.Definitions.html#2738" class="Bound">B</a><a id="2922" class="Symbol">)</a> <a id="2924" class="Symbol">(</a> <a id="2926" href="Relation.Binary.Definitions.html#2926" class="Bound">c</a> <a id="2928" class="Symbol">:</a> <a id="2932" href="Relation.Binary.Definitions.html#2750" class="Bound">C</a><a id="2933" class="Symbol">)</a> <a id="2935" class="Symbol">→</a> <a id="2937" href="Relation.Binary.Definitions.html#2721" class="Datatype">Tri</a> <a id="2941" href="Relation.Binary.Definitions.html#2726" class="Bound">A</a> <a id="2943" href="Relation.Binary.Definitions.html#2738" class="Bound">B</a> <a id="2945" href="Relation.Binary.Definitions.html#2750" class="Bound">C</a>
|
||
|
||
<a id="2948" class="Comment">-- Trichotomy.</a>
|
||
|
||
<a id="Trichotomous"></a><a id="2964" href="Relation.Binary.Definitions.html#2964" class="Function">Trichotomous</a> <a id="2977" class="Symbol">:</a> <a id="2979" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="2983" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="2985" href="Relation.Binary.Definitions.html#712" class="Generalizable">ℓ₁</a> <a id="2988" class="Symbol">→</a> <a id="2990" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="2994" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="2996" href="Relation.Binary.Definitions.html#715" class="Generalizable">ℓ₂</a> <a id="2999" class="Symbol">→</a> <a id="3001" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3005" class="Symbol">_</a>
|
||
<a id="3007" href="Relation.Binary.Definitions.html#2964" class="Function">Trichotomous</a> <a id="3020" href="Relation.Binary.Definitions.html#3020" class="Bound Operator">_≈_</a> <a id="3024" href="Relation.Binary.Definitions.html#3024" class="Bound Operator">_<_</a> <a id="3028" class="Symbol">=</a> <a id="3030" class="Symbol">∀</a> <a id="3032" href="Relation.Binary.Definitions.html#3032" class="Bound">x</a> <a id="3034" href="Relation.Binary.Definitions.html#3034" class="Bound">y</a> <a id="3036" class="Symbol">→</a> <a id="3038" href="Relation.Binary.Definitions.html#2721" class="Datatype">Tri</a> <a id="3042" class="Symbol">(</a><a id="3043" href="Relation.Binary.Definitions.html#3032" class="Bound">x</a> <a id="3045" href="Relation.Binary.Definitions.html#3024" class="Bound Operator"><</a> <a id="3047" href="Relation.Binary.Definitions.html#3034" class="Bound">y</a><a id="3048" class="Symbol">)</a> <a id="3050" class="Symbol">(</a><a id="3051" href="Relation.Binary.Definitions.html#3032" class="Bound">x</a> <a id="3053" href="Relation.Binary.Definitions.html#3020" class="Bound Operator">≈</a> <a id="3055" href="Relation.Binary.Definitions.html#3034" class="Bound">y</a><a id="3056" class="Symbol">)</a> <a id="3058" class="Symbol">(</a><a id="3059" href="Relation.Binary.Definitions.html#3032" class="Bound">x</a> <a id="3061" href="Relation.Binary.Definitions.html#3074" class="Function Operator">></a> <a id="3063" href="Relation.Binary.Definitions.html#3034" class="Bound">y</a><a id="3064" class="Symbol">)</a>
|
||
<a id="3068" class="Keyword">where</a> <a id="3074" href="Relation.Binary.Definitions.html#3074" class="Function Operator">_>_</a> <a id="3078" class="Symbol">=</a> <a id="3080" href="Function.Base.html#1563" class="Function">flip</a> <a id="3085" href="Relation.Binary.Definitions.html#3024" class="Bound Operator">_<_</a>
|
||
|
||
<a id="3090" class="Comment">-- Generalised maximum element.</a>
|
||
|
||
<a id="Max"></a><a id="3123" href="Relation.Binary.Definitions.html#3123" class="Function">Max</a> <a id="3127" class="Symbol">:</a> <a id="3129" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="3133" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="3135" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="3137" href="Relation.Binary.Definitions.html#710" class="Generalizable">ℓ</a> <a id="3139" class="Symbol">→</a> <a id="3141" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="3143" class="Symbol">→</a> <a id="3145" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3149" class="Symbol">_</a>
|
||
<a id="3151" href="Relation.Binary.Definitions.html#3123" class="Function">Max</a> <a id="3155" href="Relation.Binary.Definitions.html#3155" class="Bound Operator">_≤_</a> <a id="3159" href="Relation.Binary.Definitions.html#3159" class="Bound">T</a> <a id="3161" class="Symbol">=</a> <a id="3163" class="Symbol">∀</a> <a id="3165" href="Relation.Binary.Definitions.html#3165" class="Bound">x</a> <a id="3167" class="Symbol">→</a> <a id="3169" href="Relation.Binary.Definitions.html#3165" class="Bound">x</a> <a id="3171" href="Relation.Binary.Definitions.html#3155" class="Bound Operator">≤</a> <a id="3173" href="Relation.Binary.Definitions.html#3159" class="Bound">T</a>
|
||
|
||
<a id="3176" class="Comment">-- Maximum element.</a>
|
||
|
||
<a id="Maximum"></a><a id="3197" href="Relation.Binary.Definitions.html#3197" class="Function">Maximum</a> <a id="3205" class="Symbol">:</a> <a id="3207" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="3211" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="3213" href="Relation.Binary.Definitions.html#710" class="Generalizable">ℓ</a> <a id="3215" class="Symbol">→</a> <a id="3217" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="3219" class="Symbol">→</a> <a id="3221" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3225" class="Symbol">_</a>
|
||
<a id="3227" href="Relation.Binary.Definitions.html#3197" class="Function">Maximum</a> <a id="3235" class="Symbol">=</a> <a id="3237" href="Relation.Binary.Definitions.html#3123" class="Function">Max</a>
|
||
|
||
<a id="3242" class="Comment">-- Generalised minimum element.</a>
|
||
|
||
<a id="Min"></a><a id="3275" href="Relation.Binary.Definitions.html#3275" class="Function">Min</a> <a id="3279" class="Symbol">:</a> <a id="3281" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="3285" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="3287" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="3289" href="Relation.Binary.Definitions.html#710" class="Generalizable">ℓ</a> <a id="3291" class="Symbol">→</a> <a id="3293" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="3295" class="Symbol">→</a> <a id="3297" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3301" class="Symbol">_</a>
|
||
<a id="3303" href="Relation.Binary.Definitions.html#3275" class="Function">Min</a> <a id="3307" href="Relation.Binary.Definitions.html#3307" class="Bound">R</a> <a id="3309" class="Symbol">=</a> <a id="3311" href="Relation.Binary.Definitions.html#3123" class="Function">Max</a> <a id="3315" class="Symbol">(</a><a id="3316" href="Function.Base.html#1563" class="Function">flip</a> <a id="3321" href="Relation.Binary.Definitions.html#3307" class="Bound">R</a><a id="3322" class="Symbol">)</a>
|
||
|
||
<a id="3325" class="Comment">-- Minimum element.</a>
|
||
|
||
<a id="Minimum"></a><a id="3346" href="Relation.Binary.Definitions.html#3346" class="Function">Minimum</a> <a id="3354" class="Symbol">:</a> <a id="3356" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="3360" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="3362" href="Relation.Binary.Definitions.html#710" class="Generalizable">ℓ</a> <a id="3364" class="Symbol">→</a> <a id="3366" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="3368" class="Symbol">→</a> <a id="3370" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3374" class="Symbol">_</a>
|
||
<a id="3376" href="Relation.Binary.Definitions.html#3346" class="Function">Minimum</a> <a id="3384" class="Symbol">=</a> <a id="3386" href="Relation.Binary.Definitions.html#3275" class="Function">Min</a>
|
||
|
||
<a id="3391" class="Comment">-- Unary relations respecting a binary relation.</a>
|
||
|
||
<a id="_⟶_Respects_"></a><a id="3441" href="Relation.Binary.Definitions.html#3441" class="Function Operator">_⟶_Respects_</a> <a id="3454" class="Symbol">:</a> <a id="3456" class="Symbol">(</a><a id="3457" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="3459" class="Symbol">→</a> <a id="3461" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3465" href="Relation.Binary.Definitions.html#712" class="Generalizable">ℓ₁</a><a id="3467" class="Symbol">)</a> <a id="3469" class="Symbol">→</a> <a id="3471" class="Symbol">(</a><a id="3472" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="3474" class="Symbol">→</a> <a id="3476" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3480" href="Relation.Binary.Definitions.html#715" class="Generalizable">ℓ₂</a><a id="3482" class="Symbol">)</a> <a id="3484" class="Symbol">→</a> <a id="3486" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="3490" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="3492" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="3494" href="Relation.Binary.Definitions.html#718" class="Generalizable">ℓ₃</a> <a id="3497" class="Symbol">→</a> <a id="3499" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3503" class="Symbol">_</a>
|
||
<a id="3505" href="Relation.Binary.Definitions.html#3505" class="Bound">P</a> <a id="3507" href="Relation.Binary.Definitions.html#3441" class="Function Operator">⟶</a> <a id="3509" href="Relation.Binary.Definitions.html#3509" class="Bound">Q</a> <a id="3511" href="Relation.Binary.Definitions.html#3441" class="Function Operator">Respects</a> <a id="3520" href="Relation.Binary.Definitions.html#3520" class="Bound Operator">_∼_</a> <a id="3524" class="Symbol">=</a> <a id="3526" class="Symbol">∀</a> <a id="3528" class="Symbol">{</a><a id="3529" href="Relation.Binary.Definitions.html#3529" class="Bound">x</a> <a id="3531" href="Relation.Binary.Definitions.html#3531" class="Bound">y</a><a id="3532" class="Symbol">}</a> <a id="3534" class="Symbol">→</a> <a id="3536" href="Relation.Binary.Definitions.html#3529" class="Bound">x</a> <a id="3538" href="Relation.Binary.Definitions.html#3520" class="Bound Operator">∼</a> <a id="3540" href="Relation.Binary.Definitions.html#3531" class="Bound">y</a> <a id="3542" class="Symbol">→</a> <a id="3544" href="Relation.Binary.Definitions.html#3505" class="Bound">P</a> <a id="3546" href="Relation.Binary.Definitions.html#3529" class="Bound">x</a> <a id="3548" class="Symbol">→</a> <a id="3550" href="Relation.Binary.Definitions.html#3509" class="Bound">Q</a> <a id="3552" href="Relation.Binary.Definitions.html#3531" class="Bound">y</a>
|
||
|
||
<a id="3555" class="Comment">-- Unary relation respects a binary relation.</a>
|
||
|
||
<a id="_Respects_"></a><a id="3602" href="Relation.Binary.Definitions.html#3602" class="Function Operator">_Respects_</a> <a id="3613" class="Symbol">:</a> <a id="3615" class="Symbol">(</a><a id="3616" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="3618" class="Symbol">→</a> <a id="3620" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3624" href="Relation.Binary.Definitions.html#712" class="Generalizable">ℓ₁</a><a id="3626" class="Symbol">)</a> <a id="3628" class="Symbol">→</a> <a id="3630" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="3634" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="3636" href="Relation.Binary.Definitions.html#715" class="Generalizable">ℓ₂</a> <a id="3639" class="Symbol">→</a> <a id="3641" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3645" class="Symbol">_</a>
|
||
<a id="3647" href="Relation.Binary.Definitions.html#3647" class="Bound">P</a> <a id="3649" href="Relation.Binary.Definitions.html#3602" class="Function Operator">Respects</a> <a id="3658" href="Relation.Binary.Definitions.html#3658" class="Bound Operator">_∼_</a> <a id="3662" class="Symbol">=</a> <a id="3664" href="Relation.Binary.Definitions.html#3647" class="Bound">P</a> <a id="3666" href="Relation.Binary.Definitions.html#3441" class="Function Operator">⟶</a> <a id="3668" href="Relation.Binary.Definitions.html#3647" class="Bound">P</a> <a id="3670" href="Relation.Binary.Definitions.html#3441" class="Function Operator">Respects</a> <a id="3679" href="Relation.Binary.Definitions.html#3658" class="Bound Operator">_∼_</a>
|
||
|
||
<a id="3684" class="Comment">-- Right respecting - relatedness is preserved on the right by equality.</a>
|
||
|
||
<a id="_Respectsʳ_"></a><a id="3758" href="Relation.Binary.Definitions.html#3758" class="Function Operator">_Respectsʳ_</a> <a id="3770" class="Symbol">:</a> <a id="3772" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="3776" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="3778" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="3780" href="Relation.Binary.Definitions.html#712" class="Generalizable">ℓ₁</a> <a id="3783" class="Symbol">→</a> <a id="3785" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="3789" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="3791" href="Relation.Binary.Definitions.html#715" class="Generalizable">ℓ₂</a> <a id="3794" class="Symbol">→</a> <a id="3796" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3800" class="Symbol">_</a>
|
||
<a id="3802" href="Relation.Binary.Definitions.html#3802" class="Bound Operator">_∼_</a> <a id="3806" href="Relation.Binary.Definitions.html#3758" class="Function Operator">Respectsʳ</a> <a id="3816" href="Relation.Binary.Definitions.html#3816" class="Bound Operator">_≈_</a> <a id="3820" class="Symbol">=</a> <a id="3822" class="Symbol">∀</a> <a id="3824" class="Symbol">{</a><a id="3825" href="Relation.Binary.Definitions.html#3825" class="Bound">x</a><a id="3826" class="Symbol">}</a> <a id="3828" class="Symbol">→</a> <a id="3830" class="Symbol">(</a><a id="3831" href="Relation.Binary.Definitions.html#3825" class="Bound">x</a> <a id="3833" href="Relation.Binary.Definitions.html#3802" class="Bound Operator">∼_</a><a id="3835" class="Symbol">)</a> <a id="3837" href="Relation.Binary.Definitions.html#3602" class="Function Operator">Respects</a> <a id="3846" href="Relation.Binary.Definitions.html#3816" class="Bound Operator">_≈_</a>
|
||
|
||
<a id="3851" class="Comment">-- Left respecting - relatedness is preserved on the left by equality.</a>
|
||
|
||
<a id="_Respectsˡ_"></a><a id="3923" href="Relation.Binary.Definitions.html#3923" class="Function Operator">_Respectsˡ_</a> <a id="3935" class="Symbol">:</a> <a id="3937" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="3941" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="3943" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="3945" href="Relation.Binary.Definitions.html#712" class="Generalizable">ℓ₁</a> <a id="3948" class="Symbol">→</a> <a id="3950" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="3954" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="3956" href="Relation.Binary.Definitions.html#715" class="Generalizable">ℓ₂</a> <a id="3959" class="Symbol">→</a> <a id="3961" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3965" class="Symbol">_</a>
|
||
<a id="3967" href="Relation.Binary.Definitions.html#3967" class="Bound">P</a> <a id="3969" href="Relation.Binary.Definitions.html#3923" class="Function Operator">Respectsˡ</a> <a id="3979" href="Relation.Binary.Definitions.html#3979" class="Bound Operator">_∼_</a> <a id="3983" class="Symbol">=</a> <a id="3985" class="Symbol">∀</a> <a id="3987" class="Symbol">{</a><a id="3988" href="Relation.Binary.Definitions.html#3988" class="Bound">y</a><a id="3989" class="Symbol">}</a> <a id="3991" class="Symbol">→</a> <a id="3993" class="Symbol">(</a><a id="3994" href="Function.Base.html#1563" class="Function">flip</a> <a id="3999" href="Relation.Binary.Definitions.html#3967" class="Bound">P</a> <a id="4001" href="Relation.Binary.Definitions.html#3988" class="Bound">y</a><a id="4002" class="Symbol">)</a> <a id="4004" href="Relation.Binary.Definitions.html#3602" class="Function Operator">Respects</a> <a id="4013" href="Relation.Binary.Definitions.html#3979" class="Bound Operator">_∼_</a>
|
||
|
||
<a id="4018" class="Comment">-- Respecting - relatedness is preserved on both sides by equality</a>
|
||
|
||
<a id="_Respects₂_"></a><a id="4086" href="Relation.Binary.Definitions.html#4086" class="Function Operator">_Respects₂_</a> <a id="4098" class="Symbol">:</a> <a id="4100" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="4104" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="4106" href="Relation.Binary.Definitions.html#712" class="Generalizable">ℓ₁</a> <a id="4109" class="Symbol">→</a> <a id="4111" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="4115" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="4117" href="Relation.Binary.Definitions.html#715" class="Generalizable">ℓ₂</a> <a id="4120" class="Symbol">→</a> <a id="4122" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="4126" class="Symbol">_</a>
|
||
<a id="4128" href="Relation.Binary.Definitions.html#4128" class="Bound">P</a> <a id="4130" href="Relation.Binary.Definitions.html#4086" class="Function Operator">Respects₂</a> <a id="4140" href="Relation.Binary.Definitions.html#4140" class="Bound Operator">_∼_</a> <a id="4144" class="Symbol">=</a> <a id="4146" class="Symbol">(</a><a id="4147" href="Relation.Binary.Definitions.html#4128" class="Bound">P</a> <a id="4149" href="Relation.Binary.Definitions.html#3758" class="Function Operator">Respectsʳ</a> <a id="4159" href="Relation.Binary.Definitions.html#4140" class="Bound Operator">_∼_</a><a id="4162" class="Symbol">)</a> <a id="4164" href="Data.Product.html#1176" class="Function Operator">×</a> <a id="4166" class="Symbol">(</a><a id="4167" href="Relation.Binary.Definitions.html#4128" class="Bound">P</a> <a id="4169" href="Relation.Binary.Definitions.html#3923" class="Function Operator">Respectsˡ</a> <a id="4179" href="Relation.Binary.Definitions.html#4140" class="Bound Operator">_∼_</a><a id="4182" class="Symbol">)</a>
|
||
|
||
<a id="4185" class="Comment">-- Substitutivity - any two related elements satisfy exactly the same</a>
|
||
<a id="4255" class="Comment">-- set of unary relations. Note that only the various derivatives</a>
|
||
<a id="4321" class="Comment">-- of propositional equality can satisfy this property.</a>
|
||
|
||
<a id="Substitutive"></a><a id="4378" href="Relation.Binary.Definitions.html#4378" class="Function">Substitutive</a> <a id="4391" class="Symbol">:</a> <a id="4393" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="4397" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="4399" href="Relation.Binary.Definitions.html#712" class="Generalizable">ℓ₁</a> <a id="4402" class="Symbol">→</a> <a id="4404" class="Symbol">(</a><a id="4405" href="Relation.Binary.Definitions.html#4405" class="Bound">ℓ₂</a> <a id="4408" class="Symbol">:</a> <a id="4410" href="Agda.Primitive.html#591" class="Postulate">Level</a><a id="4415" class="Symbol">)</a> <a id="4417" class="Symbol">→</a> <a id="4419" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="4423" class="Symbol">_</a>
|
||
<a id="4425" href="Relation.Binary.Definitions.html#4378" class="Function">Substitutive</a> <a id="4438" class="Symbol">{</a><a id="4439" class="Argument">A</a> <a id="4441" class="Symbol">=</a> <a id="4443" href="Relation.Binary.Definitions.html#4443" class="Bound">A</a><a id="4444" class="Symbol">}</a> <a id="4446" href="Relation.Binary.Definitions.html#4446" class="Bound Operator">_∼_</a> <a id="4450" href="Relation.Binary.Definitions.html#4450" class="Bound">p</a> <a id="4452" class="Symbol">=</a> <a id="4454" class="Symbol">(</a><a id="4455" href="Relation.Binary.Definitions.html#4455" class="Bound">P</a> <a id="4457" class="Symbol">:</a> <a id="4459" href="Relation.Binary.Definitions.html#4443" class="Bound">A</a> <a id="4461" class="Symbol">→</a> <a id="4463" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="4467" href="Relation.Binary.Definitions.html#4450" class="Bound">p</a><a id="4468" class="Symbol">)</a> <a id="4470" class="Symbol">→</a> <a id="4472" href="Relation.Binary.Definitions.html#4455" class="Bound">P</a> <a id="4474" href="Relation.Binary.Definitions.html#3602" class="Function Operator">Respects</a> <a id="4483" href="Relation.Binary.Definitions.html#4446" class="Bound Operator">_∼_</a>
|
||
|
||
<a id="4488" class="Comment">-- Decidability - it is possible to determine whether a given pair of</a>
|
||
<a id="4558" class="Comment">-- elements are related.</a>
|
||
|
||
<a id="Decidable"></a><a id="4584" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="4594" class="Symbol">:</a> <a id="4596" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="4600" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="4602" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="4604" href="Relation.Binary.Definitions.html#710" class="Generalizable">ℓ</a> <a id="4606" class="Symbol">→</a> <a id="4608" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="4612" class="Symbol">_</a>
|
||
<a id="4614" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="4624" href="Relation.Binary.Definitions.html#4624" class="Bound Operator">_∼_</a> <a id="4628" class="Symbol">=</a> <a id="4630" class="Symbol">∀</a> <a id="4632" href="Relation.Binary.Definitions.html#4632" class="Bound">x</a> <a id="4634" href="Relation.Binary.Definitions.html#4634" class="Bound">y</a> <a id="4636" class="Symbol">→</a> <a id="4638" href="Relation.Nullary.html#1520" class="Record">Dec</a> <a id="4642" class="Symbol">(</a><a id="4643" href="Relation.Binary.Definitions.html#4632" class="Bound">x</a> <a id="4645" href="Relation.Binary.Definitions.html#4624" class="Bound Operator">∼</a> <a id="4647" href="Relation.Binary.Definitions.html#4634" class="Bound">y</a><a id="4648" class="Symbol">)</a>
|
||
|
||
<a id="4651" class="Comment">-- Weak decidability - it is sometimes possible to determine if a given</a>
|
||
<a id="4723" class="Comment">-- pair of elements are related.</a>
|
||
|
||
<a id="WeaklyDecidable"></a><a id="4757" href="Relation.Binary.Definitions.html#4757" class="Function">WeaklyDecidable</a> <a id="4773" class="Symbol">:</a> <a id="4775" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="4779" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="4781" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="4783" href="Relation.Binary.Definitions.html#710" class="Generalizable">ℓ</a> <a id="4785" class="Symbol">→</a> <a id="4787" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="4791" class="Symbol">_</a>
|
||
<a id="4793" href="Relation.Binary.Definitions.html#4757" class="Function">WeaklyDecidable</a> <a id="4809" href="Relation.Binary.Definitions.html#4809" class="Bound Operator">_∼_</a> <a id="4813" class="Symbol">=</a> <a id="4815" class="Symbol">∀</a> <a id="4817" href="Relation.Binary.Definitions.html#4817" class="Bound">x</a> <a id="4819" href="Relation.Binary.Definitions.html#4819" class="Bound">y</a> <a id="4821" class="Symbol">→</a> <a id="4823" href="Agda.Builtin.Maybe.html#118" class="Datatype">Maybe</a> <a id="4829" class="Symbol">(</a><a id="4830" href="Relation.Binary.Definitions.html#4817" class="Bound">x</a> <a id="4832" href="Relation.Binary.Definitions.html#4809" class="Bound Operator">∼</a> <a id="4834" href="Relation.Binary.Definitions.html#4819" class="Bound">y</a><a id="4835" class="Symbol">)</a>
|
||
|
||
<a id="4838" class="Comment">-- Propositional equality is decidable for the type.</a>
|
||
|
||
<a id="DecidableEquality"></a><a id="4892" href="Relation.Binary.Definitions.html#4892" class="Function">DecidableEquality</a> <a id="4910" class="Symbol">:</a> <a id="4912" class="Symbol">(</a><a id="4913" href="Relation.Binary.Definitions.html#4913" class="Bound">A</a> <a id="4915" class="Symbol">:</a> <a id="4917" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="4921" href="Relation.Binary.Definitions.html#704" class="Generalizable">a</a><a id="4922" class="Symbol">)</a> <a id="4924" class="Symbol">→</a> <a id="4926" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="4930" class="Symbol">_</a>
|
||
<a id="4932" href="Relation.Binary.Definitions.html#4892" class="Function">DecidableEquality</a> <a id="4950" href="Relation.Binary.Definitions.html#4950" class="Bound">A</a> <a id="4952" class="Symbol">=</a> <a id="4954" href="Relation.Binary.Definitions.html#4584" class="Function">Decidable</a> <a id="4964" class="Symbol">{</a><a id="4965" class="Argument">A</a> <a id="4967" class="Symbol">=</a> <a id="4969" href="Relation.Binary.Definitions.html#4950" class="Bound">A</a><a id="4970" class="Symbol">}</a> <a id="4972" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a>
|
||
|
||
<a id="4977" class="Comment">-- Irrelevancy - all proofs that a given pair of elements are related</a>
|
||
<a id="5047" class="Comment">-- are indistinguishable.</a>
|
||
|
||
<a id="Irrelevant"></a><a id="5074" href="Relation.Binary.Definitions.html#5074" class="Function">Irrelevant</a> <a id="5085" class="Symbol">:</a> <a id="5087" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="5091" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="5093" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="5095" href="Relation.Binary.Definitions.html#710" class="Generalizable">ℓ</a> <a id="5097" class="Symbol">→</a> <a id="5099" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="5103" class="Symbol">_</a>
|
||
<a id="5105" href="Relation.Binary.Definitions.html#5074" class="Function">Irrelevant</a> <a id="5116" href="Relation.Binary.Definitions.html#5116" class="Bound Operator">_∼_</a> <a id="5120" class="Symbol">=</a> <a id="5122" class="Symbol">∀</a> <a id="5124" class="Symbol">{</a><a id="5125" href="Relation.Binary.Definitions.html#5125" class="Bound">x</a> <a id="5127" href="Relation.Binary.Definitions.html#5127" class="Bound">y</a><a id="5128" class="Symbol">}</a> <a id="5130" class="Symbol">(</a><a id="5131" href="Relation.Binary.Definitions.html#5131" class="Bound">a</a> <a id="5133" href="Relation.Binary.Definitions.html#5133" class="Bound">b</a> <a id="5135" class="Symbol">:</a> <a id="5137" href="Relation.Binary.Definitions.html#5125" class="Bound">x</a> <a id="5139" href="Relation.Binary.Definitions.html#5116" class="Bound Operator">∼</a> <a id="5141" href="Relation.Binary.Definitions.html#5127" class="Bound">y</a><a id="5142" class="Symbol">)</a> <a id="5144" class="Symbol">→</a> <a id="5146" href="Relation.Binary.Definitions.html#5131" class="Bound">a</a> <a id="5148" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="5150" href="Relation.Binary.Definitions.html#5133" class="Bound">b</a>
|
||
|
||
<a id="5153" class="Comment">-- Recomputability - we can rebuild a relevant proof given an</a>
|
||
<a id="5215" class="Comment">-- irrelevant one.</a>
|
||
|
||
<a id="Recomputable"></a><a id="5235" href="Relation.Binary.Definitions.html#5235" class="Function">Recomputable</a> <a id="5248" class="Symbol">:</a> <a id="5250" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="5254" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="5256" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="5258" href="Relation.Binary.Definitions.html#710" class="Generalizable">ℓ</a> <a id="5260" class="Symbol">→</a> <a id="5262" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="5266" class="Symbol">_</a>
|
||
<a id="5268" href="Relation.Binary.Definitions.html#5235" class="Function">Recomputable</a> <a id="5281" href="Relation.Binary.Definitions.html#5281" class="Bound Operator">_∼_</a> <a id="5285" class="Symbol">=</a> <a id="5287" class="Symbol">∀</a> <a id="5289" class="Symbol">{</a><a id="5290" href="Relation.Binary.Definitions.html#5290" class="Bound">x</a> <a id="5292" href="Relation.Binary.Definitions.html#5292" class="Bound">y</a><a id="5293" class="Symbol">}</a> <a id="5295" class="Symbol">→</a> <a id="5297" class="Symbol">.(</a><a id="5299" href="Relation.Binary.Definitions.html#5290" class="Bound">x</a> <a id="5301" href="Relation.Binary.Definitions.html#5281" class="Bound Operator">∼</a> <a id="5303" href="Relation.Binary.Definitions.html#5292" class="Bound">y</a><a id="5304" class="Symbol">)</a> <a id="5306" class="Symbol">→</a> <a id="5308" href="Relation.Binary.Definitions.html#5290" class="Bound">x</a> <a id="5310" href="Relation.Binary.Definitions.html#5281" class="Bound Operator">∼</a> <a id="5312" href="Relation.Binary.Definitions.html#5292" class="Bound">y</a>
|
||
|
||
<a id="5315" class="Comment">-- Universal - all pairs of elements are related</a>
|
||
|
||
<a id="Universal"></a><a id="5365" href="Relation.Binary.Definitions.html#5365" class="Function">Universal</a> <a id="5375" class="Symbol">:</a> <a id="5377" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="5381" href="Relation.Binary.Definitions.html#733" class="Generalizable">A</a> <a id="5383" href="Relation.Binary.Definitions.html#747" class="Generalizable">B</a> <a id="5385" href="Relation.Binary.Definitions.html#710" class="Generalizable">ℓ</a> <a id="5387" class="Symbol">→</a> <a id="5389" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="5393" class="Symbol">_</a>
|
||
<a id="5395" href="Relation.Binary.Definitions.html#5365" class="Function">Universal</a> <a id="5405" href="Relation.Binary.Definitions.html#5405" class="Bound Operator">_∼_</a> <a id="5409" class="Symbol">=</a> <a id="5411" class="Symbol">∀</a> <a id="5413" href="Relation.Binary.Definitions.html#5413" class="Bound">x</a> <a id="5415" href="Relation.Binary.Definitions.html#5415" class="Bound">y</a> <a id="5417" class="Symbol">→</a> <a id="5419" href="Relation.Binary.Definitions.html#5413" class="Bound">x</a> <a id="5421" href="Relation.Binary.Definitions.html#5405" class="Bound Operator">∼</a> <a id="5423" href="Relation.Binary.Definitions.html#5415" class="Bound">y</a>
|
||
|
||
<a id="5426" class="Comment">-- Non-emptiness - at least one pair of elements are related.</a>
|
||
|
||
<a id="5489" class="Keyword">record</a> <a id="NonEmpty"></a><a id="5496" href="Relation.Binary.Definitions.html#5496" class="Record">NonEmpty</a> <a id="5505" class="Symbol">{</a><a id="5506" href="Relation.Binary.Definitions.html#5506" class="Bound">A</a> <a id="5508" class="Symbol">:</a> <a id="5510" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="5514" href="Relation.Binary.Definitions.html#704" class="Generalizable">a</a><a id="5515" class="Symbol">}</a> <a id="5517" class="Symbol">{</a><a id="5518" href="Relation.Binary.Definitions.html#5518" class="Bound">B</a> <a id="5520" class="Symbol">:</a> <a id="5522" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="5526" href="Relation.Binary.Definitions.html#706" class="Generalizable">b</a><a id="5527" class="Symbol">}</a>
|
||
<a id="5545" class="Symbol">(</a><a id="5546" href="Relation.Binary.Definitions.html#5546" class="Bound">T</a> <a id="5548" class="Symbol">:</a> <a id="5550" href="Relation.Binary.Core.html#775" class="Function">REL</a> <a id="5554" href="Relation.Binary.Definitions.html#5506" class="Bound">A</a> <a id="5556" href="Relation.Binary.Definitions.html#5518" class="Bound">B</a> <a id="5558" href="Relation.Binary.Definitions.html#710" class="Generalizable">ℓ</a><a id="5559" class="Symbol">)</a> <a id="5561" class="Symbol">:</a> <a id="5563" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="5567" class="Symbol">(</a><a id="5568" href="Relation.Binary.Definitions.html#5514" class="Bound">a</a> <a id="5570" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="5572" href="Relation.Binary.Definitions.html#5526" class="Bound">b</a> <a id="5574" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="5576" href="Relation.Binary.Definitions.html#5558" class="Bound">ℓ</a><a id="5577" class="Symbol">)</a> <a id="5579" class="Keyword">where</a>
|
||
<a id="5587" class="Keyword">constructor</a> <a id="nonEmpty"></a><a id="5599" href="Relation.Binary.Definitions.html#5599" class="InductiveConstructor">nonEmpty</a>
|
||
<a id="5610" class="Keyword">field</a>
|
||
<a id="5620" class="Symbol">{</a><a id="NonEmpty.x"></a><a id="5621" href="Relation.Binary.Definitions.html#5621" class="Field">x</a><a id="5622" class="Symbol">}</a> <a id="5626" class="Symbol">:</a> <a id="5628" href="Relation.Binary.Definitions.html#5506" class="Bound">A</a>
|
||
<a id="5634" class="Symbol">{</a><a id="NonEmpty.y"></a><a id="5635" href="Relation.Binary.Definitions.html#5635" class="Field">y</a><a id="5636" class="Symbol">}</a> <a id="5640" class="Symbol">:</a> <a id="5642" href="Relation.Binary.Definitions.html#5518" class="Bound">B</a>
|
||
<a id="NonEmpty.proof"></a><a id="5648" href="Relation.Binary.Definitions.html#5648" class="Field">proof</a> <a id="5654" class="Symbol">:</a> <a id="5656" href="Relation.Binary.Definitions.html#5546" class="Bound">T</a> <a id="5658" href="Relation.Binary.Definitions.html#5621" class="Field">x</a> <a id="5660" href="Relation.Binary.Definitions.html#5635" class="Field">y</a>
|
||
|
||
|
||
|
||
<a id="5665" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="5738" class="Comment">-- DEPRECATED NAMES</a>
|
||
<a id="5758" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="5831" class="Comment">-- Please use the new names as continuing support for the old names is</a>
|
||
<a id="5902" class="Comment">-- not guaranteed.</a>
|
||
|
||
<a id="5922" class="Comment">-- Version 1.1</a>
|
||
|
||
<a id="Conn"></a><a id="5938" href="Relation.Binary.Definitions.html#5938" class="Function">Conn</a> <a id="5943" class="Symbol">=</a> <a id="5945" href="Relation.Binary.Definitions.html#2502" class="Function">Connex</a>
|
||
<a id="5952" class="Symbol">{-#</a> <a id="5956" class="Keyword">WARNING_ON_USAGE</a> <a id="5973" class="Pragma">Conn</a>
|
||
<a id="5978" class="String">"Warning: Conn was deprecated in v1.1.
|
||
Please use Connex instead."</a>
|
||
<a id="6045" class="Symbol">#-}</a>
|
||
</pre></body></html> |