mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
154 lines
38 KiB
HTML
154 lines
38 KiB
HTML
|
<!DOCTYPE HTML>
|
|||
|
<html><head><meta charset="utf-8"><title>Function.Structures</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">-- Structures for types of functions</a>
|
|||
|
<a id="143" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
|
|||
|
<a id="217" class="Comment">-- The contents of this file should usually be accessed from `Function`.</a>
|
|||
|
|
|||
|
<a id="291" class="Symbol">{-#</a> <a id="295" class="Keyword">OPTIONS</a> <a id="303" class="Pragma">--cubical-compatible</a> <a id="324" class="Pragma">--safe</a> <a id="331" class="Symbol">#-}</a>
|
|||
|
|
|||
|
<a id="336" class="Keyword">open</a> <a id="341" class="Keyword">import</a> <a id="348" href="Relation.Binary.html" class="Module">Relation.Binary</a>
|
|||
|
|
|||
|
<a id="365" class="Keyword">module</a> <a id="372" href="Function.Structures.html" class="Module">Function.Structures</a> <a id="392" class="Symbol">{</a><a id="393" href="Function.Structures.html#393" class="Bound">a</a> <a id="395" href="Function.Structures.html#395" class="Bound">b</a> <a id="397" href="Function.Structures.html#397" class="Bound">ℓ₁</a> <a id="400" href="Function.Structures.html#400" class="Bound">ℓ₂</a><a id="402" class="Symbol">}</a>
|
|||
|
<a id="406" class="Symbol">{</a><a id="407" href="Function.Structures.html#407" class="Bound">A</a> <a id="409" class="Symbol">:</a> <a id="411" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="415" href="Function.Structures.html#393" class="Bound">a</a><a id="416" class="Symbol">}</a> <a id="418" class="Symbol">(</a><a id="419" href="Function.Structures.html#419" class="Bound Operator">_≈₁_</a> <a id="424" class="Symbol">:</a> <a id="426" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="430" href="Function.Structures.html#407" class="Bound">A</a> <a id="432" href="Function.Structures.html#397" class="Bound">ℓ₁</a><a id="434" class="Symbol">)</a> <a id="436" class="Comment">-- Equality over the domain</a>
|
|||
|
<a id="466" class="Symbol">{</a><a id="467" href="Function.Structures.html#467" class="Bound">B</a> <a id="469" class="Symbol">:</a> <a id="471" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="475" href="Function.Structures.html#395" class="Bound">b</a><a id="476" class="Symbol">}</a> <a id="478" class="Symbol">(</a><a id="479" href="Function.Structures.html#479" class="Bound Operator">_≈₂_</a> <a id="484" class="Symbol">:</a> <a id="486" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="490" href="Function.Structures.html#467" class="Bound">B</a> <a id="492" href="Function.Structures.html#400" class="Bound">ℓ₂</a><a id="494" class="Symbol">)</a> <a id="496" class="Comment">-- Equality over the codomain</a>
|
|||
|
<a id="528" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="535" class="Keyword">open</a> <a id="540" class="Keyword">import</a> <a id="547" href="Data.Product.html" class="Module">Data.Product</a> <a id="560" class="Keyword">using</a> <a id="566" class="Symbol">(</a><a id="567" href="Data.Product.html#1378" class="Function">∃</a><a id="568" class="Symbol">;</a> <a id="570" href="Data.Product.html#1176" class="Function Operator">_×_</a><a id="573" class="Symbol">;</a> <a id="575" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">_,_</a><a id="578" class="Symbol">)</a>
|
|||
|
<a id="580" class="Keyword">open</a> <a id="585" class="Keyword">import</a> <a id="592" href="Function.Base.html" class="Module">Function.Base</a>
|
|||
|
<a id="606" class="Keyword">open</a> <a id="611" class="Keyword">import</a> <a id="618" href="Function.Definitions.html" class="Module">Function.Definitions</a>
|
|||
|
<a id="639" class="Keyword">open</a> <a id="644" class="Keyword">import</a> <a id="651" href="Level.html" class="Module">Level</a> <a id="657" class="Keyword">using</a> <a id="663" class="Symbol">(</a><a id="664" href="Agda.Primitive.html#804" class="Primitive Operator">_⊔_</a><a id="667" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="670" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="743" class="Comment">-- One element structures</a>
|
|||
|
<a id="769" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
|
|||
|
<a id="843" class="Keyword">record</a> <a id="IsCongruent"></a><a id="850" href="Function.Structures.html#850" class="Record">IsCongruent</a> <a id="862" class="Symbol">(</a><a id="863" href="Function.Structures.html#863" class="Bound">f</a> <a id="865" class="Symbol">:</a> <a id="867" href="Function.Structures.html#407" class="Bound">A</a> <a id="869" class="Symbol">→</a> <a id="871" href="Function.Structures.html#467" class="Bound">B</a><a id="872" class="Symbol">)</a> <a id="874" class="Symbol">:</a> <a id="876" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="880" class="Symbol">(</a><a id="881" href="Function.Structures.html#393" class="Bound">a</a> <a id="883" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="885" href="Function.Structures.html#395" class="Bound">b</a> <a id="887" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="889" href="Function.Structures.html#397" class="Bound">ℓ₁</a> <a id="892" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="894" href="Function.Structures.html#400" class="Bound">ℓ₂</a><a id="896" class="Symbol">)</a> <a id="898" class="Keyword">where</a>
|
|||
|
<a id="906" class="Keyword">field</a>
|
|||
|
<a id="IsCongruent.cong"></a><a id="916" href="Function.Structures.html#916" class="Field">cong</a> <a id="931" class="Symbol">:</a> <a id="933" href="Function.Definitions.html#812" class="Function">Congruent</a> <a id="943" href="Function.Structures.html#419" class="Bound Operator">_≈₁_</a> <a id="948" href="Function.Structures.html#479" class="Bound Operator">_≈₂_</a> <a id="953" href="Function.Structures.html#863" class="Bound">f</a>
|
|||
|
<a id="IsCongruent.isEquivalence₁"></a><a id="959" href="Function.Structures.html#959" class="Field">isEquivalence₁</a> <a id="974" class="Symbol">:</a> <a id="976" href="Relation.Binary.Structures.html#1531" class="Record">IsEquivalence</a> <a id="990" href="Function.Structures.html#419" class="Bound Operator">_≈₁_</a>
|
|||
|
<a id="IsCongruent.isEquivalence₂"></a><a id="999" href="Function.Structures.html#999" class="Field">isEquivalence₂</a> <a id="1014" class="Symbol">:</a> <a id="1016" href="Relation.Binary.Structures.html#1531" class="Record">IsEquivalence</a> <a id="1030" href="Function.Structures.html#479" class="Bound Operator">_≈₂_</a>
|
|||
|
|
|||
|
<a id="1038" class="Keyword">module</a> <a id="IsCongruent.Eq₁"></a><a id="1045" href="Function.Structures.html#1045" class="Module">Eq₁</a> <a id="1049" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="IsCongruent.Eq₁.setoid"></a><a id="1060" href="Function.Structures.html#1060" class="Function">setoid</a> <a id="1067" class="Symbol">:</a> <a id="1069" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a> <a id="1076" href="Function.Structures.html#393" class="Bound">a</a> <a id="1078" href="Function.Structures.html#397" class="Bound">ℓ₁</a>
|
|||
|
<a id="1085" href="Function.Structures.html#1060" class="Function">setoid</a> <a id="1092" class="Symbol">=</a> <a id="1094" class="Keyword">record</a>
|
|||
|
<a id="1107" class="Symbol">{</a> <a id="1109" href="Relation.Binary.Bundles.html#1141" class="Field">isEquivalence</a> <a id="1123" class="Symbol">=</a> <a id="1125" href="Function.Structures.html#959" class="Field">isEquivalence₁</a>
|
|||
|
<a id="1146" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="1153" class="Keyword">open</a> <a id="1158" href="Relation.Binary.Bundles.html#1018" class="Module">Setoid</a> <a id="1165" href="Function.Structures.html#1060" class="Function">setoid</a> <a id="1172" class="Keyword">public</a>
|
|||
|
|
|||
|
<a id="1182" class="Keyword">module</a> <a id="IsCongruent.Eq₂"></a><a id="1189" href="Function.Structures.html#1189" class="Module">Eq₂</a> <a id="1193" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="IsCongruent.Eq₂.setoid"></a><a id="1204" href="Function.Structures.html#1204" class="Function">setoid</a> <a id="1211" class="Symbol">:</a> <a id="1213" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a> <a id="1220" href="Function.Structures.html#395" class="Bound">b</a> <a id="1222" href="Function.Structures.html#400" class="Bound">ℓ₂</a>
|
|||
|
<a id="1229" href="Function.Structures.html#1204" class="Function">setoid</a> <a id="1236" class="Symbol">=</a> <a id="1238" class="Keyword">record</a>
|
|||
|
<a id="1251" class="Symbol">{</a> <a id="1253" href="Relation.Binary.Bundles.html#1141" class="Field">isEquivalence</a> <a id="1267" class="Symbol">=</a> <a id="1269" href="Function.Structures.html#999" class="Field">isEquivalence₂</a>
|
|||
|
<a id="1290" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="1297" class="Keyword">open</a> <a id="1302" href="Relation.Binary.Bundles.html#1018" class="Module">Setoid</a> <a id="1309" href="Function.Structures.html#1204" class="Function">setoid</a> <a id="1316" class="Keyword">public</a>
|
|||
|
|
|||
|
|
|||
|
<a id="1325" class="Keyword">record</a> <a id="IsInjection"></a><a id="1332" href="Function.Structures.html#1332" class="Record">IsInjection</a> <a id="1344" class="Symbol">(</a><a id="1345" href="Function.Structures.html#1345" class="Bound">f</a> <a id="1347" class="Symbol">:</a> <a id="1349" href="Function.Structures.html#407" class="Bound">A</a> <a id="1351" class="Symbol">→</a> <a id="1353" href="Function.Structures.html#467" class="Bound">B</a><a id="1354" class="Symbol">)</a> <a id="1356" class="Symbol">:</a> <a id="1358" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1362" class="Symbol">(</a><a id="1363" href="Function.Structures.html#393" class="Bound">a</a> <a id="1365" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1367" href="Function.Structures.html#395" class="Bound">b</a> <a id="1369" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1371" href="Function.Structures.html#397" class="Bound">ℓ₁</a> <a id="1374" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1376" href="Function.Structures.html#400" class="Bound">ℓ₂</a><a id="1378" class="Symbol">)</a> <a id="1380" class="Keyword">where</a>
|
|||
|
<a id="1388" class="Keyword">field</a>
|
|||
|
<a id="IsInjection.isCongruent"></a><a id="1398" href="Function.Structures.html#1398" class="Field">isCongruent</a> <a id="1410" class="Symbol">:</a> <a id="1412" href="Function.Structures.html#850" class="Record">IsCongruent</a> <a id="1424" href="Function.Structures.html#1345" class="Bound">f</a>
|
|||
|
<a id="IsInjection.injective"></a><a id="1430" href="Function.Structures.html#1430" class="Field">injective</a> <a id="1442" class="Symbol">:</a> <a id="1444" href="Function.Definitions.html#898" class="Function">Injective</a> <a id="1454" href="Function.Structures.html#419" class="Bound Operator">_≈₁_</a> <a id="1459" href="Function.Structures.html#479" class="Bound Operator">_≈₂_</a> <a id="1464" href="Function.Structures.html#1345" class="Bound">f</a>
|
|||
|
|
|||
|
<a id="1469" class="Keyword">open</a> <a id="1474" href="Function.Structures.html#850" class="Module">IsCongruent</a> <a id="1486" href="Function.Structures.html#1398" class="Field">isCongruent</a> <a id="1498" class="Keyword">public</a>
|
|||
|
|
|||
|
|
|||
|
<a id="1507" class="Keyword">record</a> <a id="IsSurjection"></a><a id="1514" href="Function.Structures.html#1514" class="Record">IsSurjection</a> <a id="1527" class="Symbol">(</a><a id="1528" href="Function.Structures.html#1528" class="Bound">f</a> <a id="1530" class="Symbol">:</a> <a id="1532" href="Function.Structures.html#407" class="Bound">A</a> <a id="1534" class="Symbol">→</a> <a id="1536" href="Function.Structures.html#467" class="Bound">B</a><a id="1537" class="Symbol">)</a> <a id="1539" class="Symbol">:</a> <a id="1541" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1545" class="Symbol">(</a><a id="1546" href="Function.Structures.html#393" class="Bound">a</a> <a id="1548" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1550" href="Function.Structures.html#395" class="Bound">b</a> <a id="1552" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1554" href="Function.Structures.html#397" class="Bound">ℓ₁</a> <a id="1557" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1559" href="Function.Structures.html#400" class="Bound">ℓ₂</a><a id="1561" class="Symbol">)</a> <a id="1563" class="Keyword">where</a>
|
|||
|
<a id="1571" class="Keyword">field</a>
|
|||
|
<a id="IsSurjection.isCongruent"></a><a id="1581" href="Function.Structures.html#1581" class="Field">isCongruent</a> <a id="1593" class="Symbol">:</a> <a id="1595" href="Function.Structures.html#850" class="Record">IsCongruent</a> <a id="1607" href="Function.Structures.html#1528" class="Bound">f</a>
|
|||
|
<a id="IsSurjection.surjective"></a><a id="1613" href="Function.Structures.html#1613" class="Field">surjective</a> <a id="1625" class="Symbol">:</a> <a id="1627" href="Function.Definitions.Core2.html#672" class="Function">Surjective</a> <a id="1638" href="Function.Structures.html#419" class="Bound Operator">_≈₁_</a> <a id="1643" href="Function.Structures.html#479" class="Bound Operator">_≈₂_</a> <a id="1648" href="Function.Structures.html#1528" class="Bound">f</a>
|
|||
|
|
|||
|
<a id="1653" class="Keyword">open</a> <a id="1658" href="Function.Structures.html#850" class="Module">IsCongruent</a> <a id="1670" href="Function.Structures.html#1581" class="Field">isCongruent</a> <a id="1682" class="Keyword">public</a>
|
|||
|
|
|||
|
|
|||
|
<a id="1691" class="Keyword">record</a> <a id="IsBijection"></a><a id="1698" href="Function.Structures.html#1698" class="Record">IsBijection</a> <a id="1710" class="Symbol">(</a><a id="1711" href="Function.Structures.html#1711" class="Bound">f</a> <a id="1713" class="Symbol">:</a> <a id="1715" href="Function.Structures.html#407" class="Bound">A</a> <a id="1717" class="Symbol">→</a> <a id="1719" href="Function.Structures.html#467" class="Bound">B</a><a id="1720" class="Symbol">)</a> <a id="1722" class="Symbol">:</a> <a id="1724" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1728" class="Symbol">(</a><a id="1729" href="Function.Structures.html#393" class="Bound">a</a> <a id="1731" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1733" href="Function.Structures.html#395" class="Bound">b</a> <a id="1735" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1737" href="Function.Structures.html#397" class="Bound">ℓ₁</a> <a id="1740" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1742" href="Function.Structures.html#400" class="Bound">ℓ₂</a><a id="1744" class="Symbol">)</a> <a id="1746" class="Keyword">where</a>
|
|||
|
<a id="1754" class="Keyword">field</a>
|
|||
|
<a id="IsBijection.isInjection"></a><a id="1764" href="Function.Structures.html#1764" class="Field">isInjection</a> <a id="1776" class="Symbol">:</a> <a id="1778" href="Function.Structures.html#1332" class="Record">IsInjection</a> <a id="1790" href="Function.Structures.html#1711" class="Bound">f</a>
|
|||
|
<a id="IsBijection.surjective"></a><a id="1796" href="Function.Structures.html#1796" class="Field">surjective</a> <a id="1808" class="Symbol">:</a> <a id="1810" href="Function.Definitions.Core2.html#672" class="Function">Surjective</a> <a id="1821" href="Function.Structures.html#419" class="Bound Operator">_≈₁_</a> <a id="1826" href="Function.Structures.html#479" class="Bound Operator">_≈₂_</a> <a id="1831" href="Function.Structures.html#1711" class="Bound">f</a>
|
|||
|
|
|||
|
<a id="1836" class="Keyword">open</a> <a id="1841" href="Function.Structures.html#1332" class="Module">IsInjection</a> <a id="1853" href="Function.Structures.html#1764" class="Field">isInjection</a> <a id="1865" class="Keyword">public</a>
|
|||
|
|
|||
|
<a id="IsBijection.bijective"></a><a id="1875" href="Function.Structures.html#1875" class="Function">bijective</a> <a id="1885" class="Symbol">:</a> <a id="1887" href="Function.Definitions.html#1028" class="Function">Bijective</a> <a id="1897" href="Function.Structures.html#419" class="Bound Operator">_≈₁_</a> <a id="1902" href="Function.Structures.html#479" class="Bound Operator">_≈₂_</a> <a id="1907" href="Function.Structures.html#1711" class="Bound">f</a>
|
|||
|
<a id="1911" href="Function.Structures.html#1875" class="Function">bijective</a> <a id="1921" class="Symbol">=</a> <a id="1923" href="Function.Structures.html#1430" class="Function">injective</a> <a id="1933" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="1935" href="Function.Structures.html#1796" class="Field">surjective</a>
|
|||
|
|
|||
|
<a id="IsBijection.isSurjection"></a><a id="1949" href="Function.Structures.html#1949" class="Function">isSurjection</a> <a id="1962" class="Symbol">:</a> <a id="1964" href="Function.Structures.html#1514" class="Record">IsSurjection</a> <a id="1977" href="Function.Structures.html#1711" class="Bound">f</a>
|
|||
|
<a id="1981" href="Function.Structures.html#1949" class="Function">isSurjection</a> <a id="1994" class="Symbol">=</a> <a id="1996" class="Keyword">record</a>
|
|||
|
<a id="2007" class="Symbol">{</a> <a id="2009" href="Function.Structures.html#1581" class="Field">isCongruent</a> <a id="2021" class="Symbol">=</a> <a id="2023" href="Function.Structures.html#1398" class="Function">isCongruent</a>
|
|||
|
<a id="2039" class="Symbol">;</a> <a id="2041" href="Function.Structures.html#1613" class="Field">surjective</a> <a id="2053" class="Symbol">=</a> <a id="2055" href="Function.Structures.html#1796" class="Field">surjective</a>
|
|||
|
<a id="2070" class="Symbol">}</a>
|
|||
|
|
|||
|
|
|||
|
<a id="2074" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="2147" class="Comment">-- Two element structures</a>
|
|||
|
<a id="2173" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
|
|||
|
<a id="2247" class="Keyword">record</a> <a id="IsLeftInverse"></a><a id="2254" href="Function.Structures.html#2254" class="Record">IsLeftInverse</a> <a id="2268" class="Symbol">(</a><a id="2269" href="Function.Structures.html#2269" class="Bound">f</a> <a id="2271" class="Symbol">:</a> <a id="2273" href="Function.Structures.html#407" class="Bound">A</a> <a id="2275" class="Symbol">→</a> <a id="2277" href="Function.Structures.html#467" class="Bound">B</a><a id="2278" class="Symbol">)</a> <a id="2280" class="Symbol">(</a><a id="2281" href="Function.Structures.html#2281" class="Bound">g</a> <a id="2283" class="Symbol">:</a> <a id="2285" href="Function.Structures.html#467" class="Bound">B</a> <a id="2287" class="Symbol">→</a> <a id="2289" href="Function.Structures.html#407" class="Bound">A</a><a id="2290" class="Symbol">)</a> <a id="2292" class="Symbol">:</a> <a id="2294" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2298" class="Symbol">(</a><a id="2299" href="Function.Structures.html#393" class="Bound">a</a> <a id="2301" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="2303" href="Function.Structures.html#395" class="Bound">b</a> <a id="2305" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="2307" href="Function.Structures.html#397" class="Bound">ℓ₁</a> <a id="2310" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="2312" href="Function.Structures.html#400" class="Bound">ℓ₂</a><a id="2314" class="Symbol">)</a> <a id="2316" class="Keyword">where</a>
|
|||
|
<a id="2324" class="Keyword">field</a>
|
|||
|
<a id="IsLeftInverse.isCongruent"></a><a id="2334" href="Function.Structures.html#2334" class="Field">isCongruent</a> <a id="2347" class="Symbol">:</a> <a id="2349" href="Function.Structures.html#850" class="Record">IsCongruent</a> <a id="2361" href="Function.Structures.html#2269" class="Bound">f</a>
|
|||
|
<a id="IsLeftInverse.cong₂"></a><a id="2367" href="Function.Structures.html#2367" class="Field">cong₂</a> <a id="2380" class="Symbol">:</a> <a id="2382" href="Function.Definitions.html#812" class="Function">Congruent</a> <a id="2392" href="Function.Structures.html#479" class="Bound Operator">_≈₂_</a> <a id="2397" href="Function.Structures.html#419" class="Bound Operator">_≈₁_</a> <a id="2402" href="Function.Structures.html#2281" class="Bound">g</a>
|
|||
|
<a id="IsLeftInverse.inverseˡ"></a><a id="2408" href="Function.Structures.html#2408" class="Field">inverseˡ</a> <a id="2421" class="Symbol">:</a> <a id="2423" href="Function.Definitions.Core2.html#827" class="Function">Inverseˡ</a> <a id="2432" href="Function.Structures.html#419" class="Bound Operator">_≈₁_</a> <a id="2437" href="Function.Structures.html#479" class="Bound Operator">_≈₂_</a> <a id="2442" href="Function.Structures.html#2269" class="Bound">f</a> <a id="2444" href="Function.Structures.html#2281" class="Bound">g</a>
|
|||
|
|
|||
|
<a id="2449" class="Keyword">open</a> <a id="2454" href="Function.Structures.html#850" class="Module">IsCongruent</a> <a id="2466" href="Function.Structures.html#2334" class="Field">isCongruent</a> <a id="2478" class="Keyword">public</a>
|
|||
|
<a id="2489" class="Keyword">renaming</a> <a id="2498" class="Symbol">(</a><a id="2499" href="Function.Structures.html#916" class="Field">cong</a> <a id="2504" class="Symbol">to</a> <a id="2507" class="Field">cong₁</a><a id="2512" class="Symbol">)</a>
|
|||
|
|
|||
|
|
|||
|
<a id="2516" class="Keyword">record</a> <a id="IsRightInverse"></a><a id="2523" href="Function.Structures.html#2523" class="Record">IsRightInverse</a> <a id="2538" class="Symbol">(</a><a id="2539" href="Function.Structures.html#2539" class="Bound">f</a> <a id="2541" class="Symbol">:</a> <a id="2543" href="Function.Structures.html#407" class="Bound">A</a> <a id="2545" class="Symbol">→</a> <a id="2547" href="Function.Structures.html#467" class="Bound">B</a><a id="2548" class="Symbol">)</a> <a id="2550" class="Symbol">(</a><a id="2551" href="Function.Structures.html#2551" class="Bound">g</a> <a id="2553" class="Symbol">:</a> <a id="2555" href="Function.Structures.html#467" class="Bound">B</a> <a id="2557" class="Symbol">→</a> <a id="2559" href="Function.Structures.html#407" class="Bound">A</a><a id="2560" class="Symbol">)</a> <a id="2562" class="Symbol">:</a> <a id="2564" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2568" class="Symbol">(</a><a id="2569" href="Function.Structures.html#393" class="Bound">a</a> <a id="2571" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="2573" href="Function.Structures.html#395" class="Bound">b</a> <a id="2575" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="2577" href="Function.Structures.html#397" class="Bound">ℓ₁</a> <a id="2580" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="2582" href="Function.Structures.html#400" class="Bound">ℓ₂</a><a id="2584" class="Symbol">)</a> <a id="2586" class="Keyword">where</a>
|
|||
|
<a id="2594" class="Keyword">field</a>
|
|||
|
<a id="IsRightInverse.isCongruent"></a><a id="2604" href="Function.Structures.html#2604" class="Field">isCongruent</a> <a id="2616" class="Symbol">:</a> <a id="2618" href="Function.Structures.html#850" class="Record">IsCongruent</a> <a id="2630" href="Function.Structures.html#2539" class="Bound">f</a>
|
|||
|
<a id="IsRightInverse.cong₂"></a><a id="2636" href="Function.Structures.html#2636" class="Field">cong₂</a> <a id="2648" class="Symbol">:</a> <a id="2650" href="Function.Definitions.html#812" class="Function">Congruent</a> <a id="2660" href="Function.Structures.html#479" class="Bound Operator">_≈₂_</a> <a id="2665" href="Function.Structures.html#419" class="Bound Operator">_≈₁_</a> <a id="2670" href="Function.Structures.html#2551" class="Bound">g</a>
|
|||
|
<a id="IsRightInverse.inverseʳ"></a><a id="2676" href="Function.Structures.html#2676" class="Field">inverseʳ</a> <a id="2688" class="Symbol">:</a> <a id="2690" href="Function.Definitions.Core1.html#684" class="Function">Inverseʳ</a> <a id="2699" href="Function.Structures.html#419" class="Bound Operator">_≈₁_</a> <a id="2704" href="Function.Structures.html#479" class="Bound Operator">_≈₂_</a> <a id="2709" href="Function.Structures.html#2539" class="Bound">f</a> <a id="2711" href="Function.Structures.html#2551" class="Bound">g</a>
|
|||
|
|
|||
|
<a id="2716" class="Keyword">open</a> <a id="2721" href="Function.Structures.html#850" class="Module">IsCongruent</a> <a id="2733" href="Function.Structures.html#2604" class="Field">isCongruent</a> <a id="2745" class="Keyword">public</a>
|
|||
|
<a id="2756" class="Keyword">renaming</a> <a id="2765" class="Symbol">(</a><a id="2766" href="Function.Structures.html#916" class="Field">cong</a> <a id="2771" class="Symbol">to</a> <a id="2774" class="Field">cong₁</a><a id="2779" class="Symbol">)</a>
|
|||
|
|
|||
|
|
|||
|
<a id="2783" class="Keyword">record</a> <a id="IsInverse"></a><a id="2790" href="Function.Structures.html#2790" class="Record">IsInverse</a> <a id="2800" class="Symbol">(</a><a id="2801" href="Function.Structures.html#2801" class="Bound">f</a> <a id="2803" class="Symbol">:</a> <a id="2805" href="Function.Structures.html#407" class="Bound">A</a> <a id="2807" class="Symbol">→</a> <a id="2809" href="Function.Structures.html#467" class="Bound">B</a><a id="2810" class="Symbol">)</a> <a id="2812" class="Symbol">(</a><a id="2813" href="Function.Structures.html#2813" class="Bound">g</a> <a id="2815" class="Symbol">:</a> <a id="2817" href="Function.Structures.html#467" class="Bound">B</a> <a id="2819" class="Symbol">→</a> <a id="2821" href="Function.Structures.html#407" class="Bound">A</a><a id="2822" class="Symbol">)</a> <a id="2824" class="Symbol">:</a> <a id="2826" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2830" class="Symbol">(</a><a id="2831" href="Function.Structures.html#393" class="Bound">a</a> <a id="2833" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="2835" href="Function.Structures.html#395" class="Bound">b</a> <a id="2837" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="2839" href="Function.Structures.html#397" class="Bound">ℓ₁</a> <a id="2842" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="2844" href="Function.Structures.html#400" class="Bound">ℓ₂</a><a id="2846" class="Symbol">)</a> <a id="2848" class="Keyword">where</a>
|
|||
|
<a id="2856" class="Keyword">field</a>
|
|||
|
<a id="IsInverse.isLeftInverse"></a><a id="2866" href="Function.Structures.html#2866" class="Field">isLeftInverse</a> <a id="2880" class="Symbol">:</a> <a id="2882" href="Function.Structures.html#2254" class="Record">IsLeftInverse</a> <a id="2896" href="Function.Structures.html#2801" class="Bound">f</a> <a id="2898" href="Function.Structures.html#2813" class="Bound">g</a>
|
|||
|
<a id="IsInverse.inverseʳ"></a><a id="2904" href="Function.Structures.html#2904" class="Field">inverseʳ</a> <a id="2918" class="Symbol">:</a> <a id="2920" href="Function.Definitions.Core1.html#684" class="Function">Inverseʳ</a> <a id="2929" href="Function.Structures.html#419" class="Bound Operator">_≈₁_</a> <a id="2934" href="Function.Structures.html#479" class="Bound Operator">_≈₂_</a> <a id="2939" href="Function.Structures.html#2801" class="Bound">f</a> <a id="2941" href="Function.Structures.html#2813" class="Bound">g</a>
|
|||
|
|
|||
|
<a id="2946" class="Keyword">open</a> <a id="2951" href="Function.Structures.html#2254" class="Module">IsLeftInverse</a> <a id="2965" href="Function.Structures.html#2866" class="Field">isLeftInverse</a> <a id="2979" class="Keyword">public</a>
|
|||
|
|
|||
|
<a id="IsInverse.isRightInverse"></a><a id="2989" href="Function.Structures.html#2989" class="Function">isRightInverse</a> <a id="3004" class="Symbol">:</a> <a id="3006" href="Function.Structures.html#2523" class="Record">IsRightInverse</a> <a id="3021" href="Function.Structures.html#2801" class="Bound">f</a> <a id="3023" href="Function.Structures.html#2813" class="Bound">g</a>
|
|||
|
<a id="3027" href="Function.Structures.html#2989" class="Function">isRightInverse</a> <a id="3042" class="Symbol">=</a> <a id="3044" class="Keyword">record</a>
|
|||
|
<a id="3055" class="Symbol">{</a> <a id="3057" href="Function.Structures.html#2604" class="Field">isCongruent</a> <a id="3069" class="Symbol">=</a> <a id="3071" href="Function.Structures.html#2334" class="Function">isCongruent</a>
|
|||
|
<a id="3087" class="Symbol">;</a> <a id="3089" href="Function.Structures.html#2636" class="Field">cong₂</a> <a id="3101" class="Symbol">=</a> <a id="3103" href="Function.Structures.html#2367" class="Function">cong₂</a>
|
|||
|
<a id="3113" class="Symbol">;</a> <a id="3115" href="Function.Structures.html#2676" class="Field">inverseʳ</a> <a id="3127" class="Symbol">=</a> <a id="3129" href="Function.Structures.html#2904" class="Field">inverseʳ</a>
|
|||
|
<a id="3142" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="IsInverse.inverse"></a><a id="3147" href="Function.Structures.html#3147" class="Function">inverse</a> <a id="3155" class="Symbol">:</a> <a id="3157" href="Function.Definitions.html#1200" class="Function">Inverseᵇ</a> <a id="3166" href="Function.Structures.html#419" class="Bound Operator">_≈₁_</a> <a id="3171" href="Function.Structures.html#479" class="Bound Operator">_≈₂_</a> <a id="3176" href="Function.Structures.html#2801" class="Bound">f</a> <a id="3178" href="Function.Structures.html#2813" class="Bound">g</a>
|
|||
|
<a id="3182" href="Function.Structures.html#3147" class="Function">inverse</a> <a id="3190" class="Symbol">=</a> <a id="3192" href="Function.Structures.html#2408" class="Function">inverseˡ</a> <a id="3201" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="3203" href="Function.Structures.html#2904" class="Field">inverseʳ</a>
|
|||
|
|
|||
|
|
|||
|
<a id="3214" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="3287" class="Comment">-- Three element structures</a>
|
|||
|
<a id="3315" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
|
|||
|
<a id="3389" class="Keyword">record</a> <a id="IsBiEquivalence"></a><a id="3396" href="Function.Structures.html#3396" class="Record">IsBiEquivalence</a>
|
|||
|
<a id="3414" class="Symbol">(</a><a id="3415" href="Function.Structures.html#3415" class="Bound">f</a> <a id="3417" class="Symbol">:</a> <a id="3419" href="Function.Structures.html#407" class="Bound">A</a> <a id="3421" class="Symbol">→</a> <a id="3423" href="Function.Structures.html#467" class="Bound">B</a><a id="3424" class="Symbol">)</a> <a id="3426" class="Symbol">(</a><a id="3427" href="Function.Structures.html#3427" class="Bound">g₁</a> <a id="3430" class="Symbol">:</a> <a id="3432" href="Function.Structures.html#467" class="Bound">B</a> <a id="3434" class="Symbol">→</a> <a id="3436" href="Function.Structures.html#407" class="Bound">A</a><a id="3437" class="Symbol">)</a> <a id="3439" class="Symbol">(</a><a id="3440" href="Function.Structures.html#3440" class="Bound">g₂</a> <a id="3443" class="Symbol">:</a> <a id="3445" href="Function.Structures.html#467" class="Bound">B</a> <a id="3447" class="Symbol">→</a> <a id="3449" href="Function.Structures.html#407" class="Bound">A</a><a id="3450" class="Symbol">)</a> <a id="3452" class="Symbol">:</a> <a id="3454" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3458" class="Symbol">(</a><a id="3459" href="Function.Structures.html#393" class="Bound">a</a> <a id="3461" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="3463" href="Function.Structures.html#395" class="Bound">b</a> <a id="3465" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="3467" href="Function.Structures.html#397" class="Bound">ℓ₁</a> <a id="3470" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="3472" href="Function.Structures.html#400" class="Bound">ℓ₂</a><a id="3474" class="Symbol">)</a> <a id="3476" class="Keyword">where</a>
|
|||
|
<a id="3484" class="Keyword">field</a>
|
|||
|
<a id="IsBiEquivalence.f-isCongruent"></a><a id="3494" href="Function.Structures.html#3494" class="Field">f-isCongruent</a> <a id="3508" class="Symbol">:</a> <a id="3510" href="Function.Structures.html#850" class="Record">IsCongruent</a> <a id="3522" href="Function.Structures.html#3415" class="Bound">f</a>
|
|||
|
<a id="IsBiEquivalence.cong₂"></a><a id="3528" href="Function.Structures.html#3528" class="Field">cong₂</a> <a id="3542" class="Symbol">:</a> <a id="3544" href="Function.Definitions.html#812" class="Function">Congruent</a> <a id="3554" href="Function.Structures.html#479" class="Bound Operator">_≈₂_</a> <a id="3559" href="Function.Structures.html#419" class="Bound Operator">_≈₁_</a> <a id="3564" href="Function.Structures.html#3427" class="Bound">g₁</a>
|
|||
|
<a id="IsBiEquivalence.cong₃"></a><a id="3571" href="Function.Structures.html#3571" class="Field">cong₃</a> <a id="3585" class="Symbol">:</a> <a id="3587" href="Function.Definitions.html#812" class="Function">Congruent</a> <a id="3597" href="Function.Structures.html#479" class="Bound Operator">_≈₂_</a> <a id="3602" href="Function.Structures.html#419" class="Bound Operator">_≈₁_</a> <a id="3607" href="Function.Structures.html#3440" class="Bound">g₂</a>
|
|||
|
|
|||
|
<a id="3613" class="Keyword">open</a> <a id="3618" href="Function.Structures.html#850" class="Module">IsCongruent</a> <a id="3630" href="Function.Structures.html#3494" class="Field">f-isCongruent</a> <a id="3644" class="Keyword">public</a>
|
|||
|
<a id="3655" class="Keyword">renaming</a> <a id="3664" class="Symbol">(</a><a id="3665" href="Function.Structures.html#916" class="Field">cong</a> <a id="3670" class="Symbol">to</a> <a id="3673" class="Field">cong₁</a><a id="3678" class="Symbol">)</a>
|
|||
|
|
|||
|
|
|||
|
<a id="3682" class="Keyword">record</a> <a id="IsBiInverse"></a><a id="3689" href="Function.Structures.html#3689" class="Record">IsBiInverse</a>
|
|||
|
<a id="3703" class="Symbol">(</a><a id="3704" href="Function.Structures.html#3704" class="Bound">f</a> <a id="3706" class="Symbol">:</a> <a id="3708" href="Function.Structures.html#407" class="Bound">A</a> <a id="3710" class="Symbol">→</a> <a id="3712" href="Function.Structures.html#467" class="Bound">B</a><a id="3713" class="Symbol">)</a> <a id="3715" class="Symbol">(</a><a id="3716" href="Function.Structures.html#3716" class="Bound">g₁</a> <a id="3719" class="Symbol">:</a> <a id="3721" href="Function.Structures.html#467" class="Bound">B</a> <a id="3723" class="Symbol">→</a> <a id="3725" href="Function.Structures.html#407" class="Bound">A</a><a id="3726" class="Symbol">)</a> <a id="3728" class="Symbol">(</a><a id="3729" href="Function.Structures.html#3729" class="Bound">g₂</a> <a id="3732" class="Symbol">:</a> <a id="3734" href="Function.Structures.html#467" class="Bound">B</a> <a id="3736" class="Symbol">→</a> <a id="3738" href="Function.Structures.html#407" class="Bound">A</a><a id="3739" class="Symbol">)</a> <a id="3741" class="Symbol">:</a> <a id="3743" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3747" class="Symbol">(</a><a id="3748" href="Function.Structures.html#393" class="Bound">a</a> <a id="3750" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="3752" href="Function.Structures.html#395" class="Bound">b</a> <a id="3754" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="3756" href="Function.Structures.html#397" class="Bound">ℓ₁</a> <a id="3759" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="3761" href="Function.Structures.html#400" class="Bound">ℓ₂</a><a id="3763" class="Symbol">)</a> <a id="3765" class="Keyword">where</a>
|
|||
|
<a id="3773" class="Keyword">field</a>
|
|||
|
<a id="IsBiInverse.f-isCongruent"></a><a id="3783" href="Function.Structures.html#3783" class="Field">f-isCongruent</a> <a id="3797" class="Symbol">:</a> <a id="3799" href="Function.Structures.html#850" class="Record">IsCongruent</a> <a id="3811" href="Function.Structures.html#3704" class="Bound">f</a>
|
|||
|
<a id="IsBiInverse.cong₂"></a><a id="3817" href="Function.Structures.html#3817" class="Field">cong₂</a> <a id="3831" class="Symbol">:</a> <a id="3833" href="Function.Definitions.html#812" class="Function">Congruent</a> <a id="3843" href="Function.Structures.html#479" class="Bound Operator">_≈₂_</a> <a id="3848" href="Function.Structures.html#419" class="Bound Operator">_≈₁_</a> <a id="3853" href="Function.Structures.html#3716" class="Bound">g₁</a>
|
|||
|
<a id="IsBiInverse.inverseˡ"></a><a id="3860" href="Function.Structures.html#3860" class="Field">inverseˡ</a> <a id="3874" class="Symbol">:</a> <a id="3876" href="Function.Definitions.Core2.html#827" class="Function">Inverseˡ</a> <a id="3885" href="Function.Structures.html#419" class="Bound Operator">_≈₁_</a> <a id="3890" href="Function.Structures.html#479" class="Bound Operator">_≈₂_</a> <a id="3895" href="Function.Structures.html#3704" class="Bound">f</a> <a id="3897" href="Function.Structures.html#3716" class="Bound">g₁</a>
|
|||
|
<a id="IsBiInverse.cong₃"></a><a id="3904" href="Function.Structures.html#3904" class="Field">cong₃</a> <a id="3918" class="Symbol">:</a> <a id="3920" href="Function.Definitions.html#812" class="Function">Congruent</a> <a id="3930" href="Function.Structures.html#479" class="Bound Operator">_≈₂_</a> <a id="3935" href="Function.Structures.html#419" class="Bound Operator">_≈₁_</a> <a id="3940" href="Function.Structures.html#3729" class="Bound">g₂</a>
|
|||
|
<a id="IsBiInverse.inverseʳ"></a><a id="3947" href="Function.Structures.html#3947" class="Field">inverseʳ</a> <a id="3961" class="Symbol">:</a> <a id="3963" href="Function.Definitions.Core1.html#684" class="Function">Inverseʳ</a> <a id="3972" href="Function.Structures.html#419" class="Bound Operator">_≈₁_</a> <a id="3977" href="Function.Structures.html#479" class="Bound Operator">_≈₂_</a> <a id="3982" href="Function.Structures.html#3704" class="Bound">f</a> <a id="3984" href="Function.Structures.html#3729" class="Bound">g₂</a>
|
|||
|
|
|||
|
<a id="3990" class="Keyword">open</a> <a id="3995" href="Function.Structures.html#850" class="Module">IsCongruent</a> <a id="4007" href="Function.Structures.html#3783" class="Field">f-isCongruent</a> <a id="4021" class="Keyword">public</a>
|
|||
|
<a id="4032" class="Keyword">renaming</a> <a id="4041" class="Symbol">(</a><a id="4042" href="Function.Structures.html#916" class="Field">cong</a> <a id="4047" class="Symbol">to</a> <a id="4050" class="Field">cong₁</a><a id="4055" class="Symbol">)</a>
|
|||
|
</pre></body></html>
|