rachel.cafe/agda/Function.Definitions.html

49 lines
13 KiB
HTML
Raw Permalink Normal View History

2022-06-23 22:12:24 +02:00
<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Function.Definitions</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">-- Definitions for types of functions.</a>
<a id="145" class="Comment">------------------------------------------------------------------------</a>
<a id="219" class="Comment">-- The contents of this file should usually be accessed from `Function`.</a>
<a id="293" class="Symbol">{-#</a> <a id="297" class="Keyword">OPTIONS</a> <a id="305" class="Pragma">--without-K</a> <a id="317" class="Pragma">--safe</a> <a id="324" class="Symbol">#-}</a>
<a id="329" class="Keyword">open</a> <a id="334" class="Keyword">import</a> <a id="341" href="Relation.Binary.html" class="Module">Relation.Binary</a>
<a id="358" class="Keyword">module</a> <a id="365" href="Function.Definitions.html" class="Module">Function.Definitions</a>
<a id="388" class="Symbol">{</a><a id="389" href="Function.Definitions.html#389" class="Bound">a</a> <a id="391" href="Function.Definitions.html#391" class="Bound">b</a> <a id="393" href="Function.Definitions.html#393" class="Bound">ℓ₁</a> <a id="396" href="Function.Definitions.html#396" class="Bound">ℓ₂</a><a id="398" class="Symbol">}</a> <a id="400" class="Symbol">{</a><a id="401" href="Function.Definitions.html#401" class="Bound">A</a> <a id="403" class="Symbol">:</a> <a id="405" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="409" href="Function.Definitions.html#389" class="Bound">a</a><a id="410" class="Symbol">}</a> <a id="412" class="Symbol">{</a><a id="413" href="Function.Definitions.html#413" class="Bound">B</a> <a id="415" class="Symbol">:</a> <a id="417" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="421" href="Function.Definitions.html#391" class="Bound">b</a><a id="422" class="Symbol">}</a>
<a id="426" class="Symbol">(</a><a id="427" href="Function.Definitions.html#427" class="Bound Operator">_≈₁_</a> <a id="432" class="Symbol">:</a> <a id="434" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="438" href="Function.Definitions.html#401" class="Bound">A</a> <a id="440" href="Function.Definitions.html#393" class="Bound">ℓ₁</a><a id="442" class="Symbol">)</a> <a id="444" class="Comment">-- Equality over the domain</a>
<a id="474" class="Symbol">(</a><a id="475" href="Function.Definitions.html#475" class="Bound Operator">_≈₂_</a> <a id="480" class="Symbol">:</a> <a id="482" href="Relation.Binary.Core.html#882" class="Function">Rel</a> <a id="486" href="Function.Definitions.html#413" class="Bound">B</a> <a id="488" href="Function.Definitions.html#396" class="Bound">ℓ₂</a><a id="490" class="Symbol">)</a> <a id="492" class="Comment">-- Equality over the codomain</a>
<a id="524" class="Keyword">where</a>
<a id="531" class="Keyword">open</a> <a id="536" class="Keyword">import</a> <a id="543" href="Data.Product.html" class="Module">Data.Product</a> <a id="556" class="Keyword">using</a> <a id="562" class="Symbol">(</a><a id="563" href="Data.Product.html#1369" class="Function"></a><a id="564" class="Symbol">;</a> <a id="566" href="Data.Product.html#1167" class="Function Operator">_×_</a><a id="569" class="Symbol">)</a>
<a id="571" class="Keyword">import</a> <a id="578" href="Function.Definitions.Core1.html" class="Module">Function.Definitions.Core1</a> <a id="605" class="Symbol">as</a> <a id="608" class="Module">Core₁</a>
<a id="614" class="Keyword">import</a> <a id="621" href="Function.Definitions.Core2.html" class="Module">Function.Definitions.Core2</a> <a id="648" class="Symbol">as</a> <a id="651" class="Module">Core₂</a>
<a id="657" class="Keyword">open</a> <a id="662" class="Keyword">import</a> <a id="669" href="Function.Base.html" class="Module">Function.Base</a>
<a id="683" class="Keyword">open</a> <a id="688" class="Keyword">import</a> <a id="695" href="Level.html" class="Module">Level</a> <a id="701" class="Keyword">using</a> <a id="707" class="Symbol">(</a><a id="708" href="Agda.Primitive.html#810" class="Primitive Operator">_⊔_</a><a id="711" class="Symbol">)</a>
<a id="714" class="Comment">------------------------------------------------------------------------</a>
<a id="787" class="Comment">-- Definitions</a>
<a id="Congruent"></a><a id="803" href="Function.Definitions.html#803" class="Function">Congruent</a> <a id="813" class="Symbol">:</a> <a id="815" class="Symbol">(</a><a id="816" href="Function.Definitions.html#401" class="Bound">A</a> <a id="818" class="Symbol"></a> <a id="820" href="Function.Definitions.html#413" class="Bound">B</a><a id="821" class="Symbol">)</a> <a id="823" class="Symbol"></a> <a id="825" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="829" class="Symbol">(</a><a id="830" href="Function.Definitions.html#389" class="Bound">a</a> <a id="832" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="834" href="Function.Definitions.html#393" class="Bound">ℓ₁</a> <a id="837" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="839" href="Function.Definitions.html#396" class="Bound">ℓ₂</a><a id="841" class="Symbol">)</a>
<a id="843" href="Function.Definitions.html#803" class="Function">Congruent</a> <a id="853" href="Function.Definitions.html#853" class="Bound">f</a> <a id="855" class="Symbol">=</a> <a id="857" class="Symbol"></a> <a id="859" class="Symbol">{</a><a id="860" href="Function.Definitions.html#860" class="Bound">x</a> <a id="862" href="Function.Definitions.html#862" class="Bound">y</a><a id="863" class="Symbol">}</a> <a id="865" class="Symbol"></a> <a id="867" href="Function.Definitions.html#860" class="Bound">x</a> <a id="869" href="Function.Definitions.html#427" class="Bound Operator">≈₁</a> <a id="872" href="Function.Definitions.html#862" class="Bound">y</a> <a id="874" class="Symbol"></a> <a id="877" href="Function.Definitions.html#853" class="Bound">f</a> <a id="879" href="Function.Definitions.html#860" class="Bound">x</a> <a id="881" href="Function.Definitions.html#475" class="Bound Operator">≈₂</a> <a id="884" href="Function.Definitions.html#853" class="Bound">f</a> <a id="886" href="Function.Definitions.html#862" class="Bound">y</a>
<a id="Injective"></a><a id="889" href="Function.Definitions.html#889" class="Function">Injective</a> <a id="899" class="Symbol">:</a> <a id="901" class="Symbol">(</a><a id="902" href="Function.Definitions.html#401" class="Bound">A</a> <a id="904" class="Symbol"></a> <a id="906" href="Function.Definitions.html#413" class="Bound">B</a><a id="907" class="Symbol">)</a> <a id="909" class="Symbol"></a> <a id="911" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="915" class="Symbol">(</a><a id="916" href="Function.Definitions.html#389" class="Bound">a</a> <a id="918" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="920" href="Function.Definitions.html#393" class="Bound">ℓ₁</a> <a id="923" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="925" href="Function.Definitions.html#396" class="Bound">ℓ₂</a><a id="927" class="Symbol">)</a>
<a id="929" href="Function.Definitions.html#889" class="Function">Injective</a> <a id="939" href="Function.Definitions.html#939" class="Bound">f</a> <a id="941" class="Symbol">=</a> <a id="943" class="Symbol"></a> <a id="945" class="Symbol">{</a><a id="946" href="Function.Definitions.html#946" class="Bound">x</a> <a id="948" href="Function.Definitions.html#948" class="Bound">y</a><a id="949" class="Symbol">}</a> <a id="951" class="Symbol"></a> <a id="953" href="Function.Definitions.html#939" class="Bound">f</a> <a id="955" href="Function.Definitions.html#946" class="Bound">x</a> <a id="957" href="Function.Definitions.html#475" class="Bound Operator">≈₂</a> <a id="960" href="Function.Definitions.html#939" class="Bound">f</a> <a id="962" href="Function.Definitions.html#948" class="Bound">y</a> <a id="964" class="Symbol"></a> <a id="966" href="Function.Definitions.html#946" class="Bound">x</a> <a id="968" href="Function.Definitions.html#427" class="Bound Operator">≈₁</a> <a id="971" href="Function.Definitions.html#948" class="Bound">y</a>
<a id="974" class="Keyword">open</a> <a id="979" href="Function.Definitions.Core2.html" class="Module">Core₂</a> <a id="985" href="Function.Definitions.html#475" class="Bound Operator">_≈₂_</a> <a id="990" class="Keyword">public</a>
<a id="999" class="Keyword">using</a> <a id="1005" class="Symbol">(</a><a id="1006" href="Function.Definitions.Core2.html#663" class="Function">Surjective</a><a id="1016" class="Symbol">)</a>
<a id="Bijective"></a><a id="1019" href="Function.Definitions.html#1019" class="Function">Bijective</a> <a id="1029" class="Symbol">:</a> <a id="1031" class="Symbol">(</a><a id="1032" href="Function.Definitions.html#401" class="Bound">A</a> <a id="1034" class="Symbol"></a> <a id="1036" href="Function.Definitions.html#413" class="Bound">B</a><a id="1037" class="Symbol">)</a> <a id="1039" class="Symbol"></a> <a id="1041" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1045" class="Symbol">(</a><a id="1046" href="Function.Definitions.html#389" class="Bound">a</a> <a id="1048" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1050" href="Function.Definitions.html#391" class="Bound">b</a> <a id="1052" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1054" href="Function.Definitions.html#393" class="Bound">ℓ₁</a> <a id="1057" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1059" href="Function.Definitions.html#396" class="Bound">ℓ₂</a><a id="1061" class="Symbol">)</a>
<a id="1063" href="Function.Definitions.html#1019" class="Function">Bijective</a> <a id="1073" href="Function.Definitions.html#1073" class="Bound">f</a> <a id="1075" class="Symbol">=</a> <a id="1077" href="Function.Definitions.html#889" class="Function">Injective</a> <a id="1087" href="Function.Definitions.html#1073" class="Bound">f</a> <a id="1089" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="1091" href="Function.Definitions.Core2.html#663" class="Function">Surjective</a> <a id="1102" href="Function.Definitions.html#1073" class="Bound">f</a>
<a id="1105" class="Keyword">open</a> <a id="1110" href="Function.Definitions.Core2.html" class="Module">Core₂</a> <a id="1116" href="Function.Definitions.html#475" class="Bound Operator">_≈₂_</a> <a id="1121" class="Keyword">public</a>
<a id="1130" class="Keyword">using</a> <a id="1136" class="Symbol">(</a><a id="1137" href="Function.Definitions.Core2.html#818" class="Function">Inverseˡ</a><a id="1145" class="Symbol">)</a>
<a id="1148" class="Keyword">open</a> <a id="1153" href="Function.Definitions.Core1.html" class="Module">Core₁</a> <a id="1159" href="Function.Definitions.html#427" class="Bound Operator">_≈₁_</a> <a id="1164" class="Keyword">public</a>
<a id="1173" class="Keyword">using</a> <a id="1179" class="Symbol">(</a><a id="1180" href="Function.Definitions.Core1.html#675" class="Function">Inverseʳ</a><a id="1188" class="Symbol">)</a>
<a id="Inverseᵇ"></a><a id="1191" href="Function.Definitions.html#1191" class="Function">Inverseᵇ</a> <a id="1200" class="Symbol">:</a> <a id="1202" class="Symbol">(</a><a id="1203" href="Function.Definitions.html#401" class="Bound">A</a> <a id="1205" class="Symbol"></a> <a id="1207" href="Function.Definitions.html#413" class="Bound">B</a><a id="1208" class="Symbol">)</a> <a id="1210" class="Symbol"></a> <a id="1212" class="Symbol">(</a><a id="1213" href="Function.Definitions.html#413" class="Bound">B</a> <a id="1215" class="Symbol"></a> <a id="1217" href="Function.Definitions.html#401" class="Bound">A</a><a id="1218" class="Symbol">)</a> <a id="1220" class="Symbol"></a> <a id="1222" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="1226" class="Symbol">(</a><a id="1227" href="Function.Definitions.html#389" class="Bound">a</a> <a id="1229" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1231" href="Function.Definitions.html#391" class="Bound">b</a> <a id="1233" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1235" href="Function.Definitions.html#393" class="Bound">ℓ₁</a> <a id="1238" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="1240" href="Function.Definitions.html#396" class="Bound">ℓ₂</a><a id="1242" class="Symbol">)</a>
<a id="1244" href="Function.Definitions.html#1191" class="Function">Inverseᵇ</a> <a id="1253" href="Function.Definitions.html#1253" class="Bound">f</a> <a id="1255" href="Function.Definitions.html#1255" class="Bound">g</a> <a id="1257" class="Symbol">=</a> <a id="1259" href="Function.Definitions.Core2.html#818" class="Function">Inverseˡ</a> <a id="1268" href="Function.Definitions.html#1253" class="Bound">f</a> <a id="1270" href="Function.Definitions.html#1255" class="Bound">g</a> <a id="1272" href="Data.Product.html#1167" class="Function Operator">×</a> <a id="1274" href="Function.Definitions.Core1.html#675" class="Function">Inverseʳ</a> <a id="1283" href="Function.Definitions.html#1253" class="Bound">f</a> <a id="1285" href="Function.Definitions.html#1255" class="Bound">g</a>
</pre></body></html>