bsc-leon-vatthauer/agda/bsc-thesis/Function.Consequences.html

116 lines
35 KiB
HTML
Raw Normal View History

2024-02-09 17:53:52 +01:00
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Function.Consequences</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">-- Relationships between properties of functions. See</a>
<a id="160" class="Comment">-- `Function.Consequences.Propositional` for specialisations to</a>
<a id="224" class="Comment">-- propositional equality.</a>
<a id="251" class="Comment">------------------------------------------------------------------------</a>
<a id="325" class="Symbol">{-#</a> <a id="329" class="Keyword">OPTIONS</a> <a id="337" class="Pragma">--cubical-compatible</a> <a id="358" class="Pragma">--safe</a> <a id="365" class="Symbol">#-}</a>
<a id="370" class="Keyword">module</a> <a id="377" href="Function.Consequences.html" class="Module">Function.Consequences</a> <a id="399" class="Keyword">where</a>
<a id="406" class="Keyword">open</a> <a id="411" class="Keyword">import</a> <a id="418" href="Data.Product.Base.html" class="Module">Data.Product.Base</a> <a id="436" class="Symbol">as</a> <a id="439" class="Module">Prod</a>
<a id="444" class="Keyword">open</a> <a id="449" class="Keyword">import</a> <a id="456" href="Function.Definitions.html" class="Module">Function.Definitions</a>
<a id="477" class="Keyword">open</a> <a id="482" class="Keyword">import</a> <a id="489" href="Level.html" class="Module">Level</a> <a id="495" class="Keyword">using</a> <a id="501" class="Symbol">(</a><a id="502" href="Agda.Primitive.html#742" class="Postulate">Level</a><a id="507" class="Symbol">)</a>
<a id="509" class="Keyword">open</a> <a id="514" class="Keyword">import</a> <a id="521" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a> <a id="542" class="Keyword">using</a> <a id="548" class="Symbol">(</a><a id="549" href="Relation.Binary.Core.html#896" class="Function">Rel</a><a id="552" class="Symbol">)</a>
<a id="554" class="Keyword">open</a> <a id="559" class="Keyword">import</a> <a id="566" href="Relation.Binary.Bundles.html" class="Module">Relation.Binary.Bundles</a> <a id="590" class="Keyword">using</a> <a id="596" class="Symbol">(</a><a id="597" href="Relation.Binary.Bundles.html#1080" class="Record">Setoid</a><a id="603" class="Symbol">)</a>
<a id="605" class="Keyword">open</a> <a id="610" class="Keyword">import</a> <a id="617" href="Relation.Binary.Definitions.html" class="Module">Relation.Binary.Definitions</a> <a id="645" class="Keyword">using</a> <a id="651" class="Symbol">(</a><a id="652" href="Relation.Binary.Definitions.html#1428" class="Function">Reflexive</a><a id="661" class="Symbol">;</a> <a id="663" href="Relation.Binary.Definitions.html#1587" class="Function">Symmetric</a><a id="672" class="Symbol">;</a> <a id="674" href="Relation.Binary.Definitions.html#2103" class="Function">Transitive</a><a id="684" class="Symbol">)</a>
<a id="686" class="Keyword">open</a> <a id="691" class="Keyword">import</a> <a id="698" href="Relation.Nullary.Negation.Core.html" class="Module">Relation.Nullary.Negation.Core</a> <a id="729" class="Keyword">using</a> <a id="735" class="Symbol">(</a><a id="736" href="Relation.Nullary.Negation.Core.html#698" class="Function Operator">¬_</a><a id="738" class="Symbol">;</a> <a id="740" href="Relation.Nullary.Negation.Core.html#1446" class="Function">contraposition</a><a id="754" class="Symbol">)</a>
<a id="757" class="Keyword">private</a>
<a id="767" class="Keyword">variable</a>
<a id="780" href="Function.Consequences.html#780" class="Generalizable">a</a> <a id="782" href="Function.Consequences.html#782" class="Generalizable">b</a> <a id="784" href="Function.Consequences.html#784" class="Generalizable">ℓ₁</a> <a id="787" href="Function.Consequences.html#787" class="Generalizable">ℓ₂</a> <a id="790" class="Symbol">:</a> <a id="792" href="Agda.Primitive.html#742" class="Postulate">Level</a>
<a id="802" href="Function.Consequences.html#802" class="Generalizable">A</a> <a id="804" href="Function.Consequences.html#804" class="Generalizable">B</a> <a id="806" class="Symbol">:</a> <a id="808" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="812" href="Function.Consequences.html#780" class="Generalizable">a</a>
<a id="818" href="Function.Consequences.html#818" class="Generalizable">≈₁</a> <a id="821" href="Function.Consequences.html#821" class="Generalizable">≈₂</a> <a id="824" class="Symbol">:</a> <a id="826" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="830" href="Function.Consequences.html#802" class="Generalizable">A</a> <a id="832" href="Function.Consequences.html#784" class="Generalizable">ℓ₁</a>
<a id="839" href="Function.Consequences.html#839" class="Generalizable">f</a> <a id="841" href="Function.Consequences.html#841" class="Generalizable">f⁻¹</a> <a id="845" class="Symbol">:</a> <a id="847" href="Function.Consequences.html#802" class="Generalizable">A</a> <a id="849" class="Symbol"></a> <a id="851" href="Function.Consequences.html#804" class="Generalizable">B</a>
<a id="854" class="Comment">------------------------------------------------------------------------</a>
<a id="927" class="Comment">-- Injective</a>
<a id="contraInjective"></a><a id="941" href="Function.Consequences.html#941" class="Function">contraInjective</a> <a id="957" class="Symbol">:</a> <a id="959" class="Symbol"></a> <a id="961" class="Symbol">(</a><a id="962" href="Function.Consequences.html#962" class="Bound">≈₂</a> <a id="965" class="Symbol">:</a> <a id="967" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="971" href="Function.Consequences.html#804" class="Generalizable">B</a> <a id="973" href="Function.Consequences.html#787" class="Generalizable">ℓ₂</a><a id="975" class="Symbol">)</a> <a id="977" class="Symbol"></a> <a id="979" href="Function.Definitions.html#842" class="Function">Injective</a> <a id="989" href="Function.Consequences.html#818" class="Generalizable">≈₁</a> <a id="992" href="Function.Consequences.html#962" class="Bound">≈₂</a> <a id="995" href="Function.Consequences.html#839" class="Generalizable">f</a> <a id="997" class="Symbol"></a>
<a id="1017" class="Symbol"></a> <a id="1019" class="Symbol">{</a><a id="1020" href="Function.Consequences.html#1020" class="Bound">x</a> <a id="1022" href="Function.Consequences.html#1022" class="Bound">y</a><a id="1023" class="Symbol">}</a> <a id="1025" class="Symbol"></a> <a id="1027" href="Relation.Nullary.Negation.Core.html#698" class="Function Operator">¬</a> <a id="1029" class="Symbol">(</a><a id="1030" href="Function.Consequences.html#818" class="Generalizable">≈₁</a> <a id="1033" href="Function.Consequences.html#1020" class="Bound">x</a> <a id="1035" href="Function.Consequences.html#1022" class="Bound">y</a><a id="1036" class="Symbol">)</a> <a id="1038" class="Symbol"></a> <a id="1040" href="Relation.Nullary.Negation.Core.html#698" class="Function Operator">¬</a> <a id="1042" class="Symbol">(</a><a id="1043" href="Function.Consequences.html#962" class="Bound">≈₂</a> <a id="1046" class="Symbol">(</a><a id="1047" href="Function.Consequences.html#839" class="Generalizable">f</a> <a id="1049" href="Function.Consequences.html#1020" class="Bound">x</a><a id="1050" class="Symbol">)</a> <a id="1052" class="Symbol">(</a><a id="1053" href="Function.Consequences.html#839" class="Generalizable">f</a> <a id="1055" href="Function.Consequences.html#1022" class="Bound">y</a><a id="1056" class="Symbol">))</a>
<a id="1059" href="Function.Consequences.html#941" class="Function">contraInjective</a> <a id="1075" class="Symbol">_</a> <a id="1077" href="Function.Consequences.html#1077" class="Bound">inj</a> <a id="1081" href="Function.Consequences.html#1081" class="Bound">p</a> <a id="1083" class="Symbol">=</a> <a id="1085" href="Relation.Nullary.Negation.Core.html#1446" class="Function">contraposition</a> <a id="1100" href="Function.Consequences.html#1077" class="Bound">inj</a> <a id="1104" href="Function.Consequences.html#1081" class="Bound">p</a>
<a id="1107" class="Comment">------------------------------------------------------------------------</a>
<a id="1180" class="Comment">-- Inverseˡ</a>
<a id="inverseˡ⇒surjective"></a><a id="1193" href="Function.Consequences.html#1193" class="Function">inverseˡ⇒surjective</a> <a id="1213" class="Symbol">:</a> <a id="1215" class="Symbol"></a> <a id="1217" class="Symbol">(</a><a id="1218" href="Function.Consequences.html#1218" class="Bound">≈₂</a> <a id="1221" class="Symbol">:</a> <a id="1223" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="1227" href="Function.Consequences.html#804" class="Generalizable">B</a> <a id="1229" href="Function.Consequences.html#787" class="Generalizable">ℓ₂</a><a id="1231" class="Symbol">)</a> <a id="1233" class="Symbol"></a>
<a id="1257" href="Function.Definitions.html#1082" class="Function">Inverseˡ</a> <a id="1266" href="Function.Consequences.html#818" class="Generalizable">≈₁</a> <a id="1269" href="Function.Consequences.html#1218" class="Bound">≈₂</a> <a id="1272" href="Function.Consequences.html#839" class="Generalizable">f</a> <a id="1274" href="Function.Consequences.html#841" class="Generalizable">f⁻¹</a> <a id="1278" class="Symbol"></a>
<a id="1302" href="Function.Definitions.html#919" class="Function">Surjective</a> <a id="1313" href="Function.Consequences.html#818" class="Generalizable">≈₁</a> <a id="1316" href="Function.Consequences.html#1218" class="Bound">≈₂</a> <a id="1319" href="Function.Consequences.html#839" class="Generalizable">f</a>
<a id="1321" href="Function.Consequences.html#1193" class="Function">inverseˡ⇒surjective</a> <a id="1341" href="Function.Consequences.html#1341" class="Bound">≈₂</a> <a id="1344" href="Function.Consequences.html#1344" class="Bound">invˡ</a> <a id="1349" href="Function.Consequences.html#1349" class="Bound">y</a> <a id="1351" class="Symbol">=</a> <a id="1353" class="Symbol">(_</a> <a id="1356" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="1358" href="Function.Consequences.html#1344" class="Bound">invˡ</a><a id="1362" class="Symbol">)</a>
<a id="1365" class="Comment">------------------------------------------------------------------------</a>
<a id="1438" class="Comment">-- Inverseʳ</a>
<a id="inverseʳ⇒injective"></a><a id="1451" href="Function.Consequences.html#1451" class="Function">inverseʳ⇒injective</a> <a id="1470" class="Symbol">:</a> <a id="1472" class="Symbol"></a> <a id="1474" class="Symbol">(</a><a id="1475" href="Function.Consequences.html#1475" class="Bound">≈₂</a> <a id="1478" class="Symbol">:</a> <a id="1480" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="1484" href="Function.Consequences.html#804" class="Generalizable">B</a> <a id="1486" href="Function.Consequences.html#787" class="Generalizable">ℓ₂</a><a id="1488" class="Symbol">)</a> <a id="1490" href="Function.Consequences.html#1490" class="Bound">f</a> <a id="1492" class="Symbol"></a>
<a id="1515" href="Relation.Binary.Definitions.html#1428" class="Function">Reflexive</a> <a id="1525" href="Function.Consequences.html#1475" class="Bound">≈₂</a> <a id="1528" class="Symbol"></a>
<a id="1551" href="Relation.Binary.Definitions.html#1587" class="Function">Symmetric</a> <a id="1561" href="Function.Consequences.html#818" class="Generalizable">≈₁</a> <a id="1564" class="Symbol"></a>
<a id="1587" href="Relation.Binary.Definitions.html#2103" class="Function">Transitive</a> <a id="1598" href="Function.Consequences.html#818" class="Generalizable">≈₁</a> <a id="1601" class="Symbol"></a>
<a id="1624" href="Function.Definitions.html#1169" class="Function">Inverseʳ</a> <a id="1633" href="Function.Consequences.html#818" class="Generalizable">≈₁</a> <a id="1636" href="Function.Consequences.html#1475" class="Bound">≈₂</a> <a id="1639" href="Function.Consequences.html#1490" class="Bound">f</a> <a id="1641" href="Function.Consequences.html#841" class="Generalizable">f⁻¹</a> <a id="1645" class="Symbol"></a>
<a id="1668" href="Function.Definitions.html#842" class="Function">Injective</a> <a id="1678" href="Function.Consequences.html#818" class="Generalizable">≈₁</a> <a id="1681" href="Function.Consequences.html#1475" class="Bound">≈₂</a> <a id="1684" href="Function.Consequences.html#1490" class="Bound">f</a>
<a id="1686" href="Function.Consequences.html#1451" class="Function">inverseʳ⇒injective</a> <a id="1705" href="Function.Consequences.html#1705" class="Bound">≈₂</a> <a id="1708" href="Function.Consequences.html#1708" class="Bound">f</a> <a id="1710" href="Function.Consequences.html#1710" class="Bound">refl</a> <a id="1715" href="Function.Consequences.html#1715" class="Bound">sym</a> <a id="1719" href="Function.Consequences.html#1719" class="Bound">trans</a> <a id="1725" href="Function.Consequences.html#1725" class="Bound">invʳ</a> <a id="1730" class="Symbol">{</a><a id="1731" href="Function.Consequences.html#1731" class="Bound">x</a><a id="1732" class="Symbol">}</a> <a id="1734" class="Symbol">{</a><a id="1735" href="Function.Consequences.html#1735" class="Bound">y</a><a id="1736" class="Symbol">}</a> <a id="1738" href="Function.Consequences.html#1738" class="Bound">fx≈fy</a> <a id="1744" class="Symbol">=</a>
<a id="1748" href="Function.Consequences.html#1719" class="Bound">trans</a> <a id="1754" class="Symbol">(</a><a id="1755" href="Function.Consequences.html#1715" class="Bound">sym</a> <a id="1759" class="Symbol">(</a><a id="1760" href="Function.Consequences.html#1725" class="Bound">invʳ</a> <a id="1765" href="Function.Consequences.html#1710" class="Bound">refl</a><a id="1769" class="Symbol">))</a> <a id="1772" class="Symbol">(</a><a id="1773" href="Function.Consequences.html#1725" class="Bound">invʳ</a> <a id="1778" href="Function.Consequences.html#1738" class="Bound">fx≈fy</a><a id="1783" class="Symbol">)</a>
<a id="1786" class="Comment">------------------------------------------------------------------------</a>
<a id="1859" class="Comment">-- Inverseᵇ</a>
<a id="inverseᵇ⇒bijective"></a><a id="1872" href="Function.Consequences.html#1872" class="Function">inverseᵇ⇒bijective</a> <a id="1891" class="Symbol">:</a> <a id="1893" class="Symbol"></a> <a id="1895" class="Symbol">(</a><a id="1896" href="Function.Consequences.html#1896" class="Bound">≈₂</a> <a id="1899" class="Symbol">:</a> <a id="1901" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="1905" href="Function.Consequences.html#804" class="Generalizable">B</a> <a id="1907" href="Function.Consequences.html#787" class="Generalizable">ℓ₂</a><a id="1909" class="Symbol">)</a> <a id="1911" class="Symbol"></a>
<a id="1934" href="Relation.Binary.Definitions.html#1428" class="Function">Reflexive</a> <a id="1944" href="Function.Consequences.html#1896" class="Bound">≈₂</a> <a id="1947" class="Symbol"></a>
<a id="1970" href="Relation.Binary.Definitions.html#1587" class="Function">Symmetric</a> <a id="1980" href="Function.Consequences.html#818" class="Generalizable">≈₁</a> <a id="1983" class="Symbol"></a>
<a id="2006" href="Relation.Binary.Definitions.html#2103" class="Function">Transitive</a> <a id="2017" href="Function.Consequences.html#818" class="Generalizable">≈₁</a> <a id="2020" class="Symbol"></a>
<a id="2043" href="Function.Definitions.html#1256" class="Function">Inverseᵇ</a> <a id="2052" href="Function.Consequences.html#818" class="Generalizable">≈₁</a> <a id="2055" href="Function.Consequences.html#1896" class="Bound">≈₂</a> <a id="2058" href="Function.Consequences.html#839" class="Generalizable">f</a> <a id="2060" href="Function.Consequences.html#841" class="Generalizable">f⁻¹</a> <a id="2064" class="Symbol"></a>
<a id="2087" href="Function.Definitions.html#1008" class="Function">Bijective</a> <a id="2097" href="Function.Consequences.html#818" class="Generalizable">≈₁</a> <a id="2100" href="Function.Consequences.html#1896" class="Bound">≈₂</a> <a id="2103" href="Function.Consequences.html#839" class="Generalizable">f</a>
<a id="2105" href="Function.Consequences.html#1872" class="Function">inverseᵇ⇒bijective</a> <a id="2124" class="Symbol">{</a><a id="2125" class="Argument">f</a> <a id="2127" class="Symbol">=</a> <a id="2129" href="Function.Consequences.html#2129" class="Bound">f</a><a id="2130" class="Symbol">}</a> <a id="2132" href="Function.Consequences.html#2132" class="Bound">≈₂</a> <a id="2135" href="Function.Consequences.html#2135" class="Bound">refl</a> <a id="2140" href="Function.Consequences.html#2140" class="Bound">sym</a> <a id="2144" href="Function.Consequences.html#2144" class="Bound">trans</a> <a id="2150" class="Symbol">(</a><a id="2151" href="Function.Consequences.html#2151" class="Bound">invˡ</a> <a id="2156" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="2158" href="Function.Consequences.html#2158" class="Bound">invʳ</a><a id="2162" class="Symbol">)</a> <a id="2164" class="Symbol">=</a>
<a id="2168" class="Symbol">(</a><a id="2169" href="Function.Consequences.html#1451" class="Function">inverseʳ⇒injective</a> <a id="2188" href="Function.Consequences.html#2132" class="Bound">≈₂</a> <a id="2191" href="Function.Consequences.html#2129" class="Bound">f</a> <a id="2193" href="Function.Consequences.html#2135" class="Bound">refl</a> <a id="2198" href="Function.Consequences.html#2140" class="Bound">sym</a> <a id="2202" href="Function.Consequences.html#2144" class="Bound">trans</a> <a id="2208" href="Function.Consequences.html#2158" class="Bound">invʳ</a> <a id="2213" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="2215" href="Function.Consequences.html#1193" class="Function">inverseˡ⇒surjective</a> <a id="2235" href="Function.Consequences.html#2132" class="Bound">≈₂</a> <a id="2238" href="Function.Consequences.html#2151" class="Bound">invˡ</a><a id="2242" class="Symbol">)</a>
<a id="2245" class="Comment">------------------------------------------------------------------------</a>
<a id="2318" class="Comment">-- StrictlySurjective</a>
<a id="surjective⇒strictlySurjective"></a><a id="2341" href="Function.Consequences.html#2341" class="Function">surjective⇒strictlySurjective</a> <a id="2371" class="Symbol">:</a> <a id="2373" class="Symbol"></a> <a id="2375" class="Symbol">(</a><a id="2376" href="Function.Consequences.html#2376" class="Bound">≈₂</a> <a id="2379" class="Symbol">:</a> <a id="2381" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="2385" href="Function.Consequences.html#804" class="Generalizable">B</a> <a id="2387" href="Function.Consequences.html#787" class="Generalizable">ℓ₂</a><a id="2389" class="Symbol">)</a> <a id="2391" class="Symbol"></a>
<a id="2426" href="Relation.Binary.Definitions.html#1428" class="Function">Reflexive</a> <a id="2436" href="Function.Consequences.html#818" class="Generalizable">≈₁</a> <a id="2439" class="Symbol"></a>
<a id="2474" href="Function.Definitions.html#919" class="Function">Surjective</a> <a id="2485" href="Function.Consequences.html#818" class="Generalizable">≈₁</a> <a id="2488" href="Function.Consequences.html#2376" class="Bound">≈₂</a> <a id="2491" href="Function.Consequences.html#839" class="Generalizable">f</a> <a id="2493" class="Symbol"></a>
<a id="2528" href="Function.Definitions.html#1522" class="Function">StrictlySurjective</a> <a id="2547" href="Function.Consequences.html#2376" class="Bound">≈₂</a> <a id="2550" href="Function.Consequences.html#839" class="Generalizable">f</a>
<a id="2552" href="Function.Consequences.html#2341" class="Function">surjective⇒strictlySurjective</a> <a id="2582" class="Symbol">_</a> <a id="2584" href="Function.Consequences.html#2584" class="Bound">refl</a> <a id="2589" href="Function.Consequences.html#2589" class="Bound">surj</a> <a id="2594" href="Function.Consequences.html#2594" class="Bound">x</a> <a id="2596" class="Symbol">=</a>
<a id="2600" href="Data.Product.Base.html#2362" class="Function">Prod.map₂</a> <a id="2610" class="Symbol"></a> <a id="2613" href="Function.Consequences.html#2613" class="Bound">v</a> <a id="2615" class="Symbol"></a> <a id="2617" href="Function.Consequences.html#2613" class="Bound">v</a> <a id="2619" href="Function.Consequences.html#2584" class="Bound">refl</a><a id="2623" class="Symbol">)</a> <a id="2625" class="Symbol">(</a><a id="2626" href="Function.Consequences.html#2589" class="Bound">surj</a> <a id="2631" href="Function.Consequences.html#2594" class="Bound">x</a><a id="2632" class="Symbol">)</a>
<a id="strictlySurjective⇒surjective"></a><a id="2635" href="Function.Consequences.html#2635" class="Function">strictlySurjective⇒surjective</a> <a id="2665" class="Symbol">:</a> <a id="2667" href="Relation.Binary.Definitions.html#2103" class="Function">Transitive</a> <a id="2678" href="Function.Consequences.html#821" class="Generalizable">≈₂</a> <a id="2681" class="Symbol"></a>
<a id="2716" href="Function.Definitions.html#765" class="Function">Congruent</a> <a id="2726" href="Function.Consequences.html#818" class="Generalizable">≈₁</a> <a id="2729" href="Function.Consequences.html#821" class="Generalizable">≈₂</a> <a id="2732" href="Function.Consequences.html#839" class="Generalizable">f</a> <a id="2734" class="Symbol"></a>
<a id="2769" href="Function.Definitions.html#1522" class="Function">StrictlySurjective</a> <a id="2788" href="Function.Consequences.html#821" class="Generalizable">≈₂</a> <a id="2791" href="Function.Consequences.html#839" class="Generalizable">f</a> <a id="2793" class="Symbol"></a>
<a id="2828" href="Function.Definitions.html#919" class="Function">Surjective</a> <a id="2839" href="Function.Consequences.html#818" class="Generalizable">≈₁</a> <a id="2842" href="Function.Consequences.html#821" class="Generalizable">≈₂</a> <a id="2845" href="Function.Consequences.html#839" class="Generalizable">f</a>
<a id="2847" href="Function.Consequences.html#2635" class="Function">strictlySurjective⇒surjective</a> <a id="2877" href="Function.Consequences.html#2877" class="Bound">trans</a> <a id="2883" href="Function.Consequences.html#2883" class="Bound">cong</a> <a id="2888" href="Function.Consequences.html#2888" class="Bound">surj</a> <a id="2893" href="Function.Consequences.html#2893" class="Bound">x</a> <a id="2895" class="Symbol">=</a>
<a id="2899" href="Data.Product.Base.html#2362" class="Function">Prod.map₂</a> <a id="2909" class="Symbol"></a> <a id="2912" href="Function.Consequences.html#2912" class="Bound">fy≈x</a> <a id="2917" href="Function.Consequences.html#2917" class="Bound">z≈y</a> <a id="2921" class="Symbol"></a> <a id="2923" href="Function.Consequences.html#2877" class="Bound">trans</a> <a id="2929" class="Symbol">(</a><a id="2930" href="Function.Consequences.html#2883" class="Bound">cong</a> <a id="2935" href="Function.Consequences.html#2917" class="Bound">z≈y</a><a id="2938" class="Symbol">)</a> <a id="2940" href="Function.Consequences.html#2912" class="Bound">fy≈x</a><a id="2944" class="Symbol">)</a> <a id="2946" class="Symbol">(</a><a id="2947" href="Function.Consequences.html#2888" class="Bound">surj</a> <a id="2952" href="Function.Consequences.html#2893" class="Bound">x</a><a id="2953" class="Symbol">)</a>
<a id="2956" class="Comment">------------------------------------------------------------------------</a>
<a id="3029" class="Comment">-- StrictlyInverseˡ</a>
<a id="inverseˡ⇒strictlyInverseˡ"></a><a id="3050" href="Function.Consequences.html#3050" class="Function">inverseˡ⇒strictlyInverseˡ</a> <a id="3076" class="Symbol">:</a> <a id="3078" class="Symbol"></a> <a id="3080" class="Symbol">(</a><a id="3081" href="Function.Consequences.html#3081" class="Bound">≈₁</a> <a id="3084" class="Symbol">:</a> <a id="3086" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="3090" href="Function.Consequences.html#802" class="Generalizable">A</a> <a id="3092" href="Function.Consequences.html#784" class="Generalizable">ℓ₁</a><a id="3094" class="Symbol">)</a> <a id="3096" class="Symbol">(</a><a id="3097" href="Function.Consequences.html#3097" class="Bound">≈₂</a> <a id="3100" class="Symbol">:</a> <a id="3102" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="3106" href="Function.Consequences.html#804" class="Generalizable">B</a> <a id="3108" href="Function.Consequences.html#787" class="Generalizable">ℓ₂</a><a id="3110" class="Symbol">)</a> <a id="3112" class="Symbol"></a>
<a id="3142" href="Relation.Binary.Definitions.html#1428" class="Function">Reflexive</a> <a id="3152" href="Function.Consequences.html#3081" class="Bound">≈₁</a> <a id="3155" class="Symbol"></a>
<a id="3185" href="Function.Definitions.html#1082" class="Function">Inverseˡ</a> <a id="3194" href="Function.Consequences.html#3081" class="Bound">≈₁</a> <a id="3197" href="Function.Consequences.html#3097" class="Bound">≈₂</a> <a id="3200" href="Function.Consequences.html#839" class="Generalizable">f</a> <a id="3202" href="Function.Consequences.html#841" class="Generalizable">f⁻¹</a> <a id="3206" class="Symbol"></a>
<a id="3236" href="Function.Definitions.html#1622" class="Function">StrictlyInverseˡ</a> <a id="3253" href="Function.Consequences.html#3097" class="Bound">≈₂</a> <a id="3256" href="Function.Consequences.html#839" class="Generalizable">f</a> <a id="3258" href="Function.Consequences.html#841" class="Generalizable">f⁻¹</a>
<a id="3262" href="Function.Consequences.html#3050" class="Function">inverseˡ⇒strictlyInverseˡ</a> <a id="3288" class="Symbol">_</a> <a id="3290" class="Symbol">_</a> <a id="3292" href="Function.Consequences.html#3292" class="Bound">refl</a> <a id="3297" href="Function.Consequences.html#3297" class="Bound">sinv</a> <a id="3302" href="Function.Consequences.html#3302" class="Bound">x</a> <a id="3304" class="Symbol">=</a> <a id="3306" href="Function.Consequences.html#3297" class="Bound">sinv</a> <a id="3311" href="Function.Consequences.html#3292" class="Bound">refl</a>
<a id="strictlyInverseˡ⇒inverseˡ"></a><a id="3317" href="Function.Consequences.html#3317" class="Function">strictlyInverseˡ⇒inverseˡ</a> <a id="3343" class="Symbol">:</a> <a id="3345" href="Relation.Binary.Definitions.html#2103" class="Function">Transitive</a> <a id="3356" href="Function.Consequences.html#821" class="Generalizable">≈₂</a> <a id="3359" class="Symbol"></a>
<a id="3389" href="Function.Definitions.html#765" class="Function">Congruent</a> <a id="3399" href="Function.Consequences.html#818" class="Generalizable">≈₁</a> <a id="3402" href="Function.Consequences.html#821" class="Generalizable">≈₂</a> <a id="3405" href="Function.Consequences.html#839" class="Generalizable">f</a> <a id="3407" class="Symbol"></a>
<a id="3437" href="Function.Definitions.html#1622" class="Function">StrictlyInverseˡ</a> <a id="3454" href="Function.Consequences.html#821" class="Generalizable">≈₂</a> <a id="3457" href="Function.Consequences.html#839" class="Generalizable">f</a> <a id="3459" href="Function.Consequences.html#841" class="Generalizable">f⁻¹</a> <a id="3463" class="Symbol"></a>
<a id="3493" href="Function.Definitions.html#1082" class="Function">Inverseˡ</a> <a id="3502" href="Function.Consequences.html#818" class="Generalizable">≈₁</a> <a id="3505" href="Function.Consequences.html#821" class="Generalizable">≈₂</a> <a id="3508" href="Function.Consequences.html#839" class="Generalizable">f</a> <a id="3510" href="Function.Consequences.html#841" class="Generalizable">f⁻¹</a>
<a id="3514" href="Function.Consequences.html#3317" class="Function">strictlyInverseˡ⇒inverseˡ</a> <a id="3540" href="Function.Consequences.html#3540" class="Bound">trans</a> <a id="3546" href="Function.Consequences.html#3546" class="Bound">cong</a> <a id="3551" href="Function.Consequences.html#3551" class="Bound">sinv</a> <a id="3556" class="Symbol">{</a><a id="3557" href="Function.Consequences.html#3557" class="Bound">x</a><a id="3558" class="Symbol">}</a> <a id="3560" href="Function.Consequences.html#3560" class="Bound">y≈f⁻¹x</a> <a id="3567" class="Symbol">=</a>
<a id="3571" href="Function.Consequences.html#3540" class="Bound">trans</a> <a id="3577" class="Symbol">(</a><a id="3578" href="Function.Consequences.html#3546" class="Bound">cong</a> <a id="3583" href="Function.Consequences.html#3560" class="Bound">y≈f⁻¹x</a><a id="3589" class="Symbol">)</a> <a id="3591" class="Symbol">(</a><a id="3592" href="Function.Consequences.html#3551" class="Bound">sinv</a> <a id="3597" href="Function.Consequences.html#3557" class="Bound">x</a><a id="3598" class="Symbol">)</a>
<a id="3601" class="Comment">------------------------------------------------------------------------</a>
<a id="3674" class="Comment">-- StrictlyInverseʳ</a>
<a id="inverseʳ⇒strictlyInverseʳ"></a><a id="3695" href="Function.Consequences.html#3695" class="Function">inverseʳ⇒strictlyInverseʳ</a> <a id="3721" class="Symbol">:</a> <a id="3723" class="Symbol"></a> <a id="3725" class="Symbol">(</a><a id="3726" href="Function.Consequences.html#3726" class="Bound">≈₁</a> <a id="3729" class="Symbol">:</a> <a id="3731" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="3735" href="Function.Consequences.html#802" class="Generalizable">A</a> <a id="3737" href="Function.Consequences.html#784" class="Generalizable">ℓ₁</a><a id="3739" class="Symbol">)</a> <a id="3741" class="Symbol">(</a><a id="3742" href="Function.Consequences.html#3742" class="Bound">≈₂</a> <a id="3745" class="Symbol">:</a> <a id="3747" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="3751" href="Function.Consequences.html#804" class="Generalizable">B</a> <a id="3753" href="Function.Consequences.html#787" class="Generalizable">ℓ₂</a><a id="3755" class="Symbol">)</a> <a id="3757" class="Symbol"></a>
<a id="3787" href="Relation.Binary.Definitions.html#1428" class="Function">Reflexive</a> <a id="3797" href="Function.Consequences.html#3742" class="Bound">≈₂</a> <a id="3800" class="Symbol"></a>
<a id="3830" href="Function.Definitions.html#1169" class="Function">Inverseʳ</a> <a id="3839" href="Function.Consequences.html#3726" class="Bound">≈₁</a> <a id="3842" href="Function.Consequences.html#3742" class="Bound">≈₂</a> <a id="3845" href="Function.Consequences.html#839" class="Generalizable">f</a> <a id="3847" href="Function.Consequences.html#841" class="Generalizable">f⁻¹</a> <a id="3851" class="Symbol"></a>
<a id="3881" href="Function.Definitions.html#1726" class="Function">StrictlyInverseʳ</a> <a id="3898" href="Function.Consequences.html#3726" class="Bound">≈₁</a> <a id="3901" href="Function.Consequences.html#839" class="Generalizable">f</a> <a id="3903" href="Function.Consequences.html#841" class="Generalizable">f⁻¹</a>
<a id="3907" href="Function.Consequences.html#3695" class="Function">inverseʳ⇒strictlyInverseʳ</a> <a id="3933" class="Symbol">_</a> <a id="3935" class="Symbol">_</a> <a id="3937" href="Function.Consequences.html#3937" class="Bound">refl</a> <a id="3942" href="Function.Consequences.html#3942" class="Bound">sinv</a> <a id="3947" href="Function.Consequences.html#3947" class="Bound">x</a> <a id="3949" class="Symbol">=</a> <a id="3951" href="Function.Consequences.html#3942" class="Bound">sinv</a> <a id="3956" href="Function.Consequences.html#3937" class="Bound">refl</a>
<a id="strictlyInverseʳ⇒inverseʳ"></a><a id="3962" href="Function.Consequences.html#3962" class="Function">strictlyInverseʳ⇒inverseʳ</a> <a id="3988" class="Symbol">:</a> <a id="3990" href="Relation.Binary.Definitions.html#2103" class="Function">Transitive</a> <a id="4001" href="Function.Consequences.html#818" class="Generalizable">≈₁</a> <a id="4004" class="Symbol"></a>
<a id="4034" href="Function.Definitions.html#765" class="Function">Congruent</a> <a id="4044" href="Function.Consequences.html#821" class="Generalizable">≈₂</a> <a id="4047" href="Function.Consequences.html#818" class="Generalizable">≈₁</a> <a id="4050" href="Function.Consequences.html#841" class="Generalizable">f⁻¹</a> <a id="4054" class="Symbol"></a>
<a id="4084" href="Function.Definitions.html#1726" class="Function">StrictlyInverseʳ</a> <a id="4101" href="Function.Consequences.html#818" class="Generalizable">≈₁</a> <a id="4104" href="Function.Consequences.html#839" class="Generalizable">f</a> <a id="4106" href="Function.Consequences.html#841" class="Generalizable">f⁻¹</a> <a id="4110" class="Symbol"></a>
<a id="4140" href="Function.Definitions.html#1169" class="Function">Inverseʳ</a> <a id="4149" href="Function.Consequences.html#818" class="Generalizable">≈₁</a> <a id="4152" href="Function.Consequences.html#821" class="Generalizable">≈₂</a> <a id="4155" href="Function.Consequences.html#839" class="Generalizable">f</a> <a id="4157" href="Function.Consequences.html#841" class="Generalizable">f⁻¹</a>
<a id="4161" href="Function.Consequences.html#3962" class="Function">strictlyInverseʳ⇒inverseʳ</a> <a id="4187" href="Function.Consequences.html#4187" class="Bound">trans</a> <a id="4193" href="Function.Consequences.html#4193" class="Bound">cong</a> <a id="4198" href="Function.Consequences.html#4198" class="Bound">sinv</a> <a id="4203" class="Symbol">{</a><a id="4204" href="Function.Consequences.html#4204" class="Bound">x</a><a id="4205" class="Symbol">}</a> <a id="4207" href="Function.Consequences.html#4207" class="Bound">y≈f⁻¹x</a> <a id="4214" class="Symbol">=</a>
<a id="4218" href="Function.Consequences.html#4187" class="Bound">trans</a> <a id="4224" class="Symbol">(</a><a id="4225" href="Function.Consequences.html#4193" class="Bound">cong</a> <a id="4230" href="Function.Consequences.html#4207" class="Bound">y≈f⁻¹x</a><a id="4236" class="Symbol">)</a> <a id="4238" class="Symbol">(</a><a id="4239" href="Function.Consequences.html#4198" class="Bound">sinv</a> <a id="4244" href="Function.Consequences.html#4204" class="Bound">x</a><a id="4245" class="Symbol">)</a>
</pre></body></html>