bsc-leon-vatthauer/public/Relation.Unary.html

299 lines
84 KiB
HTML
Raw Normal View History

2023-08-19 16:11:22 +02:00
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Relation.Unary</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">-- Unary relations</a>
<a id="125" class="Comment">------------------------------------------------------------------------</a>
<a id="199" class="Symbol">{-#</a> <a id="203" class="Keyword">OPTIONS</a> <a id="211" class="Pragma">--cubical-compatible</a> <a id="232" class="Pragma">--safe</a> <a id="239" class="Symbol">#-}</a>
<a id="244" class="Keyword">module</a> <a id="251" href="Relation.Unary.html" class="Module">Relation.Unary</a> <a id="266" class="Keyword">where</a>
<a id="273" class="Keyword">open</a> <a id="278" class="Keyword">import</a> <a id="285" href="Data.Empty.html" class="Module">Data.Empty</a>
<a id="296" class="Keyword">open</a> <a id="301" class="Keyword">import</a> <a id="308" href="Data.Unit.Base.html" class="Module">Data.Unit.Base</a> <a id="323" class="Keyword">using</a> <a id="329" class="Symbol">(</a><a id="330" href="Agda.Builtin.Unit.html#158" class="Record"></a><a id="331" class="Symbol">)</a>
<a id="333" class="Keyword">open</a> <a id="338" class="Keyword">import</a> <a id="345" href="Data.Product.html" class="Module">Data.Product</a>
<a id="358" class="Keyword">open</a> <a id="363" class="Keyword">import</a> <a id="370" href="Data.Sum.Base.html" class="Module">Data.Sum.Base</a> <a id="384" class="Keyword">using</a> <a id="390" class="Symbol">(</a><a id="391" href="Data.Sum.Base.html#743" class="Datatype Operator">_⊎_</a><a id="394" class="Symbol">;</a> <a id="396" href="Data.Sum.Base.html#929" class="Function Operator">[_,_]</a><a id="401" class="Symbol">)</a>
<a id="403" class="Keyword">open</a> <a id="408" class="Keyword">import</a> <a id="415" href="Function.Base.html" class="Module">Function.Base</a>
<a id="429" class="Keyword">open</a> <a id="434" class="Keyword">import</a> <a id="441" href="Level.html" class="Module">Level</a>
<a id="447" class="Keyword">open</a> <a id="452" class="Keyword">import</a> <a id="459" href="Relation.Nullary.html" class="Module">Relation.Nullary</a> <a id="476" class="Keyword">hiding</a> <a id="483" class="Symbol">(</a><a id="484" href="Relation.Nullary.html#2049" class="Function">Irrelevant</a><a id="494" class="Symbol">)</a>
<a id="496" class="Keyword">open</a> <a id="501" class="Keyword">import</a> <a id="508" href="Relation.Nullary.Decidable.Core.html" class="Module">Relation.Nullary.Decidable.Core</a> <a id="540" class="Keyword">using</a> <a id="546" class="Symbol">(</a><a id="547" href="Relation.Nullary.Decidable.Core.html#1374" class="Function">True</a><a id="551" class="Symbol">)</a>
<a id="553" class="Keyword">open</a> <a id="558" class="Keyword">import</a> <a id="565" href="Relation.Binary.PropositionalEquality.Core.html" class="Module">Relation.Binary.PropositionalEquality.Core</a> <a id="608" class="Keyword">using</a> <a id="614" class="Symbol">(</a><a id="615" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a><a id="618" class="Symbol">)</a>
<a id="621" class="Keyword">private</a>
<a id="631" class="Keyword">variable</a>
<a id="644" href="Relation.Unary.html#644" class="Generalizable">a</a> <a id="646" href="Relation.Unary.html#646" class="Generalizable">b</a> <a id="648" href="Relation.Unary.html#648" class="Generalizable">c</a> <a id="650" href="Relation.Unary.html#650" class="Generalizable"></a> <a id="652" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="655" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="658" class="Symbol">:</a> <a id="660" href="Agda.Primitive.html#591" class="Postulate">Level</a>
<a id="670" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="672" class="Symbol">:</a> <a id="674" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="678" href="Relation.Unary.html#644" class="Generalizable">a</a>
<a id="684" href="Relation.Unary.html#684" class="Generalizable">B</a> <a id="686" class="Symbol">:</a> <a id="688" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="692" href="Relation.Unary.html#646" class="Generalizable">b</a>
<a id="698" href="Relation.Unary.html#698" class="Generalizable">C</a> <a id="700" class="Symbol">:</a> <a id="702" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="706" href="Relation.Unary.html#648" class="Generalizable">c</a>
<a id="709" class="Comment">------------------------------------------------------------------------</a>
<a id="782" class="Comment">-- Definition</a>
<a id="797" class="Comment">-- Unary relations are known as predicates and `Pred A ` can be viewed</a>
<a id="869" class="Comment">-- as some property that elements of type A might satisfy.</a>
<a id="929" class="Comment">-- Consequently `P : Pred A ` can also be seen as a subset of A</a>
<a id="994" class="Comment">-- containing all the elements of A that satisfy property P. This view</a>
<a id="1065" class="Comment">-- informs much of the notation used below.</a>
<a id="Pred"></a><a id="1110" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="1115" class="Symbol">:</a> <a id="1117" class="Symbol"></a> <a id="1119" class="Symbol">{</a><a id="1120" href="Relation.Unary.html#1120" class="Bound">a</a><a id="1121" class="Symbol">}</a> <a id="1123" class="Symbol"></a> <a id="1125" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1129" href="Relation.Unary.html#1120" class="Bound">a</a> <a id="1131" class="Symbol"></a> <a id="1133" class="Symbol">(</a><a id="1134" href="Relation.Unary.html#1134" class="Bound"></a> <a id="1136" class="Symbol">:</a> <a id="1138" href="Agda.Primitive.html#591" class="Postulate">Level</a><a id="1143" class="Symbol">)</a> <a id="1145" class="Symbol"></a> <a id="1147" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1151" class="Symbol">(</a><a id="1152" href="Relation.Unary.html#1120" class="Bound">a</a> <a id="1154" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="1156" href="Agda.Primitive.html#774" class="Primitive">suc</a> <a id="1160" href="Relation.Unary.html#1134" class="Bound"></a><a id="1161" class="Symbol">)</a>
<a id="1163" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="1168" href="Relation.Unary.html#1168" class="Bound">A</a> <a id="1170" href="Relation.Unary.html#1170" class="Bound"></a> <a id="1172" class="Symbol">=</a> <a id="1174" href="Relation.Unary.html#1168" class="Bound">A</a> <a id="1176" class="Symbol"></a> <a id="1178" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1182" href="Relation.Unary.html#1170" class="Bound"></a>
<a id="1185" class="Comment">------------------------------------------------------------------------</a>
<a id="1258" class="Comment">-- Special sets</a>
<a id="1275" class="Comment">-- The empty set.</a>
<a id="∅"></a><a id="1294" href="Relation.Unary.html#1294" class="Function"></a> <a id="1296" class="Symbol">:</a> <a id="1298" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="1303" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="1305" href="Level.html#521" class="Function">0</a>
<a id="1308" href="Relation.Unary.html#1294" class="Function"></a> <a id="1310" class="Symbol">=</a> <a id="1312" class="Symbol">λ</a> <a id="1314" href="Relation.Unary.html#1314" class="Bound">_</a> <a id="1316" class="Symbol"></a> <a id="1318" href="Data.Empty.html#535" class="Datatype"></a>
<a id="1321" class="Comment">-- The singleton set.</a>
<a id="_"></a><a id="1344" href="Relation.Unary.html#1344" class="Function Operator">_</a> <a id="1348" class="Symbol">:</a> <a id="1350" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="1352" class="Symbol"></a> <a id="1354" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="1359" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="1361" class="Symbol">_</a>
<a id="1363" href="Relation.Unary.html#1344" class="Function Operator"></a> <a id="1365" href="Relation.Unary.html#1365" class="Bound">x</a> <a id="1367" href="Relation.Unary.html#1344" class="Function Operator"></a> <a id="1369" class="Symbol">=</a> <a id="1371" href="Relation.Unary.html#1365" class="Bound">x</a> <a id="1373" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡_</a>
<a id="1377" class="Comment">-- The universal set.</a>
<a id="U"></a><a id="1400" href="Relation.Unary.html#1400" class="Function">U</a> <a id="1402" class="Symbol">:</a> <a id="1404" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="1409" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="1411" href="Level.html#521" class="Function">0</a>
<a id="1414" href="Relation.Unary.html#1400" class="Function">U</a> <a id="1416" class="Symbol">=</a> <a id="1418" class="Symbol">λ</a> <a id="1420" href="Relation.Unary.html#1420" class="Bound">_</a> <a id="1422" class="Symbol"></a> <a id="1424" href="Agda.Builtin.Unit.html#158" class="Record"></a>
<a id="1427" class="Comment">------------------------------------------------------------------------</a>
<a id="1500" class="Comment">-- Membership</a>
<a id="1515" class="Keyword">infix</a> <a id="1521" class="Number">4</a> <a id="1523" href="Relation.Unary.html#1532" class="Function Operator">_∈_</a> <a id="1527" href="Relation.Unary.html#1572" class="Function Operator">_∉_</a>
<a id="_∈_"></a><a id="1532" href="Relation.Unary.html#1532" class="Function Operator">_∈_</a> <a id="1536" class="Symbol">:</a> <a id="1538" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="1540" class="Symbol"></a> <a id="1542" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="1547" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="1549" href="Relation.Unary.html#650" class="Generalizable"></a> <a id="1551" class="Symbol"></a> <a id="1553" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1557" class="Symbol">_</a>
<a id="1559" href="Relation.Unary.html#1559" class="Bound">x</a> <a id="1561" href="Relation.Unary.html#1532" class="Function Operator"></a> <a id="1563" href="Relation.Unary.html#1563" class="Bound">P</a> <a id="1565" class="Symbol">=</a> <a id="1567" href="Relation.Unary.html#1563" class="Bound">P</a> <a id="1569" href="Relation.Unary.html#1559" class="Bound">x</a>
<a id="_∉_"></a><a id="1572" href="Relation.Unary.html#1572" class="Function Operator">_∉_</a> <a id="1576" class="Symbol">:</a> <a id="1578" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="1580" class="Symbol"></a> <a id="1582" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="1587" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="1589" href="Relation.Unary.html#650" class="Generalizable"></a> <a id="1591" class="Symbol"></a> <a id="1593" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1597" class="Symbol">_</a>
<a id="1599" href="Relation.Unary.html#1599" class="Bound">x</a> <a id="1601" href="Relation.Unary.html#1572" class="Function Operator"></a> <a id="1603" href="Relation.Unary.html#1603" class="Bound">P</a> <a id="1605" class="Symbol">=</a> <a id="1607" href="Relation.Nullary.html#665" class="Function Operator">¬</a> <a id="1609" href="Relation.Unary.html#1599" class="Bound">x</a> <a id="1611" href="Relation.Unary.html#1532" class="Function Operator"></a> <a id="1613" href="Relation.Unary.html#1603" class="Bound">P</a>
<a id="1616" class="Comment">------------------------------------------------------------------------</a>
<a id="1689" class="Comment">-- Subset relations</a>
<a id="1710" class="Keyword">infix</a> <a id="1716" class="Number">4</a> <a id="1718" href="Relation.Unary.html#1751" class="Function Operator">_⊆_</a> <a id="1722" href="Relation.Unary.html#1818" class="Function Operator">_⊇_</a> <a id="1726" href="Relation.Unary.html#1869" class="Function Operator">_⊈_</a> <a id="1730" href="Relation.Unary.html#1924" class="Function Operator">_⊉_</a> <a id="1734" href="Relation.Unary.html#1979" class="Function Operator">_⊂_</a> <a id="1738" href="Relation.Unary.html#2038" class="Function Operator">_⊃_</a> <a id="1742" href="Relation.Unary.html#2089" class="Function Operator">_⊄_</a> <a id="1746" href="Relation.Unary.html#2144" class="Function Operator">_⊅_</a>
<a id="_⊆_"></a><a id="1751" href="Relation.Unary.html#1751" class="Function Operator">_⊆_</a> <a id="1755" class="Symbol">:</a> <a id="1757" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="1762" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="1764" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="1767" class="Symbol"></a> <a id="1769" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="1774" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="1776" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="1779" class="Symbol"></a> <a id="1781" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1785" class="Symbol">_</a>
<a id="1787" href="Relation.Unary.html#1787" class="Bound">P</a> <a id="1789" href="Relation.Unary.html#1751" class="Function Operator"></a> <a id="1791" href="Relation.Unary.html#1791" class="Bound">Q</a> <a id="1793" class="Symbol">=</a> <a id="1795" class="Symbol"></a> <a id="1797" class="Symbol">{</a><a id="1798" href="Relation.Unary.html#1798" class="Bound">x</a><a id="1799" class="Symbol">}</a> <a id="1801" class="Symbol"></a> <a id="1803" href="Relation.Unary.html#1798" class="Bound">x</a> <a id="1805" href="Relation.Unary.html#1532" class="Function Operator"></a> <a id="1807" href="Relation.Unary.html#1787" class="Bound">P</a> <a id="1809" class="Symbol"></a> <a id="1811" href="Relation.Unary.html#1798" class="Bound">x</a> <a id="1813" href="Relation.Unary.html#1532" class="Function Operator"></a> <a id="1815" href="Relation.Unary.html#1791" class="Bound">Q</a>
<a id="_⊇_"></a><a id="1818" href="Relation.Unary.html#1818" class="Function Operator">_⊇_</a> <a id="1822" class="Symbol">:</a> <a id="1824" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="1829" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="1831" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="1834" class="Symbol"></a> <a id="1836" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="1841" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="1843" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="1846" class="Symbol"></a> <a id="1848" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1852" class="Symbol">_</a>
<a id="1854" href="Relation.Unary.html#1854" class="Bound">P</a> <a id="1856" href="Relation.Unary.html#1818" class="Function Operator"></a> <a id="1858" href="Relation.Unary.html#1858" class="Bound">Q</a> <a id="1860" class="Symbol">=</a> <a id="1862" href="Relation.Unary.html#1858" class="Bound">Q</a> <a id="1864" href="Relation.Unary.html#1751" class="Function Operator"></a> <a id="1866" href="Relation.Unary.html#1854" class="Bound">P</a>
<a id="_⊈_"></a><a id="1869" href="Relation.Unary.html#1869" class="Function Operator">_⊈_</a> <a id="1873" class="Symbol">:</a> <a id="1875" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="1880" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="1882" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="1885" class="Symbol"></a> <a id="1887" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="1892" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="1894" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="1897" class="Symbol"></a> <a id="1899" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1903" class="Symbol">_</a>
<a id="1905" href="Relation.Unary.html#1905" class="Bound">P</a> <a id="1907" href="Relation.Unary.html#1869" class="Function Operator"></a> <a id="1909" href="Relation.Unary.html#1909" class="Bound">Q</a> <a id="1911" class="Symbol">=</a> <a id="1913" href="Relation.Nullary.html#665" class="Function Operator">¬</a> <a id="1915" class="Symbol">(</a><a id="1916" href="Relation.Unary.html#1905" class="Bound">P</a> <a id="1918" href="Relation.Unary.html#1751" class="Function Operator"></a> <a id="1920" href="Relation.Unary.html#1909" class="Bound">Q</a><a id="1921" class="Symbol">)</a>
<a id="_⊉_"></a><a id="1924" href="Relation.Unary.html#1924" class="Function Operator">_⊉_</a> <a id="1928" class="Symbol">:</a> <a id="1930" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="1935" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="1937" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="1940" class="Symbol"></a> <a id="1942" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="1947" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="1949" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="1952" class="Symbol"></a> <a id="1954" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1958" class="Symbol">_</a>
<a id="1960" href="Relation.Unary.html#1960" class="Bound">P</a> <a id="1962" href="Relation.Unary.html#1924" class="Function Operator"></a> <a id="1964" href="Relation.Unary.html#1964" class="Bound">Q</a> <a id="1966" class="Symbol">=</a> <a id="1968" href="Relation.Nullary.html#665" class="Function Operator">¬</a> <a id="1970" class="Symbol">(</a><a id="1971" href="Relation.Unary.html#1960" class="Bound">P</a> <a id="1973" href="Relation.Unary.html#1818" class="Function Operator"></a> <a id="1975" href="Relation.Unary.html#1964" class="Bound">Q</a><a id="1976" class="Symbol">)</a>
<a id="_⊂_"></a><a id="1979" href="Relation.Unary.html#1979" class="Function Operator">_⊂_</a> <a id="1983" class="Symbol">:</a> <a id="1985" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="1990" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="1992" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="1995" class="Symbol"></a> <a id="1997" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="2002" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="2004" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="2007" class="Symbol"></a> <a id="2009" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2013" class="Symbol">_</a>
<a id="2015" href="Relation.Unary.html#2015" class="Bound">P</a> <a id="2017" href="Relation.Unary.html#1979" class="Function Operator"></a> <a id="2019" href="Relation.Unary.html#2019" class="Bound">Q</a> <a id="2021" class="Symbol">=</a> <a id="2023" href="Relation.Unary.html#2015" class="Bound">P</a> <a id="2025" href="Relation.Unary.html#1751" class="Function Operator"></a> <a id="2027" href="Relation.Unary.html#2019" class="Bound">Q</a> <a id="2029" href="Data.Product.html#1176" class="Function Operator">×</a> <a id="2031" href="Relation.Unary.html#2019" class="Bound">Q</a> <a id="2033" href="Relation.Unary.html#1869" class="Function Operator"></a> <a id="2035" href="Relation.Unary.html#2015" class="Bound">P</a>
<a id="_⊃_"></a><a id="2038" href="Relation.Unary.html#2038" class="Function Operator">_⊃_</a> <a id="2042" class="Symbol">:</a> <a id="2044" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="2049" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="2051" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="2054" class="Symbol"></a> <a id="2056" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="2061" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="2063" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="2066" class="Symbol"></a> <a id="2068" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2072" class="Symbol">_</a>
<a id="2074" href="Relation.Unary.html#2074" class="Bound">P</a> <a id="2076" href="Relation.Unary.html#2038" class="Function Operator"></a> <a id="2078" href="Relation.Unary.html#2078" class="Bound">Q</a> <a id="2080" class="Symbol">=</a> <a id="2082" href="Relation.Unary.html#2078" class="Bound">Q</a> <a id="2084" href="Relation.Unary.html#1979" class="Function Operator"></a> <a id="2086" href="Relation.Unary.html#2074" class="Bound">P</a>
<a id="_⊄_"></a><a id="2089" href="Relation.Unary.html#2089" class="Function Operator">_⊄_</a> <a id="2093" class="Symbol">:</a> <a id="2095" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="2100" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="2102" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="2105" class="Symbol"></a> <a id="2107" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="2112" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="2114" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="2117" class="Symbol"></a> <a id="2119" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2123" class="Symbol">_</a>
<a id="2125" href="Relation.Unary.html#2125" class="Bound">P</a> <a id="2127" href="Relation.Unary.html#2089" class="Function Operator"></a> <a id="2129" href="Relation.Unary.html#2129" class="Bound">Q</a> <a id="2131" class="Symbol">=</a> <a id="2133" href="Relation.Nullary.html#665" class="Function Operator">¬</a> <a id="2135" class="Symbol">(</a><a id="2136" href="Relation.Unary.html#2125" class="Bound">P</a> <a id="2138" href="Relation.Unary.html#1979" class="Function Operator"></a> <a id="2140" href="Relation.Unary.html#2129" class="Bound">Q</a><a id="2141" class="Symbol">)</a>
<a id="_⊅_"></a><a id="2144" href="Relation.Unary.html#2144" class="Function Operator">_⊅_</a> <a id="2148" class="Symbol">:</a> <a id="2150" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="2155" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="2157" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="2160" class="Symbol"></a> <a id="2162" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="2167" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="2169" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="2172" class="Symbol"></a> <a id="2174" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2178" class="Symbol">_</a>
<a id="2180" href="Relation.Unary.html#2180" class="Bound">P</a> <a id="2182" href="Relation.Unary.html#2144" class="Function Operator"></a> <a id="2184" href="Relation.Unary.html#2184" class="Bound">Q</a> <a id="2186" class="Symbol">=</a> <a id="2188" href="Relation.Nullary.html#665" class="Function Operator">¬</a> <a id="2190" class="Symbol">(</a><a id="2191" href="Relation.Unary.html#2180" class="Bound">P</a> <a id="2193" href="Relation.Unary.html#2038" class="Function Operator"></a> <a id="2195" href="Relation.Unary.html#2184" class="Bound">Q</a><a id="2196" class="Symbol">)</a>
<a id="2199" class="Comment">-- The following primed variants of _⊆_ can be used when &#39;x&#39; can&#39;t</a>
<a id="2266" class="Comment">-- be inferred from &#39;x ∈ P&#39;.</a>
<a id="2296" class="Keyword">infix</a> <a id="2302" class="Number">4</a> <a id="2304" href="Relation.Unary.html#2345" class="Function Operator">_⊆_</a> <a id="2309" href="Relation.Unary.html#2412" class="Function Operator">_⊇_</a> <a id="2314" href="Relation.Unary.html#2466" class="Function Operator">_⊈_</a> <a id="2319" href="Relation.Unary.html#2524" class="Function Operator">_⊉_</a> <a id="2324" href="Relation.Unary.html#2582" class="Function Operator">_⊂_</a> <a id="2329" href="Relation.Unary.html#2645" class="Function Operator">_⊃_</a> <a id="2334" href="Relation.Unary.html#2699" class="Function Operator">_⊄_</a> <a id="2339" href="Relation.Unary.html#2757" class="Function Operator">_⊅_</a>
<a id="_⊆_"></a><a id="2345" href="Relation.Unary.html#2345" class="Function Operator">_⊆_</a> <a id="2350" class="Symbol">:</a> <a id="2352" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="2357" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="2359" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="2362" class="Symbol"></a> <a id="2364" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="2369" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="2371" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="2374" class="Symbol"></a> <a id="2376" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2380" class="Symbol">_</a>
<a id="2382" href="Relation.Unary.html#2382" class="Bound">P</a> <a id="2384" href="Relation.Unary.html#2345" class="Function Operator">⊆′</a> <a id="2387" href="Relation.Unary.html#2387" class="Bound">Q</a> <a id="2389" class="Symbol">=</a> <a id="2391" class="Symbol"></a> <a id="2393" href="Relation.Unary.html#2393" class="Bound">x</a> <a id="2395" class="Symbol"></a> <a id="2397" href="Relation.Unary.html#2393" class="Bound">x</a> <a id="2399" href="Relation.Unary.html#1532" class="Function Operator"></a> <a id="2401" href="Relation.Unary.html#2382" class="Bound">P</a> <a id="2403" class="Symbol"></a> <a id="2405" href="Relation.Unary.html#2393" class="Bound">x</a> <a id="2407" href="Relation.Unary.html#1532" class="Function Operator"></a> <a id="2409" href="Relation.Unary.html#2387" class="Bound">Q</a>
<a id="_⊇_"></a><a id="2412" href="Relation.Unary.html#2412" class="Function Operator">_⊇_</a> <a id="2417" class="Symbol">:</a> <a id="2419" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="2424" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="2426" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="2429" class="Symbol"></a> <a id="2431" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="2436" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="2438" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="2441" class="Symbol"></a> <a id="2443" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2447" class="Symbol">_</a>
<a id="2449" href="Relation.Unary.html#2449" class="Bound">Q</a> <a id="2451" href="Relation.Unary.html#2412" class="Function Operator">⊇′</a> <a id="2454" href="Relation.Unary.html#2454" class="Bound">P</a> <a id="2456" class="Symbol">=</a> <a id="2458" href="Relation.Unary.html#2454" class="Bound">P</a> <a id="2460" href="Relation.Unary.html#2345" class="Function Operator">⊆′</a> <a id="2463" href="Relation.Unary.html#2449" class="Bound">Q</a>
<a id="_⊈_"></a><a id="2466" href="Relation.Unary.html#2466" class="Function Operator">_⊈_</a> <a id="2471" class="Symbol">:</a> <a id="2473" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="2478" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="2480" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="2483" class="Symbol"></a> <a id="2485" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="2490" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="2492" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="2495" class="Symbol"></a> <a id="2497" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2501" class="Symbol">_</a>
<a id="2503" href="Relation.Unary.html#2503" class="Bound">P</a> <a id="2505" href="Relation.Unary.html#2466" class="Function Operator">⊈′</a> <a id="2508" href="Relation.Unary.html#2508" class="Bound">Q</a> <a id="2510" class="Symbol">=</a> <a id="2512" href="Relation.Nullary.html#665" class="Function Operator">¬</a> <a id="2514" class="Symbol">(</a><a id="2515" href="Relation.Unary.html#2503" class="Bound">P</a> <a id="2517" href="Relation.Unary.html#2345" class="Function Operator">⊆′</a> <a id="2520" href="Relation.Unary.html#2508" class="Bound">Q</a><a id="2521" class="Symbol">)</a>
<a id="_⊉_"></a><a id="2524" href="Relation.Unary.html#2524" class="Function Operator">_⊉_</a> <a id="2529" class="Symbol">:</a> <a id="2531" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="2536" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="2538" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="2541" class="Symbol"></a> <a id="2543" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="2548" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="2550" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="2553" class="Symbol"></a> <a id="2555" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2559" class="Symbol">_</a>
<a id="2561" href="Relation.Unary.html#2561" class="Bound">P</a> <a id="2563" href="Relation.Unary.html#2524" class="Function Operator">⊉′</a> <a id="2566" href="Relation.Unary.html#2566" class="Bound">Q</a> <a id="2568" class="Symbol">=</a> <a id="2570" href="Relation.Nullary.html#665" class="Function Operator">¬</a> <a id="2572" class="Symbol">(</a><a id="2573" href="Relation.Unary.html#2561" class="Bound">P</a> <a id="2575" href="Relation.Unary.html#2412" class="Function Operator">⊇′</a> <a id="2578" href="Relation.Unary.html#2566" class="Bound">Q</a><a id="2579" class="Symbol">)</a>
<a id="_⊂_"></a><a id="2582" href="Relation.Unary.html#2582" class="Function Operator">_⊂_</a> <a id="2587" class="Symbol">:</a> <a id="2589" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="2594" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="2596" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="2599" class="Symbol"></a> <a id="2601" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="2606" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="2608" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="2611" class="Symbol"></a> <a id="2613" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2617" class="Symbol">_</a>
<a id="2619" href="Relation.Unary.html#2619" class="Bound">P</a> <a id="2621" href="Relation.Unary.html#2582" class="Function Operator">⊂′</a> <a id="2624" href="Relation.Unary.html#2624" class="Bound">Q</a> <a id="2626" class="Symbol">=</a> <a id="2628" href="Relation.Unary.html#2619" class="Bound">P</a> <a id="2630" href="Relation.Unary.html#2345" class="Function Operator">⊆′</a> <a id="2633" href="Relation.Unary.html#2624" class="Bound">Q</a> <a id="2635" href="Data.Product.html#1176" class="Function Operator">×</a> <a id="2637" href="Relation.Unary.html#2624" class="Bound">Q</a> <a id="2639" href="Relation.Unary.html#2466" class="Function Operator">⊈′</a> <a id="2642" href="Relation.Unary.html#2619" class="Bound">P</a>
<a id="_⊃_"></a><a id="2645" href="Relation.Unary.html#2645" class="Function Operator">_⊃_</a> <a id="2650" class="Symbol">:</a> <a id="2652" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="2657" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="2659" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="2662" class="Symbol"></a> <a id="2664" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="2669" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="2671" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="2674" class="Symbol"></a> <a id="2676" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2680" class="Symbol">_</a>
<a id="2682" href="Relation.Unary.html#2682" class="Bound">P</a> <a id="2684" href="Relation.Unary.html#2645" class="Function Operator">⊃′</a> <a id="2687" href="Relation.Unary.html#2687" class="Bound">Q</a> <a id="2689" class="Symbol">=</a> <a id="2691" href="Relation.Unary.html#2687" class="Bound">Q</a> <a id="2693" href="Relation.Unary.html#2582" class="Function Operator">⊂′</a> <a id="2696" href="Relation.Unary.html#2682" class="Bound">P</a>
<a id="_⊄_"></a><a id="2699" href="Relation.Unary.html#2699" class="Function Operator">_⊄_</a> <a id="2704" class="Symbol">:</a> <a id="2706" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="2711" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="2713" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="2716" class="Symbol"></a> <a id="2718" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="2723" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="2725" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="2728" class="Symbol"></a> <a id="2730" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2734" class="Symbol">_</a>
<a id="2736" href="Relation.Unary.html#2736" class="Bound">P</a> <a id="2738" href="Relation.Unary.html#2699" class="Function Operator">⊄′</a> <a id="2741" href="Relation.Unary.html#2741" class="Bound">Q</a> <a id="2743" class="Symbol">=</a> <a id="2745" href="Relation.Nullary.html#665" class="Function Operator">¬</a> <a id="2747" class="Symbol">(</a><a id="2748" href="Relation.Unary.html#2736" class="Bound">P</a> <a id="2750" href="Relation.Unary.html#2582" class="Function Operator">⊂′</a> <a id="2753" href="Relation.Unary.html#2741" class="Bound">Q</a><a id="2754" class="Symbol">)</a>
<a id="_⊅_"></a><a id="2757" href="Relation.Unary.html#2757" class="Function Operator">_⊅_</a> <a id="2762" class="Symbol">:</a> <a id="2764" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="2769" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="2771" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="2774" class="Symbol"></a> <a id="2776" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="2781" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="2783" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="2786" class="Symbol"></a> <a id="2788" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2792" class="Symbol">_</a>
<a id="2794" href="Relation.Unary.html#2794" class="Bound">P</a> <a id="2796" href="Relation.Unary.html#2757" class="Function Operator">⊅′</a> <a id="2799" href="Relation.Unary.html#2799" class="Bound">Q</a> <a id="2801" class="Symbol">=</a> <a id="2803" href="Relation.Nullary.html#665" class="Function Operator">¬</a> <a id="2805" class="Symbol">(</a><a id="2806" href="Relation.Unary.html#2794" class="Bound">P</a> <a id="2808" href="Relation.Unary.html#2645" class="Function Operator">⊃′</a> <a id="2811" href="Relation.Unary.html#2799" class="Bound">Q</a><a id="2812" class="Symbol">)</a>
<a id="2815" class="Comment">------------------------------------------------------------------------</a>
<a id="2888" class="Comment">-- Properties of sets</a>
<a id="2911" class="Keyword">infix</a> <a id="2917" class="Number">10</a> <a id="2920" href="Relation.Unary.html#3094" class="Function">Satisfiable</a> <a id="2932" href="Relation.Unary.html#3230" class="Function">Universal</a> <a id="2942" href="Relation.Unary.html#3368" class="Function">IUniversal</a>
<a id="2954" class="Comment">-- Emptiness - no element satisfies P.</a>
<a id="Empty"></a><a id="2994" href="Relation.Unary.html#2994" class="Function">Empty</a> <a id="3000" class="Symbol">:</a> <a id="3002" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="3007" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="3009" href="Relation.Unary.html#650" class="Generalizable"></a> <a id="3011" class="Symbol"></a> <a id="3013" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3017" class="Symbol">_</a>
<a id="3019" href="Relation.Unary.html#2994" class="Function">Empty</a> <a id="3025" href="Relation.Unary.html#3025" class="Bound">P</a> <a id="3027" class="Symbol">=</a> <a id="3029" class="Symbol"></a> <a id="3031" href="Relation.Unary.html#3031" class="Bound">x</a> <a id="3033" class="Symbol"></a> <a id="3035" href="Relation.Unary.html#3031" class="Bound">x</a> <a id="3037" href="Relation.Unary.html#1572" class="Function Operator"></a> <a id="3039" href="Relation.Unary.html#3025" class="Bound">P</a>
<a id="3042" class="Comment">-- Satisfiable - at least one element satisfies P.</a>
<a id="Satisfiable"></a><a id="3094" href="Relation.Unary.html#3094" class="Function">Satisfiable</a> <a id="3106" class="Symbol">:</a> <a id="3108" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="3113" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="3115" href="Relation.Unary.html#650" class="Generalizable"></a> <a id="3117" class="Symbol"></a> <a id="3119" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3123" class="Symbol">_</a>
<a id="3125" href="Relation.Unary.html#3094" class="Function">Satisfiable</a> <a id="3137" href="Relation.Unary.html#3137" class="Bound">P</a> <a id="3139" class="Symbol">=</a> <a id="3141" href="Data.Product.html#1378" class="Function"></a> <a id="3143" class="Symbol">λ</a> <a id="3145" href="Relation.Unary.html#3145" class="Bound">x</a> <a id="3147" class="Symbol"></a> <a id="3149" href="Relation.Unary.html#3145" class="Bound">x</a> <a id="3151" href="Relation.Unary.html#1532" class="Function Operator"></a> <a id="3153" href="Relation.Unary.html#3137" class="Bound">P</a>
<a id="3156" class="Keyword">syntax</a> <a id="3163" href="Relation.Unary.html#3094" class="Function">Satisfiable</a> <a id="3175" class="Bound">P</a> <a id="3177" class="Symbol">=</a> <a id="3179" class="Function">∃⟨</a> <a id="3182" class="Bound">P</a> <a id="3184" class="Function"></a>
<a id="3187" class="Comment">-- Universality - all elements satisfy P.</a>
<a id="Universal"></a><a id="3230" href="Relation.Unary.html#3230" class="Function">Universal</a> <a id="3240" class="Symbol">:</a> <a id="3242" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="3247" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="3249" href="Relation.Unary.html#650" class="Generalizable"></a> <a id="3251" class="Symbol"></a> <a id="3253" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3257" class="Symbol">_</a>
<a id="3259" href="Relation.Unary.html#3230" class="Function">Universal</a> <a id="3269" href="Relation.Unary.html#3269" class="Bound">P</a> <a id="3271" class="Symbol">=</a> <a id="3273" class="Symbol"></a> <a id="3275" href="Relation.Unary.html#3275" class="Bound">x</a> <a id="3277" class="Symbol"></a> <a id="3279" href="Relation.Unary.html#3275" class="Bound">x</a> <a id="3281" href="Relation.Unary.html#1532" class="Function Operator"></a> <a id="3283" href="Relation.Unary.html#3269" class="Bound">P</a>
<a id="3286" class="Keyword">syntax</a> <a id="3293" href="Relation.Unary.html#3230" class="Function">Universal</a> <a id="3304" class="Bound">P</a> <a id="3306" class="Symbol">=</a> <a id="3308" class="Function">Π[</a> <a id="3311" class="Bound">P</a> <a id="3313" class="Function">]</a>
<a id="3316" class="Comment">-- Implicit universality - all elements satisfy P.</a>
<a id="IUniversal"></a><a id="3368" href="Relation.Unary.html#3368" class="Function">IUniversal</a> <a id="3379" class="Symbol">:</a> <a id="3381" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="3386" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="3388" href="Relation.Unary.html#650" class="Generalizable"></a> <a id="3390" class="Symbol"></a> <a id="3392" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3396" class="Symbol">_</a>
<a id="3398" href="Relation.Unary.html#3368" class="Function">IUniversal</a> <a id="3409" href="Relation.Unary.html#3409" class="Bound">P</a> <a id="3411" class="Symbol">=</a> <a id="3413" class="Symbol"></a> <a id="3415" class="Symbol">{</a><a id="3416" href="Relation.Unary.html#3416" class="Bound">x</a><a id="3417" class="Symbol">}</a> <a id="3419" class="Symbol"></a> <a id="3421" href="Relation.Unary.html#3416" class="Bound">x</a> <a id="3423" href="Relation.Unary.html#1532" class="Function Operator"></a> <a id="3425" href="Relation.Unary.html#3409" class="Bound">P</a>
<a id="3428" class="Keyword">syntax</a> <a id="3435" href="Relation.Unary.html#3368" class="Function">IUniversal</a> <a id="3446" class="Bound">P</a> <a id="3448" class="Symbol">=</a> <a id="3450" class="Function">∀[</a> <a id="3453" class="Bound">P</a> <a id="3455" class="Function">]</a>
<a id="3458" class="Comment">-- Decidability - it is possible to determine if an arbitrary element</a>
<a id="3528" class="Comment">-- satisfies P.</a>
<a id="Decidable"></a><a id="3545" href="Relation.Unary.html#3545" class="Function">Decidable</a> <a id="3555" class="Symbol">:</a> <a id="3557" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="3562" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="3564" href="Relation.Unary.html#650" class="Generalizable"></a> <a id="3566" class="Symbol"></a> <a id="3568" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3572" class="Symbol">_</a>
<a id="3574" href="Relation.Unary.html#3545" class="Function">Decidable</a> <a id="3584" href="Relation.Unary.html#3584" class="Bound">P</a> <a id="3586" class="Symbol">=</a> <a id="3588" class="Symbol"></a> <a id="3590" href="Relation.Unary.html#3590" class="Bound">x</a> <a id="3592" class="Symbol"></a> <a id="3594" href="Relation.Nullary.html#1520" class="Record">Dec</a> <a id="3598" class="Symbol">(</a><a id="3599" href="Relation.Unary.html#3584" class="Bound">P</a> <a id="3601" href="Relation.Unary.html#3590" class="Bound">x</a><a id="3602" class="Symbol">)</a>
<a id="3605" class="Comment">-- Erasure: A decidable predicate gives rise to another one, more</a>
<a id="3671" class="Comment">-- amenable to η-expansion</a>
<a id="⌊_⌋"></a><a id="3699" href="Relation.Unary.html#3699" class="Function Operator">⌊_⌋</a> <a id="3703" class="Symbol">:</a> <a id="3705" class="Symbol">{</a><a id="3706" href="Relation.Unary.html#3706" class="Bound">P</a> <a id="3708" class="Symbol">:</a> <a id="3710" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="3715" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="3717" href="Relation.Unary.html#650" class="Generalizable"></a><a id="3718" class="Symbol">}</a> <a id="3720" class="Symbol"></a> <a id="3722" href="Relation.Unary.html#3545" class="Function">Decidable</a> <a id="3732" href="Relation.Unary.html#3706" class="Bound">P</a> <a id="3734" class="Symbol"></a> <a id="3736" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="3741" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="3743" href="Relation.Unary.html#650" class="Generalizable"></a>
<a id="3745" href="Relation.Unary.html#3699" class="Function Operator"></a> <a id="3747" href="Relation.Unary.html#3747" class="Bound">P?</a> <a id="3750" href="Relation.Unary.html#3699" class="Function Operator"></a> <a id="3752" href="Relation.Unary.html#3752" class="Bound">a</a> <a id="3754" class="Symbol">=</a> <a id="3756" href="Level.html#409" class="Record">Lift</a> <a id="3761" class="Symbol">_</a> <a id="3763" class="Symbol">(</a><a id="3764" href="Relation.Nullary.Decidable.Core.html#1374" class="Function">True</a> <a id="3769" class="Symbol">(</a><a id="3770" href="Relation.Unary.html#3747" class="Bound">P?</a> <a id="3773" href="Relation.Unary.html#3752" class="Bound">a</a><a id="3774" class="Symbol">))</a>
<a id="3778" class="Comment">-- Irrelevance - any two proofs that an element satifies P are</a>
<a id="3841" class="Comment">-- indistinguishable.</a>
<a id="Irrelevant"></a><a id="3864" href="Relation.Unary.html#3864" class="Function">Irrelevant</a> <a id="3875" class="Symbol">:</a> <a id="3877" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="3882" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="3884" href="Relation.Unary.html#650" class="Generalizable"></a> <a id="3886" class="Symbol"></a> <a id="3888" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3892" class="Symbol">_</a>
<a id="3894" href="Relation.Unary.html#3864" class="Function">Irrelevant</a> <a id="3905" href="Relation.Unary.html#3905" class="Bound">P</a> <a id="3907" class="Symbol">=</a> <a id="3909" class="Symbol"></a> <a id="3911" class="Symbol">{</a><a id="3912" href="Relation.Unary.html#3912" class="Bound">x</a><a id="3913" class="Symbol">}</a> <a id="3915" class="Symbol">(</a><a id="3916" href="Relation.Unary.html#3916" class="Bound">a</a> <a id="3918" class="Symbol">:</a> <a id="3920" href="Relation.Unary.html#3905" class="Bound">P</a> <a id="3922" href="Relation.Unary.html#3912" class="Bound">x</a><a id="3923" class="Symbol">)</a> <a id="3925" class="Symbol">(</a><a id="3926" href="Relation.Unary.html#3926" class="Bound">b</a> <a id="3928" class="Symbol">:</a> <a id="3930" href="Relation.Unary.html#3905" class="Bound">P</a> <a id="3932" href="Relation.Unary.html#3912" class="Bound">x</a><a id="3933" class="Symbol">)</a> <a id="3935" class="Symbol"></a> <a id="3937" href="Relation.Unary.html#3916" class="Bound">a</a> <a id="3939" href="Agda.Builtin.Equality.html#133" class="Datatype Operator"></a> <a id="3941" href="Relation.Unary.html#3926" class="Bound">b</a>
<a id="3944" class="Comment">-- Recomputability - we can rebuild a relevant proof given an</a>
<a id="4006" class="Comment">-- irrelevant one.</a>
<a id="Recomputable"></a><a id="4026" href="Relation.Unary.html#4026" class="Function">Recomputable</a> <a id="4039" class="Symbol">:</a> <a id="4041" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="4046" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="4048" href="Relation.Unary.html#650" class="Generalizable"></a> <a id="4050" class="Symbol"></a> <a id="4052" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="4056" class="Symbol">_</a>
<a id="4058" href="Relation.Unary.html#4026" class="Function">Recomputable</a> <a id="4071" href="Relation.Unary.html#4071" class="Bound">P</a> <a id="4073" class="Symbol">=</a> <a id="4075" class="Symbol"></a> <a id="4077" class="Symbol">{</a><a id="4078" href="Relation.Unary.html#4078" class="Bound">x</a><a id="4079" class="Symbol">}</a> <a id="4081" class="Symbol"></a> <a id="4083" class="Symbol">.(</a><a id="4085" href="Relation.Unary.html#4071" class="Bound">P</a> <a id="4087" href="Relation.Unary.html#4078" class="Bound">x</a><a id="4088" class="Symbol">)</a> <a id="4090" class="Symbol"></a> <a id="4092" href="Relation.Unary.html#4071" class="Bound">P</a> <a id="4094" href="Relation.Unary.html#4078" class="Bound">x</a>
<a id="4097" class="Comment">------------------------------------------------------------------------</a>
<a id="4170" class="Comment">-- Operations on sets</a>
<a id="4193" class="Keyword">infix</a> <a id="4199" class="Number">10</a> <a id="4202" href="Relation.Unary.html#4602" class="Function"></a> <a id="4204" href="Relation.Unary.html#4750" class="Function"></a>
<a id="4206" class="Keyword">infixr</a> <a id="4213" class="Number">9</a> <a id="4215" href="Relation.Unary.html#5008" class="Function Operator">_⊢_</a>
<a id="4219" class="Keyword">infixr</a> <a id="4226" class="Number">8</a> <a id="4228" href="Relation.Unary.html#4347" class="Function Operator">_⇒_</a>
<a id="4232" class="Keyword">infixr</a> <a id="4239" class="Number">7</a> <a id="4241" href="Relation.Unary.html#4512" class="Function Operator">_∩_</a>
<a id="4245" class="Keyword">infixr</a> <a id="4252" class="Number">6</a> <a id="4254" href="Relation.Unary.html#4426" class="Function Operator">__</a>
<a id="4258" class="Keyword">infix</a> <a id="4264" class="Number">4</a> <a id="4266" href="Relation.Unary.html#4929" class="Function Operator">_≬_</a>
<a id="4271" class="Comment">-- Complement.</a>
<a id="∁"></a><a id="4287" href="Relation.Unary.html#4287" class="Function"></a> <a id="4289" class="Symbol">:</a> <a id="4291" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="4296" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="4298" href="Relation.Unary.html#650" class="Generalizable"></a> <a id="4300" class="Symbol"></a> <a id="4302" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="4307" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="4309" href="Relation.Unary.html#650" class="Generalizable"></a>
<a id="4311" href="Relation.Unary.html#4287" class="Function"></a> <a id="4313" href="Relation.Unary.html#4313" class="Bound">P</a> <a id="4315" class="Symbol">=</a> <a id="4317" class="Symbol">λ</a> <a id="4319" href="Relation.Unary.html#4319" class="Bound">x</a> <a id="4321" class="Symbol"></a> <a id="4323" href="Relation.Unary.html#4319" class="Bound">x</a> <a id="4325" href="Relation.Unary.html#1572" class="Function Operator"></a> <a id="4327" href="Relation.Unary.html#4313" class="Bound">P</a>
<a id="4330" class="Comment">-- Implication.</a>
<a id="_⇒_"></a><a id="4347" href="Relation.Unary.html#4347" class="Function Operator">_⇒_</a> <a id="4351" class="Symbol">:</a> <a id="4353" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="4358" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="4360" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="4363" class="Symbol"></a> <a id="4365" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="4370" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="4372" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="4375" class="Symbol"></a> <a id="4377" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="4382" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="4384" class="Symbol">_</a>
<a id="4386" href="Relation.Unary.html#4386" class="Bound">P</a> <a id="4388" href="Relation.Unary.html#4347" class="Function Operator"></a> <a id="4390" href="Relation.Unary.html#4390" class="Bound">Q</a> <a id="4392" class="Symbol">=</a> <a id="4394" class="Symbol">λ</a> <a id="4396" href="Relation.Unary.html#4396" class="Bound">x</a> <a id="4398" class="Symbol"></a> <a id="4400" href="Relation.Unary.html#4396" class="Bound">x</a> <a id="4402" href="Relation.Unary.html#1532" class="Function Operator"></a> <a id="4404" href="Relation.Unary.html#4386" class="Bound">P</a> <a id="4406" class="Symbol"></a> <a id="4408" href="Relation.Unary.html#4396" class="Bound">x</a> <a id="4410" href="Relation.Unary.html#1532" class="Function Operator"></a> <a id="4412" href="Relation.Unary.html#4390" class="Bound">Q</a>
<a id="4415" class="Comment">-- Union.</a>
<a id="__"></a><a id="4426" href="Relation.Unary.html#4426" class="Function Operator">__</a> <a id="4430" class="Symbol">:</a> <a id="4432" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="4437" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="4439" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="4442" class="Symbol"></a> <a id="4444" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="4449" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="4451" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="4454" class="Symbol"></a> <a id="4456" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="4461" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="4463" class="Symbol">_</a>
<a id="4465" href="Relation.Unary.html#4465" class="Bound">P</a> <a id="4467" href="Relation.Unary.html#4426" class="Function Operator"></a> <a id="4469" href="Relation.Unary.html#4469" class="Bound">Q</a> <a id="4471" class="Symbol">=</a> <a id="4473" class="Symbol">λ</a> <a id="4475" href="Relation.Unary.html#4475" class="Bound">x</a> <a id="4477" class="Symbol"></a> <a id="4479" href="Relation.Unary.html#4475" class="Bound">x</a> <a id="4481" href="Relation.Unary.html#1532" class="Function Operator"></a> <a id="4483" href="Relation.Unary.html#4465" class="Bound">P</a> <a id="4485" href="Data.Sum.Base.html#743" class="Datatype Operator"></a> <a id="4487" href="Relation.Unary.html#4475" class="Bound">x</a> <a id="4489" href="Relation.Unary.html#1532" class="Function Operator"></a> <a id="4491" href="Relation.Unary.html#4469" class="Bound">Q</a>
<a id="4494" class="Comment">-- Intersection.</a>
<a id="_∩_"></a><a id="4512" href="Relation.Unary.html#4512" class="Function Operator">_∩_</a> <a id="4516" class="Symbol">:</a> <a id="4518" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="4523" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="4525" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="4528" class="Symbol"></a> <a id="4530" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="4535" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="4537" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="4540" class="Symbol"></a> <a id="4542" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="4547" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="4549" class="Symbol">_</a>
<a id="4551" href="Relation.Unary.html#4551" class="Bound">P</a> <a id="4553" href="Relation.Unary.html#4512" class="Function Operator"></a> <a id="4555" href="Relation.Unary.html#4555" class="Bound">Q</a> <a id="4557" class="Symbol">=</a> <a id="4559" class="Symbol">λ</a> <a id="4561" href="Relation.Unary.html#4561" class="Bound">x</a> <a id="4563" class="Symbol"></a> <a id="4565" href="Relation.Unary.html#4561" class="Bound">x</a> <a id="4567" href="Relation.Unary.html#1532" class="Function Operator"></a> <a id="4569" href="Relation.Unary.html#4551" class="Bound">P</a> <a id="4571" href="Data.Product.html#1176" class="Function Operator">×</a> <a id="4573" href="Relation.Unary.html#4561" class="Bound">x</a> <a id="4575" href="Relation.Unary.html#1532" class="Function Operator"></a> <a id="4577" href="Relation.Unary.html#4555" class="Bound">Q</a>
<a id="4580" class="Comment">-- Infinitary union.</a>
<a id=""></a><a id="4602" href="Relation.Unary.html#4602" class="Function"></a> <a id="4604" class="Symbol">:</a> <a id="4606" class="Symbol"></a> <a id="4608" class="Symbol">{</a><a id="4609" href="Relation.Unary.html#4609" class="Bound">i</a><a id="4610" class="Symbol">}</a> <a id="4612" class="Symbol">(</a><a id="4613" href="Relation.Unary.html#4613" class="Bound">I</a> <a id="4615" class="Symbol">:</a> <a id="4617" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="4621" href="Relation.Unary.html#4609" class="Bound">i</a><a id="4622" class="Symbol">)</a> <a id="4624" class="Symbol"></a> <a id="4626" class="Symbol">(</a><a id="4627" href="Relation.Unary.html#4613" class="Bound">I</a> <a id="4629" class="Symbol"></a> <a id="4631" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="4636" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="4638" href="Relation.Unary.html#650" class="Generalizable"></a><a id="4639" class="Symbol">)</a> <a id="4641" class="Symbol"></a> <a id="4643" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="4648" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="4650" class="Symbol">_</a>
<a id="4652" href="Relation.Unary.html#4602" class="Function"></a> <a id="4654" href="Relation.Unary.html#4654" class="Bound">I</a> <a id="4656" href="Relation.Unary.html#4656" class="Bound">P</a> <a id="4658" class="Symbol">=</a> <a id="4660" class="Symbol">λ</a> <a id="4662" href="Relation.Unary.html#4662" class="Bound">x</a> <a id="4664" class="Symbol"></a> <a id="4666" href="Data.Product.html#925" class="Function">Σ[</a> <a id="4669" href="Relation.Unary.html#4669" class="Bound">i</a> <a id="4671" href="Data.Product.html#925" class="Function"></a> <a id="4673" href="Relation.Unary.html#4654" class="Bound">I</a> <a id="4675" href="Data.Product.html#925" class="Function">]</a> <a id="4677" href="Relation.Unary.html#4656" class="Bound">P</a> <a id="4679" href="Relation.Unary.html#4669" class="Bound">i</a> <a id="4681" href="Relation.Unary.html#4662" class="Bound">x</a>
<a id="4684" class="Keyword">syntax</a> <a id="4691" href="Relation.Unary.html#4602" class="Function"></a> <a id="4693" class="Bound">I</a> <a id="4695" class="Symbol"></a> <a id="4698" class="Bound">i</a> <a id="4700" class="Symbol"></a> <a id="4702" class="Bound">P</a><a id="4703" class="Symbol">)</a> <a id="4705" class="Symbol">=</a> <a id="4707" class="Function">[</a> <a id="4710" class="Bound">i</a> <a id="4712" class="Function"></a> <a id="4714" class="Bound">I</a> <a id="4716" class="Function">]</a> <a id="4718" class="Bound">P</a>
<a id="4721" class="Comment">-- Infinitary intersection.</a>
<a id="⋂"></a><a id="4750" href="Relation.Unary.html#4750" class="Function"></a> <a id="4752" class="Symbol">:</a> <a id="4754" class="Symbol"></a> <a id="4756" class="Symbol">{</a><a id="4757" href="Relation.Unary.html#4757" class="Bound">i</a><a id="4758" class="Symbol">}</a> <a id="4760" class="Symbol">(</a><a id="4761" href="Relation.Unary.html#4761" class="Bound">I</a> <a id="4763" class="Symbol">:</a> <a id="4765" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="4769" href="Relation.Unary.html#4757" class="Bound">i</a><a id="4770" class="Symbol">)</a> <a id="4772" class="Symbol"></a> <a id="4774" class="Symbol">(</a><a id="4775" href="Relation.Unary.html#4761" class="Bound">I</a> <a id="4777" class="Symbol"></a> <a id="4779" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="4784" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="4786" href="Relation.Unary.html#650" class="Generalizable"></a><a id="4787" class="Symbol">)</a> <a id="4789" class="Symbol"></a> <a id="4791" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="4796" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="4798" class="Symbol">_</a>
<a id="4800" href="Relation.Unary.html#4750" class="Function"></a> <a id="4802" href="Relation.Unary.html#4802" class="Bound">I</a> <a id="4804" href="Relation.Unary.html#4804" class="Bound">P</a> <a id="4806" class="Symbol">=</a> <a id="4808" class="Symbol">λ</a> <a id="4810" href="Relation.Unary.html#4810" class="Bound">x</a> <a id="4812" class="Symbol"></a> <a id="4814" class="Symbol">(</a><a id="4815" href="Relation.Unary.html#4815" class="Bound">i</a> <a id="4817" class="Symbol">:</a> <a id="4819" href="Relation.Unary.html#4802" class="Bound">I</a><a id="4820" class="Symbol">)</a> <a id="4822" class="Symbol"></a> <a id="4824" href="Relation.Unary.html#4804" class="Bound">P</a> <a id="4826" href="Relation.Unary.html#4815" class="Bound">i</a> <a id="4828" href="Relation.Unary.html#4810" class="Bound">x</a>
<a id="4831" class="Keyword">syntax</a> <a id="4838" href="Relation.Unary.html#4750" class="Function"></a> <a id="4840" class="Bound">I</a> <a id="4842" class="Symbol"></a> <a id="4845" class="Bound">i</a> <a id="4847" class="Symbol"></a> <a id="4849" class="Bound">P</a><a id="4850" class="Symbol">)</a> <a id="4852" class="Symbol">=</a> <a id="4854" class="Function">⋂[</a> <a id="4857" class="Bound">i</a> <a id="4859" class="Function"></a> <a id="4861" class="Bound">I</a> <a id="4863" class="Function">]</a> <a id="4865" class="Bound">P</a>
<a id="4868" class="Comment">-- Positive version of non-disjointness, dual to inclusion.</a>
<a id="_≬_"></a><a id="4929" href="Relation.Unary.html#4929" class="Function Operator">_≬_</a> <a id="4933" class="Symbol">:</a> <a id="4935" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="4940" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="4942" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="4945" class="Symbol"></a> <a id="4947" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="4952" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="4954" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="4957" class="Symbol"></a> <a id="4959" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="4963" class="Symbol">_</a>
<a id="4965" href="Relation.Unary.html#4965" class="Bound">P</a> <a id="4967" href="Relation.Unary.html#4929" class="Function Operator"></a> <a id="4969" href="Relation.Unary.html#4969" class="Bound">Q</a> <a id="4971" class="Symbol">=</a> <a id="4973" href="Data.Product.html#1378" class="Function"></a> <a id="4975" class="Symbol">λ</a> <a id="4977" href="Relation.Unary.html#4977" class="Bound">x</a> <a id="4979" class="Symbol"></a> <a id="4981" href="Relation.Unary.html#4977" class="Bound">x</a> <a id="4983" href="Relation.Unary.html#1532" class="Function Operator"></a> <a id="4985" href="Relation.Unary.html#4965" class="Bound">P</a> <a id="4987" href="Data.Product.html#1176" class="Function Operator">×</a> <a id="4989" href="Relation.Unary.html#4977" class="Bound">x</a> <a id="4991" href="Relation.Unary.html#1532" class="Function Operator"></a> <a id="4993" href="Relation.Unary.html#4969" class="Bound">Q</a>
<a id="4996" class="Comment">-- Update.</a>
<a id="_⊢_"></a><a id="5008" href="Relation.Unary.html#5008" class="Function Operator">_⊢_</a> <a id="5012" class="Symbol">:</a> <a id="5014" class="Symbol">(</a><a id="5015" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="5017" class="Symbol"></a> <a id="5019" href="Relation.Unary.html#684" class="Generalizable">B</a><a id="5020" class="Symbol">)</a> <a id="5022" class="Symbol"></a> <a id="5024" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="5029" href="Relation.Unary.html#684" class="Generalizable">B</a> <a id="5031" href="Relation.Unary.html#650" class="Generalizable"></a> <a id="5033" class="Symbol"></a> <a id="5035" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="5040" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="5042" href="Relation.Unary.html#650" class="Generalizable"></a>
<a id="5044" href="Relation.Unary.html#5044" class="Bound">f</a> <a id="5046" href="Relation.Unary.html#5008" class="Function Operator"></a> <a id="5048" href="Relation.Unary.html#5048" class="Bound">P</a> <a id="5050" class="Symbol">=</a> <a id="5052" class="Symbol">λ</a> <a id="5054" href="Relation.Unary.html#5054" class="Bound">x</a> <a id="5056" class="Symbol"></a> <a id="5058" href="Relation.Unary.html#5048" class="Bound">P</a> <a id="5060" class="Symbol">(</a><a id="5061" href="Relation.Unary.html#5044" class="Bound">f</a> <a id="5063" href="Relation.Unary.html#5054" class="Bound">x</a><a id="5064" class="Symbol">)</a>
<a id="5067" class="Comment">------------------------------------------------------------------------</a>
<a id="5140" class="Comment">-- Predicate combinators</a>
<a id="5166" class="Comment">-- These differ from the set operations above, as the carrier set of the</a>
<a id="5239" class="Comment">-- resulting predicates are not the same as the carrier set of the</a>
<a id="5306" class="Comment">-- component predicates.</a>
<a id="5332" class="Keyword">infixr</a> <a id="5340" class="Number">2</a> <a id="5342" href="Relation.Unary.html#5475" class="Function Operator">_⟨×⟩_</a>
<a id="5348" class="Keyword">infixr</a> <a id="5356" class="Number">2</a> <a id="5358" href="Relation.Unary.html#5676" class="Function Operator">_⟨⊙⟩_</a>
<a id="5364" class="Keyword">infixr</a> <a id="5372" class="Number">1</a> <a id="5374" href="Relation.Unary.html#5583" class="Function Operator">_⟨⊎⟩_</a>
<a id="5380" class="Keyword">infixr</a> <a id="5388" class="Number">0</a> <a id="5390" href="Relation.Unary.html#5775" class="Function Operator">_⟨→⟩_</a>
<a id="5396" class="Keyword">infixl</a> <a id="5404" class="Number">9</a> <a id="5406" href="Relation.Unary.html#5860" class="Function Operator">_⟨·⟩_</a>
<a id="5412" class="Keyword">infix</a> <a id="5419" class="Number">10</a> <a id="5422" href="Relation.Unary.html#5992" class="Function Operator">_~</a>
<a id="5425" class="Keyword">infixr</a> <a id="5433" class="Number">9</a> <a id="5435" href="Relation.Unary.html#6062" class="Function Operator">_⟨∘⟩_</a>
<a id="5441" class="Keyword">infixr</a> <a id="5449" class="Number">2</a> <a id="5451" href="Relation.Unary.html#6195" class="Function Operator">_//_</a> <a id="5456" href="Relation.Unary.html#6315" class="Function Operator">_\\_</a>
<a id="5462" class="Comment">-- Product.</a>
<a id="_⟨×⟩_"></a><a id="5475" href="Relation.Unary.html#5475" class="Function Operator">_⟨×⟩_</a> <a id="5481" class="Symbol">:</a> <a id="5483" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="5488" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="5490" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="5493" class="Symbol"></a> <a id="5495" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="5500" href="Relation.Unary.html#684" class="Generalizable">B</a> <a id="5502" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="5505" class="Symbol"></a> <a id="5507" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="5512" class="Symbol">(</a><a id="5513" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="5515" href="Data.Product.html#1176" class="Function Operator">×</a> <a id="5517" href="Relation.Unary.html#684" class="Generalizable">B</a><a id="5518" class="Symbol">)</a> <a id="5520" class="Symbol">_</a>
<a id="5522" class="Symbol">(</a><a id="5523" href="Relation.Unary.html#5523" class="Bound">P</a> <a id="5525" href="Relation.Unary.html#5475" class="Function Operator">⟨×⟩</a> <a id="5529" href="Relation.Unary.html#5529" class="Bound">Q</a><a id="5530" class="Symbol">)</a> <a id="5532" class="Symbol">(</a><a id="5533" href="Relation.Unary.html#5533" class="Bound">x</a> <a id="5535" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5537" href="Relation.Unary.html#5537" class="Bound">y</a><a id="5538" class="Symbol">)</a> <a id="5540" class="Symbol">=</a> <a id="5542" href="Relation.Unary.html#5533" class="Bound">x</a> <a id="5544" href="Relation.Unary.html#1532" class="Function Operator"></a> <a id="5546" href="Relation.Unary.html#5523" class="Bound">P</a> <a id="5548" href="Data.Product.html#1176" class="Function Operator">×</a> <a id="5550" href="Relation.Unary.html#5537" class="Bound">y</a> <a id="5552" href="Relation.Unary.html#1532" class="Function Operator"></a> <a id="5554" href="Relation.Unary.html#5529" class="Bound">Q</a>
<a id="5557" class="Comment">-- Sum over one element.</a>
<a id="_⟨⊎⟩_"></a><a id="5583" href="Relation.Unary.html#5583" class="Function Operator">_⟨⊎⟩_</a> <a id="5589" class="Symbol">:</a> <a id="5591" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="5596" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="5598" href="Relation.Unary.html#650" class="Generalizable"></a> <a id="5600" class="Symbol"></a> <a id="5602" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="5607" href="Relation.Unary.html#684" class="Generalizable">B</a> <a id="5609" href="Relation.Unary.html#650" class="Generalizable"></a> <a id="5611" class="Symbol"></a> <a id="5613" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="5618" class="Symbol">(</a><a id="5619" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="5621" href="Data.Sum.Base.html#743" class="Datatype Operator"></a> <a id="5623" href="Relation.Unary.html#684" class="Generalizable">B</a><a id="5624" class="Symbol">)</a> <a id="5626" class="Symbol">_</a>
<a id="5628" href="Relation.Unary.html#5628" class="Bound">P</a> <a id="5630" href="Relation.Unary.html#5583" class="Function Operator">⟨⊎⟩</a> <a id="5634" href="Relation.Unary.html#5634" class="Bound">Q</a> <a id="5636" class="Symbol">=</a> <a id="5638" href="Data.Sum.Base.html#929" class="Function Operator">[</a> <a id="5640" href="Relation.Unary.html#5628" class="Bound">P</a> <a id="5642" href="Data.Sum.Base.html#929" class="Function Operator">,</a> <a id="5644" href="Relation.Unary.html#5634" class="Bound">Q</a> <a id="5646" href="Data.Sum.Base.html#929" class="Function Operator">]</a>
<a id="5649" class="Comment">-- Sum over two elements.</a>
<a id="_⟨⊙⟩_"></a><a id="5676" href="Relation.Unary.html#5676" class="Function Operator">_⟨⊙⟩_</a> <a id="5682" class="Symbol">:</a> <a id="5684" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="5689" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="5691" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="5694" class="Symbol"></a> <a id="5696" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="5701" href="Relation.Unary.html#684" class="Generalizable">B</a> <a id="5703" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="5706" class="Symbol"></a> <a id="5708" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="5713" class="Symbol">(</a><a id="5714" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="5716" href="Data.Product.html#1176" class="Function Operator">×</a> <a id="5718" href="Relation.Unary.html#684" class="Generalizable">B</a><a id="5719" class="Symbol">)</a> <a id="5721" class="Symbol">_</a>
<a id="5723" class="Symbol">(</a><a id="5724" href="Relation.Unary.html#5724" class="Bound">P</a> <a id="5726" href="Relation.Unary.html#5676" class="Function Operator">⟨⊙⟩</a> <a id="5730" href="Relation.Unary.html#5730" class="Bound">Q</a><a id="5731" class="Symbol">)</a> <a id="5733" class="Symbol">(</a><a id="5734" href="Relation.Unary.html#5734" class="Bound">x</a> <a id="5736" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5738" href="Relation.Unary.html#5738" class="Bound">y</a><a id="5739" class="Symbol">)</a> <a id="5741" class="Symbol">=</a> <a id="5743" href="Relation.Unary.html#5734" class="Bound">x</a> <a id="5745" href="Relation.Unary.html#1532" class="Function Operator"></a> <a id="5747" href="Relation.Unary.html#5724" class="Bound">P</a> <a id="5749" href="Data.Sum.Base.html#743" class="Datatype Operator"></a> <a id="5751" href="Relation.Unary.html#5738" class="Bound">y</a> <a id="5753" href="Relation.Unary.html#1532" class="Function Operator"></a> <a id="5755" href="Relation.Unary.html#5730" class="Bound">Q</a>
<a id="5758" class="Comment">-- Implication.</a>
<a id="_⟨→⟩_"></a><a id="5775" href="Relation.Unary.html#5775" class="Function Operator">_⟨→⟩_</a> <a id="5781" class="Symbol">:</a> <a id="5783" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="5788" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="5790" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="5793" class="Symbol"></a> <a id="5795" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="5800" href="Relation.Unary.html#684" class="Generalizable">B</a> <a id="5802" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="5805" class="Symbol"></a> <a id="5807" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="5812" class="Symbol">(</a><a id="5813" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="5815" class="Symbol"></a> <a id="5817" href="Relation.Unary.html#684" class="Generalizable">B</a><a id="5818" class="Symbol">)</a> <a id="5820" class="Symbol">_</a>
<a id="5822" class="Symbol">(</a><a id="5823" href="Relation.Unary.html#5823" class="Bound">P</a> <a id="5825" href="Relation.Unary.html#5775" class="Function Operator">⟨→⟩</a> <a id="5829" href="Relation.Unary.html#5829" class="Bound">Q</a><a id="5830" class="Symbol">)</a> <a id="5832" href="Relation.Unary.html#5832" class="Bound">f</a> <a id="5834" class="Symbol">=</a> <a id="5836" href="Relation.Unary.html#5823" class="Bound">P</a> <a id="5838" href="Relation.Unary.html#1751" class="Function Operator"></a> <a id="5840" href="Relation.Unary.html#5829" class="Bound">Q</a> <a id="5842" href="Function.Base.html#1040" class="Function Operator"></a> <a id="5844" href="Relation.Unary.html#5832" class="Bound">f</a>
<a id="5847" class="Comment">-- Product.</a>
<a id="_⟨·⟩_"></a><a id="5860" href="Relation.Unary.html#5860" class="Function Operator">_⟨·⟩_</a> <a id="5866" class="Symbol">:</a> <a id="5868" class="Symbol">(</a><a id="5869" href="Relation.Unary.html#5869" class="Bound">P</a> <a id="5871" class="Symbol">:</a> <a id="5873" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="5878" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="5880" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a><a id="5882" class="Symbol">)</a> <a id="5884" class="Symbol">(</a><a id="5885" href="Relation.Unary.html#5885" class="Bound">Q</a> <a id="5887" class="Symbol">:</a> <a id="5889" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="5894" href="Relation.Unary.html#684" class="Generalizable">B</a> <a id="5896" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a><a id="5898" class="Symbol">)</a> <a id="5900" class="Symbol"></a>
<a id="5910" class="Symbol">(</a><a id="5911" href="Relation.Unary.html#5869" class="Bound">P</a> <a id="5913" href="Relation.Unary.html#5475" class="Function Operator">⟨×⟩</a> <a id="5917" class="Symbol">(</a><a id="5918" href="Relation.Unary.html#5869" class="Bound">P</a> <a id="5920" href="Relation.Unary.html#5775" class="Function Operator">⟨→⟩</a> <a id="5924" href="Relation.Unary.html#5885" class="Bound">Q</a><a id="5925" class="Symbol">))</a> <a id="5928" href="Relation.Unary.html#1751" class="Function Operator"></a> <a id="5930" href="Relation.Unary.html#5885" class="Bound">Q</a> <a id="5932" href="Function.Base.html#1040" class="Function Operator"></a> <a id="5934" href="Data.Product.html#3431" class="Function">uncurry</a> <a id="5942" class="Symbol">(</a><a id="5943" href="Function.Base.html#1563" class="Function">flip</a> <a id="5948" href="Function.Base.html#1928" class="Function Operator">_$_</a><a id="5951" class="Symbol">)</a>
<a id="5953" class="Symbol">(</a><a id="5954" href="Relation.Unary.html#5954" class="Bound">P</a> <a id="5956" href="Relation.Unary.html#5860" class="Function Operator">⟨·⟩</a> <a id="5960" href="Relation.Unary.html#5960" class="Bound">Q</a><a id="5961" class="Symbol">)</a> <a id="5963" class="Symbol">(</a><a id="5964" href="Relation.Unary.html#5964" class="Bound">p</a> <a id="5966" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5968" href="Relation.Unary.html#5968" class="Bound">f</a><a id="5969" class="Symbol">)</a> <a id="5971" class="Symbol">=</a> <a id="5973" href="Relation.Unary.html#5968" class="Bound">f</a> <a id="5975" href="Relation.Unary.html#5964" class="Bound">p</a>
<a id="5978" class="Comment">-- Converse.</a>
<a id="_~"></a><a id="5992" href="Relation.Unary.html#5992" class="Function Operator">_~</a> <a id="5995" class="Symbol">:</a> <a id="5997" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="6002" class="Symbol">(</a><a id="6003" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="6005" href="Data.Product.html#1176" class="Function Operator">×</a> <a id="6007" href="Relation.Unary.html#684" class="Generalizable">B</a><a id="6008" class="Symbol">)</a> <a id="6010" href="Relation.Unary.html#650" class="Generalizable"></a> <a id="6012" class="Symbol"></a> <a id="6014" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="6019" class="Symbol">(</a><a id="6020" href="Relation.Unary.html#684" class="Generalizable">B</a> <a id="6022" href="Data.Product.html#1176" class="Function Operator">×</a> <a id="6024" href="Relation.Unary.html#670" class="Generalizable">A</a><a id="6025" class="Symbol">)</a> <a id="6027" href="Relation.Unary.html#650" class="Generalizable"></a>
<a id="6029" href="Relation.Unary.html#6029" class="Bound">P</a> <a id="6031" href="Relation.Unary.html#5992" class="Function Operator">~</a> <a id="6033" class="Symbol">=</a> <a id="6035" href="Relation.Unary.html#6029" class="Bound">P</a> <a id="6037" href="Function.Base.html#1040" class="Function Operator"></a> <a id="6039" href="Data.Product.html#5326" class="Function">swap</a>
<a id="6045" class="Comment">-- Composition.</a>
<a id="_⟨∘⟩_"></a><a id="6062" href="Relation.Unary.html#6062" class="Function Operator">_⟨∘⟩_</a> <a id="6068" class="Symbol">:</a> <a id="6070" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="6075" class="Symbol">(</a><a id="6076" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="6078" href="Data.Product.html#1176" class="Function Operator">×</a> <a id="6080" href="Relation.Unary.html#684" class="Generalizable">B</a><a id="6081" class="Symbol">)</a> <a id="6083" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="6086" class="Symbol"></a> <a id="6088" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="6093" class="Symbol">(</a><a id="6094" href="Relation.Unary.html#684" class="Generalizable">B</a> <a id="6096" href="Data.Product.html#1176" class="Function Operator">×</a> <a id="6098" href="Relation.Unary.html#698" class="Generalizable">C</a><a id="6099" class="Symbol">)</a> <a id="6101" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="6104" class="Symbol"></a> <a id="6106" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="6111" class="Symbol">(</a><a id="6112" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="6114" href="Data.Product.html#1176" class="Function Operator">×</a> <a id="6116" href="Relation.Unary.html#698" class="Generalizable">C</a><a id="6117" class="Symbol">)</a> <a id="6119" class="Symbol">_</a>
<a id="6121" class="Symbol">(</a><a id="6122" href="Relation.Unary.html#6122" class="Bound">P</a> <a id="6124" href="Relation.Unary.html#6062" class="Function Operator">⟨∘⟩</a> <a id="6128" href="Relation.Unary.html#6128" class="Bound">Q</a><a id="6129" class="Symbol">)</a> <a id="6131" class="Symbol">(</a><a id="6132" href="Relation.Unary.html#6132" class="Bound">x</a> <a id="6134" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="6136" href="Relation.Unary.html#6136" class="Bound">z</a><a id="6137" class="Symbol">)</a> <a id="6139" class="Symbol">=</a> <a id="6141" href="Data.Product.html#1378" class="Function"></a> <a id="6143" class="Symbol">λ</a> <a id="6145" href="Relation.Unary.html#6145" class="Bound">y</a> <a id="6147" class="Symbol"></a> <a id="6149" class="Symbol">(</a><a id="6150" href="Relation.Unary.html#6132" class="Bound">x</a> <a id="6152" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="6154" href="Relation.Unary.html#6145" class="Bound">y</a><a id="6155" class="Symbol">)</a> <a id="6157" href="Relation.Unary.html#1532" class="Function Operator"></a> <a id="6159" href="Relation.Unary.html#6122" class="Bound">P</a> <a id="6161" href="Data.Product.html#1176" class="Function Operator">×</a> <a id="6163" class="Symbol">(</a><a id="6164" href="Relation.Unary.html#6145" class="Bound">y</a> <a id="6166" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="6168" href="Relation.Unary.html#6136" class="Bound">z</a><a id="6169" class="Symbol">)</a> <a id="6171" href="Relation.Unary.html#1532" class="Function Operator"></a> <a id="6173" href="Relation.Unary.html#6128" class="Bound">Q</a>
<a id="6176" class="Comment">-- Post-division.</a>
<a id="_//_"></a><a id="6195" href="Relation.Unary.html#6195" class="Function Operator">_//_</a> <a id="6200" class="Symbol">:</a> <a id="6202" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="6207" class="Symbol">(</a><a id="6208" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="6210" href="Data.Product.html#1176" class="Function Operator">×</a> <a id="6212" href="Relation.Unary.html#698" class="Generalizable">C</a><a id="6213" class="Symbol">)</a> <a id="6215" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="6218" class="Symbol"></a> <a id="6220" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="6225" class="Symbol">(</a><a id="6226" href="Relation.Unary.html#684" class="Generalizable">B</a> <a id="6228" href="Data.Product.html#1176" class="Function Operator">×</a> <a id="6230" href="Relation.Unary.html#698" class="Generalizable">C</a><a id="6231" class="Symbol">)</a> <a id="6233" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="6236" class="Symbol"></a> <a id="6238" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="6243" class="Symbol">(</a><a id="6244" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="6246" href="Data.Product.html#1176" class="Function Operator">×</a> <a id="6248" href="Relation.Unary.html#684" class="Generalizable">B</a><a id="6249" class="Symbol">)</a> <a id="6251" class="Symbol">_</a>
<a id="6253" class="Symbol">(</a><a id="6254" href="Relation.Unary.html#6254" class="Bound">P</a> <a id="6256" href="Relation.Unary.html#6195" class="Function Operator">//</a> <a id="6259" href="Relation.Unary.html#6259" class="Bound">Q</a><a id="6260" class="Symbol">)</a> <a id="6262" class="Symbol">(</a><a id="6263" href="Relation.Unary.html#6263" class="Bound">x</a> <a id="6265" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="6267" href="Relation.Unary.html#6267" class="Bound">y</a><a id="6268" class="Symbol">)</a> <a id="6270" class="Symbol">=</a> <a id="6272" href="Relation.Unary.html#6259" class="Bound">Q</a> <a id="6274" href="Function.Base.html#1040" class="Function Operator"></a> <a id="6276" class="Symbol">(</a><a id="6277" href="Relation.Unary.html#6267" class="Bound">y</a> <a id="6279" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,_</a><a id="6281" class="Symbol">)</a> <a id="6283" href="Relation.Unary.html#1751" class="Function Operator"></a> <a id="6285" href="Relation.Unary.html#6254" class="Bound">P</a> <a id="6287" href="Function.Base.html#1040" class="Function Operator"></a> <a id="6289" class="Symbol">(</a><a id="6290" href="Relation.Unary.html#6263" class="Bound">x</a> <a id="6292" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,_</a><a id="6294" class="Symbol">)</a>
<a id="6297" class="Comment">-- Pre-division.</a>
<a id="_\\_"></a><a id="6315" href="Relation.Unary.html#6315" class="Function Operator">_\\_</a> <a id="6320" class="Symbol">:</a> <a id="6322" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="6327" class="Symbol">(</a><a id="6328" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="6330" href="Data.Product.html#1176" class="Function Operator">×</a> <a id="6332" href="Relation.Unary.html#698" class="Generalizable">C</a><a id="6333" class="Symbol">)</a> <a id="6335" href="Relation.Unary.html#652" class="Generalizable">ℓ₁</a> <a id="6338" class="Symbol"></a> <a id="6340" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="6345" class="Symbol">(</a><a id="6346" href="Relation.Unary.html#670" class="Generalizable">A</a> <a id="6348" href="Data.Product.html#1176" class="Function Operator">×</a> <a id="6350" href="Relation.Unary.html#684" class="Generalizable">B</a><a id="6351" class="Symbol">)</a> <a id="6353" href="Relation.Unary.html#655" class="Generalizable">ℓ₂</a> <a id="6356" class="Symbol"></a> <a id="6358" href="Relation.Unary.html#1110" class="Function">Pred</a> <a id="6363" class="Symbol">(</a><a id="6364" href="Relation.Unary.html#684" class="Generalizable">B</a> <a id="6366" href="Data.Product.html#1176" class="Function Operator">×</a> <a id="6368" href="Relation.Unary.html#698" class="Generalizable">C</a><a id="6369" class="Symbol">)</a> <a id="6371" class="Symbol">_</a>
<a id="6373" href="Relation.Unary.html#6373" class="Bound">P</a> <a id="6375" href="Relation.Unary.html#6315" class="Function Operator">\\</a> <a id="6378" href="Relation.Unary.html#6378" class="Bound">Q</a> <a id="6380" class="Symbol">=</a> <a id="6382" class="Symbol">(</a><a id="6383" href="Relation.Unary.html#6373" class="Bound">P</a> <a id="6385" href="Relation.Unary.html#5992" class="Function Operator">~</a> <a id="6387" href="Relation.Unary.html#6195" class="Function Operator">//</a> <a id="6390" href="Relation.Unary.html#6378" class="Bound">Q</a> <a id="6392" href="Relation.Unary.html#5992" class="Function Operator">~</a><a id="6393" class="Symbol">)</a> <a id="6395" href="Relation.Unary.html#5992" class="Function Operator">~</a>
</pre></body></html>