mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
132 lines
No EOL
42 KiB
HTML
132 lines
No EOL
42 KiB
HTML
<!DOCTYPE HTML>
|
||
<html><head><meta charset="utf-8"><title>Function.LeftInverse</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">-- Left inverses</a>
|
||
<a id="123" class="Comment">------------------------------------------------------------------------</a>
|
||
|
||
<a id="197" class="Symbol">{-#</a> <a id="201" class="Keyword">OPTIONS</a> <a id="209" class="Pragma">--cubical-compatible</a> <a id="230" class="Pragma">--safe</a> <a id="237" class="Symbol">#-}</a>
|
||
|
||
<a id="242" class="Comment">-- Note: use of the standard function hierarchy is encouraged. The</a>
|
||
<a id="309" class="Comment">-- module `Function` re-exports `Inverseˡ`, `IsLeftInverse` and</a>
|
||
<a id="373" class="Comment">-- `LeftInverse`. The alternative definitions found in this file will</a>
|
||
<a id="443" class="Comment">-- eventually be deprecated.</a>
|
||
|
||
<a id="473" class="Keyword">module</a> <a id="480" href="Function.LeftInverse.html" class="Module">Function.LeftInverse</a> <a id="501" class="Keyword">where</a>
|
||
|
||
<a id="508" class="Keyword">open</a> <a id="513" class="Keyword">import</a> <a id="520" href="Data.Product.html" class="Module">Data.Product</a>
|
||
<a id="533" class="Keyword">open</a> <a id="538" class="Keyword">import</a> <a id="545" href="Level.html" class="Module">Level</a>
|
||
<a id="551" class="Keyword">import</a> <a id="558" href="Relation.Binary.Reasoning.Setoid.html" class="Module">Relation.Binary.Reasoning.Setoid</a> <a id="591" class="Symbol">as</a> <a id="594" class="Module">EqReasoning</a>
|
||
<a id="606" class="Keyword">open</a> <a id="611" class="Keyword">import</a> <a id="618" href="Relation.Binary.html" class="Module">Relation.Binary</a>
|
||
<a id="634" class="Keyword">open</a> <a id="639" class="Keyword">import</a> <a id="646" href="Function.Equality.html" class="Module">Function.Equality</a> <a id="664" class="Symbol">as</a> <a id="667" class="Module">Eq</a>
|
||
<a id="672" class="Keyword">using</a> <a id="678" class="Symbol">(</a><a id="679" href="Function.Equality.html#1227" class="Function Operator">_⟶_</a><a id="682" class="Symbol">;</a> <a id="684" href="Function.Equality.html#1073" class="Field Operator">_⟨$⟩_</a><a id="689" class="Symbol">)</a> <a id="691" class="Keyword">renaming</a> <a id="700" class="Symbol">(</a><a id="701" href="Function.Equality.html#1540" class="Function Operator">_∘_</a> <a id="705" class="Symbol">to</a> <a id="708" class="Function Operator">_⟪∘⟫_</a><a id="713" class="Symbol">)</a>
|
||
<a id="715" class="Keyword">open</a> <a id="720" class="Keyword">import</a> <a id="727" href="Function.Equivalence.html" class="Module">Function.Equivalence</a> <a id="748" class="Keyword">using</a> <a id="754" class="Symbol">(</a><a id="755" href="Function.Equivalence.html#838" class="Record">Equivalence</a><a id="766" class="Symbol">)</a>
|
||
<a id="768" class="Keyword">open</a> <a id="773" class="Keyword">import</a> <a id="780" href="Function.Injection.html" class="Module">Function.Injection</a> <a id="799" class="Keyword">using</a> <a id="805" class="Symbol">(</a><a id="806" href="Function.Injection.html#856" class="Function">Injective</a><a id="815" class="Symbol">;</a> <a id="817" href="Function.Injection.html#1231" class="Record">Injection</a><a id="826" class="Symbol">)</a>
|
||
<a id="828" class="Keyword">open</a> <a id="833" class="Keyword">import</a> <a id="840" href="Relation.Binary.PropositionalEquality.html" class="Module">Relation.Binary.PropositionalEquality</a> <a id="878" class="Symbol">as</a> <a id="881" class="Module">P</a> <a id="883" class="Keyword">using</a> <a id="889" class="Symbol">(</a><a id="890" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a><a id="893" class="Symbol">)</a>
|
||
|
||
<a id="896" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="969" class="Comment">-- Left and right inverses.</a>
|
||
|
||
<a id="_LeftInverseOf_"></a><a id="998" href="Function.LeftInverse.html#998" class="Function Operator">_LeftInverseOf_</a> <a id="1014" class="Symbol">:</a>
|
||
<a id="1018" class="Symbol">∀</a> <a id="1020" class="Symbol">{</a><a id="1021" href="Function.LeftInverse.html#1021" class="Bound">f₁</a> <a id="1024" href="Function.LeftInverse.html#1024" class="Bound">f₂</a> <a id="1027" href="Function.LeftInverse.html#1027" class="Bound">t₁</a> <a id="1030" href="Function.LeftInverse.html#1030" class="Bound">t₂</a><a id="1032" class="Symbol">}</a> <a id="1034" class="Symbol">{</a><a id="1035" href="Function.LeftInverse.html#1035" class="Bound">From</a> <a id="1040" class="Symbol">:</a> <a id="1042" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a> <a id="1049" href="Function.LeftInverse.html#1021" class="Bound">f₁</a> <a id="1052" href="Function.LeftInverse.html#1024" class="Bound">f₂</a><a id="1054" class="Symbol">}</a> <a id="1056" class="Symbol">{</a><a id="1057" href="Function.LeftInverse.html#1057" class="Bound">To</a> <a id="1060" class="Symbol">:</a> <a id="1062" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a> <a id="1069" href="Function.LeftInverse.html#1027" class="Bound">t₁</a> <a id="1072" href="Function.LeftInverse.html#1030" class="Bound">t₂</a><a id="1074" class="Symbol">}</a> <a id="1076" class="Symbol">→</a>
|
||
<a id="1080" href="Function.LeftInverse.html#1057" class="Bound">To</a> <a id="1083" href="Function.Equality.html#1227" class="Function Operator">⟶</a> <a id="1085" href="Function.LeftInverse.html#1035" class="Bound">From</a> <a id="1090" class="Symbol">→</a> <a id="1092" href="Function.LeftInverse.html#1035" class="Bound">From</a> <a id="1097" href="Function.Equality.html#1227" class="Function Operator">⟶</a> <a id="1099" href="Function.LeftInverse.html#1057" class="Bound">To</a> <a id="1102" class="Symbol">→</a> <a id="1104" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1108" class="Symbol">_</a>
|
||
<a id="1110" href="Function.LeftInverse.html#998" class="Function Operator">_LeftInverseOf_</a> <a id="1126" class="Symbol">{</a><a id="1127" class="Argument">From</a> <a id="1132" class="Symbol">=</a> <a id="1134" href="Function.LeftInverse.html#1134" class="Bound">From</a><a id="1138" class="Symbol">}</a> <a id="1140" href="Function.LeftInverse.html#1140" class="Bound">f</a> <a id="1142" href="Function.LeftInverse.html#1142" class="Bound">g</a> <a id="1144" class="Symbol">=</a> <a id="1146" class="Symbol">∀</a> <a id="1148" href="Function.LeftInverse.html#1148" class="Bound">x</a> <a id="1150" class="Symbol">→</a> <a id="1152" href="Function.LeftInverse.html#1140" class="Bound">f</a> <a id="1154" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="1158" class="Symbol">(</a><a id="1159" href="Function.LeftInverse.html#1142" class="Bound">g</a> <a id="1161" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="1165" href="Function.LeftInverse.html#1148" class="Bound">x</a><a id="1166" class="Symbol">)</a> <a id="1168" href="Relation.Binary.Bundles.html#1107" class="Function Operator">≈</a> <a id="1170" href="Function.LeftInverse.html#1148" class="Bound">x</a>
|
||
<a id="1174" class="Keyword">where</a> <a id="1180" class="Keyword">open</a> <a id="1185" href="Relation.Binary.Bundles.html#1018" class="Module">Setoid</a> <a id="1192" href="Function.LeftInverse.html#1134" class="Bound">From</a>
|
||
|
||
<a id="_RightInverseOf_"></a><a id="1198" href="Function.LeftInverse.html#1198" class="Function Operator">_RightInverseOf_</a> <a id="1215" class="Symbol">:</a>
|
||
<a id="1219" class="Symbol">∀</a> <a id="1221" class="Symbol">{</a><a id="1222" href="Function.LeftInverse.html#1222" class="Bound">f₁</a> <a id="1225" href="Function.LeftInverse.html#1225" class="Bound">f₂</a> <a id="1228" href="Function.LeftInverse.html#1228" class="Bound">t₁</a> <a id="1231" href="Function.LeftInverse.html#1231" class="Bound">t₂</a><a id="1233" class="Symbol">}</a> <a id="1235" class="Symbol">{</a><a id="1236" href="Function.LeftInverse.html#1236" class="Bound">From</a> <a id="1241" class="Symbol">:</a> <a id="1243" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a> <a id="1250" href="Function.LeftInverse.html#1222" class="Bound">f₁</a> <a id="1253" href="Function.LeftInverse.html#1225" class="Bound">f₂</a><a id="1255" class="Symbol">}</a> <a id="1257" class="Symbol">{</a><a id="1258" href="Function.LeftInverse.html#1258" class="Bound">To</a> <a id="1261" class="Symbol">:</a> <a id="1263" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a> <a id="1270" href="Function.LeftInverse.html#1228" class="Bound">t₁</a> <a id="1273" href="Function.LeftInverse.html#1231" class="Bound">t₂</a><a id="1275" class="Symbol">}</a> <a id="1277" class="Symbol">→</a>
|
||
<a id="1281" href="Function.LeftInverse.html#1258" class="Bound">To</a> <a id="1284" href="Function.Equality.html#1227" class="Function Operator">⟶</a> <a id="1286" href="Function.LeftInverse.html#1236" class="Bound">From</a> <a id="1291" class="Symbol">→</a> <a id="1293" href="Function.LeftInverse.html#1236" class="Bound">From</a> <a id="1298" href="Function.Equality.html#1227" class="Function Operator">⟶</a> <a id="1300" href="Function.LeftInverse.html#1258" class="Bound">To</a> <a id="1303" class="Symbol">→</a> <a id="1305" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1309" class="Symbol">_</a>
|
||
<a id="1311" href="Function.LeftInverse.html#1311" class="Bound">f</a> <a id="1313" href="Function.LeftInverse.html#1198" class="Function Operator">RightInverseOf</a> <a id="1328" href="Function.LeftInverse.html#1328" class="Bound">g</a> <a id="1330" class="Symbol">=</a> <a id="1332" href="Function.LeftInverse.html#1328" class="Bound">g</a> <a id="1334" href="Function.LeftInverse.html#998" class="Function Operator">LeftInverseOf</a> <a id="1348" href="Function.LeftInverse.html#1311" class="Bound">f</a>
|
||
|
||
<a id="1351" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="1424" class="Comment">-- The set of all left inverses between two setoids.</a>
|
||
|
||
<a id="1478" class="Keyword">record</a> <a id="LeftInverse"></a><a id="1485" href="Function.LeftInverse.html#1485" class="Record">LeftInverse</a> <a id="1497" class="Symbol">{</a><a id="1498" href="Function.LeftInverse.html#1498" class="Bound">f₁</a> <a id="1501" href="Function.LeftInverse.html#1501" class="Bound">f₂</a> <a id="1504" href="Function.LeftInverse.html#1504" class="Bound">t₁</a> <a id="1507" href="Function.LeftInverse.html#1507" class="Bound">t₂</a><a id="1509" class="Symbol">}</a>
|
||
<a id="1530" class="Symbol">(</a><a id="1531" href="Function.LeftInverse.html#1531" class="Bound">From</a> <a id="1536" class="Symbol">:</a> <a id="1538" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a> <a id="1545" href="Function.LeftInverse.html#1498" class="Bound">f₁</a> <a id="1548" href="Function.LeftInverse.html#1501" class="Bound">f₂</a><a id="1550" class="Symbol">)</a> <a id="1552" class="Symbol">(</a><a id="1553" href="Function.LeftInverse.html#1553" class="Bound">To</a> <a id="1556" class="Symbol">:</a> <a id="1558" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a> <a id="1565" href="Function.LeftInverse.html#1504" class="Bound">t₁</a> <a id="1568" href="Function.LeftInverse.html#1507" class="Bound">t₂</a><a id="1570" class="Symbol">)</a> <a id="1572" class="Symbol">:</a>
|
||
<a id="1593" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1597" class="Symbol">(</a><a id="1598" href="Function.LeftInverse.html#1498" class="Bound">f₁</a> <a id="1601" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1603" href="Function.LeftInverse.html#1501" class="Bound">f₂</a> <a id="1606" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1608" href="Function.LeftInverse.html#1504" class="Bound">t₁</a> <a id="1611" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1613" href="Function.LeftInverse.html#1507" class="Bound">t₂</a><a id="1615" class="Symbol">)</a> <a id="1617" class="Keyword">where</a>
|
||
<a id="1625" class="Keyword">field</a>
|
||
<a id="LeftInverse.to"></a><a id="1635" href="Function.LeftInverse.html#1635" class="Field">to</a> <a id="1651" class="Symbol">:</a> <a id="1653" href="Function.LeftInverse.html#1531" class="Bound">From</a> <a id="1658" href="Function.Equality.html#1227" class="Function Operator">⟶</a> <a id="1660" href="Function.LeftInverse.html#1553" class="Bound">To</a>
|
||
<a id="LeftInverse.from"></a><a id="1667" href="Function.LeftInverse.html#1667" class="Field">from</a> <a id="1683" class="Symbol">:</a> <a id="1685" href="Function.LeftInverse.html#1553" class="Bound">To</a> <a id="1688" href="Function.Equality.html#1227" class="Function Operator">⟶</a> <a id="1690" href="Function.LeftInverse.html#1531" class="Bound">From</a>
|
||
<a id="LeftInverse.left-inverse-of"></a><a id="1699" href="Function.LeftInverse.html#1699" class="Field">left-inverse-of</a> <a id="1715" class="Symbol">:</a> <a id="1717" href="Function.LeftInverse.html#1667" class="Field">from</a> <a id="1722" href="Function.LeftInverse.html#998" class="Function Operator">LeftInverseOf</a> <a id="1736" href="Function.LeftInverse.html#1635" class="Field">to</a>
|
||
|
||
<a id="1742" class="Keyword">private</a>
|
||
<a id="1754" class="Keyword">open</a> <a id="1759" class="Keyword">module</a> <a id="LeftInverse.F"></a><a id="1766" href="Function.LeftInverse.html#1766" class="Module">F</a> <a id="1768" class="Symbol">=</a> <a id="1770" href="Relation.Binary.Bundles.html#1018" class="Module">Setoid</a> <a id="1777" href="Function.LeftInverse.html#1531" class="Bound">From</a>
|
||
<a id="1786" class="Keyword">open</a> <a id="1791" class="Keyword">module</a> <a id="LeftInverse.T"></a><a id="1798" href="Function.LeftInverse.html#1798" class="Module">T</a> <a id="1800" class="Symbol">=</a> <a id="1802" href="Relation.Binary.Bundles.html#1018" class="Module">Setoid</a> <a id="1809" href="Function.LeftInverse.html#1553" class="Bound">To</a>
|
||
<a id="1814" class="Keyword">open</a> <a id="1819" href="Relation.Binary.Reasoning.Setoid.html" class="Module">EqReasoning</a> <a id="1831" href="Function.LeftInverse.html#1531" class="Bound">From</a>
|
||
|
||
<a id="LeftInverse.injective"></a><a id="1839" href="Function.LeftInverse.html#1839" class="Function">injective</a> <a id="1849" class="Symbol">:</a> <a id="1851" href="Function.Injection.html#856" class="Function">Injective</a> <a id="1861" href="Function.LeftInverse.html#1635" class="Field">to</a>
|
||
<a id="1866" href="Function.LeftInverse.html#1839" class="Function">injective</a> <a id="1876" class="Symbol">{</a><a id="1877" href="Function.LeftInverse.html#1877" class="Bound">x</a><a id="1878" class="Symbol">}</a> <a id="1880" class="Symbol">{</a><a id="1881" href="Function.LeftInverse.html#1881" class="Bound">y</a><a id="1882" class="Symbol">}</a> <a id="1884" href="Function.LeftInverse.html#1884" class="Bound">eq</a> <a id="1887" class="Symbol">=</a> <a id="1889" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
||
<a id="1899" href="Function.LeftInverse.html#1877" class="Bound">x</a> <a id="1920" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="1923" href="Relation.Binary.Structures.html#1603" class="Function">F.sym</a> <a id="1929" class="Symbol">(</a><a id="1930" href="Function.LeftInverse.html#1699" class="Field">left-inverse-of</a> <a id="1946" href="Function.LeftInverse.html#1877" class="Bound">x</a><a id="1947" class="Symbol">)</a> <a id="1949" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="1955" href="Function.LeftInverse.html#1667" class="Field">from</a> <a id="1960" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="1964" class="Symbol">(</a><a id="1965" href="Function.LeftInverse.html#1635" class="Field">to</a> <a id="1968" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="1972" href="Function.LeftInverse.html#1877" class="Bound">x</a><a id="1973" class="Symbol">)</a> <a id="1976" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="1979" href="Function.Equality.html#1140" class="Field">Eq.cong</a> <a id="1987" href="Function.LeftInverse.html#1667" class="Field">from</a> <a id="1992" href="Function.LeftInverse.html#1884" class="Bound">eq</a> <a id="1995" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="2001" href="Function.LeftInverse.html#1667" class="Field">from</a> <a id="2006" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="2010" class="Symbol">(</a><a id="2011" href="Function.LeftInverse.html#1635" class="Field">to</a> <a id="2014" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="2018" href="Function.LeftInverse.html#1881" class="Bound">y</a><a id="2019" class="Symbol">)</a> <a id="2022" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2025" href="Function.LeftInverse.html#1699" class="Field">left-inverse-of</a> <a id="2041" href="Function.LeftInverse.html#1881" class="Bound">y</a> <a id="2043" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="2049" href="Function.LeftInverse.html#1881" class="Bound">y</a> <a id="2070" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
||
|
||
<a id="LeftInverse.injection"></a><a id="2075" href="Function.LeftInverse.html#2075" class="Function">injection</a> <a id="2085" class="Symbol">:</a> <a id="2087" href="Function.Injection.html#1231" class="Record">Injection</a> <a id="2097" href="Function.LeftInverse.html#1531" class="Bound">From</a> <a id="2102" href="Function.LeftInverse.html#1553" class="Bound">To</a>
|
||
<a id="2107" href="Function.LeftInverse.html#2075" class="Function">injection</a> <a id="2117" class="Symbol">=</a> <a id="2119" class="Keyword">record</a> <a id="2126" class="Symbol">{</a> <a id="2128" href="Function.Injection.html#1375" class="Field">to</a> <a id="2131" class="Symbol">=</a> <a id="2133" href="Function.LeftInverse.html#1635" class="Field">to</a><a id="2135" class="Symbol">;</a> <a id="2137" href="Function.Injection.html#1401" class="Field">injective</a> <a id="2147" class="Symbol">=</a> <a id="2149" href="Function.LeftInverse.html#1839" class="Function">injective</a> <a id="2159" class="Symbol">}</a>
|
||
|
||
<a id="LeftInverse.equivalence"></a><a id="2164" href="Function.LeftInverse.html#2164" class="Function">equivalence</a> <a id="2176" class="Symbol">:</a> <a id="2178" href="Function.Equivalence.html#838" class="Record">Equivalence</a> <a id="2190" href="Function.LeftInverse.html#1531" class="Bound">From</a> <a id="2195" href="Function.LeftInverse.html#1553" class="Bound">To</a>
|
||
<a id="2200" href="Function.LeftInverse.html#2164" class="Function">equivalence</a> <a id="2212" class="Symbol">=</a> <a id="2214" class="Keyword">record</a>
|
||
<a id="2225" class="Symbol">{</a> <a id="2227" href="Function.Equivalence.html#988" class="Field">to</a> <a id="2232" class="Symbol">=</a> <a id="2234" href="Function.LeftInverse.html#1635" class="Field">to</a>
|
||
<a id="2241" class="Symbol">;</a> <a id="2243" href="Function.Equivalence.html#1009" class="Field">from</a> <a id="2248" class="Symbol">=</a> <a id="2250" href="Function.LeftInverse.html#1667" class="Field">from</a>
|
||
<a id="2259" class="Symbol">}</a>
|
||
|
||
<a id="LeftInverse.to-from"></a><a id="2264" href="Function.LeftInverse.html#2264" class="Function">to-from</a> <a id="2272" class="Symbol">:</a> <a id="2274" class="Symbol">∀</a> <a id="2276" class="Symbol">{</a><a id="2277" href="Function.LeftInverse.html#2277" class="Bound">x</a> <a id="2279" href="Function.LeftInverse.html#2279" class="Bound">y</a><a id="2280" class="Symbol">}</a> <a id="2282" class="Symbol">→</a> <a id="2284" href="Function.LeftInverse.html#1635" class="Field">to</a> <a id="2287" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="2291" href="Function.LeftInverse.html#2277" class="Bound">x</a> <a id="2293" href="Relation.Binary.Bundles.html#1107" class="Function Operator">T.≈</a> <a id="2297" href="Function.LeftInverse.html#2279" class="Bound">y</a> <a id="2299" class="Symbol">→</a> <a id="2301" href="Function.LeftInverse.html#1667" class="Field">from</a> <a id="2306" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="2310" href="Function.LeftInverse.html#2279" class="Bound">y</a> <a id="2312" href="Relation.Binary.Bundles.html#1107" class="Function Operator">F.≈</a> <a id="2316" href="Function.LeftInverse.html#2277" class="Bound">x</a>
|
||
<a id="2320" href="Function.LeftInverse.html#2264" class="Function">to-from</a> <a id="2328" class="Symbol">{</a><a id="2329" href="Function.LeftInverse.html#2329" class="Bound">x</a><a id="2330" class="Symbol">}</a> <a id="2332" class="Symbol">{</a><a id="2333" href="Function.LeftInverse.html#2333" class="Bound">y</a><a id="2334" class="Symbol">}</a> <a id="2336" href="Function.LeftInverse.html#2336" class="Bound">to-x≈y</a> <a id="2343" class="Symbol">=</a> <a id="2345" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
||
<a id="2355" href="Function.LeftInverse.html#1667" class="Field">from</a> <a id="2360" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="2364" href="Function.LeftInverse.html#2333" class="Bound">y</a> <a id="2376" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2379" href="Function.Equality.html#1140" class="Field">Eq.cong</a> <a id="2387" href="Function.LeftInverse.html#1667" class="Field">from</a> <a id="2392" class="Symbol">(</a><a id="2393" href="Relation.Binary.Structures.html#1603" class="Function">T.sym</a> <a id="2399" href="Function.LeftInverse.html#2336" class="Bound">to-x≈y</a><a id="2405" class="Symbol">)</a> <a id="2407" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="2413" href="Function.LeftInverse.html#1667" class="Field">from</a> <a id="2418" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="2422" class="Symbol">(</a><a id="2423" href="Function.LeftInverse.html#1635" class="Field">to</a> <a id="2426" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="2430" href="Function.LeftInverse.html#2329" class="Bound">x</a><a id="2431" class="Symbol">)</a> <a id="2434" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2437" href="Function.LeftInverse.html#1699" class="Field">left-inverse-of</a> <a id="2453" href="Function.LeftInverse.html#2329" class="Bound">x</a> <a id="2455" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="2461" href="Function.LeftInverse.html#2329" class="Bound">x</a> <a id="2482" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
||
|
||
<a id="2485" class="Comment">-- The set of all right inverses between two setoids.</a>
|
||
|
||
<a id="RightInverse"></a><a id="2540" href="Function.LeftInverse.html#2540" class="Function">RightInverse</a> <a id="2553" class="Symbol">:</a> <a id="2555" class="Symbol">∀</a> <a id="2557" class="Symbol">{</a><a id="2558" href="Function.LeftInverse.html#2558" class="Bound">f₁</a> <a id="2561" href="Function.LeftInverse.html#2561" class="Bound">f₂</a> <a id="2564" href="Function.LeftInverse.html#2564" class="Bound">t₁</a> <a id="2567" href="Function.LeftInverse.html#2567" class="Bound">t₂</a><a id="2569" class="Symbol">}</a>
|
||
<a id="2586" class="Symbol">(</a><a id="2587" href="Function.LeftInverse.html#2587" class="Bound">From</a> <a id="2592" class="Symbol">:</a> <a id="2594" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a> <a id="2601" href="Function.LeftInverse.html#2558" class="Bound">f₁</a> <a id="2604" href="Function.LeftInverse.html#2561" class="Bound">f₂</a><a id="2606" class="Symbol">)</a> <a id="2608" class="Symbol">(</a><a id="2609" href="Function.LeftInverse.html#2609" class="Bound">To</a> <a id="2612" class="Symbol">:</a> <a id="2614" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a> <a id="2621" href="Function.LeftInverse.html#2564" class="Bound">t₁</a> <a id="2624" href="Function.LeftInverse.html#2567" class="Bound">t₂</a><a id="2626" class="Symbol">)</a> <a id="2628" class="Symbol">→</a> <a id="2630" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2634" class="Symbol">_</a>
|
||
<a id="2636" href="Function.LeftInverse.html#2540" class="Function">RightInverse</a> <a id="2649" href="Function.LeftInverse.html#2649" class="Bound">From</a> <a id="2654" href="Function.LeftInverse.html#2654" class="Bound">To</a> <a id="2657" class="Symbol">=</a> <a id="2659" href="Function.LeftInverse.html#1485" class="Record">LeftInverse</a> <a id="2671" href="Function.LeftInverse.html#2654" class="Bound">To</a> <a id="2674" href="Function.LeftInverse.html#2649" class="Bound">From</a>
|
||
|
||
<a id="2680" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="2753" class="Comment">-- The set of all left inverses from one set to another (i.e. left</a>
|
||
<a id="2820" class="Comment">-- inverses with propositional equality).</a>
|
||
<a id="2862" class="Comment">--</a>
|
||
<a id="2865" class="Comment">-- Read A ↞ B as "surjection from B to A".</a>
|
||
|
||
<a id="2909" class="Keyword">infix</a> <a id="2915" class="Number">3</a> <a id="2917" href="Function.LeftInverse.html#2922" class="Function Operator">_↞_</a>
|
||
|
||
<a id="_↞_"></a><a id="2922" href="Function.LeftInverse.html#2922" class="Function Operator">_↞_</a> <a id="2926" class="Symbol">:</a> <a id="2928" class="Symbol">∀</a> <a id="2930" class="Symbol">{</a><a id="2931" href="Function.LeftInverse.html#2931" class="Bound">f</a> <a id="2933" href="Function.LeftInverse.html#2933" class="Bound">t</a><a id="2934" class="Symbol">}</a> <a id="2936" class="Symbol">→</a> <a id="2938" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2942" href="Function.LeftInverse.html#2931" class="Bound">f</a> <a id="2944" class="Symbol">→</a> <a id="2946" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2950" href="Function.LeftInverse.html#2933" class="Bound">t</a> <a id="2952" class="Symbol">→</a> <a id="2954" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2958" class="Symbol">_</a>
|
||
<a id="2960" href="Function.LeftInverse.html#2960" class="Bound">From</a> <a id="2965" href="Function.LeftInverse.html#2922" class="Function Operator">↞</a> <a id="2967" href="Function.LeftInverse.html#2967" class="Bound">To</a> <a id="2970" class="Symbol">=</a> <a id="2972" href="Function.LeftInverse.html#1485" class="Record">LeftInverse</a> <a id="2984" class="Symbol">(</a><a id="2985" href="Relation.Binary.PropositionalEquality.Properties.html#3981" class="Function">P.setoid</a> <a id="2994" href="Function.LeftInverse.html#2960" class="Bound">From</a><a id="2998" class="Symbol">)</a> <a id="3000" class="Symbol">(</a><a id="3001" href="Relation.Binary.PropositionalEquality.Properties.html#3981" class="Function">P.setoid</a> <a id="3010" href="Function.LeftInverse.html#2967" class="Bound">To</a><a id="3012" class="Symbol">)</a>
|
||
|
||
<a id="leftInverse"></a><a id="3015" href="Function.LeftInverse.html#3015" class="Function">leftInverse</a> <a id="3027" class="Symbol">:</a> <a id="3029" class="Symbol">∀</a> <a id="3031" class="Symbol">{</a><a id="3032" href="Function.LeftInverse.html#3032" class="Bound">f</a> <a id="3034" href="Function.LeftInverse.html#3034" class="Bound">t</a><a id="3035" class="Symbol">}</a> <a id="3037" class="Symbol">{</a><a id="3038" href="Function.LeftInverse.html#3038" class="Bound">From</a> <a id="3043" class="Symbol">:</a> <a id="3045" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3049" href="Function.LeftInverse.html#3032" class="Bound">f</a><a id="3050" class="Symbol">}</a> <a id="3052" class="Symbol">{</a><a id="3053" href="Function.LeftInverse.html#3053" class="Bound">To</a> <a id="3056" class="Symbol">:</a> <a id="3058" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3062" href="Function.LeftInverse.html#3034" class="Bound">t</a><a id="3063" class="Symbol">}</a> <a id="3065" class="Symbol">→</a>
|
||
<a id="3081" class="Symbol">(</a><a id="3082" href="Function.LeftInverse.html#3082" class="Bound">to</a> <a id="3085" class="Symbol">:</a> <a id="3087" href="Function.LeftInverse.html#3038" class="Bound">From</a> <a id="3092" class="Symbol">→</a> <a id="3094" href="Function.LeftInverse.html#3053" class="Bound">To</a><a id="3096" class="Symbol">)</a> <a id="3098" class="Symbol">(</a><a id="3099" href="Function.LeftInverse.html#3099" class="Bound">from</a> <a id="3104" class="Symbol">:</a> <a id="3106" href="Function.LeftInverse.html#3053" class="Bound">To</a> <a id="3109" class="Symbol">→</a> <a id="3111" href="Function.LeftInverse.html#3038" class="Bound">From</a><a id="3115" class="Symbol">)</a> <a id="3117" class="Symbol">→</a>
|
||
<a id="3133" class="Symbol">(∀</a> <a id="3136" href="Function.LeftInverse.html#3136" class="Bound">x</a> <a id="3138" class="Symbol">→</a> <a id="3140" href="Function.LeftInverse.html#3099" class="Bound">from</a> <a id="3145" class="Symbol">(</a><a id="3146" href="Function.LeftInverse.html#3082" class="Bound">to</a> <a id="3149" href="Function.LeftInverse.html#3136" class="Bound">x</a><a id="3150" class="Symbol">)</a> <a id="3152" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="3154" href="Function.LeftInverse.html#3136" class="Bound">x</a><a id="3155" class="Symbol">)</a> <a id="3157" class="Symbol">→</a>
|
||
<a id="3173" href="Function.LeftInverse.html#3038" class="Bound">From</a> <a id="3178" href="Function.LeftInverse.html#2922" class="Function Operator">↞</a> <a id="3180" href="Function.LeftInverse.html#3053" class="Bound">To</a>
|
||
<a id="3183" href="Function.LeftInverse.html#3015" class="Function">leftInverse</a> <a id="3195" href="Function.LeftInverse.html#3195" class="Bound">to</a> <a id="3198" href="Function.LeftInverse.html#3198" class="Bound">from</a> <a id="3203" href="Function.LeftInverse.html#3203" class="Bound">invˡ</a> <a id="3208" class="Symbol">=</a> <a id="3210" class="Keyword">record</a>
|
||
<a id="3219" class="Symbol">{</a> <a id="3221" href="Function.LeftInverse.html#1635" class="Field">to</a> <a id="3237" class="Symbol">=</a> <a id="3239" href="Relation.Binary.PropositionalEquality.html#1807" class="Function">P.→-to-⟶</a> <a id="3248" href="Function.LeftInverse.html#3195" class="Bound">to</a>
|
||
<a id="3253" class="Symbol">;</a> <a id="3255" href="Function.LeftInverse.html#1667" class="Field">from</a> <a id="3271" class="Symbol">=</a> <a id="3273" href="Relation.Binary.PropositionalEquality.html#1807" class="Function">P.→-to-⟶</a> <a id="3282" href="Function.LeftInverse.html#3198" class="Bound">from</a>
|
||
<a id="3289" class="Symbol">;</a> <a id="3291" href="Function.LeftInverse.html#1699" class="Field">left-inverse-of</a> <a id="3307" class="Symbol">=</a> <a id="3309" href="Function.LeftInverse.html#3203" class="Bound">invˡ</a>
|
||
<a id="3316" class="Symbol">}</a>
|
||
|
||
<a id="3319" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="3392" class="Comment">-- Identity and composition.</a>
|
||
|
||
<a id="id"></a><a id="3422" href="Function.LeftInverse.html#3422" class="Function">id</a> <a id="3425" class="Symbol">:</a> <a id="3427" class="Symbol">∀</a> <a id="3429" class="Symbol">{</a><a id="3430" href="Function.LeftInverse.html#3430" class="Bound">s₁</a> <a id="3433" href="Function.LeftInverse.html#3433" class="Bound">s₂</a><a id="3435" class="Symbol">}</a> <a id="3437" class="Symbol">{</a><a id="3438" href="Function.LeftInverse.html#3438" class="Bound">S</a> <a id="3440" class="Symbol">:</a> <a id="3442" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a> <a id="3449" href="Function.LeftInverse.html#3430" class="Bound">s₁</a> <a id="3452" href="Function.LeftInverse.html#3433" class="Bound">s₂</a><a id="3454" class="Symbol">}</a> <a id="3456" class="Symbol">→</a> <a id="3458" href="Function.LeftInverse.html#1485" class="Record">LeftInverse</a> <a id="3470" href="Function.LeftInverse.html#3438" class="Bound">S</a> <a id="3472" href="Function.LeftInverse.html#3438" class="Bound">S</a>
|
||
<a id="3474" href="Function.LeftInverse.html#3422" class="Function">id</a> <a id="3477" class="Symbol">{</a><a id="3478" class="Argument">S</a> <a id="3480" class="Symbol">=</a> <a id="3482" href="Function.LeftInverse.html#3482" class="Bound">S</a><a id="3483" class="Symbol">}</a> <a id="3485" class="Symbol">=</a> <a id="3487" class="Keyword">record</a>
|
||
<a id="3496" class="Symbol">{</a> <a id="3498" href="Function.LeftInverse.html#1635" class="Field">to</a> <a id="3514" class="Symbol">=</a> <a id="3516" href="Function.Equality.html#1437" class="Function">Eq.id</a>
|
||
<a id="3524" class="Symbol">;</a> <a id="3526" href="Function.LeftInverse.html#1667" class="Field">from</a> <a id="3542" class="Symbol">=</a> <a id="3544" href="Function.Equality.html#1437" class="Function">Eq.id</a>
|
||
<a id="3552" class="Symbol">;</a> <a id="3554" href="Function.LeftInverse.html#1699" class="Field">left-inverse-of</a> <a id="3570" class="Symbol">=</a> <a id="3572" class="Symbol">λ</a> <a id="3574" href="Function.LeftInverse.html#3574" class="Bound">_</a> <a id="3576" class="Symbol">→</a> <a id="3578" href="Relation.Binary.Structures.html#1577" class="Function">Setoid.refl</a> <a id="3590" href="Function.LeftInverse.html#3482" class="Bound">S</a>
|
||
<a id="3594" class="Symbol">}</a>
|
||
|
||
<a id="3597" class="Keyword">infixr</a> <a id="3604" class="Number">9</a> <a id="3606" href="Function.LeftInverse.html#3611" class="Function Operator">_∘_</a>
|
||
|
||
<a id="_∘_"></a><a id="3611" href="Function.LeftInverse.html#3611" class="Function Operator">_∘_</a> <a id="3615" class="Symbol">:</a> <a id="3617" class="Symbol">∀</a> <a id="3619" class="Symbol">{</a><a id="3620" href="Function.LeftInverse.html#3620" class="Bound">f₁</a> <a id="3623" href="Function.LeftInverse.html#3623" class="Bound">f₂</a> <a id="3626" href="Function.LeftInverse.html#3626" class="Bound">m₁</a> <a id="3629" href="Function.LeftInverse.html#3629" class="Bound">m₂</a> <a id="3632" href="Function.LeftInverse.html#3632" class="Bound">t₁</a> <a id="3635" href="Function.LeftInverse.html#3635" class="Bound">t₂</a><a id="3637" class="Symbol">}</a>
|
||
<a id="3647" class="Symbol">{</a><a id="3648" href="Function.LeftInverse.html#3648" class="Bound">F</a> <a id="3650" class="Symbol">:</a> <a id="3652" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a> <a id="3659" href="Function.LeftInverse.html#3620" class="Bound">f₁</a> <a id="3662" href="Function.LeftInverse.html#3623" class="Bound">f₂</a><a id="3664" class="Symbol">}</a> <a id="3666" class="Symbol">{</a><a id="3667" href="Function.LeftInverse.html#3667" class="Bound">M</a> <a id="3669" class="Symbol">:</a> <a id="3671" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a> <a id="3678" href="Function.LeftInverse.html#3626" class="Bound">m₁</a> <a id="3681" href="Function.LeftInverse.html#3629" class="Bound">m₂</a><a id="3683" class="Symbol">}</a> <a id="3685" class="Symbol">{</a><a id="3686" href="Function.LeftInverse.html#3686" class="Bound">T</a> <a id="3688" class="Symbol">:</a> <a id="3690" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a> <a id="3697" href="Function.LeftInverse.html#3632" class="Bound">t₁</a> <a id="3700" href="Function.LeftInverse.html#3635" class="Bound">t₂</a><a id="3702" class="Symbol">}</a> <a id="3704" class="Symbol">→</a>
|
||
<a id="3712" href="Function.LeftInverse.html#1485" class="Record">LeftInverse</a> <a id="3724" href="Function.LeftInverse.html#3667" class="Bound">M</a> <a id="3726" href="Function.LeftInverse.html#3686" class="Bound">T</a> <a id="3728" class="Symbol">→</a> <a id="3730" href="Function.LeftInverse.html#1485" class="Record">LeftInverse</a> <a id="3742" href="Function.LeftInverse.html#3648" class="Bound">F</a> <a id="3744" href="Function.LeftInverse.html#3667" class="Bound">M</a> <a id="3746" class="Symbol">→</a> <a id="3748" href="Function.LeftInverse.html#1485" class="Record">LeftInverse</a> <a id="3760" href="Function.LeftInverse.html#3648" class="Bound">F</a> <a id="3762" href="Function.LeftInverse.html#3686" class="Bound">T</a>
|
||
<a id="3764" href="Function.LeftInverse.html#3611" class="Function Operator">_∘_</a> <a id="3768" class="Symbol">{</a><a id="3769" class="Argument">F</a> <a id="3771" class="Symbol">=</a> <a id="3773" href="Function.LeftInverse.html#3773" class="Bound">F</a><a id="3774" class="Symbol">}</a> <a id="3776" href="Function.LeftInverse.html#3776" class="Bound">f</a> <a id="3778" href="Function.LeftInverse.html#3778" class="Bound">g</a> <a id="3780" class="Symbol">=</a> <a id="3782" class="Keyword">record</a>
|
||
<a id="3791" class="Symbol">{</a> <a id="3793" href="Function.LeftInverse.html#1635" class="Field">to</a> <a id="3809" class="Symbol">=</a> <a id="3811" href="Function.LeftInverse.html#1635" class="Field">to</a> <a id="3816" href="Function.LeftInverse.html#3776" class="Bound">f</a> <a id="3818" href="Function.LeftInverse.html#708" class="Function Operator">⟪∘⟫</a> <a id="3822" href="Function.LeftInverse.html#1635" class="Field">to</a> <a id="3827" href="Function.LeftInverse.html#3778" class="Bound">g</a>
|
||
<a id="3831" class="Symbol">;</a> <a id="3833" href="Function.LeftInverse.html#1667" class="Field">from</a> <a id="3849" class="Symbol">=</a> <a id="3851" href="Function.LeftInverse.html#1667" class="Field">from</a> <a id="3856" href="Function.LeftInverse.html#3778" class="Bound">g</a> <a id="3858" href="Function.LeftInverse.html#708" class="Function Operator">⟪∘⟫</a> <a id="3862" href="Function.LeftInverse.html#1667" class="Field">from</a> <a id="3867" href="Function.LeftInverse.html#3776" class="Bound">f</a>
|
||
<a id="3871" class="Symbol">;</a> <a id="3873" href="Function.LeftInverse.html#1699" class="Field">left-inverse-of</a> <a id="3889" class="Symbol">=</a> <a id="3891" class="Symbol">λ</a> <a id="3893" href="Function.LeftInverse.html#3893" class="Bound">x</a> <a id="3895" class="Symbol">→</a> <a id="3897" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
||
<a id="3909" href="Function.LeftInverse.html#1667" class="Field">from</a> <a id="3914" href="Function.LeftInverse.html#3778" class="Bound">g</a> <a id="3916" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="3920" class="Symbol">(</a><a id="3921" href="Function.LeftInverse.html#1667" class="Field">from</a> <a id="3926" href="Function.LeftInverse.html#3776" class="Bound">f</a> <a id="3928" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="3932" class="Symbol">(</a><a id="3933" href="Function.LeftInverse.html#1635" class="Field">to</a> <a id="3936" href="Function.LeftInverse.html#3776" class="Bound">f</a> <a id="3938" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="3942" class="Symbol">(</a><a id="3943" href="Function.LeftInverse.html#1635" class="Field">to</a> <a id="3946" href="Function.LeftInverse.html#3778" class="Bound">g</a> <a id="3948" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="3952" href="Function.LeftInverse.html#3893" class="Bound">x</a><a id="3953" class="Symbol">)))</a> <a id="3958" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3961" href="Function.Equality.html#1140" class="Field">Eq.cong</a> <a id="3969" class="Symbol">(</a><a id="3970" href="Function.LeftInverse.html#1667" class="Field">from</a> <a id="3975" href="Function.LeftInverse.html#3778" class="Bound">g</a><a id="3976" class="Symbol">)</a> <a id="3978" class="Symbol">(</a><a id="3979" href="Function.LeftInverse.html#1699" class="Field">left-inverse-of</a> <a id="3995" href="Function.LeftInverse.html#3776" class="Bound">f</a> <a id="3997" class="Symbol">(</a><a id="3998" href="Function.LeftInverse.html#1635" class="Field">to</a> <a id="4001" href="Function.LeftInverse.html#3778" class="Bound">g</a> <a id="4003" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="4007" href="Function.LeftInverse.html#3893" class="Bound">x</a><a id="4008" class="Symbol">))</a> <a id="4011" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="4019" href="Function.LeftInverse.html#1667" class="Field">from</a> <a id="4024" href="Function.LeftInverse.html#3778" class="Bound">g</a> <a id="4026" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="4030" class="Symbol">(</a><a id="4031" href="Function.LeftInverse.html#1635" class="Field">to</a> <a id="4034" href="Function.LeftInverse.html#3778" class="Bound">g</a> <a id="4036" href="Function.Equality.html#1073" class="Field Operator">⟨$⟩</a> <a id="4040" href="Function.LeftInverse.html#3893" class="Bound">x</a><a id="4041" class="Symbol">)</a> <a id="4068" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="4071" href="Function.LeftInverse.html#1699" class="Field">left-inverse-of</a> <a id="4087" href="Function.LeftInverse.html#3778" class="Bound">g</a> <a id="4089" href="Function.LeftInverse.html#3893" class="Bound">x</a> <a id="4091" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="4099" href="Function.LeftInverse.html#3893" class="Bound">x</a> <a id="4148" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
||
<a id="4152" class="Symbol">}</a>
|
||
<a id="4156" class="Keyword">where</a>
|
||
<a id="4164" class="Keyword">open</a> <a id="4169" href="Function.LeftInverse.html#1485" class="Module">LeftInverse</a>
|
||
<a id="4183" class="Keyword">open</a> <a id="4188" href="Relation.Binary.Reasoning.Setoid.html" class="Module">EqReasoning</a> <a id="4200" href="Function.LeftInverse.html#3773" class="Bound">F</a>
|
||
</pre></body></html> |