mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
201 lines
52 KiB
HTML
201 lines
52 KiB
HTML
|
<!DOCTYPE HTML>
|
|||
|
<html><head><meta charset="utf-8"><title>Categories.Object.Duality</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="36" class="Keyword">open</a> <a id="41" class="Keyword">import</a> <a id="48" href="Categories.Category.html" class="Module">Categories.Category</a>
|
|||
|
|
|||
|
<a id="69" class="Comment">-- Properties relating Initial and Terminal Objects,</a>
|
|||
|
<a id="122" class="Comment">-- Product / Coproduct, Zero objects, and Kernel / Cokernel via op</a>
|
|||
|
<a id="189" class="Keyword">module</a> <a id="196" href="Categories.Object.Duality.html" class="Module">Categories.Object.Duality</a> <a id="222" class="Symbol">{</a><a id="223" href="Categories.Object.Duality.html#223" class="Bound">o</a> <a id="225" href="Categories.Object.Duality.html#225" class="Bound">ℓ</a> <a id="227" href="Categories.Object.Duality.html#227" class="Bound">e</a><a id="228" class="Symbol">}</a> <a id="230" class="Symbol">(</a><a id="231" href="Categories.Object.Duality.html#231" class="Bound">C</a> <a id="233" class="Symbol">:</a> <a id="235" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="244" href="Categories.Object.Duality.html#223" class="Bound">o</a> <a id="246" href="Categories.Object.Duality.html#225" class="Bound">ℓ</a> <a id="248" href="Categories.Object.Duality.html#227" class="Bound">e</a><a id="249" class="Symbol">)</a> <a id="251" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="258" class="Keyword">open</a> <a id="263" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="272" href="Categories.Object.Duality.html#231" class="Bound">C</a>
|
|||
|
|
|||
|
<a id="275" class="Keyword">open</a> <a id="280" class="Keyword">import</a> <a id="287" href="Level.html" class="Module">Level</a>
|
|||
|
<a id="293" class="Keyword">open</a> <a id="298" class="Keyword">import</a> <a id="305" href="Relation.Binary.PropositionalEquality.html" class="Module">Relation.Binary.PropositionalEquality</a> <a id="343" class="Symbol">as</a> <a id="346" class="Module">≡</a> <a id="348" class="Keyword">using</a> <a id="354" class="Symbol">(</a><a id="355" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a><a id="358" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="361" class="Keyword">open</a> <a id="366" class="Keyword">import</a> <a id="373" href="Categories.Morphism.html" class="Module">Categories.Morphism</a> <a id="393" href="Categories.Object.Duality.html#231" class="Bound">C</a>
|
|||
|
<a id="395" class="Keyword">open</a> <a id="400" class="Keyword">import</a> <a id="407" href="Categories.Object.Terminal.html" class="Module">Categories.Object.Terminal</a> <a id="434" href="Categories.Category.Core.html#3132" class="Function">op</a>
|
|||
|
<a id="437" class="Keyword">open</a> <a id="442" class="Keyword">import</a> <a id="449" href="Categories.Object.Initial.html" class="Module">Categories.Object.Initial</a> <a id="475" href="Categories.Object.Duality.html#231" class="Bound">C</a>
|
|||
|
<a id="477" class="Keyword">open</a> <a id="482" class="Keyword">import</a> <a id="489" href="Categories.Object.Product.html" class="Module">Categories.Object.Product</a> <a id="515" href="Categories.Category.Core.html#3132" class="Function">op</a>
|
|||
|
<a id="518" class="Keyword">open</a> <a id="523" class="Keyword">import</a> <a id="530" href="Categories.Object.Coproduct.html" class="Module">Categories.Object.Coproduct</a> <a id="558" href="Categories.Object.Duality.html#231" class="Bound">C</a>
|
|||
|
|
|||
|
<a id="561" class="Keyword">open</a> <a id="566" class="Keyword">import</a> <a id="573" href="Categories.Object.Zero.html" class="Module">Categories.Object.Zero</a>
|
|||
|
|
|||
|
<a id="597" class="Keyword">import</a> <a id="604" href="Categories.Object.Kernel.html" class="Module">Categories.Object.Kernel</a> <a id="629" class="Symbol">as</a> <a id="632" class="Module">Kernels</a>
|
|||
|
<a id="640" class="Keyword">import</a> <a id="647" href="Categories.Object.Cokernel.html" class="Module">Categories.Object.Cokernel</a> <a id="674" class="Symbol">as</a> <a id="677" class="Module">Cokernels</a>
|
|||
|
|
|||
|
<a id="688" class="Keyword">private</a>
|
|||
|
<a id="698" class="Keyword">variable</a>
|
|||
|
<a id="711" href="Categories.Object.Duality.html#711" class="Generalizable">A</a> <a id="713" href="Categories.Object.Duality.html#713" class="Generalizable">B</a> <a id="715" href="Categories.Object.Duality.html#715" class="Generalizable">X</a> <a id="717" href="Categories.Object.Duality.html#717" class="Generalizable">Z</a> <a id="719" class="Symbol">:</a> <a id="721" href="Categories.Category.Core.html#559" class="Field">Obj</a>
|
|||
|
<a id="729" href="Categories.Object.Duality.html#729" class="Generalizable">f</a> <a id="731" href="Categories.Object.Duality.html#731" class="Generalizable">g</a> <a id="733" href="Categories.Object.Duality.html#733" class="Generalizable">k</a> <a id="735" class="Symbol">:</a> <a id="737" href="Categories.Object.Duality.html#711" class="Generalizable">A</a> <a id="739" href="Categories.Category.Core.html#575" class="Field Operator">⇒</a> <a id="741" href="Categories.Object.Duality.html#713" class="Generalizable">B</a>
|
|||
|
|
|||
|
<a id="IsInitial⇒coIsTerminal"></a><a id="744" href="Categories.Object.Duality.html#744" class="Function">IsInitial⇒coIsTerminal</a> <a id="767" class="Symbol">:</a> <a id="769" href="Categories.Object.Initial.html#422" class="Record">IsInitial</a> <a id="779" href="Categories.Object.Duality.html#715" class="Generalizable">X</a> <a id="781" class="Symbol">→</a> <a id="783" href="Categories.Object.Terminal.html#520" class="Record">IsTerminal</a> <a id="794" href="Categories.Object.Duality.html#715" class="Generalizable">X</a>
|
|||
|
<a id="796" href="Categories.Object.Duality.html#744" class="Function">IsInitial⇒coIsTerminal</a> <a id="819" href="Categories.Object.Duality.html#819" class="Bound">is⊥</a> <a id="823" class="Symbol">=</a> <a id="825" class="Keyword">record</a>
|
|||
|
<a id="834" class="Symbol">{</a> <a id="836" href="Categories.Object.Terminal.html#577" class="Field">!</a> <a id="845" class="Symbol">=</a> <a id="847" href="Categories.Object.Initial.html#478" class="Field">!</a>
|
|||
|
<a id="851" class="Symbol">;</a> <a id="853" href="Categories.Object.Terminal.html#605" class="Field">!-unique</a> <a id="862" class="Symbol">=</a> <a id="864" href="Categories.Object.Initial.html#506" class="Field">!-unique</a>
|
|||
|
<a id="875" class="Symbol">}</a>
|
|||
|
<a id="879" class="Keyword">where</a> <a id="885" class="Keyword">open</a> <a id="890" href="Categories.Object.Initial.html#422" class="Module">IsInitial</a> <a id="900" href="Categories.Object.Duality.html#819" class="Bound">is⊥</a>
|
|||
|
|
|||
|
<a id="⊥⇒op⊤"></a><a id="905" href="Categories.Object.Duality.html#905" class="Function">⊥⇒op⊤</a> <a id="911" class="Symbol">:</a> <a id="913" href="Categories.Object.Initial.html#760" class="Record">Initial</a> <a id="921" class="Symbol">→</a> <a id="923" href="Categories.Object.Terminal.html#860" class="Record">Terminal</a>
|
|||
|
<a id="932" href="Categories.Object.Duality.html#905" class="Function">⊥⇒op⊤</a> <a id="938" href="Categories.Object.Duality.html#938" class="Bound">i</a> <a id="940" class="Symbol">=</a> <a id="942" class="Keyword">record</a>
|
|||
|
<a id="951" class="Symbol">{</a> <a id="953" href="Categories.Object.Terminal.html#905" class="Field">⊤</a> <a id="967" class="Symbol">=</a> <a id="969" href="Categories.Object.Initial.html#804" class="Field">⊥</a>
|
|||
|
<a id="973" class="Symbol">;</a> <a id="975" href="Categories.Object.Terminal.html#917" class="Field">⊤-is-terminal</a> <a id="989" class="Symbol">=</a> <a id="991" href="Categories.Object.Duality.html#744" class="Function">IsInitial⇒coIsTerminal</a> <a id="1014" href="Categories.Object.Initial.html#816" class="Field">⊥-is-initial</a>
|
|||
|
<a id="1029" class="Symbol">}</a>
|
|||
|
<a id="1033" class="Keyword">where</a> <a id="1039" class="Keyword">open</a> <a id="1044" href="Categories.Object.Initial.html#760" class="Module">Initial</a> <a id="1052" href="Categories.Object.Duality.html#938" class="Bound">i</a>
|
|||
|
|
|||
|
<a id="coIsTerminal⇒IsInitial"></a><a id="1055" href="Categories.Object.Duality.html#1055" class="Function">coIsTerminal⇒IsInitial</a> <a id="1078" class="Symbol">:</a> <a id="1080" href="Categories.Object.Terminal.html#520" class="Record">IsTerminal</a> <a id="1091" href="Categories.Object.Duality.html#715" class="Generalizable">X</a> <a id="1093" class="Symbol">→</a> <a id="1095" href="Categories.Object.Initial.html#422" class="Record">IsInitial</a> <a id="1105" href="Categories.Object.Duality.html#715" class="Generalizable">X</a>
|
|||
|
<a id="1107" href="Categories.Object.Duality.html#1055" class="Function">coIsTerminal⇒IsInitial</a> <a id="1130" href="Categories.Object.Duality.html#1130" class="Bound">is⊤</a> <a id="1134" class="Symbol">=</a> <a id="1136" class="Keyword">record</a>
|
|||
|
<a id="1145" class="Symbol">{</a> <a id="1147" href="Categories.Object.Initial.html#478" class="Field">!</a> <a id="1156" class="Symbol">=</a> <a id="1158" href="Categories.Object.Terminal.html#577" class="Field">!</a>
|
|||
|
<a id="1162" class="Symbol">;</a> <a id="1164" href="Categories.Object.Initial.html#506" class="Field">!-unique</a> <a id="1173" class="Symbol">=</a> <a id="1175" href="Categories.Object.Terminal.html#605" class="Field">!-unique</a>
|
|||
|
<a id="1186" class="Symbol">}</a>
|
|||
|
<a id="1190" class="Keyword">where</a> <a id="1196" class="Keyword">open</a> <a id="1201" href="Categories.Object.Terminal.html#520" class="Module">IsTerminal</a> <a id="1212" href="Categories.Object.Duality.html#1130" class="Bound">is⊤</a>
|
|||
|
|
|||
|
<a id="op⊤⇒⊥"></a><a id="1217" href="Categories.Object.Duality.html#1217" class="Function">op⊤⇒⊥</a> <a id="1223" class="Symbol">:</a> <a id="1225" href="Categories.Object.Terminal.html#860" class="Record">Terminal</a> <a id="1234" class="Symbol">→</a> <a id="1236" href="Categories.Object.Initial.html#760" class="Record">Initial</a>
|
|||
|
<a id="1244" href="Categories.Object.Duality.html#1217" class="Function">op⊤⇒⊥</a> <a id="1250" href="Categories.Object.Duality.html#1250" class="Bound">t</a> <a id="1252" class="Symbol">=</a> <a id="1254" class="Keyword">record</a>
|
|||
|
<a id="1263" class="Symbol">{</a> <a id="1265" href="Categories.Object.Initial.html#804" class="Field">⊥</a> <a id="1278" class="Symbol">=</a> <a id="1280" href="Categories.Object.Terminal.html#905" class="Field">⊤</a>
|
|||
|
<a id="1284" class="Symbol">;</a> <a id="1286" href="Categories.Object.Initial.html#816" class="Field">⊥-is-initial</a> <a id="1299" class="Symbol">=</a> <a id="1301" href="Categories.Object.Duality.html#1055" class="Function">coIsTerminal⇒IsInitial</a> <a id="1324" href="Categories.Object.Terminal.html#917" class="Field">⊤-is-terminal</a>
|
|||
|
<a id="1340" class="Symbol">}</a>
|
|||
|
<a id="1344" class="Keyword">where</a> <a id="1350" class="Keyword">open</a> <a id="1355" href="Categories.Object.Terminal.html#860" class="Module">Terminal</a> <a id="1364" href="Categories.Object.Duality.html#1250" class="Bound">t</a>
|
|||
|
|
|||
|
<a id="Coproduct⇒coProduct"></a><a id="1367" href="Categories.Object.Duality.html#1367" class="Function">Coproduct⇒coProduct</a> <a id="1387" class="Symbol">:</a> <a id="1389" href="Categories.Object.Coproduct.html#398" class="Record">Coproduct</a> <a id="1399" href="Categories.Object.Duality.html#711" class="Generalizable">A</a> <a id="1401" href="Categories.Object.Duality.html#713" class="Generalizable">B</a> <a id="1403" class="Symbol">→</a> <a id="1405" href="Categories.Object.Product.Core.html#435" class="Record">Product</a> <a id="1413" href="Categories.Object.Duality.html#711" class="Generalizable">A</a> <a id="1415" href="Categories.Object.Duality.html#713" class="Generalizable">B</a>
|
|||
|
<a id="1417" href="Categories.Object.Duality.html#1367" class="Function">Coproduct⇒coProduct</a> <a id="1437" href="Categories.Object.Duality.html#1437" class="Bound">A+B</a> <a id="1441" class="Symbol">=</a> <a id="1443" class="Keyword">record</a>
|
|||
|
<a id="1452" class="Symbol">{</a> <a id="1454" href="Categories.Object.Product.Core.html#510" class="Field">A×B</a> <a id="1463" class="Symbol">=</a> <a id="1465" href="Categories.Object.Coproduct.html#476" class="Field">A+B.A+B</a>
|
|||
|
<a id="1475" class="Symbol">;</a> <a id="1477" href="Categories.Object.Product.Core.html#526" class="Field">π₁</a> <a id="1486" class="Symbol">=</a> <a id="1488" href="Categories.Object.Coproduct.html#492" class="Field">A+B.i₁</a>
|
|||
|
<a id="1497" class="Symbol">;</a> <a id="1499" href="Categories.Object.Product.Core.html#546" class="Field">π₂</a> <a id="1508" class="Symbol">=</a> <a id="1510" href="Categories.Object.Coproduct.html#512" class="Field">A+B.i₂</a>
|
|||
|
<a id="1519" class="Symbol">;</a> <a id="1521" href="Categories.Object.Product.Core.html#566" class="Field Operator">⟨_,_⟩</a> <a id="1530" class="Symbol">=</a> <a id="1532" href="Categories.Object.Coproduct.html#532" class="Field Operator">A+B.[_,_]</a>
|
|||
|
<a id="1544" class="Symbol">;</a> <a id="1546" href="Categories.Object.Product.Core.html#603" class="Field">project₁</a> <a id="1555" class="Symbol">=</a> <a id="1557" href="Categories.Object.Coproduct.html#569" class="Field">A+B.inject₁</a>
|
|||
|
<a id="1571" class="Symbol">;</a> <a id="1573" href="Categories.Object.Product.Core.html#637" class="Field">project₂</a> <a id="1582" class="Symbol">=</a> <a id="1584" href="Categories.Object.Coproduct.html#602" class="Field">A+B.inject₂</a>
|
|||
|
<a id="1598" class="Symbol">;</a> <a id="1600" href="Categories.Object.Product.Core.html#671" class="Field">unique</a> <a id="1609" class="Symbol">=</a> <a id="1611" href="Categories.Object.Coproduct.html#635" class="Field">A+B.unique</a>
|
|||
|
<a id="1624" class="Symbol">}</a>
|
|||
|
<a id="1628" class="Keyword">where</a>
|
|||
|
<a id="1636" class="Keyword">module</a> <a id="1643" href="Categories.Object.Duality.html#1643" class="Module">A+B</a> <a id="1647" class="Symbol">=</a> <a id="1649" href="Categories.Object.Coproduct.html#398" class="Module">Coproduct</a> <a id="1659" href="Categories.Object.Duality.html#1437" class="Bound">A+B</a>
|
|||
|
|
|||
|
<a id="coProduct⇒Coproduct"></a><a id="1664" href="Categories.Object.Duality.html#1664" class="Function">coProduct⇒Coproduct</a> <a id="1684" class="Symbol">:</a> <a id="1686" class="Symbol">∀</a> <a id="1688" class="Symbol">{</a><a id="1689" href="Categories.Object.Duality.html#1689" class="Bound">A</a> <a id="1691" href="Categories.Object.Duality.html#1691" class="Bound">B</a><a id="1692" class="Symbol">}</a> <a id="1694" class="Symbol">→</a> <a id="1696" href="Categories.Object.Product.Core.html#435" class="Record">Product</a> <a id="1704" href="Categories.Object.Duality.html#1689" class="Bound">A</a> <a id="1706" href="Categories.Object.Duality.html#1691" class="Bound">B</a> <a id="1708" class="Symbol">→</a> <a id="1710" href="Categories.Object.Coproduct.html#398" class="Record">Coproduct</a> <a id="1720" href="Categories.Object.Duality.html#1689" class="Bound">A</a> <a id="1722" href="Categories.Object.Duality.html#1691" class="Bound">B</a>
|
|||
|
<a id="1724" href="Categories.Object.Duality.html#1664" class="Function">coProduct⇒Coproduct</a> <a id="1744" href="Categories.Object.Duality.html#1744" class="Bound">A×B</a> <a id="1748" class="Symbol">=</a> <a id="1750" class="Keyword">record</a>
|
|||
|
<a id="1759" class="Symbol">{</a> <a id="1761" href="Categories.Object.Coproduct.html#476" class="Field">A+B</a> <a id="1769" class="Symbol">=</a> <a id="1771" href="Categories.Object.Product.Core.html#510" class="Field">A×B.A×B</a>
|
|||
|
<a id="1781" class="Symbol">;</a> <a id="1783" href="Categories.Object.Coproduct.html#492" class="Field">i₁</a> <a id="1791" class="Symbol">=</a> <a id="1793" href="Categories.Object.Product.Core.html#526" class="Field">A×B.π₁</a>
|
|||
|
<a id="1802" class="Symbol">;</a> <a id="1804" href="Categories.Object.Coproduct.html#512" class="Field">i₂</a> <a id="1812" class="Symbol">=</a> <a id="1814" href="Categories.Object.Product.Core.html#546" class="Field">A×B.π₂</a>
|
|||
|
<a id="1823" class="Symbol">;</a> <a id="1825" href="Categories.Object.Coproduct.html#532" class="Field Operator">[_,_]</a> <a id="1833" class="Symbol">=</a> <a id="1835" href="Categories.Object.Product.Core.html#566" class="Field Operator">A×B.⟨_,_⟩</a>
|
|||
|
<a id="1847" class="Symbol">;</a> <a id="1849" href="Categories.Object.Coproduct.html#569" class="Field">inject₁</a> <a id="1857" class="Symbol">=</a> <a id="1859" href="Categories.Object.Product.Core.html#603" class="Field">A×B.project₁</a>
|
|||
|
<a id="1874" class="Symbol">;</a> <a id="1876" href="Categories.Object.Coproduct.html#602" class="Field">inject₂</a> <a id="1884" class="Symbol">=</a> <a id="1886" href="Categories.Object.Product.Core.html#637" class="Field">A×B.project₂</a>
|
|||
|
<a id="1901" class="Symbol">;</a> <a id="1903" href="Categories.Object.Coproduct.html#635" class="Field">unique</a> <a id="1911" class="Symbol">=</a> <a id="1913" href="Categories.Object.Product.Core.html#671" class="Field">A×B.unique</a>
|
|||
|
<a id="1926" class="Symbol">}</a>
|
|||
|
<a id="1930" class="Keyword">where</a>
|
|||
|
<a id="1938" class="Keyword">module</a> <a id="1945" href="Categories.Object.Duality.html#1945" class="Module">A×B</a> <a id="1949" class="Symbol">=</a> <a id="1951" href="Categories.Object.Product.Core.html#435" class="Module">Product</a> <a id="1959" href="Categories.Object.Duality.html#1744" class="Bound">A×B</a>
|
|||
|
|
|||
|
<a id="1964" class="Comment">-- Zero objects are autodual</a>
|
|||
|
<a id="IsZero⇒coIsZero"></a><a id="1993" href="Categories.Object.Duality.html#1993" class="Function">IsZero⇒coIsZero</a> <a id="2009" class="Symbol">:</a> <a id="2011" href="Categories.Object.Zero.html#405" class="Record">IsZero</a> <a id="2018" href="Categories.Object.Duality.html#231" class="Bound">C</a> <a id="2020" href="Categories.Object.Duality.html#717" class="Generalizable">Z</a> <a id="2022" class="Symbol">→</a> <a id="2024" href="Categories.Object.Zero.html#405" class="Record">IsZero</a> <a id="2031" href="Categories.Category.Core.html#3132" class="Function">op</a> <a id="2034" href="Categories.Object.Duality.html#717" class="Generalizable">Z</a>
|
|||
|
<a id="2036" href="Categories.Object.Duality.html#1993" class="Function">IsZero⇒coIsZero</a> <a id="2052" href="Categories.Object.Duality.html#2052" class="Bound">is-zero</a> <a id="2060" class="Symbol">=</a> <a id="2062" class="Keyword">record</a>
|
|||
|
<a id="2071" class="Symbol">{</a> <a id="2073" href="Categories.Object.Zero.html#458" class="Field">isInitial</a> <a id="2083" class="Symbol">=</a> <a id="2085" class="Keyword">record</a> <a id="2092" class="Symbol">{</a> <a id="2094" href="Categories.Object.Initial.html#478" class="Field">!</a> <a id="2096" class="Symbol">=</a> <a id="2098" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="2100" class="Symbol">;</a> <a id="2102" href="Categories.Object.Initial.html#506" class="Field">!-unique</a> <a id="2111" class="Symbol">=</a> <a id="2113" href="Categories.Object.Terminal.html#605" class="Function">!-unique</a> <a id="2122" class="Symbol">}</a>
|
|||
|
<a id="2126" class="Symbol">;</a> <a id="2128" href="Categories.Object.Zero.html#486" class="Field">isTerminal</a> <a id="2139" class="Symbol">=</a> <a id="2141" class="Keyword">record</a> <a id="2148" class="Symbol">{</a> <a id="2150" href="Categories.Object.Terminal.html#577" class="Field">!</a> <a id="2152" class="Symbol">=</a> <a id="2154" href="Categories.Object.Zero.html#571" class="Function">¡</a> <a id="2156" class="Symbol">;</a> <a id="2158" href="Categories.Object.Terminal.html#605" class="Field">!-unique</a> <a id="2167" class="Symbol">=</a> <a id="2169" href="Categories.Object.Zero.html#591" class="Function">¡-unique</a> <a id="2178" class="Symbol">}</a>
|
|||
|
<a id="2182" class="Symbol">}</a>
|
|||
|
<a id="2186" class="Keyword">where</a>
|
|||
|
<a id="2196" class="Keyword">open</a> <a id="2201" href="Categories.Object.Zero.html#405" class="Module">IsZero</a> <a id="2208" href="Categories.Object.Duality.html#2052" class="Bound">is-zero</a>
|
|||
|
|
|||
|
<a id="coIsZero⇒IsZero"></a><a id="2217" href="Categories.Object.Duality.html#2217" class="Function">coIsZero⇒IsZero</a> <a id="2233" class="Symbol">:</a> <a id="2235" href="Categories.Object.Zero.html#405" class="Record">IsZero</a> <a id="2242" href="Categories.Category.Core.html#3132" class="Function">op</a> <a id="2245" href="Categories.Object.Duality.html#717" class="Generalizable">Z</a> <a id="2247" class="Symbol">→</a> <a id="2249" href="Categories.Object.Zero.html#405" class="Record">IsZero</a> <a id="2256" href="Categories.Object.Duality.html#231" class="Bound">C</a> <a id="2258" href="Categories.Object.Duality.html#717" class="Generalizable">Z</a>
|
|||
|
<a id="2260" href="Categories.Object.Duality.html#2217" class="Function">coIsZero⇒IsZero</a> <a id="2276" href="Categories.Object.Duality.html#2276" class="Bound">co-is-zero</a> <a id="2287" class="Symbol">=</a> <a id="2289" class="Keyword">record</a>
|
|||
|
<a id="2298" class="Symbol">{</a> <a id="2300" href="Categories.Object.Zero.html#458" class="Field">isInitial</a> <a id="2310" class="Symbol">=</a> <a id="2312" class="Keyword">record</a> <a id="2319" class="Symbol">{</a> <a id="2321" href="Categories.Object.Initial.html#478" class="Field">!</a> <a id="2323" class="Symbol">=</a> <a id="2325" href="Categories.Object.Terminal.html#577" class="Function">!</a> <a id="2327" class="Symbol">;</a> <a id="2329" href="Categories.Object.Initial.html#506" class="Field">!-unique</a> <a id="2338" class="Symbol">=</a> <a id="2340" href="Categories.Object.Terminal.html#605" class="Function">!-unique</a> <a id="2349" class="Symbol">}</a>
|
|||
|
<a id="2353" class="Symbol">;</a> <a id="2355" href="Categories.Object.Zero.html#486" class="Field">isTerminal</a> <a id="2366" class="Symbol">=</a> <a id="2368" class="Keyword">record</a> <a id="2375" class="Symbol">{</a> <a id="2377" href="Categories.Object.Terminal.html#577" class="Field">!</a> <a id="2379" class="Symbol">=</a> <a id="2381" href="Categories.Object.Zero.html#571" class="Function">¡</a> <a id="2383" class="Symbol">;</a> <a id="2385" href="Categories.Object.Terminal.html#605" class="Field">!-unique</a> <a id="2394" class="Symbol">=</a> <a id="2396" href="Categories.Object.Zero.html#591" class="Function">¡-unique</a> <a id="2405" class="Symbol">}</a>
|
|||
|
<a id="2409" class="Symbol">}</a>
|
|||
|
<a id="2413" class="Keyword">where</a>
|
|||
|
<a id="2423" class="Keyword">open</a> <a id="2428" href="Categories.Object.Zero.html#405" class="Module">IsZero</a> <a id="2435" href="Categories.Object.Duality.html#2276" class="Bound">co-is-zero</a>
|
|||
|
|
|||
|
<a id="coZero⇒Zero"></a><a id="2447" href="Categories.Object.Duality.html#2447" class="Function">coZero⇒Zero</a> <a id="2459" class="Symbol">:</a> <a id="2461" href="Categories.Object.Zero.html#940" class="Record">Zero</a> <a id="2466" href="Categories.Category.Core.html#3132" class="Function">op</a> <a id="2469" class="Symbol">→</a> <a id="2471" href="Categories.Object.Zero.html#940" class="Record">Zero</a> <a id="2476" href="Categories.Object.Duality.html#231" class="Bound">C</a>
|
|||
|
<a id="2478" href="Categories.Object.Duality.html#2447" class="Function">coZero⇒Zero</a> <a id="2490" href="Categories.Object.Duality.html#2490" class="Bound">zero</a> <a id="2495" class="Symbol">=</a> <a id="2497" class="Keyword">record</a>
|
|||
|
<a id="2506" class="Symbol">{</a> <a id="2508" href="Categories.Object.Zero.html#981" class="Field">𝟘</a> <a id="2510" class="Symbol">=</a> <a id="2512" href="Categories.Object.Zero.html#981" class="Field">𝟘</a>
|
|||
|
<a id="2516" class="Symbol">;</a> <a id="2518" href="Categories.Object.Zero.html#993" class="Field">isZero</a> <a id="2525" class="Symbol">=</a> <a id="2527" href="Categories.Object.Duality.html#2217" class="Function">coIsZero⇒IsZero</a> <a id="2543" href="Categories.Object.Zero.html#993" class="Field">isZero</a>
|
|||
|
<a id="2552" class="Symbol">}</a>
|
|||
|
<a id="2556" class="Keyword">where</a>
|
|||
|
<a id="2566" class="Keyword">open</a> <a id="2571" href="Categories.Object.Zero.html#940" class="Module">Zero</a> <a id="2576" href="Categories.Object.Duality.html#2490" class="Bound">zero</a>
|
|||
|
|
|||
|
<a id="Zero⇒coZero"></a><a id="2582" href="Categories.Object.Duality.html#2582" class="Function">Zero⇒coZero</a> <a id="2594" class="Symbol">:</a> <a id="2596" href="Categories.Object.Zero.html#940" class="Record">Zero</a> <a id="2601" href="Categories.Object.Duality.html#231" class="Bound">C</a> <a id="2603" class="Symbol">→</a> <a id="2605" href="Categories.Object.Zero.html#940" class="Record">Zero</a> <a id="2610" href="Categories.Category.Core.html#3132" class="Function">op</a>
|
|||
|
<a id="2613" href="Categories.Object.Duality.html#2582" class="Function">Zero⇒coZero</a> <a id="2625" href="Categories.Object.Duality.html#2625" class="Bound">zero</a> <a id="2630" class="Symbol">=</a> <a id="2632" class="Keyword">record</a>
|
|||
|
<a id="2641" class="Symbol">{</a> <a id="2643" href="Categories.Object.Zero.html#981" class="Field">𝟘</a> <a id="2645" class="Symbol">=</a> <a id="2647" href="Categories.Object.Zero.html#981" class="Field">𝟘</a>
|
|||
|
<a id="2651" class="Symbol">;</a> <a id="2653" href="Categories.Object.Zero.html#993" class="Field">isZero</a> <a id="2660" class="Symbol">=</a> <a id="2662" href="Categories.Object.Duality.html#1993" class="Function">IsZero⇒coIsZero</a> <a id="2678" href="Categories.Object.Zero.html#993" class="Field">isZero</a>
|
|||
|
<a id="2687" class="Symbol">}</a>
|
|||
|
<a id="2691" class="Keyword">where</a>
|
|||
|
<a id="2701" class="Keyword">open</a> <a id="2706" href="Categories.Object.Zero.html#940" class="Module">Zero</a> <a id="2711" href="Categories.Object.Duality.html#2625" class="Bound">zero</a>
|
|||
|
|
|||
|
<a id="2717" class="Comment">-- Tests to ensure that dualities are involutive up to definitional equality.</a>
|
|||
|
<a id="2795" class="Keyword">private</a>
|
|||
|
<a id="coIsTerminal⟺IsInitial"></a><a id="2805" href="Categories.Object.Duality.html#2805" class="Function">coIsTerminal⟺IsInitial</a> <a id="2828" class="Symbol">:</a> <a id="2830" class="Symbol">(</a><a id="2831" href="Categories.Object.Duality.html#2831" class="Bound">⊥</a> <a id="2833" class="Symbol">:</a> <a id="2835" href="Categories.Object.Initial.html#422" class="Record">IsInitial</a> <a id="2845" href="Categories.Object.Duality.html#715" class="Generalizable">X</a><a id="2846" class="Symbol">)</a> <a id="2848" class="Symbol">→</a> <a id="2850" href="Categories.Object.Duality.html#1055" class="Function">coIsTerminal⇒IsInitial</a> <a id="2873" class="Symbol">(</a><a id="2874" href="Categories.Object.Duality.html#744" class="Function">IsInitial⇒coIsTerminal</a> <a id="2897" href="Categories.Object.Duality.html#2831" class="Bound">⊥</a><a id="2898" class="Symbol">)</a> <a id="2900" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">≡</a> <a id="2902" href="Categories.Object.Duality.html#2831" class="Bound">⊥</a>
|
|||
|
<a id="2906" href="Categories.Object.Duality.html#2805" class="Function">coIsTerminal⟺IsInitial</a> <a id="2929" class="Symbol">_</a> <a id="2931" class="Symbol">=</a> <a id="2933" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">≡.refl</a>
|
|||
|
|
|||
|
<a id="IsInitial⟺coIsTerminal"></a><a id="2943" href="Categories.Object.Duality.html#2943" class="Function">IsInitial⟺coIsTerminal</a> <a id="2966" class="Symbol">:</a> <a id="2968" class="Symbol">(</a><a id="2969" href="Categories.Object.Duality.html#2969" class="Bound">⊤</a> <a id="2971" class="Symbol">:</a> <a id="2973" href="Categories.Object.Terminal.html#520" class="Record">IsTerminal</a> <a id="2984" href="Categories.Object.Duality.html#715" class="Generalizable">X</a><a id="2985" class="Symbol">)</a> <a id="2987" class="Symbol">→</a> <a id="2989" href="Categories.Object.Duality.html#744" class="Function">IsInitial⇒coIsTerminal</a> <a id="3012" class="Symbol">(</a><a id="3013" href="Categories.Object.Duality.html#1055" class="Function">coIsTerminal⇒IsInitial</a> <a id="3036" href="Categories.Object.Duality.html#2969" class="Bound">⊤</a><a id="3037" class="Symbol">)</a> <a id="3039" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">≡</a> <a id="3041" href="Categories.Object.Duality.html#2969" class="Bound">⊤</a>
|
|||
|
<a id="3045" href="Categories.Object.Duality.html#2943" class="Function">IsInitial⟺coIsTerminal</a> <a id="3068" class="Symbol">_</a> <a id="3070" class="Symbol">=</a> <a id="3072" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">≡.refl</a>
|
|||
|
|
|||
|
<a id="⊥⟺op⊤"></a><a id="3082" href="Categories.Object.Duality.html#3082" class="Function">⊥⟺op⊤</a> <a id="3088" class="Symbol">:</a> <a id="3090" class="Symbol">(</a><a id="3091" href="Categories.Object.Duality.html#3091" class="Bound">⊤</a> <a id="3093" class="Symbol">:</a> <a id="3095" href="Categories.Object.Terminal.html#860" class="Record">Terminal</a><a id="3103" class="Symbol">)</a> <a id="3105" class="Symbol">→</a> <a id="3107" href="Categories.Object.Duality.html#905" class="Function">⊥⇒op⊤</a> <a id="3113" class="Symbol">(</a><a id="3114" href="Categories.Object.Duality.html#1217" class="Function">op⊤⇒⊥</a> <a id="3120" href="Categories.Object.Duality.html#3091" class="Bound">⊤</a><a id="3121" class="Symbol">)</a> <a id="3123" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">≡</a> <a id="3125" href="Categories.Object.Duality.html#3091" class="Bound">⊤</a>
|
|||
|
<a id="3129" href="Categories.Object.Duality.html#3082" class="Function">⊥⟺op⊤</a> <a id="3135" class="Symbol">_</a> <a id="3137" class="Symbol">=</a> <a id="3139" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">≡.refl</a>
|
|||
|
|
|||
|
<a id="op⊤⟺⊥"></a><a id="3149" href="Categories.Object.Duality.html#3149" class="Function">op⊤⟺⊥</a> <a id="3155" class="Symbol">:</a> <a id="3157" class="Symbol">(</a><a id="3158" href="Categories.Object.Duality.html#3158" class="Bound">⊥</a> <a id="3160" class="Symbol">:</a> <a id="3162" href="Categories.Object.Initial.html#760" class="Record">Initial</a><a id="3169" class="Symbol">)</a> <a id="3171" class="Symbol">→</a> <a id="3173" href="Categories.Object.Duality.html#1217" class="Function">op⊤⇒⊥</a> <a id="3179" class="Symbol">(</a><a id="3180" href="Categories.Object.Duality.html#905" class="Function">⊥⇒op⊤</a> <a id="3186" href="Categories.Object.Duality.html#3158" class="Bound">⊥</a><a id="3187" class="Symbol">)</a> <a id="3189" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">≡</a> <a id="3191" href="Categories.Object.Duality.html#3158" class="Bound">⊥</a>
|
|||
|
<a id="3195" href="Categories.Object.Duality.html#3149" class="Function">op⊤⟺⊥</a> <a id="3201" class="Symbol">_</a> <a id="3203" class="Symbol">=</a> <a id="3205" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">≡.refl</a>
|
|||
|
|
|||
|
<a id="Coproduct⟺coProduct"></a><a id="3215" href="Categories.Object.Duality.html#3215" class="Function">Coproduct⟺coProduct</a> <a id="3235" class="Symbol">:</a> <a id="3237" class="Symbol">(</a><a id="3238" href="Categories.Object.Duality.html#3238" class="Bound">p</a> <a id="3240" class="Symbol">:</a> <a id="3242" href="Categories.Object.Product.Core.html#435" class="Record">Product</a> <a id="3250" href="Categories.Object.Duality.html#711" class="Generalizable">A</a> <a id="3252" href="Categories.Object.Duality.html#713" class="Generalizable">B</a><a id="3253" class="Symbol">)</a> <a id="3255" class="Symbol">→</a> <a id="3257" href="Categories.Object.Duality.html#1367" class="Function">Coproduct⇒coProduct</a> <a id="3277" class="Symbol">(</a><a id="3278" href="Categories.Object.Duality.html#1664" class="Function">coProduct⇒Coproduct</a> <a id="3298" href="Categories.Object.Duality.html#3238" class="Bound">p</a><a id="3299" class="Symbol">)</a> <a id="3301" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">≡</a> <a id="3303" href="Categories.Object.Duality.html#3238" class="Bound">p</a>
|
|||
|
<a id="3307" href="Categories.Object.Duality.html#3215" class="Function">Coproduct⟺coProduct</a> <a id="3327" class="Symbol">_</a> <a id="3329" class="Symbol">=</a> <a id="3331" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">≡.refl</a>
|
|||
|
|
|||
|
<a id="coProduct⟺Coproduct"></a><a id="3341" href="Categories.Object.Duality.html#3341" class="Function">coProduct⟺Coproduct</a> <a id="3361" class="Symbol">:</a> <a id="3363" class="Symbol">(</a><a id="3364" href="Categories.Object.Duality.html#3364" class="Bound">p</a> <a id="3366" class="Symbol">:</a> <a id="3368" href="Categories.Object.Coproduct.html#398" class="Record">Coproduct</a> <a id="3378" href="Categories.Object.Duality.html#711" class="Generalizable">A</a> <a id="3380" href="Categories.Object.Duality.html#713" class="Generalizable">B</a><a id="3381" class="Symbol">)</a> <a id="3383" class="Symbol">→</a> <a id="3385" href="Categories.Object.Duality.html#1664" class="Function">coProduct⇒Coproduct</a> <a id="3405" class="Symbol">(</a><a id="3406" href="Categories.Object.Duality.html#1367" class="Function">Coproduct⇒coProduct</a> <a id="3426" href="Categories.Object.Duality.html#3364" class="Bound">p</a><a id="3427" class="Symbol">)</a> <a id="3429" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">≡</a> <a id="3431" href="Categories.Object.Duality.html#3364" class="Bound">p</a>
|
|||
|
<a id="3435" href="Categories.Object.Duality.html#3341" class="Function">coProduct⟺Coproduct</a> <a id="3455" class="Symbol">_</a> <a id="3457" class="Symbol">=</a> <a id="3459" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">≡.refl</a>
|
|||
|
|
|||
|
<a id="coIsZero⟺IsZero"></a><a id="3469" href="Categories.Object.Duality.html#3469" class="Function">coIsZero⟺IsZero</a> <a id="3485" class="Symbol">:</a> <a id="3487" class="Symbol">{</a><a id="3488" href="Categories.Object.Duality.html#3488" class="Bound">zero</a> <a id="3493" class="Symbol">:</a> <a id="3495" href="Categories.Object.Zero.html#405" class="Record">IsZero</a> <a id="3502" href="Categories.Category.Core.html#3132" class="Function">op</a> <a id="3505" href="Categories.Object.Duality.html#717" class="Generalizable">Z</a><a id="3506" class="Symbol">}</a> <a id="3508" class="Symbol">→</a> <a id="3510" href="Categories.Object.Duality.html#1993" class="Function">IsZero⇒coIsZero</a> <a id="3526" class="Symbol">(</a><a id="3527" href="Categories.Object.Duality.html#2217" class="Function">coIsZero⇒IsZero</a> <a id="3543" href="Categories.Object.Duality.html#3488" class="Bound">zero</a><a id="3547" class="Symbol">)</a> <a id="3549" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">≡</a> <a id="3551" href="Categories.Object.Duality.html#3488" class="Bound">zero</a>
|
|||
|
<a id="3558" href="Categories.Object.Duality.html#3469" class="Function">coIsZero⟺IsZero</a> <a id="3574" class="Symbol">=</a> <a id="3576" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">≡.refl</a>
|
|||
|
|
|||
|
<a id="IsZero⟺coIsZero"></a><a id="3586" href="Categories.Object.Duality.html#3586" class="Function">IsZero⟺coIsZero</a> <a id="3602" class="Symbol">:</a> <a id="3604" class="Symbol">∀</a> <a id="3606" class="Symbol">{</a><a id="3607" href="Categories.Object.Duality.html#3607" class="Bound">Z</a><a id="3608" class="Symbol">}</a> <a id="3610" class="Symbol">{</a><a id="3611" href="Categories.Object.Duality.html#3611" class="Bound">zero</a> <a id="3616" class="Symbol">:</a> <a id="3618" href="Categories.Object.Zero.html#405" class="Record">IsZero</a> <a id="3625" href="Categories.Object.Duality.html#231" class="Bound">C</a> <a id="3627" href="Categories.Object.Duality.html#3607" class="Bound">Z</a><a id="3628" class="Symbol">}</a> <a id="3630" class="Symbol">→</a> <a id="3632" href="Categories.Object.Duality.html#2217" class="Function">coIsZero⇒IsZero</a> <a id="3648" class="Symbol">(</a><a id="3649" href="Categories.Object.Duality.html#1993" class="Function">IsZero⇒coIsZero</a> <a id="3665" href="Categories.Object.Duality.html#3611" class="Bound">zero</a><a id="3669" class="Symbol">)</a> <a id="3671" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">≡</a> <a id="3673" href="Categories.Object.Duality.html#3611" class="Bound">zero</a>
|
|||
|
<a id="3680" href="Categories.Object.Duality.html#3586" class="Function">IsZero⟺coIsZero</a> <a id="3696" class="Symbol">=</a> <a id="3698" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">≡.refl</a>
|
|||
|
|
|||
|
<a id="coZero⟺Zero"></a><a id="3708" href="Categories.Object.Duality.html#3708" class="Function">coZero⟺Zero</a> <a id="3720" class="Symbol">:</a> <a id="3722" class="Symbol">∀</a> <a id="3724" class="Symbol">{</a><a id="3725" href="Categories.Object.Duality.html#3725" class="Bound">zero</a> <a id="3730" class="Symbol">:</a> <a id="3732" href="Categories.Object.Zero.html#940" class="Record">Zero</a> <a id="3737" href="Categories.Category.Core.html#3132" class="Function">op</a><a id="3739" class="Symbol">}</a> <a id="3741" class="Symbol">→</a> <a id="3743" href="Categories.Object.Duality.html#2582" class="Function">Zero⇒coZero</a> <a id="3755" class="Symbol">(</a><a id="3756" href="Categories.Object.Duality.html#2447" class="Function">coZero⇒Zero</a> <a id="3768" href="Categories.Object.Duality.html#3725" class="Bound">zero</a><a id="3772" class="Symbol">)</a> <a id="3774" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">≡</a> <a id="3776" href="Categories.Object.Duality.html#3725" class="Bound">zero</a>
|
|||
|
<a id="3783" href="Categories.Object.Duality.html#3708" class="Function">coZero⟺Zero</a> <a id="3795" class="Symbol">=</a> <a id="3797" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">≡.refl</a>
|
|||
|
|
|||
|
<a id="Zero⟺coZero"></a><a id="3807" href="Categories.Object.Duality.html#3807" class="Function">Zero⟺coZero</a> <a id="3819" class="Symbol">:</a> <a id="3821" class="Symbol">∀</a> <a id="3823" class="Symbol">{</a><a id="3824" href="Categories.Object.Duality.html#3824" class="Bound">zero</a> <a id="3829" class="Symbol">:</a> <a id="3831" href="Categories.Object.Zero.html#940" class="Record">Zero</a> <a id="3836" href="Categories.Object.Duality.html#231" class="Bound">C</a><a id="3837" class="Symbol">}</a> <a id="3839" class="Symbol">→</a> <a id="3841" href="Categories.Object.Duality.html#2447" class="Function">coZero⇒Zero</a> <a id="3853" class="Symbol">(</a><a id="3854" href="Categories.Object.Duality.html#2582" class="Function">Zero⇒coZero</a> <a id="3866" href="Categories.Object.Duality.html#3824" class="Bound">zero</a><a id="3870" class="Symbol">)</a> <a id="3872" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">≡</a> <a id="3874" href="Categories.Object.Duality.html#3824" class="Bound">zero</a>
|
|||
|
<a id="3881" href="Categories.Object.Duality.html#3807" class="Function">Zero⟺coZero</a> <a id="3893" class="Symbol">=</a> <a id="3895" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">≡.refl</a>
|
|||
|
|
|||
|
<a id="3903" class="Keyword">module</a> <a id="3910" href="Categories.Object.Duality.html#3910" class="Module">_</a> <a id="3912" class="Symbol">(</a><a id="3913" href="Categories.Object.Duality.html#3913" class="Bound">𝟎</a> <a id="3915" class="Symbol">:</a> <a id="3917" href="Categories.Object.Zero.html#940" class="Record">Zero</a> <a id="3922" href="Categories.Object.Duality.html#231" class="Bound">C</a><a id="3923" class="Symbol">)</a> <a id="3925" class="Keyword">where</a>
|
|||
|
<a id="3933" class="Keyword">open</a> <a id="3938" href="Categories.Object.Kernel.html" class="Module">Kernels</a> <a id="3946" class="Symbol">(</a><a id="3947" href="Categories.Object.Duality.html#2582" class="Function">Zero⇒coZero</a> <a id="3959" href="Categories.Object.Duality.html#3913" class="Bound">𝟎</a><a id="3960" class="Symbol">)</a>
|
|||
|
<a id="3964" class="Keyword">open</a> <a id="3969" href="Categories.Object.Cokernel.html" class="Module">Cokernels</a> <a id="3979" href="Categories.Object.Duality.html#3913" class="Bound">𝟎</a>
|
|||
|
|
|||
|
<a id="3984" href="Categories.Object.Duality.html#3984" class="Function">coIsKernel⇒IsCokernel</a> <a id="4006" class="Symbol">:</a> <a id="4008" href="Categories.Object.Kernel.html#834" class="Record">IsKernel</a> <a id="4017" href="Categories.Object.Duality.html#733" class="Generalizable">k</a> <a id="4019" href="Categories.Object.Duality.html#729" class="Generalizable">f</a> <a id="4021" class="Symbol">→</a> <a id="4023" href="Categories.Object.Cokernel.html#484" class="Record">IsCokernel</a> <a id="4034" href="Categories.Object.Duality.html#729" class="Generalizable">f</a> <a id="4036" href="Categories.Object.Duality.html#733" class="Generalizable">k</a>
|
|||
|
<a id="4040" href="Categories.Object.Duality.html#3984" class="Function">coIsKernel⇒IsCokernel</a> <a id="4062" href="Categories.Object.Duality.html#4062" class="Bound">isKernel</a> <a id="4071" class="Symbol">=</a> <a id="4073" class="Keyword">record</a>
|
|||
|
<a id="4084" class="Symbol">{</a> <a id="4086" href="Categories.Object.Cokernel.html#563" class="Field">commute</a> <a id="4094" class="Symbol">=</a> <a id="4096" href="Categories.Object.Kernel.html#911" class="Field">commute</a>
|
|||
|
<a id="4108" class="Symbol">;</a> <a id="4110" href="Categories.Object.Cokernel.html#593" class="Field">universal</a> <a id="4120" class="Symbol">=</a> <a id="4122" href="Categories.Object.Kernel.html#939" class="Field">universal</a>
|
|||
|
<a id="4136" class="Symbol">;</a> <a id="4138" href="Categories.Object.Cokernel.html#651" class="Field">factors</a> <a id="4146" class="Symbol">=</a> <a id="4148" href="Categories.Object.Kernel.html#998" class="Field">factors</a>
|
|||
|
<a id="4160" class="Symbol">;</a> <a id="4162" href="Categories.Object.Cokernel.html#713" class="Field">unique</a> <a id="4169" class="Symbol">=</a> <a id="4171" href="Categories.Object.Kernel.html#1058" class="Field">unique</a>
|
|||
|
<a id="4182" class="Symbol">}</a>
|
|||
|
<a id="4188" class="Keyword">where</a>
|
|||
|
<a id="4200" class="Keyword">open</a> <a id="4205" href="Categories.Object.Kernel.html#834" class="Module">IsKernel</a> <a id="4214" href="Categories.Object.Duality.html#4062" class="Bound">isKernel</a>
|
|||
|
|
|||
|
<a id="4226" href="Categories.Object.Duality.html#4226" class="Function">IsCokernel⇒coIsKernel</a> <a id="4248" class="Symbol">:</a> <a id="4250" href="Categories.Object.Cokernel.html#484" class="Record">IsCokernel</a> <a id="4261" href="Categories.Object.Duality.html#729" class="Generalizable">f</a> <a id="4263" href="Categories.Object.Duality.html#733" class="Generalizable">k</a> <a id="4265" class="Symbol">→</a> <a id="4267" href="Categories.Object.Kernel.html#834" class="Record">IsKernel</a> <a id="4276" href="Categories.Object.Duality.html#733" class="Generalizable">k</a> <a id="4278" href="Categories.Object.Duality.html#729" class="Generalizable">f</a>
|
|||
|
<a id="4282" href="Categories.Object.Duality.html#4226" class="Function">IsCokernel⇒coIsKernel</a> <a id="4304" href="Categories.Object.Duality.html#4304" class="Bound">isCokernel</a> <a id="4315" class="Symbol">=</a> <a id="4317" class="Keyword">record</a>
|
|||
|
<a id="4328" class="Symbol">{</a> <a id="4330" href="Categories.Object.Kernel.html#911" class="Field">commute</a> <a id="4338" class="Symbol">=</a> <a id="4340" href="Categories.Object.Cokernel.html#563" class="Field">commute</a>
|
|||
|
<a id="4352" class="Symbol">;</a> <a id="4354" href="Categories.Object.Kernel.html#939" class="Field">universal</a> <a id="4364" class="Symbol">=</a> <a id="4366" href="Categories.Object.Cokernel.html#593" class="Field">universal</a>
|
|||
|
<a id="4380" class="Symbol">;</a> <a id="4382" href="Categories.Object.Kernel.html#998" class="Field">factors</a> <a id="4390" class="Symbol">=</a> <a id="4392" href="Categories.Object.Cokernel.html#651" class="Field">factors</a>
|
|||
|
<a id="4404" class="Symbol">;</a> <a id="4406" href="Categories.Object.Kernel.html#1058" class="Field">unique</a> <a id="4413" class="Symbol">=</a> <a id="4415" href="Categories.Object.Cokernel.html#713" class="Field">unique</a>
|
|||
|
<a id="4426" class="Symbol">}</a>
|
|||
|
<a id="4432" class="Keyword">where</a>
|
|||
|
<a id="4444" class="Keyword">open</a> <a id="4449" href="Categories.Object.Cokernel.html#484" class="Module">IsCokernel</a> <a id="4460" href="Categories.Object.Duality.html#4304" class="Bound">isCokernel</a>
|
|||
|
|
|||
|
<a id="4474" href="Categories.Object.Duality.html#4474" class="Function">coKernel⇒Cokernel</a> <a id="4492" class="Symbol">:</a> <a id="4494" href="Categories.Object.Kernel.html#1429" class="Record">Kernel</a> <a id="4501" href="Categories.Object.Duality.html#729" class="Generalizable">f</a> <a id="4503" class="Symbol">→</a> <a id="4505" href="Categories.Object.Cokernel.html#1092" class="Record">Cokernel</a> <a id="4514" href="Categories.Object.Duality.html#729" class="Generalizable">f</a>
|
|||
|
<a id="4518" href="Categories.Object.Duality.html#4474" class="Function">coKernel⇒Cokernel</a> <a id="4536" href="Categories.Object.Duality.html#4536" class="Bound">k</a> <a id="4538" class="Symbol">=</a> <a id="4540" class="Keyword">record</a>
|
|||
|
<a id="4551" class="Symbol">{</a> <a id="4553" href="Categories.Object.Cokernel.html#1176" class="Field">cokernel⇒</a> <a id="4563" class="Symbol">=</a> <a id="4565" href="Categories.Object.Kernel.html#1511" class="Field">kernel⇒</a>
|
|||
|
<a id="4577" class="Symbol">;</a> <a id="4579" href="Categories.Object.Cokernel.html#1206" class="Field">isCokernel</a> <a id="4590" class="Symbol">=</a> <a id="4592" href="Categories.Object.Duality.html#3984" class="Function">coIsKernel⇒IsCokernel</a> <a id="4614" href="Categories.Object.Kernel.html#1537" class="Field">isKernel</a>
|
|||
|
<a id="4627" class="Symbol">}</a>
|
|||
|
<a id="4633" class="Keyword">where</a>
|
|||
|
<a id="4645" class="Keyword">open</a> <a id="4650" href="Categories.Object.Kernel.html#1429" class="Module">Kernel</a> <a id="4657" href="Categories.Object.Duality.html#4536" class="Bound">k</a>
|
|||
|
|
|||
|
<a id="4662" href="Categories.Object.Duality.html#4662" class="Function">Cokernel⇒coKernel</a> <a id="4680" class="Symbol">:</a> <a id="4682" href="Categories.Object.Cokernel.html#1092" class="Record">Cokernel</a> <a id="4691" href="Categories.Object.Duality.html#729" class="Generalizable">f</a> <a id="4693" class="Symbol">→</a> <a id="4695" href="Categories.Object.Kernel.html#1429" class="Record">Kernel</a> <a id="4702" href="Categories.Object.Duality.html#729" class="Generalizable">f</a>
|
|||
|
<a id="4706" href="Categories.Object.Duality.html#4662" class="Function">Cokernel⇒coKernel</a> <a id="4724" href="Categories.Object.Duality.html#4724" class="Bound">k</a> <a id="4726" class="Symbol">=</a> <a id="4728" class="Keyword">record</a>
|
|||
|
<a id="4739" class="Symbol">{</a> <a id="4741" href="Categories.Object.Kernel.html#1511" class="Field">kernel⇒</a> <a id="4749" class="Symbol">=</a> <a id="4751" href="Categories.Object.Cokernel.html#1176" class="Field">cokernel⇒</a>
|
|||
|
<a id="4765" class="Symbol">;</a> <a id="4767" href="Categories.Object.Kernel.html#1537" class="Field">isKernel</a> <a id="4776" class="Symbol">=</a> <a id="4778" href="Categories.Object.Duality.html#4226" class="Function">IsCokernel⇒coIsKernel</a> <a id="4800" href="Categories.Object.Cokernel.html#1206" class="Field">isCokernel</a>
|
|||
|
<a id="4815" class="Symbol">}</a>
|
|||
|
<a id="4821" class="Keyword">where</a>
|
|||
|
<a id="4833" class="Keyword">open</a> <a id="4838" href="Categories.Object.Cokernel.html#1092" class="Module">Cokernel</a> <a id="4847" href="Categories.Object.Duality.html#4724" class="Bound">k</a>
|
|||
|
|
|||
|
<a id="4852" class="Keyword">private</a>
|
|||
|
<a id="4864" href="Categories.Object.Duality.html#4864" class="Function">coIsKernel⟺IsCokernel</a> <a id="4886" class="Symbol">:</a> <a id="4888" class="Symbol">∀</a> <a id="4890" class="Symbol">{</a><a id="4891" href="Categories.Object.Duality.html#4891" class="Bound">isKernel</a> <a id="4900" class="Symbol">:</a> <a id="4902" href="Categories.Object.Kernel.html#834" class="Record">IsKernel</a> <a id="4911" href="Categories.Object.Duality.html#733" class="Generalizable">k</a> <a id="4913" href="Categories.Object.Duality.html#729" class="Generalizable">f</a><a id="4914" class="Symbol">}</a> <a id="4916" class="Symbol">→</a> <a id="4918" href="Categories.Object.Duality.html#4226" class="Function">IsCokernel⇒coIsKernel</a> <a id="4940" class="Symbol">(</a><a id="4941" href="Categories.Object.Duality.html#3984" class="Function">coIsKernel⇒IsCokernel</a> <a id="4963" href="Categories.Object.Duality.html#4891" class="Bound">isKernel</a><a id="4971" class="Symbol">)</a> <a id="4973" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">≡</a> <a id="4975" href="Categories.Object.Duality.html#4891" class="Bound">isKernel</a>
|
|||
|
<a id="4988" href="Categories.Object.Duality.html#4864" class="Function">coIsKernel⟺IsCokernel</a> <a id="5010" class="Symbol">=</a> <a id="5012" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">≡.refl</a>
|
|||
|
|
|||
|
<a id="5024" href="Categories.Object.Duality.html#5024" class="Function">IsCokernel⟺coIsKernel</a> <a id="5046" class="Symbol">:</a> <a id="5048" class="Symbol">∀</a> <a id="5050" class="Symbol">{</a><a id="5051" href="Categories.Object.Duality.html#5051" class="Bound">isCokernel</a> <a id="5062" class="Symbol">:</a> <a id="5064" href="Categories.Object.Cokernel.html#484" class="Record">IsCokernel</a> <a id="5075" href="Categories.Object.Duality.html#729" class="Generalizable">f</a> <a id="5077" href="Categories.Object.Duality.html#733" class="Generalizable">k</a><a id="5078" class="Symbol">}</a> <a id="5080" class="Symbol">→</a> <a id="5082" href="Categories.Object.Duality.html#3984" class="Function">coIsKernel⇒IsCokernel</a> <a id="5104" class="Symbol">(</a><a id="5105" href="Categories.Object.Duality.html#4226" class="Function">IsCokernel⇒coIsKernel</a> <a id="5127" href="Categories.Object.Duality.html#5051" class="Bound">isCokernel</a><a id="5137" class="Symbol">)</a> <a id="5139" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">≡</a> <a id="5141" href="Categories.Object.Duality.html#5051" class="Bound">isCokernel</a>
|
|||
|
<a id="5156" href="Categories.Object.Duality.html#5024" class="Function">IsCokernel⟺coIsKernel</a> <a id="5178" class="Symbol">=</a> <a id="5180" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">≡.refl</a>
|
|||
|
|
|||
|
<a id="5192" href="Categories.Object.Duality.html#5192" class="Function">coKernel⟺Cokernel</a> <a id="5210" class="Symbol">:</a> <a id="5212" class="Symbol">∀</a> <a id="5214" class="Symbol">{</a><a id="5215" href="Categories.Object.Duality.html#5215" class="Bound">kernel</a> <a id="5222" class="Symbol">:</a> <a id="5224" href="Categories.Object.Kernel.html#1429" class="Record">Kernel</a> <a id="5231" href="Categories.Object.Duality.html#729" class="Generalizable">f</a><a id="5232" class="Symbol">}</a> <a id="5234" class="Symbol">→</a> <a id="5236" href="Categories.Object.Duality.html#4662" class="Function">Cokernel⇒coKernel</a> <a id="5254" class="Symbol">(</a><a id="5255" href="Categories.Object.Duality.html#4474" class="Function">coKernel⇒Cokernel</a> <a id="5273" href="Categories.Object.Duality.html#5215" class="Bound">kernel</a><a id="5279" class="Symbol">)</a> <a id="5281" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">≡</a> <a id="5283" href="Categories.Object.Duality.html#5215" class="Bound">kernel</a>
|
|||
|
<a id="5294" href="Categories.Object.Duality.html#5192" class="Function">coKernel⟺Cokernel</a> <a id="5312" class="Symbol">=</a> <a id="5314" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">≡.refl</a>
|
|||
|
|
|||
|
<a id="5326" href="Categories.Object.Duality.html#5326" class="Function">Cokernel⟺coKernel</a> <a id="5344" class="Symbol">:</a> <a id="5346" class="Symbol">∀</a> <a id="5348" class="Symbol">{</a><a id="5349" href="Categories.Object.Duality.html#5349" class="Bound">cokernel</a> <a id="5358" class="Symbol">:</a> <a id="5360" href="Categories.Object.Cokernel.html#1092" class="Record">Cokernel</a> <a id="5369" href="Categories.Object.Duality.html#729" class="Generalizable">f</a><a id="5370" class="Symbol">}</a> <a id="5372" class="Symbol">→</a> <a id="5374" href="Categories.Object.Duality.html#4474" class="Function">coKernel⇒Cokernel</a> <a id="5392" class="Symbol">(</a><a id="5393" href="Categories.Object.Duality.html#4662" class="Function">Cokernel⇒coKernel</a> <a id="5411" href="Categories.Object.Duality.html#5349" class="Bound">cokernel</a><a id="5419" class="Symbol">)</a> <a id="5421" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">≡</a> <a id="5423" href="Categories.Object.Duality.html#5349" class="Bound">cokernel</a>
|
|||
|
<a id="5436" href="Categories.Object.Duality.html#5326" class="Function">Cokernel⟺coKernel</a> <a id="5454" class="Symbol">=</a> <a id="5456" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">≡.refl</a>
|
|||
|
</pre></body></html>
|