bsc-leon-vatthauer/public/Categories.Object.Zero.html

62 lines
No EOL
18 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Categories.Object.Zero</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Symbol">{-#</a> <a id="5" class="Keyword">OPTIONS</a> <a id="13" class="Pragma">--without-K</a> <a id="25" class="Pragma">--safe</a> <a id="32" class="Symbol">#-}</a>
<a id="37" class="Keyword">open</a> <a id="42" class="Keyword">import</a> <a id="49" href="Categories.Category.html" class="Module">Categories.Category</a>
<a id="70" class="Comment">-- a zero object is both terminal and initial.</a>
<a id="117" class="Keyword">module</a> <a id="124" href="Categories.Object.Zero.html" class="Module">Categories.Object.Zero</a> <a id="147" class="Symbol">{</a><a id="148" href="Categories.Object.Zero.html#148" class="Bound">o</a> <a id="150" href="Categories.Object.Zero.html#150" class="Bound"></a> <a id="152" href="Categories.Object.Zero.html#152" class="Bound">e</a><a id="153" class="Symbol">}</a> <a id="155" class="Symbol">(</a><a id="156" href="Categories.Object.Zero.html#156" class="Bound">C</a> <a id="158" class="Symbol">:</a> <a id="160" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="169" href="Categories.Object.Zero.html#148" class="Bound">o</a> <a id="171" href="Categories.Object.Zero.html#150" class="Bound"></a> <a id="173" href="Categories.Object.Zero.html#152" class="Bound">e</a><a id="174" class="Symbol">)</a> <a id="176" class="Keyword">where</a>
<a id="183" class="Keyword">open</a> <a id="188" class="Keyword">import</a> <a id="195" href="Level.html" class="Module">Level</a>
<a id="202" class="Keyword">open</a> <a id="207" class="Keyword">import</a> <a id="214" href="Categories.Object.Terminal.html" class="Module">Categories.Object.Terminal</a> <a id="241" href="Categories.Object.Zero.html#156" class="Bound">C</a>
<a id="243" class="Keyword">open</a> <a id="248" class="Keyword">import</a> <a id="255" href="Categories.Object.Initial.html" class="Module">Categories.Object.Initial</a> <a id="281" href="Categories.Object.Zero.html#156" class="Bound">C</a>
<a id="284" class="Keyword">open</a> <a id="289" class="Keyword">import</a> <a id="296" href="Categories.Morphism.html" class="Module">Categories.Morphism</a> <a id="316" href="Categories.Object.Zero.html#156" class="Bound">C</a>
<a id="318" class="Keyword">open</a> <a id="323" class="Keyword">import</a> <a id="330" href="Categories.Morphism.Reasoning.html" class="Module">Categories.Morphism.Reasoning</a> <a id="360" href="Categories.Object.Zero.html#156" class="Bound">C</a>
<a id="363" class="Keyword">open</a> <a id="368" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="377" href="Categories.Object.Zero.html#156" class="Bound">C</a>
<a id="379" class="Keyword">open</a> <a id="384" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
<a id="398" class="Keyword">record</a> <a id="IsZero"></a><a id="405" href="Categories.Object.Zero.html#405" class="Record">IsZero</a> <a id="412" class="Symbol">(</a><a id="413" href="Categories.Object.Zero.html#413" class="Bound">Z</a> <a id="415" class="Symbol">:</a> <a id="417" href="Categories.Category.Core.html#559" class="Field">Obj</a><a id="420" class="Symbol">)</a> <a id="422" class="Symbol">:</a> <a id="424" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="428" class="Symbol">(</a><a id="429" href="Categories.Object.Zero.html#148" class="Bound">o</a> <a id="431" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="433" href="Categories.Object.Zero.html#150" class="Bound"></a> <a id="435" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="437" href="Categories.Object.Zero.html#152" class="Bound">e</a><a id="438" class="Symbol">)</a> <a id="440" class="Keyword">where</a>
<a id="448" class="Keyword">field</a>
<a id="IsZero.isInitial"></a><a id="458" href="Categories.Object.Zero.html#458" class="Field">isInitial</a> <a id="468" class="Symbol">:</a> <a id="470" href="Categories.Object.Initial.html#422" class="Record">IsInitial</a> <a id="480" href="Categories.Object.Zero.html#413" class="Bound">Z</a>
<a id="IsZero.isTerminal"></a><a id="486" href="Categories.Object.Zero.html#486" class="Field">isTerminal</a> <a id="497" class="Symbol">:</a> <a id="499" href="Categories.Object.Terminal.html#520" class="Record">IsTerminal</a> <a id="510" href="Categories.Object.Zero.html#413" class="Bound">Z</a>
<a id="515" class="Keyword">open</a> <a id="520" href="Categories.Object.Initial.html#422" class="Module">IsInitial</a> <a id="530" href="Categories.Object.Zero.html#458" class="Field">isInitial</a> <a id="540" class="Keyword">public</a>
<a id="551" class="Keyword">renaming</a>
<a id="564" class="Symbol">(</a> <a id="566" href="Categories.Object.Initial.html#478" class="Field">!</a> <a id="568" class="Symbol">to</a> <a id="571" class="Field">¡</a>
<a id="577" class="Symbol">;</a> <a id="579" href="Categories.Object.Initial.html#506" class="Field">!-unique</a> <a id="588" class="Symbol">to</a> <a id="591" class="Field">¡-unique</a>
<a id="604" class="Symbol">;</a> <a id="606" href="Categories.Object.Initial.html#548" class="Function">!-unique₂</a> <a id="616" class="Symbol">to</a> <a id="619" class="Function">¡-unique₂</a>
<a id="633" class="Symbol">)</a>
<a id="637" class="Keyword">open</a> <a id="642" href="Categories.Object.Terminal.html#520" class="Module">IsTerminal</a> <a id="653" href="Categories.Object.Zero.html#486" class="Field">isTerminal</a> <a id="664" class="Keyword">public</a>
<a id="IsZero.zero⇒"></a><a id="674" href="Categories.Object.Zero.html#674" class="Function">zero⇒</a> <a id="680" class="Symbol">:</a> <a id="682" class="Symbol"></a> <a id="684" class="Symbol">{</a><a id="685" href="Categories.Object.Zero.html#685" class="Bound">A</a> <a id="687" href="Categories.Object.Zero.html#687" class="Bound">B</a> <a id="689" class="Symbol">:</a> <a id="691" href="Categories.Category.Core.html#559" class="Field">Obj</a><a id="694" class="Symbol">}</a> <a id="696" class="Symbol"></a> <a id="698" href="Categories.Object.Zero.html#685" class="Bound">A</a> <a id="700" href="Categories.Category.Core.html#575" class="Field Operator"></a> <a id="702" href="Categories.Object.Zero.html#687" class="Bound">B</a>
<a id="706" href="Categories.Object.Zero.html#674" class="Function">zero⇒</a> <a id="712" class="Symbol">=</a> <a id="714" href="Categories.Object.Zero.html#571" class="Function">¡</a> <a id="716" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="718" href="Categories.Object.Terminal.html#577" class="Function">!</a>
<a id="IsZero.zero-∘ˡ"></a><a id="723" href="Categories.Object.Zero.html#723" class="Function">zero-∘ˡ</a> <a id="731" class="Symbol">:</a> <a id="733" class="Symbol"></a> <a id="735" class="Symbol">{</a><a id="736" href="Categories.Object.Zero.html#736" class="Bound">X</a> <a id="738" href="Categories.Object.Zero.html#738" class="Bound">Y</a> <a id="740" href="Categories.Object.Zero.html#740" class="Bound">Z</a><a id="741" class="Symbol">}</a> <a id="743" class="Symbol"></a> <a id="745" class="Symbol">(</a><a id="746" href="Categories.Object.Zero.html#746" class="Bound">f</a> <a id="748" class="Symbol">:</a> <a id="750" href="Categories.Object.Zero.html#738" class="Bound">Y</a> <a id="752" href="Categories.Category.Core.html#575" class="Field Operator"></a> <a id="754" href="Categories.Object.Zero.html#740" class="Bound">Z</a><a id="755" class="Symbol">)</a> <a id="757" class="Symbol"></a> <a id="759" href="Categories.Object.Zero.html#746" class="Bound">f</a> <a id="761" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="763" href="Categories.Object.Zero.html#674" class="Function">zero⇒</a> <a id="769" class="Symbol">{</a><a id="770" href="Categories.Object.Zero.html#736" class="Bound">X</a><a id="771" class="Symbol">}</a> <a id="773" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="775" href="Categories.Object.Zero.html#674" class="Function">zero⇒</a>
<a id="783" href="Categories.Object.Zero.html#723" class="Function">zero-∘ˡ</a> <a id="791" href="Categories.Object.Zero.html#791" class="Bound">f</a> <a id="793" class="Symbol">=</a> <a id="795" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="801" class="Symbol">(</a><a id="802" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="804" class="Symbol">(</a><a id="805" href="Categories.Object.Zero.html#591" class="Function">¡-unique</a> <a id="814" class="Symbol">(</a><a id="815" href="Categories.Object.Zero.html#791" class="Bound">f</a> <a id="817" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="819" href="Categories.Object.Zero.html#571" class="Function">¡</a><a id="820" class="Symbol">)))</a>
<a id="IsZero.zero-∘ʳ"></a><a id="827" href="Categories.Object.Zero.html#827" class="Function">zero-∘ʳ</a> <a id="835" class="Symbol">:</a> <a id="837" class="Symbol"></a> <a id="839" class="Symbol">{</a><a id="840" href="Categories.Object.Zero.html#840" class="Bound">X</a> <a id="842" href="Categories.Object.Zero.html#842" class="Bound">Y</a> <a id="844" href="Categories.Object.Zero.html#844" class="Bound">Z</a><a id="845" class="Symbol">}</a> <a id="847" class="Symbol"></a> <a id="849" class="Symbol">(</a><a id="850" href="Categories.Object.Zero.html#850" class="Bound">f</a> <a id="852" class="Symbol">:</a> <a id="854" href="Categories.Object.Zero.html#840" class="Bound">X</a> <a id="856" href="Categories.Category.Core.html#575" class="Field Operator"></a> <a id="858" href="Categories.Object.Zero.html#842" class="Bound">Y</a><a id="859" class="Symbol">)</a> <a id="861" class="Symbol"></a> <a id="863" href="Categories.Object.Zero.html#674" class="Function">zero⇒</a> <a id="869" class="Symbol">{</a><a id="870" href="Categories.Object.Zero.html#842" class="Bound">Y</a><a id="871" class="Symbol">}</a> <a id="873" class="Symbol">{</a><a id="874" href="Categories.Object.Zero.html#844" class="Bound">Z</a><a id="875" class="Symbol">}</a> <a id="877" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="879" href="Categories.Object.Zero.html#850" class="Bound">f</a> <a id="881" href="Categories.Category.Core.html#595" class="Field Operator"></a> <a id="883" href="Categories.Object.Zero.html#674" class="Function">zero⇒</a>
<a id="891" href="Categories.Object.Zero.html#827" class="Function">zero-∘ʳ</a> <a id="899" href="Categories.Object.Zero.html#899" class="Bound">f</a> <a id="901" class="Symbol">=</a> <a id="903" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="909" class="Symbol">(</a><a id="910" href="Categories.Category.Core.html#3005" class="Function"></a> <a id="912" class="Symbol">(</a><a id="913" href="Categories.Object.Terminal.html#605" class="Function">!-unique</a> <a id="922" class="Symbol">(</a><a id="923" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="925" href="Categories.Category.Core.html#656" class="Field Operator"></a> <a id="927" href="Categories.Object.Zero.html#899" class="Bound">f</a><a id="928" class="Symbol">)))</a>
<a id="933" class="Keyword">record</a> <a id="Zero"></a><a id="940" href="Categories.Object.Zero.html#940" class="Record">Zero</a> <a id="945" class="Symbol">:</a> <a id="947" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="951" class="Symbol">(</a><a id="952" href="Categories.Object.Zero.html#148" class="Bound">o</a> <a id="954" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="956" href="Categories.Object.Zero.html#150" class="Bound"></a> <a id="958" href="Agda.Primitive.html#804" class="Primitive Operator"></a> <a id="960" href="Categories.Object.Zero.html#152" class="Bound">e</a><a id="961" class="Symbol">)</a> <a id="963" class="Keyword">where</a>
<a id="971" class="Keyword">field</a>
<a id="Zero.𝟘"></a><a id="981" href="Categories.Object.Zero.html#981" class="Field">𝟘</a> <a id="983" class="Symbol">:</a> <a id="985" href="Categories.Category.Core.html#559" class="Field">Obj</a>
<a id="Zero.isZero"></a><a id="993" href="Categories.Object.Zero.html#993" class="Field">isZero</a> <a id="1000" class="Symbol">:</a> <a id="1002" href="Categories.Object.Zero.html#405" class="Record">IsZero</a> <a id="1009" href="Categories.Object.Zero.html#981" class="Field">𝟘</a>
<a id="1014" class="Keyword">open</a> <a id="1019" href="Categories.Object.Zero.html#405" class="Module">IsZero</a> <a id="1026" href="Categories.Object.Zero.html#993" class="Field">isZero</a> <a id="1033" class="Keyword">public</a>
<a id="Zero.terminal"></a><a id="1043" href="Categories.Object.Zero.html#1043" class="Function">terminal</a> <a id="1052" class="Symbol">:</a> <a id="1054" href="Categories.Object.Terminal.html#860" class="Record">Terminal</a>
<a id="1065" href="Categories.Object.Zero.html#1043" class="Function">terminal</a> <a id="1074" class="Symbol">=</a> <a id="1076" class="Keyword">record</a> <a id="1083" class="Symbol">{</a> <a id="1085" href="Categories.Object.Terminal.html#917" class="Field">-is-terminal</a> <a id="1099" class="Symbol">=</a> <a id="1101" href="Categories.Object.Zero.html#486" class="Function">isTerminal</a> <a id="1112" class="Symbol">}</a>
<a id="Zero.initial"></a><a id="1117" href="Categories.Object.Zero.html#1117" class="Function">initial</a> <a id="1125" class="Symbol">:</a> <a id="1127" href="Categories.Object.Initial.html#760" class="Record">Initial</a>
<a id="1137" href="Categories.Object.Zero.html#1117" class="Function">initial</a> <a id="1145" class="Symbol">=</a> <a id="1147" class="Keyword">record</a> <a id="1154" class="Symbol">{</a> <a id="1156" href="Categories.Object.Initial.html#816" class="Field">⊥-is-initial</a> <a id="1169" class="Symbol">=</a> <a id="1171" href="Categories.Object.Zero.html#458" class="Function">isInitial</a> <a id="1181" class="Symbol">}</a>
<a id="1184" class="Keyword">open</a> <a id="1189" href="Categories.Object.Zero.html#940" class="Module">Zero</a>
<a id="¡-Mono"></a><a id="1195" href="Categories.Object.Zero.html#1195" class="Function">¡-Mono</a> <a id="1202" class="Symbol">:</a> <a id="1204" class="Symbol"></a> <a id="1206" class="Symbol">{</a><a id="1207" href="Categories.Object.Zero.html#1207" class="Bound">A</a><a id="1208" class="Symbol">}</a> <a id="1210" class="Symbol">{</a><a id="1211" href="Categories.Object.Zero.html#1211" class="Bound">z</a> <a id="1213" class="Symbol">:</a> <a id="1215" href="Categories.Object.Zero.html#940" class="Record">Zero</a><a id="1219" class="Symbol">}</a> <a id="1221" class="Symbol"></a> <a id="1223" href="Categories.Morphism.html#488" class="Function">Mono</a> <a id="1228" class="Symbol">(</a><a id="1229" href="Categories.Object.Zero.html#571" class="Function">¡</a> <a id="1231" href="Categories.Object.Zero.html#1211" class="Bound">z</a> <a id="1233" class="Symbol">{</a><a id="1234" href="Categories.Object.Zero.html#1207" class="Bound">A</a><a id="1235" class="Symbol">})</a>
<a id="1238" href="Categories.Object.Zero.html#1195" class="Function">¡-Mono</a> <a id="1245" class="Symbol">{</a><a id="1246" class="Argument">z</a> <a id="1248" class="Symbol">=</a> <a id="1250" href="Categories.Object.Zero.html#1250" class="Bound">z</a><a id="1251" class="Symbol">}</a> <a id="1253" class="Symbol">=</a> <a id="1255" href="Categories.Object.Terminal.html#1002" class="Function">from--is-Mono</a> <a id="1270" class="Symbol">{</a><a id="1271" class="Argument">t</a> <a id="1273" class="Symbol">=</a> <a id="1275" href="Categories.Object.Zero.html#1043" class="Function">terminal</a> <a id="1284" href="Categories.Object.Zero.html#1250" class="Bound">z</a><a id="1285" class="Symbol">}</a> <a id="1287" class="Symbol">(</a><a id="1288" href="Categories.Object.Zero.html#571" class="Function">¡</a> <a id="1290" href="Categories.Object.Zero.html#1250" class="Bound">z</a><a id="1291" class="Symbol">)</a>
<a id="!-Epi"></a><a id="1294" href="Categories.Object.Zero.html#1294" class="Function">!-Epi</a> <a id="1300" class="Symbol">:</a> <a id="1302" class="Symbol"></a> <a id="1304" class="Symbol">{</a><a id="1305" href="Categories.Object.Zero.html#1305" class="Bound">A</a><a id="1306" class="Symbol">}</a> <a id="1308" class="Symbol">{</a><a id="1309" href="Categories.Object.Zero.html#1309" class="Bound">z</a> <a id="1311" class="Symbol">:</a> <a id="1313" href="Categories.Object.Zero.html#940" class="Record">Zero</a><a id="1317" class="Symbol">}</a> <a id="1319" class="Symbol"></a> <a id="1321" href="Categories.Morphism.html#875" class="Function">Epi</a> <a id="1325" class="Symbol">(</a><a id="1326" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="1328" href="Categories.Object.Zero.html#1309" class="Bound">z</a> <a id="1330" class="Symbol">{</a><a id="1331" href="Categories.Object.Zero.html#1305" class="Bound">A</a><a id="1332" class="Symbol">})</a>
<a id="1335" href="Categories.Object.Zero.html#1294" class="Function">!-Epi</a> <a id="1341" class="Symbol">{</a><a id="1342" class="Argument">z</a> <a id="1344" class="Symbol">=</a> <a id="1346" href="Categories.Object.Zero.html#1346" class="Bound">z</a><a id="1347" class="Symbol">}</a> <a id="1349" class="Symbol">=</a> <a id="1351" href="Categories.Object.Initial.html#896" class="Function">to-⊥-is-Epi</a> <a id="1363" class="Symbol">{</a><a id="1364" class="Argument">i</a> <a id="1366" class="Symbol">=</a> <a id="1368" href="Categories.Object.Zero.html#1117" class="Function">initial</a> <a id="1376" href="Categories.Object.Zero.html#1346" class="Bound">z</a><a id="1377" class="Symbol">}</a> <a id="1379" class="Symbol">(</a><a id="1380" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="1382" href="Categories.Object.Zero.html#1346" class="Bound">z</a><a id="1383" class="Symbol">)</a>
</pre></body></html>