rachel.cafe/agda/Function.Definitions.Core2....

31 lines
7.8 KiB
HTML

<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Function.Definitions.Core2</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 that only require an equality</a>
<a id="174" class="Comment">-- relation over the co-domain.</a>
<a id="206" class="Comment">------------------------------------------------------------------------</a>
<a id="280" class="Comment">-- The contents of this file should usually be accessed from `Function`.</a>
<a id="354" class="Symbol">{-#</a> <a id="358" class="Keyword">OPTIONS</a> <a id="366" class="Pragma">--without-K</a> <a id="378" class="Pragma">--safe</a> <a id="385" class="Symbol">#-}</a>
<a id="390" class="Keyword">open</a> <a id="395" class="Keyword">import</a> <a id="402" href="Relation.Binary.html" class="Module">Relation.Binary</a>
<a id="419" class="Keyword">module</a> <a id="426" href="Function.Definitions.Core2.html" class="Module">Function.Definitions.Core2</a>
<a id="455" class="Symbol">{</a><a id="456" href="Function.Definitions.Core2.html#456" class="Bound">b</a> <a id="458" href="Function.Definitions.Core2.html#458" class="Bound">ℓ₂</a><a id="460" class="Symbol">}</a> <a id="462" class="Symbol">{</a><a id="463" href="Function.Definitions.Core2.html#463" class="Bound">B</a> <a id="465" class="Symbol">:</a> <a id="467" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="471" href="Function.Definitions.Core2.html#456" class="Bound">b</a><a id="472" class="Symbol">}</a> <a id="474" class="Symbol">(</a><a id="475" href="Function.Definitions.Core2.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.Core2.html#463" class="Bound">B</a> <a id="488" href="Function.Definitions.Core2.html#458" class="Bound">ℓ₂</a><a id="490" class="Symbol">)</a>
<a id="494" class="Keyword">where</a>
<a id="501" class="Keyword">open</a> <a id="506" class="Keyword">import</a> <a id="513" href="Data.Product.html" class="Module">Data.Product</a> <a id="526" class="Keyword">using</a> <a id="532" class="Symbol">(</a><a id="533" href="Data.Product.html#1369" class="Function"></a><a id="534" class="Symbol">)</a>
<a id="536" class="Keyword">open</a> <a id="541" class="Keyword">import</a> <a id="548" href="Level.html" class="Module">Level</a> <a id="554" class="Keyword">using</a> <a id="560" class="Symbol">(</a><a id="561" href="Agda.Primitive.html#597" class="Postulate">Level</a><a id="566" class="Symbol">;</a> <a id="568" href="Agda.Primitive.html#810" class="Primitive Operator">_⊔_</a><a id="571" class="Symbol">)</a>
<a id="574" class="Comment">------------------------------------------------------------------------</a>
<a id="647" class="Comment">-- Definitions</a>
<a id="Surjective"></a><a id="663" href="Function.Definitions.Core2.html#663" class="Function">Surjective</a> <a id="674" class="Symbol">:</a> <a id="676" class="Symbol"></a> <a id="678" class="Symbol">{</a><a id="679" href="Function.Definitions.Core2.html#679" class="Bound">a</a><a id="680" class="Symbol">}</a> <a id="682" class="Symbol">{</a><a id="683" href="Function.Definitions.Core2.html#683" class="Bound">A</a> <a id="685" class="Symbol">:</a> <a id="687" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="691" href="Function.Definitions.Core2.html#679" class="Bound">a</a><a id="692" class="Symbol">}</a> <a id="694" class="Symbol"></a> <a id="696" class="Symbol">(</a><a id="697" href="Function.Definitions.Core2.html#683" class="Bound">A</a> <a id="699" class="Symbol"></a> <a id="701" href="Function.Definitions.Core2.html#463" class="Bound">B</a><a id="702" class="Symbol">)</a> <a id="704" class="Symbol"></a> <a id="706" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="710" class="Symbol">(</a><a id="711" href="Function.Definitions.Core2.html#679" class="Bound">a</a> <a id="713" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="715" href="Function.Definitions.Core2.html#456" class="Bound">b</a> <a id="717" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="719" href="Function.Definitions.Core2.html#458" class="Bound">ℓ₂</a><a id="721" class="Symbol">)</a>
<a id="723" href="Function.Definitions.Core2.html#663" class="Function">Surjective</a> <a id="734" href="Function.Definitions.Core2.html#734" class="Bound">f</a> <a id="736" class="Symbol">=</a> <a id="738" class="Symbol"></a> <a id="740" href="Function.Definitions.Core2.html#740" class="Bound">y</a> <a id="742" class="Symbol"></a> <a id="744" href="Data.Product.html#1369" class="Function"></a> <a id="746" class="Symbol">λ</a> <a id="748" href="Function.Definitions.Core2.html#748" class="Bound">x</a> <a id="750" class="Symbol"></a> <a id="752" href="Function.Definitions.Core2.html#734" class="Bound">f</a> <a id="754" href="Function.Definitions.Core2.html#748" class="Bound">x</a> <a id="756" href="Function.Definitions.Core2.html#475" class="Bound Operator">≈₂</a> <a id="759" href="Function.Definitions.Core2.html#740" class="Bound">y</a>
<a id="762" class="Comment">-- (Note the name `LeftInverse` is used for the bundle)</a>
<a id="Inverseˡ"></a><a id="818" href="Function.Definitions.Core2.html#818" class="Function">Inverseˡ</a> <a id="827" class="Symbol">:</a> <a id="829" class="Symbol"></a> <a id="831" class="Symbol">{</a><a id="832" href="Function.Definitions.Core2.html#832" class="Bound">a</a><a id="833" class="Symbol">}</a> <a id="835" class="Symbol">{</a><a id="836" href="Function.Definitions.Core2.html#836" class="Bound">A</a> <a id="838" class="Symbol">:</a> <a id="840" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="844" href="Function.Definitions.Core2.html#832" class="Bound">a</a><a id="845" class="Symbol">}</a> <a id="847" class="Symbol"></a> <a id="849" class="Symbol">(</a><a id="850" href="Function.Definitions.Core2.html#836" class="Bound">A</a> <a id="852" class="Symbol"></a> <a id="854" href="Function.Definitions.Core2.html#463" class="Bound">B</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.Core2.html#463" class="Bound">B</a> <a id="862" class="Symbol"></a> <a id="864" href="Function.Definitions.Core2.html#836" class="Bound">A</a><a id="865" class="Symbol">)</a> <a id="867" class="Symbol"></a> <a id="869" href="Agda.Primitive.html#326" class="Primitive">Set</a> <a id="873" class="Symbol">(</a><a id="874" href="Function.Definitions.Core2.html#456" class="Bound">b</a> <a id="876" href="Agda.Primitive.html#810" class="Primitive Operator"></a> <a id="878" href="Function.Definitions.Core2.html#458" class="Bound">ℓ₂</a><a id="880" class="Symbol">)</a>
<a id="882" href="Function.Definitions.Core2.html#818" class="Function">Inverseˡ</a> <a id="891" href="Function.Definitions.Core2.html#891" class="Bound">f</a> <a id="893" href="Function.Definitions.Core2.html#893" class="Bound">g</a> <a id="895" class="Symbol">=</a> <a id="897" class="Symbol"></a> <a id="899" href="Function.Definitions.Core2.html#899" class="Bound">x</a> <a id="901" class="Symbol"></a> <a id="903" href="Function.Definitions.Core2.html#891" class="Bound">f</a> <a id="905" class="Symbol">(</a><a id="906" href="Function.Definitions.Core2.html#893" class="Bound">g</a> <a id="908" href="Function.Definitions.Core2.html#899" class="Bound">x</a><a id="909" class="Symbol">)</a> <a id="911" href="Function.Definitions.Core2.html#475" class="Bound Operator">≈₂</a> <a id="914" href="Function.Definitions.Core2.html#899" class="Bound">x</a>
</pre></body></html>