mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
84 lines
30 KiB
HTML
84 lines
30 KiB
HTML
|
<!DOCTYPE HTML>
|
|||
|
<html><head><meta charset="utf-8"><title>Relation.Nullary.Decidable</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">-- Operations on and properties of decidable relations</a>
|
|||
|
<a id="161" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
|
|||
|
<a id="235" class="Symbol">{-#</a> <a id="239" class="Keyword">OPTIONS</a> <a id="247" class="Pragma">--cubical-compatible</a> <a id="268" class="Pragma">--safe</a> <a id="275" class="Symbol">#-}</a>
|
|||
|
|
|||
|
<a id="280" class="Keyword">module</a> <a id="287" href="Relation.Nullary.Decidable.html" class="Module">Relation.Nullary.Decidable</a> <a id="314" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="321" class="Keyword">open</a> <a id="326" class="Keyword">import</a> <a id="333" href="Level.html" class="Module">Level</a> <a id="339" class="Keyword">using</a> <a id="345" class="Symbol">(</a><a id="346" href="Agda.Primitive.html#742" class="Postulate">Level</a><a id="351" class="Symbol">)</a>
|
|||
|
<a id="353" class="Keyword">open</a> <a id="358" class="Keyword">import</a> <a id="365" href="Data.Bool.Base.html" class="Module">Data.Bool.Base</a> <a id="380" class="Keyword">using</a> <a id="386" class="Symbol">(</a><a id="387" href="Agda.Builtin.Bool.html#198" class="InductiveConstructor">true</a><a id="391" class="Symbol">;</a> <a id="393" href="Agda.Builtin.Bool.html#192" class="InductiveConstructor">false</a><a id="398" class="Symbol">;</a> <a id="400" href="Data.Bool.Base.html#1505" class="Function Operator">if_then_else_</a><a id="413" class="Symbol">)</a>
|
|||
|
<a id="415" class="Keyword">open</a> <a id="420" class="Keyword">import</a> <a id="427" href="Data.Empty.html" class="Module">Data.Empty</a> <a id="438" class="Keyword">using</a> <a id="444" class="Symbol">(</a><a id="445" href="Data.Empty.html#1050" class="Function">⊥-elim</a><a id="451" class="Symbol">)</a>
|
|||
|
<a id="453" class="Keyword">open</a> <a id="458" class="Keyword">import</a> <a id="465" href="Data.Product.Base.html" class="Module">Data.Product.Base</a> <a id="483" class="Keyword">using</a> <a id="489" class="Symbol">(</a><a id="490" href="Data.Product.Base.html#852" class="Function">∃</a><a id="491" class="Symbol">;</a> <a id="493" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">_,_</a><a id="496" class="Symbol">)</a>
|
|||
|
<a id="498" class="Keyword">open</a> <a id="503" class="Keyword">import</a> <a id="510" href="Function.Base.html" class="Module">Function.Base</a>
|
|||
|
<a id="524" class="Keyword">open</a> <a id="529" class="Keyword">import</a> <a id="536" href="Function.Bundles.html" class="Module">Function.Bundles</a> <a id="553" class="Keyword">using</a>
|
|||
|
<a id="561" class="Symbol">(</a><a id="562" href="Function.Bundles.html#2415" class="Record">Injection</a><a id="571" class="Symbol">;</a> <a id="573" class="Keyword">module</a> <a id="580" href="Function.Bundles.html#2415" class="Module">Injection</a><a id="589" class="Symbol">;</a> <a id="591" class="Keyword">module</a> <a id="598" href="Function.Bundles.html#4752" class="Module">Equivalence</a><a id="609" class="Symbol">;</a> <a id="611" href="Function.Bundles.html#12039" class="Function Operator">_⇔_</a><a id="614" class="Symbol">;</a> <a id="616" href="Function.Bundles.html#12340" class="Function Operator">_↔_</a><a id="619" class="Symbol">;</a> <a id="621" href="Function.Bundles.html#14563" class="Function">mk↔ₛ′</a><a id="626" class="Symbol">)</a>
|
|||
|
<a id="628" class="Keyword">open</a> <a id="633" class="Keyword">import</a> <a id="640" href="Relation.Binary.Bundles.html" class="Module">Relation.Binary.Bundles</a> <a id="664" class="Keyword">using</a> <a id="670" class="Symbol">(</a><a id="671" href="Relation.Binary.Bundles.html#1080" class="Record">Setoid</a><a id="677" class="Symbol">;</a> <a id="679" class="Keyword">module</a> <a id="686" href="Relation.Binary.Bundles.html#1080" class="Module">Setoid</a><a id="692" class="Symbol">)</a>
|
|||
|
<a id="694" class="Keyword">open</a> <a id="699" class="Keyword">import</a> <a id="706" href="Relation.Binary.Definitions.html" class="Module">Relation.Binary.Definitions</a> <a id="734" class="Keyword">using</a> <a id="740" class="Symbol">(</a><a id="741" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a><a id="750" class="Symbol">)</a>
|
|||
|
<a id="752" class="Keyword">open</a> <a id="757" class="Keyword">import</a> <a id="764" href="Relation.Nullary.html" class="Module">Relation.Nullary</a>
|
|||
|
<a id="781" class="Keyword">open</a> <a id="786" class="Keyword">import</a> <a id="793" href="Relation.Nullary.Reflects.html" class="Module">Relation.Nullary.Reflects</a> <a id="819" class="Keyword">using</a> <a id="825" class="Symbol">(</a><a id="826" href="Relation.Nullary.Reflects.html#1582" class="Function">invert</a><a id="832" class="Symbol">)</a>
|
|||
|
<a id="834" class="Keyword">open</a> <a id="839" class="Keyword">import</a> <a id="846" href="Relation.Binary.PropositionalEquality.Core.html" class="Module">Relation.Binary.PropositionalEquality.Core</a> <a id="889" class="Keyword">using</a> <a id="895" class="Symbol">(</a><a id="896" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a><a id="899" class="Symbol">;</a> <a id="901" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a><a id="905" class="Symbol">;</a> <a id="907" href="Relation.Binary.PropositionalEquality.Core.html#1225" class="Function">cong′</a><a id="912" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="915" class="Keyword">private</a>
|
|||
|
<a id="925" class="Keyword">variable</a>
|
|||
|
<a id="938" href="Relation.Nullary.Decidable.html#938" class="Generalizable">a</a> <a id="940" href="Relation.Nullary.Decidable.html#940" class="Generalizable">b</a> <a id="942" href="Relation.Nullary.Decidable.html#942" class="Generalizable">ℓ₁</a> <a id="945" href="Relation.Nullary.Decidable.html#945" class="Generalizable">ℓ₂</a> <a id="948" class="Symbol">:</a> <a id="950" href="Agda.Primitive.html#742" class="Postulate">Level</a>
|
|||
|
<a id="960" href="Relation.Nullary.Decidable.html#960" class="Generalizable">A</a> <a id="962" href="Relation.Nullary.Decidable.html#962" class="Generalizable">B</a> <a id="964" class="Symbol">:</a> <a id="966" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="970" href="Relation.Nullary.Decidable.html#938" class="Generalizable">a</a>
|
|||
|
|
|||
|
<a id="973" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="1046" class="Comment">-- Re-exporting the core definitions</a>
|
|||
|
|
|||
|
<a id="1084" class="Keyword">open</a> <a id="1089" class="Keyword">import</a> <a id="1096" href="Relation.Nullary.Decidable.Core.html" class="Module">Relation.Nullary.Decidable.Core</a> <a id="1128" class="Keyword">public</a>
|
|||
|
|
|||
|
<a id="1136" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="1209" class="Comment">-- Maps</a>
|
|||
|
|
|||
|
<a id="map"></a><a id="1218" href="Relation.Nullary.Decidable.html#1218" class="Function">map</a> <a id="1222" class="Symbol">:</a> <a id="1224" href="Relation.Nullary.Decidable.html#960" class="Generalizable">A</a> <a id="1226" href="Function.Bundles.html#12039" class="Function Operator">⇔</a> <a id="1228" href="Relation.Nullary.Decidable.html#962" class="Generalizable">B</a> <a id="1230" class="Symbol">→</a> <a id="1232" href="Relation.Nullary.Decidable.Core.html#1485" class="Record">Dec</a> <a id="1236" href="Relation.Nullary.Decidable.html#960" class="Generalizable">A</a> <a id="1238" class="Symbol">→</a> <a id="1240" href="Relation.Nullary.Decidable.Core.html#1485" class="Record">Dec</a> <a id="1244" href="Relation.Nullary.Decidable.html#962" class="Generalizable">B</a>
|
|||
|
<a id="1246" href="Relation.Nullary.Decidable.html#1218" class="Function">map</a> <a id="1250" href="Relation.Nullary.Decidable.html#1250" class="Bound">A⇔B</a> <a id="1254" class="Symbol">=</a> <a id="1256" href="Relation.Nullary.Decidable.Core.html#4901" class="Function">map′</a> <a id="1261" href="Function.Bundles.html#4810" class="Field">to</a> <a id="1264" href="Function.Bundles.html#4834" class="Field">from</a>
|
|||
|
<a id="1271" class="Keyword">where</a> <a id="1277" class="Keyword">open</a> <a id="1282" href="Function.Bundles.html#4752" class="Module">Equivalence</a> <a id="1294" href="Relation.Nullary.Decidable.html#1250" class="Bound">A⇔B</a>
|
|||
|
|
|||
|
<a id="1299" class="Comment">-- If there is an injection from one setoid to another, and the</a>
|
|||
|
<a id="1363" class="Comment">-- latter's equivalence relation is decidable, then the former's</a>
|
|||
|
<a id="1428" class="Comment">-- equivalence relation is also decidable.</a>
|
|||
|
<a id="via-injection"></a><a id="1471" href="Relation.Nullary.Decidable.html#1471" class="Function">via-injection</a> <a id="1485" class="Symbol">:</a> <a id="1487" class="Symbol">{</a><a id="1488" href="Relation.Nullary.Decidable.html#1488" class="Bound">S</a> <a id="1490" class="Symbol">:</a> <a id="1492" href="Relation.Binary.Bundles.html#1080" class="Record">Setoid</a> <a id="1499" href="Relation.Nullary.Decidable.html#938" class="Generalizable">a</a> <a id="1501" href="Relation.Nullary.Decidable.html#942" class="Generalizable">ℓ₁</a><a id="1503" class="Symbol">}</a> <a id="1505" class="Symbol">{</a><a id="1506" href="Relation.Nullary.Decidable.html#1506" class="Bound">T</a> <a id="1508" class="Symbol">:</a> <a id="1510" href="Relation.Binary.Bundles.html#1080" class="Record">Setoid</a> <a id="1517" href="Relation.Nullary.Decidable.html#940" class="Generalizable">b</a> <a id="1519" href="Relation.Nullary.Decidable.html#945" class="Generalizable">ℓ₂</a><a id="1521" class="Symbol">}</a>
|
|||
|
<a id="1539" class="Symbol">(</a><a id="1540" href="Relation.Nullary.Decidable.html#1540" class="Bound">inj</a> <a id="1544" class="Symbol">:</a> <a id="1546" href="Function.Bundles.html#2415" class="Record">Injection</a> <a id="1556" href="Relation.Nullary.Decidable.html#1488" class="Bound">S</a> <a id="1558" href="Relation.Nullary.Decidable.html#1506" class="Bound">T</a><a id="1559" class="Symbol">)</a> <a id="1561" class="Symbol">(</a><a id="1562" class="Keyword">open</a> <a id="1567" href="Function.Bundles.html#2415" class="Module">Injection</a> <a id="1577" href="Relation.Nullary.Decidable.html#1540" class="Bound">inj</a><a id="1580" class="Symbol">)</a> <a id="1582" class="Symbol">→</a>
|
|||
|
<a id="1600" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="1610" href="Relation.Binary.Bundles.html#1169" class="Function Operator">Eq₂._≈_</a> <a id="1618" class="Symbol">→</a> <a id="1620" href="Relation.Binary.Definitions.html#6161" class="Function">Decidable</a> <a id="1630" href="Relation.Binary.Bundles.html#1169" class="Function Operator">Eq₁._≈_</a>
|
|||
|
<a id="1638" href="Relation.Nullary.Decidable.html#1471" class="Function">via-injection</a> <a id="1652" href="Relation.Nullary.Decidable.html#1652" class="Bound">inj</a> <a id="1656" href="Relation.Nullary.Decidable.html#1656" class="Bound Operator">_≟_</a> <a id="1660" href="Relation.Nullary.Decidable.html#1660" class="Bound">x</a> <a id="1662" href="Relation.Nullary.Decidable.html#1662" class="Bound">y</a> <a id="1664" class="Symbol">=</a> <a id="1666" href="Relation.Nullary.Decidable.Core.html#4901" class="Function">map′</a> <a id="1671" href="Function.Bundles.html#2540" class="Function">injective</a> <a id="1681" href="Function.Bundles.html#2497" class="Function">cong</a> <a id="1686" class="Symbol">(</a><a id="1687" href="Function.Bundles.html#2471" class="Function">to</a> <a id="1690" href="Relation.Nullary.Decidable.html#1660" class="Bound">x</a> <a id="1692" href="Relation.Nullary.Decidable.html#1656" class="Bound Operator">≟</a> <a id="1694" href="Function.Bundles.html#2471" class="Function">to</a> <a id="1697" href="Relation.Nullary.Decidable.html#1662" class="Bound">y</a><a id="1698" class="Symbol">)</a>
|
|||
|
<a id="1702" class="Keyword">where</a> <a id="1708" class="Keyword">open</a> <a id="1713" href="Function.Bundles.html#2415" class="Module">Injection</a> <a id="1723" href="Relation.Nullary.Decidable.html#1652" class="Bound">inj</a>
|
|||
|
|
|||
|
<a id="1728" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="1801" class="Comment">-- A lemma relating True and Dec</a>
|
|||
|
|
|||
|
<a id="True-↔"></a><a id="1835" href="Relation.Nullary.Decidable.html#1835" class="Function">True-↔</a> <a id="1842" class="Symbol">:</a> <a id="1844" class="Symbol">(</a><a id="1845" href="Relation.Nullary.Decidable.html#1845" class="Bound">a?</a> <a id="1848" class="Symbol">:</a> <a id="1850" href="Relation.Nullary.Decidable.Core.html#1485" class="Record">Dec</a> <a id="1854" href="Relation.Nullary.Decidable.html#960" class="Generalizable">A</a><a id="1855" class="Symbol">)</a> <a id="1857" class="Symbol">→</a> <a id="1859" href="Relation.Nullary.html#755" class="Function">Irrelevant</a> <a id="1870" href="Relation.Nullary.Decidable.html#960" class="Generalizable">A</a> <a id="1872" class="Symbol">→</a> <a id="1874" href="Relation.Nullary.Decidable.Core.html#3468" class="Function">True</a> <a id="1879" href="Relation.Nullary.Decidable.html#1845" class="Bound">a?</a> <a id="1882" href="Function.Bundles.html#12340" class="Function Operator">↔</a> <a id="1884" href="Relation.Nullary.Decidable.html#960" class="Generalizable">A</a>
|
|||
|
<a id="1886" href="Relation.Nullary.Decidable.html#1835" class="Function">True-↔</a> <a id="1893" class="Symbol">(</a><a id="1894" href="Agda.Builtin.Bool.html#198" class="InductiveConstructor">true</a> <a id="1900" href="Relation.Nullary.Decidable.Core.html#1529" class="InductiveConstructor Operator">because</a> <a id="1908" href="Relation.Nullary.Decidable.html#1908" class="Bound">[a]</a><a id="1911" class="Symbol">)</a> <a id="1913" href="Relation.Nullary.Decidable.html#1913" class="Bound">irr</a> <a id="1917" class="Symbol">=</a> <a id="1919" href="Function.Bundles.html#14563" class="Function">mk↔ₛ′</a> <a id="1925" class="Symbol">(λ</a> <a id="1928" href="Relation.Nullary.Decidable.html#1928" class="Bound">_</a> <a id="1930" class="Symbol">→</a> <a id="1932" href="Relation.Nullary.Reflects.html#1582" class="Function">invert</a> <a id="1939" href="Relation.Nullary.Decidable.html#1908" class="Bound">[a]</a><a id="1942" class="Symbol">)</a> <a id="1944" class="Symbol">_</a> <a id="1946" class="Symbol">(</a><a id="1947" href="Relation.Nullary.Decidable.html#1913" class="Bound">irr</a> <a id="1951" class="Symbol">(</a><a id="1952" href="Relation.Nullary.Reflects.html#1582" class="Function">invert</a> <a id="1959" href="Relation.Nullary.Decidable.html#1908" class="Bound">[a]</a><a id="1962" class="Symbol">))</a> <a id="1965" href="Relation.Binary.PropositionalEquality.Core.html#1225" class="Function">cong′</a>
|
|||
|
<a id="1971" href="Relation.Nullary.Decidable.html#1835" class="Function">True-↔</a> <a id="1978" class="Symbol">(</a><a id="1979" href="Agda.Builtin.Bool.html#192" class="InductiveConstructor">false</a> <a id="1985" href="Relation.Nullary.Decidable.Core.html#1529" class="InductiveConstructor Operator">because</a> <a id="1993" href="Relation.Nullary.Reflects.html#1019" class="InductiveConstructor">ofⁿ</a> <a id="1997" href="Relation.Nullary.Decidable.html#1997" class="Bound">¬a</a><a id="1999" class="Symbol">)</a> <a id="2001" class="Symbol">_</a> <a id="2003" class="Symbol">=</a> <a id="2005" href="Function.Bundles.html#14563" class="Function">mk↔ₛ′</a> <a id="2011" class="Symbol">(λ</a> <a id="2014" class="Symbol">())</a> <a id="2018" class="Symbol">(</a><a id="2019" href="Relation.Nullary.Reflects.html#1582" class="Function">invert</a> <a id="2026" class="Symbol">(</a><a id="2027" href="Relation.Nullary.Reflects.html#1019" class="InductiveConstructor">ofⁿ</a> <a id="2031" href="Relation.Nullary.Decidable.html#1997" class="Bound">¬a</a><a id="2033" class="Symbol">))</a> <a id="2036" class="Symbol">(</a><a id="2037" href="Data.Empty.html#1050" class="Function">⊥-elim</a> <a id="2044" href="Function.Base.html#1115" class="Function Operator">∘</a> <a id="2046" href="Relation.Nullary.Decidable.html#1997" class="Bound">¬a</a><a id="2048" class="Symbol">)</a> <a id="2050" class="Symbol">λ</a> <a id="2052" class="Symbol">()</a>
|
|||
|
|
|||
|
<a id="2056" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="2129" class="Comment">-- Result of decidability</a>
|
|||
|
|
|||
|
<a id="isYes≗does"></a><a id="2156" href="Relation.Nullary.Decidable.html#2156" class="Function">isYes≗does</a> <a id="2167" class="Symbol">:</a> <a id="2169" class="Symbol">(</a><a id="2170" href="Relation.Nullary.Decidable.html#2170" class="Bound">a?</a> <a id="2173" class="Symbol">:</a> <a id="2175" href="Relation.Nullary.Decidable.Core.html#1485" class="Record">Dec</a> <a id="2179" href="Relation.Nullary.Decidable.html#960" class="Generalizable">A</a><a id="2180" class="Symbol">)</a> <a id="2182" class="Symbol">→</a> <a id="2184" href="Relation.Nullary.Decidable.Core.html#3343" class="Function">isYes</a> <a id="2190" href="Relation.Nullary.Decidable.html#2170" class="Bound">a?</a> <a id="2193" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">≡</a> <a id="2195" href="Relation.Nullary.Decidable.Core.html#1551" class="Field">does</a> <a id="2200" href="Relation.Nullary.Decidable.html#2170" class="Bound">a?</a>
|
|||
|
<a id="2203" href="Relation.Nullary.Decidable.html#2156" class="Function">isYes≗does</a> <a id="2214" class="Symbol">(</a><a id="2215" href="Agda.Builtin.Bool.html#198" class="InductiveConstructor">true</a> <a id="2221" href="Relation.Nullary.Decidable.Core.html#1529" class="InductiveConstructor Operator">because</a> <a id="2229" class="Symbol">_)</a> <a id="2232" class="Symbol">=</a> <a id="2234" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
|
|||
|
<a id="2239" href="Relation.Nullary.Decidable.html#2156" class="Function">isYes≗does</a> <a id="2250" class="Symbol">(</a><a id="2251" href="Agda.Builtin.Bool.html#192" class="InductiveConstructor">false</a> <a id="2257" href="Relation.Nullary.Decidable.Core.html#1529" class="InductiveConstructor Operator">because</a> <a id="2265" class="Symbol">_)</a> <a id="2268" class="Symbol">=</a> <a id="2270" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
|
|||
|
|
|||
|
<a id="dec-true"></a><a id="2276" href="Relation.Nullary.Decidable.html#2276" class="Function">dec-true</a> <a id="2285" class="Symbol">:</a> <a id="2287" class="Symbol">(</a><a id="2288" href="Relation.Nullary.Decidable.html#2288" class="Bound">a?</a> <a id="2291" class="Symbol">:</a> <a id="2293" href="Relation.Nullary.Decidable.Core.html#1485" class="Record">Dec</a> <a id="2297" href="Relation.Nullary.Decidable.html#960" class="Generalizable">A</a><a id="2298" class="Symbol">)</a> <a id="2300" class="Symbol">→</a> <a id="2302" href="Relation.Nullary.Decidable.html#960" class="Generalizable">A</a> <a id="2304" class="Symbol">→</a> <a id="2306" href="Relation.Nullary.Decidable.Core.html#1551" class="Field">does</a> <a id="2311" href="Relation.Nullary.Decidable.html#2288" class="Bound">a?</a> <a id="2314" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">≡</a> <a id="2316" href="Agda.Builtin.Bool.html#198" class="InductiveConstructor">true</a>
|
|||
|
<a id="2321" href="Relation.Nullary.Decidable.html#2276" class="Function">dec-true</a> <a id="2330" class="Symbol">(</a><a id="2331" href="Agda.Builtin.Bool.html#198" class="InductiveConstructor">true</a> <a id="2337" href="Relation.Nullary.Decidable.Core.html#1529" class="InductiveConstructor Operator">because</a> <a id="2347" class="Symbol">_</a> <a id="2349" class="Symbol">)</a> <a id="2351" href="Relation.Nullary.Decidable.html#2351" class="Bound">a</a> <a id="2353" class="Symbol">=</a> <a id="2355" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
|
|||
|
<a id="2360" href="Relation.Nullary.Decidable.html#2276" class="Function">dec-true</a> <a id="2369" class="Symbol">(</a><a id="2370" href="Agda.Builtin.Bool.html#192" class="InductiveConstructor">false</a> <a id="2376" href="Relation.Nullary.Decidable.Core.html#1529" class="InductiveConstructor Operator">because</a> <a id="2384" href="Relation.Nullary.Decidable.html#2384" class="Bound">[¬a]</a><a id="2388" class="Symbol">)</a> <a id="2390" href="Relation.Nullary.Decidable.html#2390" class="Bound">a</a> <a id="2392" class="Symbol">=</a> <a id="2394" href="Data.Empty.html#1050" class="Function">⊥-elim</a> <a id="2401" class="Symbol">(</a><a id="2402" href="Relation.Nullary.Reflects.html#1582" class="Function">invert</a> <a id="2409" href="Relation.Nullary.Decidable.html#2384" class="Bound">[¬a]</a> <a id="2414" href="Relation.Nullary.Decidable.html#2390" class="Bound">a</a><a id="2415" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="dec-false"></a><a id="2418" href="Relation.Nullary.Decidable.html#2418" class="Function">dec-false</a> <a id="2428" class="Symbol">:</a> <a id="2430" class="Symbol">(</a><a id="2431" href="Relation.Nullary.Decidable.html#2431" class="Bound">a?</a> <a id="2434" class="Symbol">:</a> <a id="2436" href="Relation.Nullary.Decidable.Core.html#1485" class="Record">Dec</a> <a id="2440" href="Relation.Nullary.Decidable.html#960" class="Generalizable">A</a><a id="2441" class="Symbol">)</a> <a id="2443" class="Symbol">→</a> <a id="2445" href="Relation.Nullary.Negation.Core.html#698" class="Function Operator">¬</a> <a id="2447" href="Relation.Nullary.Decidable.html#960" class="Generalizable">A</a> <a id="2449" class="Symbol">→</a> <a id="2451" href="Relation.Nullary.Decidable.Core.html#1551" class="Field">does</a> <a id="2456" href="Relation.Nullary.Decidable.html#2431" class="Bound">a?</a> <a id="2459" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">≡</a> <a id="2461" href="Agda.Builtin.Bool.html#192" class="InductiveConstructor">false</a>
|
|||
|
<a id="2467" href="Relation.Nullary.Decidable.html#2418" class="Function">dec-false</a> <a id="2477" class="Symbol">(</a><a id="2478" href="Agda.Builtin.Bool.html#192" class="InductiveConstructor">false</a> <a id="2484" href="Relation.Nullary.Decidable.Core.html#1529" class="InductiveConstructor Operator">because</a> <a id="2493" class="Symbol">_</a> <a id="2495" class="Symbol">)</a> <a id="2497" href="Relation.Nullary.Decidable.html#2497" class="Bound">¬a</a> <a id="2500" class="Symbol">=</a> <a id="2502" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
|
|||
|
<a id="2507" href="Relation.Nullary.Decidable.html#2418" class="Function">dec-false</a> <a id="2517" class="Symbol">(</a><a id="2518" href="Agda.Builtin.Bool.html#198" class="InductiveConstructor">true</a> <a id="2524" href="Relation.Nullary.Decidable.Core.html#1529" class="InductiveConstructor Operator">because</a> <a id="2532" href="Relation.Nullary.Decidable.html#2532" class="Bound">[a]</a><a id="2535" class="Symbol">)</a> <a id="2537" href="Relation.Nullary.Decidable.html#2537" class="Bound">¬a</a> <a id="2540" class="Symbol">=</a> <a id="2542" href="Data.Empty.html#1050" class="Function">⊥-elim</a> <a id="2549" class="Symbol">(</a><a id="2550" href="Relation.Nullary.Decidable.html#2537" class="Bound">¬a</a> <a id="2553" class="Symbol">(</a><a id="2554" href="Relation.Nullary.Reflects.html#1582" class="Function">invert</a> <a id="2561" href="Relation.Nullary.Decidable.html#2532" class="Bound">[a]</a><a id="2564" class="Symbol">))</a>
|
|||
|
|
|||
|
<a id="dec-yes"></a><a id="2568" href="Relation.Nullary.Decidable.html#2568" class="Function">dec-yes</a> <a id="2576" class="Symbol">:</a> <a id="2578" class="Symbol">(</a><a id="2579" href="Relation.Nullary.Decidable.html#2579" class="Bound">a?</a> <a id="2582" class="Symbol">:</a> <a id="2584" href="Relation.Nullary.Decidable.Core.html#1485" class="Record">Dec</a> <a id="2588" href="Relation.Nullary.Decidable.html#960" class="Generalizable">A</a><a id="2589" class="Symbol">)</a> <a id="2591" class="Symbol">→</a> <a id="2593" href="Relation.Nullary.Decidable.html#960" class="Generalizable">A</a> <a id="2595" class="Symbol">→</a> <a id="2597" href="Data.Product.Base.html#852" class="Function">∃</a> <a id="2599" class="Symbol">λ</a> <a id="2601" href="Relation.Nullary.Decidable.html#2601" class="Bound">a</a> <a id="2603" class="Symbol">→</a> <a id="2605" href="Relation.Nullary.Decidable.html#2579" class="Bound">a?</a> <a id="2608" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">≡</a> <a id="2610" href="Relation.Nullary.Decidable.Core.html#1618" class="InductiveConstructor">yes</a> <a id="2614" href="Relation.Nullary.Decidable.html#2601" class="Bound">a</a>
|
|||
|
<a id="2616" href="Relation.Nullary.Decidable.html#2568" class="Function">dec-yes</a> <a id="2624" href="Relation.Nullary.Decidable.html#2624" class="Bound">a?</a> <a id="2627" href="Relation.Nullary.Decidable.html#2627" class="Bound">a</a> <a id="2629" class="Keyword">with</a> <a id="2634" href="Relation.Nullary.Decidable.html#2276" class="Function">dec-true</a> <a id="2643" href="Relation.Nullary.Decidable.html#2624" class="Bound">a?</a> <a id="2646" href="Relation.Nullary.Decidable.html#2627" class="Bound">a</a>
|
|||
|
<a id="2648" href="Relation.Nullary.Decidable.html#2568" class="Function">dec-yes</a> <a id="2656" class="Symbol">(</a><a id="2657" href="Relation.Nullary.Decidable.Core.html#1618" class="InductiveConstructor">yes</a> <a id="2661" href="Relation.Nullary.Decidable.html#2661" class="Bound">a′</a><a id="2663" class="Symbol">)</a> <a id="2665" href="Relation.Nullary.Decidable.html#2665" class="Bound">a</a> <a id="2667" class="Symbol">|</a> <a id="2669" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="2674" class="Symbol">=</a> <a id="2676" href="Relation.Nullary.Decidable.html#2661" class="Bound">a′</a> <a id="2679" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="2681" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
|
|||
|
|
|||
|
<a id="dec-no"></a><a id="2687" href="Relation.Nullary.Decidable.html#2687" class="Function">dec-no</a> <a id="2694" class="Symbol">:</a> <a id="2696" class="Symbol">(</a><a id="2697" href="Relation.Nullary.Decidable.html#2697" class="Bound">a?</a> <a id="2700" class="Symbol">:</a> <a id="2702" href="Relation.Nullary.Decidable.Core.html#1485" class="Record">Dec</a> <a id="2706" href="Relation.Nullary.Decidable.html#960" class="Generalizable">A</a><a id="2707" class="Symbol">)</a> <a id="2709" class="Symbol">(</a><a id="2710" href="Relation.Nullary.Decidable.html#2710" class="Bound">¬a</a> <a id="2713" class="Symbol">:</a> <a id="2715" href="Relation.Nullary.Negation.Core.html#698" class="Function Operator">¬</a> <a id="2717" href="Relation.Nullary.Decidable.html#960" class="Generalizable">A</a><a id="2718" class="Symbol">)</a> <a id="2720" class="Symbol">→</a> <a id="2722" href="Relation.Nullary.Decidable.html#2697" class="Bound">a?</a> <a id="2725" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">≡</a> <a id="2727" href="Relation.Nullary.Decidable.Core.html#1655" class="InductiveConstructor">no</a> <a id="2730" href="Relation.Nullary.Decidable.html#2710" class="Bound">¬a</a>
|
|||
|
<a id="2733" href="Relation.Nullary.Decidable.html#2687" class="Function">dec-no</a> <a id="2740" href="Relation.Nullary.Decidable.html#2740" class="Bound">a?</a> <a id="2743" href="Relation.Nullary.Decidable.html#2743" class="Bound">¬a</a> <a id="2746" class="Keyword">with</a> <a id="2751" href="Relation.Nullary.Decidable.html#2418" class="Function">dec-false</a> <a id="2761" href="Relation.Nullary.Decidable.html#2740" class="Bound">a?</a> <a id="2764" href="Relation.Nullary.Decidable.html#2743" class="Bound">¬a</a>
|
|||
|
<a id="2767" href="Relation.Nullary.Decidable.html#2687" class="Function">dec-no</a> <a id="2774" class="Symbol">(</a><a id="2775" href="Relation.Nullary.Decidable.Core.html#1655" class="InductiveConstructor">no</a> <a id="2778" class="Symbol">_)</a> <a id="2781" class="Symbol">_</a> <a id="2783" class="Symbol">|</a> <a id="2785" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a> <a id="2790" class="Symbol">=</a> <a id="2792" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">refl</a>
|
|||
|
|
|||
|
<a id="dec-yes-irr"></a><a id="2798" href="Relation.Nullary.Decidable.html#2798" class="Function">dec-yes-irr</a> <a id="2810" class="Symbol">:</a> <a id="2812" class="Symbol">(</a><a id="2813" href="Relation.Nullary.Decidable.html#2813" class="Bound">a?</a> <a id="2816" class="Symbol">:</a> <a id="2818" href="Relation.Nullary.Decidable.Core.html#1485" class="Record">Dec</a> <a id="2822" href="Relation.Nullary.Decidable.html#960" class="Generalizable">A</a><a id="2823" class="Symbol">)</a> <a id="2825" class="Symbol">→</a> <a id="2827" href="Relation.Nullary.html#755" class="Function">Irrelevant</a> <a id="2838" href="Relation.Nullary.Decidable.html#960" class="Generalizable">A</a> <a id="2840" class="Symbol">→</a> <a id="2842" class="Symbol">(</a><a id="2843" href="Relation.Nullary.Decidable.html#2843" class="Bound">a</a> <a id="2845" class="Symbol">:</a> <a id="2847" href="Relation.Nullary.Decidable.html#960" class="Generalizable">A</a><a id="2848" class="Symbol">)</a> <a id="2850" class="Symbol">→</a> <a id="2852" href="Relation.Nullary.Decidable.html#2813" class="Bound">a?</a> <a id="2855" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">≡</a> <a id="2857" href="Relation.Nullary.Decidable.Core.html#1618" class="InductiveConstructor">yes</a> <a id="2861" href="Relation.Nullary.Decidable.html#2843" class="Bound">a</a>
|
|||
|
<a id="2863" href="Relation.Nullary.Decidable.html#2798" class="Function">dec-yes-irr</a> <a id="2875" href="Relation.Nullary.Decidable.html#2875" class="Bound">a?</a> <a id="2878" href="Relation.Nullary.Decidable.html#2878" class="Bound">irr</a> <a id="2882" href="Relation.Nullary.Decidable.html#2882" class="Bound">a</a> <a id="2884" class="Keyword">with</a> <a id="2889" href="Relation.Nullary.Decidable.html#2568" class="Function">dec-yes</a> <a id="2897" href="Relation.Nullary.Decidable.html#2875" class="Bound">a?</a> <a id="2900" href="Relation.Nullary.Decidable.html#2882" class="Bound">a</a>
|
|||
|
<a id="2902" class="Symbol">...</a> <a id="2906" class="Symbol">|</a> <a id="2908" href="Relation.Nullary.Decidable.html#2908" class="Bound">a′</a> <a id="2911" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="2913" href="Relation.Nullary.Decidable.html#2913" class="Bound">eq</a> <a id="2916" class="Keyword">rewrite</a> <a id="2924" class="Bound">irr</a> <a id="2928" class="Bound">a</a> <a id="2930" href="Relation.Nullary.Decidable.html#2908" class="Bound">a′</a> <a id="2933" class="Symbol">=</a> <a id="2935" href="Relation.Nullary.Decidable.html#2913" class="Bound">eq</a>
|
|||
|
</pre></body></html>
|