mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
101 lines
34 KiB
HTML
101 lines
34 KiB
HTML
|
<!DOCTYPE HTML>
|
|||
|
<html><head><meta charset="utf-8"><title>Categories.Category.Equivalence</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">module</a> <a id="44" href="Categories.Category.Equivalence.html" class="Module">Categories.Category.Equivalence</a> <a id="76" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="83" class="Comment">-- Strong equivalence of categories. Same as ordinary equivalence in Cat.</a>
|
|||
|
<a id="158" class="Comment">-- May not include everything we'd like to think of as equivalences, namely</a>
|
|||
|
<a id="234" class="Comment">-- the full, faithful functors that are essentially surjective on objects.</a>
|
|||
|
|
|||
|
<a id="310" class="Keyword">open</a> <a id="315" class="Keyword">import</a> <a id="322" href="Level.html" class="Module">Level</a>
|
|||
|
<a id="328" class="Keyword">open</a> <a id="333" class="Keyword">import</a> <a id="340" href="Relation.Binary.html" class="Module">Relation.Binary</a> <a id="356" class="Keyword">using</a> <a id="362" class="Symbol">(</a><a id="363" href="Relation.Binary.Structures.html#1531" class="Record">IsEquivalence</a><a id="376" class="Symbol">;</a> <a id="378" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a><a id="384" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="387" class="Keyword">open</a> <a id="392" class="Keyword">import</a> <a id="399" href="Categories.Category.Core.html" class="Module">Categories.Category.Core</a> <a id="424" class="Keyword">using</a> <a id="430" class="Symbol">(</a><a id="431" href="Categories.Category.Core.html#442" class="Record">Category</a><a id="439" class="Symbol">)</a>
|
|||
|
<a id="441" class="Keyword">open</a> <a id="446" class="Keyword">import</a> <a id="453" href="Categories.Functor.html" class="Module">Categories.Functor</a> <a id="472" class="Keyword">renaming</a> <a id="481" class="Symbol">(</a><a id="482" href="Categories.Functor.html#349" class="Function">id</a> <a id="485" class="Symbol">to</a> <a id="488" class="Function">idF</a><a id="491" class="Symbol">)</a>
|
|||
|
<a id="493" class="Keyword">open</a> <a id="498" class="Keyword">import</a> <a id="505" href="Categories.NaturalTransformation.NaturalIsomorphism.html" class="Module">Categories.NaturalTransformation.NaturalIsomorphism</a> <a id="557" class="Symbol">as</a> <a id="560" class="Module">≃</a>
|
|||
|
<a id="564" class="Keyword">using</a> <a id="570" class="Symbol">(</a><a id="571" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Record">NaturalIsomorphism</a> <a id="590" class="Symbol">;</a> <a id="592" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6216" class="Function">unitorˡ</a><a id="599" class="Symbol">;</a> <a id="601" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6312" class="Function">unitorʳ</a><a id="608" class="Symbol">;</a> <a id="610" href="Categories.NaturalTransformation.NaturalIsomorphism.html#7073" class="Function">associator</a><a id="620" class="Symbol">;</a> <a id="622" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3660" class="Function Operator">_ⓘᵥ_</a><a id="626" class="Symbol">;</a> <a id="628" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4354" class="Function Operator">_ⓘˡ_</a><a id="632" class="Symbol">;</a> <a id="634" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4560" class="Function Operator">_ⓘʳ_</a><a id="638" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="641" class="Keyword">private</a>
|
|||
|
<a id="651" class="Keyword">variable</a>
|
|||
|
<a id="664" href="Categories.Category.Equivalence.html#664" class="Generalizable">o</a> <a id="666" href="Categories.Category.Equivalence.html#666" class="Generalizable">ℓ</a> <a id="668" href="Categories.Category.Equivalence.html#668" class="Generalizable">e</a> <a id="670" class="Symbol">:</a> <a id="672" href="Agda.Primitive.html#591" class="Postulate">Level</a>
|
|||
|
<a id="682" href="Categories.Category.Equivalence.html#682" class="Generalizable">C</a> <a id="684" href="Categories.Category.Equivalence.html#684" class="Generalizable">D</a> <a id="686" href="Categories.Category.Equivalence.html#686" class="Generalizable">E</a> <a id="688" class="Symbol">:</a> <a id="690" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="699" href="Categories.Category.Equivalence.html#664" class="Generalizable">o</a> <a id="701" href="Categories.Category.Equivalence.html#666" class="Generalizable">ℓ</a> <a id="703" href="Categories.Category.Equivalence.html#668" class="Generalizable">e</a>
|
|||
|
|
|||
|
<a id="706" class="Keyword">record</a> <a id="WeakInverse"></a><a id="713" href="Categories.Category.Equivalence.html#713" class="Record">WeakInverse</a> <a id="725" class="Symbol">(</a><a id="726" href="Categories.Category.Equivalence.html#726" class="Bound">F</a> <a id="728" class="Symbol">:</a> <a id="730" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="738" href="Categories.Category.Equivalence.html#682" class="Generalizable">C</a> <a id="740" href="Categories.Category.Equivalence.html#684" class="Generalizable">D</a><a id="741" class="Symbol">)</a> <a id="743" class="Symbol">(</a><a id="744" href="Categories.Category.Equivalence.html#744" class="Bound">G</a> <a id="746" class="Symbol">:</a> <a id="748" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="756" href="Categories.Category.Equivalence.html#684" class="Generalizable">D</a> <a id="758" href="Categories.Category.Equivalence.html#682" class="Generalizable">C</a><a id="759" class="Symbol">)</a> <a id="761" class="Symbol">:</a> <a id="763" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="767" class="Symbol">(</a><a id="768" href="Level.html#602" class="Function">levelOfTerm</a> <a id="780" href="Categories.Category.Equivalence.html#726" class="Bound">F</a> <a id="782" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="784" href="Level.html#602" class="Function">levelOfTerm</a> <a id="796" href="Categories.Category.Equivalence.html#744" class="Bound">G</a><a id="797" class="Symbol">)</a> <a id="799" class="Keyword">where</a>
|
|||
|
<a id="807" class="Keyword">field</a>
|
|||
|
<a id="WeakInverse.F∘G≈id"></a><a id="817" href="Categories.Category.Equivalence.html#817" class="Field">F∘G≈id</a> <a id="824" class="Symbol">:</a> <a id="826" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Record">NaturalIsomorphism</a> <a id="845" class="Symbol">(</a><a id="846" href="Categories.Category.Equivalence.html#726" class="Bound">F</a> <a id="848" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="851" href="Categories.Category.Equivalence.html#744" class="Bound">G</a><a id="852" class="Symbol">)</a> <a id="854" href="Categories.Category.Equivalence.html#488" class="Function">idF</a>
|
|||
|
<a id="WeakInverse.G∘F≈id"></a><a id="862" href="Categories.Category.Equivalence.html#862" class="Field">G∘F≈id</a> <a id="869" class="Symbol">:</a> <a id="871" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Record">NaturalIsomorphism</a> <a id="890" class="Symbol">(</a><a id="891" href="Categories.Category.Equivalence.html#744" class="Bound">G</a> <a id="893" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="896" href="Categories.Category.Equivalence.html#726" class="Bound">F</a><a id="897" class="Symbol">)</a> <a id="899" href="Categories.Category.Equivalence.html#488" class="Function">idF</a>
|
|||
|
|
|||
|
<a id="906" class="Keyword">module</a> <a id="WeakInverse.F∘G≈id"></a><a id="913" href="Categories.Category.Equivalence.html#913" class="Module">F∘G≈id</a> <a id="920" class="Symbol">=</a> <a id="922" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Module">NaturalIsomorphism</a> <a id="941" href="Categories.Category.Equivalence.html#817" class="Field">F∘G≈id</a>
|
|||
|
<a id="950" class="Keyword">module</a> <a id="WeakInverse.G∘F≈id"></a><a id="957" href="Categories.Category.Equivalence.html#957" class="Module">G∘F≈id</a> <a id="964" class="Symbol">=</a> <a id="966" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Module">NaturalIsomorphism</a> <a id="985" href="Categories.Category.Equivalence.html#862" class="Field">G∘F≈id</a>
|
|||
|
|
|||
|
<a id="993" class="Keyword">record</a> <a id="StrongEquivalence"></a><a id="1000" href="Categories.Category.Equivalence.html#1000" class="Record">StrongEquivalence</a> <a id="1018" class="Symbol">{</a><a id="1019" href="Categories.Category.Equivalence.html#1019" class="Bound">o</a> <a id="1021" href="Categories.Category.Equivalence.html#1021" class="Bound">ℓ</a> <a id="1023" href="Categories.Category.Equivalence.html#1023" class="Bound">e</a> <a id="1025" href="Categories.Category.Equivalence.html#1025" class="Bound">o′</a> <a id="1028" href="Categories.Category.Equivalence.html#1028" class="Bound">ℓ′</a> <a id="1031" href="Categories.Category.Equivalence.html#1031" class="Bound">e′</a><a id="1033" class="Symbol">}</a> <a id="1035" class="Symbol">(</a><a id="1036" href="Categories.Category.Equivalence.html#1036" class="Bound">C</a> <a id="1038" class="Symbol">:</a> <a id="1040" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="1049" href="Categories.Category.Equivalence.html#1019" class="Bound">o</a> <a id="1051" href="Categories.Category.Equivalence.html#1021" class="Bound">ℓ</a> <a id="1053" href="Categories.Category.Equivalence.html#1023" class="Bound">e</a><a id="1054" class="Symbol">)</a> <a id="1056" class="Symbol">(</a><a id="1057" href="Categories.Category.Equivalence.html#1057" class="Bound">D</a> <a id="1059" class="Symbol">:</a> <a id="1061" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="1070" href="Categories.Category.Equivalence.html#1025" class="Bound">o′</a> <a id="1073" href="Categories.Category.Equivalence.html#1028" class="Bound">ℓ′</a> <a id="1076" href="Categories.Category.Equivalence.html#1031" class="Bound">e′</a><a id="1078" class="Symbol">)</a> <a id="1080" class="Symbol">:</a> <a id="1082" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1086" class="Symbol">(</a><a id="1087" href="Categories.Category.Equivalence.html#1019" class="Bound">o</a> <a id="1089" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1091" href="Categories.Category.Equivalence.html#1021" class="Bound">ℓ</a> <a id="1093" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1095" href="Categories.Category.Equivalence.html#1023" class="Bound">e</a> <a id="1097" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1099" href="Categories.Category.Equivalence.html#1025" class="Bound">o′</a> <a id="1102" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1104" href="Categories.Category.Equivalence.html#1028" class="Bound">ℓ′</a> <a id="1107" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1109" href="Categories.Category.Equivalence.html#1031" class="Bound">e′</a><a id="1111" class="Symbol">)</a> <a id="1113" class="Keyword">where</a>
|
|||
|
<a id="1121" class="Keyword">field</a>
|
|||
|
<a id="StrongEquivalence.F"></a><a id="1131" href="Categories.Category.Equivalence.html#1131" class="Field">F</a> <a id="1144" class="Symbol">:</a> <a id="1146" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1154" href="Categories.Category.Equivalence.html#1036" class="Bound">C</a> <a id="1156" href="Categories.Category.Equivalence.html#1057" class="Bound">D</a>
|
|||
|
<a id="StrongEquivalence.G"></a><a id="1162" href="Categories.Category.Equivalence.html#1162" class="Field">G</a> <a id="1175" class="Symbol">:</a> <a id="1177" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1185" href="Categories.Category.Equivalence.html#1057" class="Bound">D</a> <a id="1187" href="Categories.Category.Equivalence.html#1036" class="Bound">C</a>
|
|||
|
<a id="StrongEquivalence.weak-inverse"></a><a id="1193" href="Categories.Category.Equivalence.html#1193" class="Field">weak-inverse</a> <a id="1206" class="Symbol">:</a> <a id="1208" href="Categories.Category.Equivalence.html#713" class="Record">WeakInverse</a> <a id="1220" href="Categories.Category.Equivalence.html#1131" class="Field">F</a> <a id="1222" href="Categories.Category.Equivalence.html#1162" class="Field">G</a>
|
|||
|
|
|||
|
<a id="1227" class="Keyword">open</a> <a id="1232" href="Categories.Category.Equivalence.html#713" class="Module">WeakInverse</a> <a id="1244" href="Categories.Category.Equivalence.html#1193" class="Field">weak-inverse</a> <a id="1257" class="Keyword">public</a>
|
|||
|
|
|||
|
<a id="StrongEquivalence.op"></a><a id="1267" href="Categories.Category.Equivalence.html#1267" class="Function">op</a> <a id="1270" class="Symbol">:</a> <a id="1272" href="Categories.Category.Equivalence.html#1000" class="Record">StrongEquivalence</a> <a id="1290" class="Symbol">(</a><a id="1291" href="Categories.Category.Core.html#3132" class="Function">Category.op</a> <a id="1303" href="Categories.Category.Equivalence.html#1036" class="Bound">C</a><a id="1304" class="Symbol">)</a> <a id="1306" class="Symbol">(</a><a id="1307" href="Categories.Category.Core.html#3132" class="Function">Category.op</a> <a id="1319" href="Categories.Category.Equivalence.html#1057" class="Bound">D</a><a id="1320" class="Symbol">)</a>
|
|||
|
<a id="1324" href="Categories.Category.Equivalence.html#1267" class="Function">op</a> <a id="1327" class="Symbol">=</a> <a id="1329" class="Keyword">record</a>
|
|||
|
<a id="1340" class="Symbol">{</a> <a id="1342" href="Categories.Category.Equivalence.html#1131" class="Field">F</a> <a id="1344" class="Symbol">=</a> <a id="1346" href="Categories.Functor.Core.html#816" class="Function">Functor.op</a> <a id="1357" href="Categories.Category.Equivalence.html#1131" class="Field">F</a>
|
|||
|
<a id="1363" class="Symbol">;</a> <a id="1365" href="Categories.Category.Equivalence.html#1162" class="Field">G</a> <a id="1367" class="Symbol">=</a> <a id="1369" href="Categories.Functor.Core.html#816" class="Function">Functor.op</a> <a id="1380" href="Categories.Category.Equivalence.html#1162" class="Field">G</a>
|
|||
|
<a id="1386" class="Symbol">;</a> <a id="1388" href="Categories.Category.Equivalence.html#1193" class="Field">weak-inverse</a> <a id="1401" class="Symbol">=</a> <a id="1403" class="Keyword">record</a>
|
|||
|
<a id="1416" class="Symbol">{</a> <a id="1418" href="Categories.Category.Equivalence.html#817" class="Field">F∘G≈id</a> <a id="1425" class="Symbol">=</a> <a id="1427" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1442" class="Function">NaturalIsomorphism.op′</a> <a id="1450" href="Categories.Category.Equivalence.html#817" class="Function">F∘G≈id</a>
|
|||
|
<a id="1463" class="Symbol">;</a> <a id="1465" href="Categories.Category.Equivalence.html#862" class="Field">G∘F≈id</a> <a id="1472" class="Symbol">=</a> <a id="1474" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1442" class="Function">NaturalIsomorphism.op′</a> <a id="1497" href="Categories.Category.Equivalence.html#862" class="Function">G∘F≈id</a>
|
|||
|
<a id="1510" class="Symbol">}</a>
|
|||
|
<a id="1516" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="refl"></a><a id="1519" href="Categories.Category.Equivalence.html#1519" class="Function">refl</a> <a id="1524" class="Symbol">:</a> <a id="1526" href="Categories.Category.Equivalence.html#1000" class="Record">StrongEquivalence</a> <a id="1544" href="Categories.Category.Equivalence.html#682" class="Generalizable">C</a> <a id="1546" href="Categories.Category.Equivalence.html#682" class="Generalizable">C</a>
|
|||
|
<a id="1548" href="Categories.Category.Equivalence.html#1519" class="Function">refl</a> <a id="1553" class="Symbol">=</a> <a id="1555" class="Keyword">record</a>
|
|||
|
<a id="1564" class="Symbol">{</a> <a id="1566" href="Categories.Category.Equivalence.html#1131" class="Field">F</a> <a id="1579" class="Symbol">=</a> <a id="1581" href="Categories.Category.Equivalence.html#488" class="Function">idF</a>
|
|||
|
<a id="1587" class="Symbol">;</a> <a id="1589" href="Categories.Category.Equivalence.html#1162" class="Field">G</a> <a id="1602" class="Symbol">=</a> <a id="1604" href="Categories.Category.Equivalence.html#488" class="Function">idF</a>
|
|||
|
<a id="1610" class="Symbol">;</a> <a id="1612" href="Categories.Category.Equivalence.html#1193" class="Field">weak-inverse</a> <a id="1625" class="Symbol">=</a> <a id="1627" class="Keyword">record</a>
|
|||
|
<a id="1638" class="Symbol">{</a> <a id="1640" href="Categories.Category.Equivalence.html#817" class="Field">F∘G≈id</a> <a id="1647" class="Symbol">=</a> <a id="1649" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6216" class="Function">unitorˡ</a>
|
|||
|
<a id="1661" class="Symbol">;</a> <a id="1663" href="Categories.Category.Equivalence.html#862" class="Field">G∘F≈id</a> <a id="1670" class="Symbol">=</a> <a id="1672" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6216" class="Function">unitorˡ</a>
|
|||
|
<a id="1684" class="Symbol">}</a>
|
|||
|
<a id="1688" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="sym"></a><a id="1691" href="Categories.Category.Equivalence.html#1691" class="Function">sym</a> <a id="1695" class="Symbol">:</a> <a id="1697" href="Categories.Category.Equivalence.html#1000" class="Record">StrongEquivalence</a> <a id="1715" href="Categories.Category.Equivalence.html#682" class="Generalizable">C</a> <a id="1717" href="Categories.Category.Equivalence.html#684" class="Generalizable">D</a> <a id="1719" class="Symbol">→</a> <a id="1721" href="Categories.Category.Equivalence.html#1000" class="Record">StrongEquivalence</a> <a id="1739" href="Categories.Category.Equivalence.html#684" class="Generalizable">D</a> <a id="1741" href="Categories.Category.Equivalence.html#682" class="Generalizable">C</a>
|
|||
|
<a id="1743" href="Categories.Category.Equivalence.html#1691" class="Function">sym</a> <a id="1747" href="Categories.Category.Equivalence.html#1747" class="Bound">e</a> <a id="1749" class="Symbol">=</a> <a id="1751" class="Keyword">record</a>
|
|||
|
<a id="1760" class="Symbol">{</a> <a id="1762" href="Categories.Category.Equivalence.html#1131" class="Field">F</a> <a id="1775" class="Symbol">=</a> <a id="1777" href="Categories.Category.Equivalence.html#1162" class="Field">G</a>
|
|||
|
<a id="1781" class="Symbol">;</a> <a id="1783" href="Categories.Category.Equivalence.html#1162" class="Field">G</a> <a id="1796" class="Symbol">=</a> <a id="1798" href="Categories.Category.Equivalence.html#1131" class="Field">F</a>
|
|||
|
<a id="1802" class="Symbol">;</a> <a id="1804" href="Categories.Category.Equivalence.html#1193" class="Field">weak-inverse</a> <a id="1817" class="Symbol">=</a> <a id="1819" class="Keyword">record</a>
|
|||
|
<a id="1830" class="Symbol">{</a> <a id="1832" href="Categories.Category.Equivalence.html#817" class="Field">F∘G≈id</a> <a id="1843" class="Symbol">=</a> <a id="1845" href="Categories.Category.Equivalence.html#862" class="Function">G∘F≈id</a>
|
|||
|
<a id="1856" class="Symbol">;</a> <a id="1858" href="Categories.Category.Equivalence.html#862" class="Field">G∘F≈id</a> <a id="1869" class="Symbol">=</a> <a id="1871" href="Categories.Category.Equivalence.html#817" class="Function">F∘G≈id</a>
|
|||
|
<a id="1882" class="Symbol">}</a>
|
|||
|
<a id="1886" class="Symbol">}</a>
|
|||
|
<a id="1890" class="Keyword">where</a> <a id="1896" class="Keyword">open</a> <a id="1901" href="Categories.Category.Equivalence.html#1000" class="Module">StrongEquivalence</a> <a id="1919" href="Categories.Category.Equivalence.html#1747" class="Bound">e</a>
|
|||
|
|
|||
|
<a id="trans"></a><a id="1922" href="Categories.Category.Equivalence.html#1922" class="Function">trans</a> <a id="1928" class="Symbol">:</a> <a id="1930" href="Categories.Category.Equivalence.html#1000" class="Record">StrongEquivalence</a> <a id="1948" href="Categories.Category.Equivalence.html#682" class="Generalizable">C</a> <a id="1950" href="Categories.Category.Equivalence.html#684" class="Generalizable">D</a> <a id="1952" class="Symbol">→</a> <a id="1954" href="Categories.Category.Equivalence.html#1000" class="Record">StrongEquivalence</a> <a id="1972" href="Categories.Category.Equivalence.html#684" class="Generalizable">D</a> <a id="1974" href="Categories.Category.Equivalence.html#686" class="Generalizable">E</a> <a id="1976" class="Symbol">→</a> <a id="1978" href="Categories.Category.Equivalence.html#1000" class="Record">StrongEquivalence</a> <a id="1996" href="Categories.Category.Equivalence.html#682" class="Generalizable">C</a> <a id="1998" href="Categories.Category.Equivalence.html#686" class="Generalizable">E</a>
|
|||
|
<a id="2000" href="Categories.Category.Equivalence.html#1922" class="Function">trans</a> <a id="2006" class="Symbol">{</a><a id="2007" class="Argument">C</a> <a id="2009" class="Symbol">=</a> <a id="2011" href="Categories.Category.Equivalence.html#2011" class="Bound">C</a><a id="2012" class="Symbol">}</a> <a id="2014" class="Symbol">{</a><a id="2015" class="Argument">D</a> <a id="2017" class="Symbol">=</a> <a id="2019" href="Categories.Category.Equivalence.html#2019" class="Bound">D</a><a id="2020" class="Symbol">}</a> <a id="2022" class="Symbol">{</a><a id="2023" class="Argument">E</a> <a id="2025" class="Symbol">=</a> <a id="2027" href="Categories.Category.Equivalence.html#2027" class="Bound">E</a><a id="2028" class="Symbol">}</a> <a id="2030" href="Categories.Category.Equivalence.html#2030" class="Bound">e</a> <a id="2032" href="Categories.Category.Equivalence.html#2032" class="Bound">e′</a> <a id="2035" class="Symbol">=</a> <a id="2037" class="Keyword">record</a>
|
|||
|
<a id="2046" class="Symbol">{</a> <a id="2048" href="Categories.Category.Equivalence.html#1131" class="Field">F</a> <a id="2061" class="Symbol">=</a> <a id="2063" href="Categories.Category.Equivalence.html#1131" class="Field">e′.F</a> <a id="2068" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="2071" href="Categories.Category.Equivalence.html#1131" class="Function">e.F</a>
|
|||
|
<a id="2077" class="Symbol">;</a> <a id="2079" href="Categories.Category.Equivalence.html#1162" class="Field">G</a> <a id="2092" class="Symbol">=</a> <a id="2094" href="Categories.Category.Equivalence.html#1162" class="Function">e.G</a> <a id="2098" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="2101" href="Categories.Category.Equivalence.html#1162" class="Field">e′.G</a>
|
|||
|
<a id="2108" class="Symbol">;</a> <a id="2110" href="Categories.Category.Equivalence.html#1193" class="Field">weak-inverse</a> <a id="2123" class="Symbol">=</a> <a id="2125" class="Keyword">record</a>
|
|||
|
<a id="2136" class="Symbol">{</a> <a id="2138" href="Categories.Category.Equivalence.html#817" class="Field">F∘G≈id</a> <a id="2145" class="Symbol">=</a> <a id="2147" class="Keyword">let</a> <a id="2151" class="Keyword">module</a> <a id="2158" href="Categories.Category.Equivalence.html#2158" class="Module">S</a> <a id="2160" class="Symbol">=</a> <a id="2162" href="Relation.Binary.Bundles.html#1018" class="Module">Setoid</a> <a id="2169" class="Symbol">(</a><a id="2170" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5592" class="Function">≃.Functor-NI-setoid</a> <a id="2190" href="Categories.Category.Equivalence.html#2027" class="Bound">E</a> <a id="2192" href="Categories.Category.Equivalence.html#2027" class="Bound">E</a><a id="2193" class="Symbol">)</a>
|
|||
|
<a id="2210" class="Keyword">in</a> <a id="2213" href="Relation.Binary.Structures.html#1629" class="Function">S.trans</a> <a id="2221" class="Symbol">(</a><a id="2222" href="Relation.Binary.Structures.html#1629" class="Function">S.trans</a> <a id="2230" class="Symbol">(</a><a id="2231" href="Categories.NaturalTransformation.NaturalIsomorphism.html#7073" class="Function">associator</a> <a id="2242" class="Symbol">(</a><a id="2243" href="Categories.Category.Equivalence.html#1162" class="Function">e.G</a> <a id="2247" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="2250" href="Categories.Category.Equivalence.html#1162" class="Field">e′.G</a><a id="2254" class="Symbol">)</a> <a id="2256" href="Categories.Category.Equivalence.html#1131" class="Function">e.F</a> <a id="2260" href="Categories.Category.Equivalence.html#1131" class="Field">e′.F</a><a id="2264" class="Symbol">)</a>
|
|||
|
<a id="2301" class="Symbol">(</a><a id="2302" href="Categories.Category.Equivalence.html#1131" class="Field">e′.F</a> <a id="2307" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4354" class="Function Operator">ⓘˡ</a> <a id="2310" class="Symbol">(</a><a id="2311" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6216" class="Function">unitorˡ</a> <a id="2319" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3660" class="Function Operator">ⓘᵥ</a> <a id="2322" class="Symbol">(</a><a id="2323" href="Categories.Category.Equivalence.html#817" class="Function">e.F∘G≈id</a> <a id="2332" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4560" class="Function Operator">ⓘʳ</a> <a id="2335" href="Categories.Category.Equivalence.html#1162" class="Field">e′.G</a><a id="2339" class="Symbol">)</a> <a id="2341" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3660" class="Function Operator">ⓘᵥ</a> <a id="2344" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4964" class="Function">≃.sym</a> <a id="2350" class="Symbol">(</a><a id="2351" href="Categories.NaturalTransformation.NaturalIsomorphism.html#7073" class="Function">associator</a> <a id="2362" href="Categories.Category.Equivalence.html#1162" class="Field">e′.G</a> <a id="2367" href="Categories.Category.Equivalence.html#1162" class="Function">e.G</a> <a id="2371" href="Categories.Category.Equivalence.html#1131" class="Function">e.F</a><a id="2374" class="Symbol">))))</a>
|
|||
|
<a id="2405" href="Categories.Category.Equivalence.html#817" class="Function">e′.F∘G≈id</a>
|
|||
|
<a id="2419" class="Symbol">;</a> <a id="2421" href="Categories.Category.Equivalence.html#862" class="Field">G∘F≈id</a> <a id="2428" class="Symbol">=</a> <a id="2430" class="Keyword">let</a> <a id="2434" class="Keyword">module</a> <a id="2441" href="Categories.Category.Equivalence.html#2441" class="Module">S</a> <a id="2443" class="Symbol">=</a> <a id="2445" href="Relation.Binary.Bundles.html#1018" class="Module">Setoid</a> <a id="2452" class="Symbol">(</a><a id="2453" href="Categories.NaturalTransformation.NaturalIsomorphism.html#5592" class="Function">≃.Functor-NI-setoid</a> <a id="2473" href="Categories.Category.Equivalence.html#2011" class="Bound">C</a> <a id="2475" href="Categories.Category.Equivalence.html#2011" class="Bound">C</a><a id="2476" class="Symbol">)</a>
|
|||
|
<a id="2493" class="Keyword">in</a> <a id="2496" href="Relation.Binary.Structures.html#1629" class="Function">S.trans</a> <a id="2504" class="Symbol">(</a><a id="2505" href="Relation.Binary.Structures.html#1629" class="Function">S.trans</a> <a id="2513" class="Symbol">(</a><a id="2514" href="Categories.NaturalTransformation.NaturalIsomorphism.html#7073" class="Function">associator</a> <a id="2525" class="Symbol">(</a><a id="2526" href="Categories.Category.Equivalence.html#1131" class="Field">e′.F</a> <a id="2531" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="2534" href="Categories.Category.Equivalence.html#1131" class="Function">e.F</a><a id="2537" class="Symbol">)</a> <a id="2539" href="Categories.Category.Equivalence.html#1162" class="Field">e′.G</a> <a id="2544" href="Categories.Category.Equivalence.html#1162" class="Function">e.G</a><a id="2547" class="Symbol">)</a>
|
|||
|
<a id="2584" class="Symbol">(</a><a id="2585" href="Categories.Category.Equivalence.html#1162" class="Function">e.G</a> <a id="2589" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4354" class="Function Operator">ⓘˡ</a> <a id="2592" class="Symbol">(</a><a id="2593" href="Categories.NaturalTransformation.NaturalIsomorphism.html#6216" class="Function">unitorˡ</a> <a id="2601" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3660" class="Function Operator">ⓘᵥ</a> <a id="2604" class="Symbol">(</a><a id="2605" href="Categories.Category.Equivalence.html#862" class="Function">e′.G∘F≈id</a> <a id="2615" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4560" class="Function Operator">ⓘʳ</a> <a id="2618" href="Categories.Category.Equivalence.html#1131" class="Function">e.F</a><a id="2621" class="Symbol">)</a> <a id="2623" href="Categories.NaturalTransformation.NaturalIsomorphism.html#3660" class="Function Operator">ⓘᵥ</a> <a id="2626" href="Categories.NaturalTransformation.NaturalIsomorphism.html#4964" class="Function">≃.sym</a> <a id="2632" class="Symbol">(</a><a id="2633" href="Categories.NaturalTransformation.NaturalIsomorphism.html#7073" class="Function">associator</a> <a id="2644" href="Categories.Category.Equivalence.html#1131" class="Function">e.F</a> <a id="2648" href="Categories.Category.Equivalence.html#1131" class="Field">e′.F</a> <a id="2653" href="Categories.Category.Equivalence.html#1162" class="Field">e′.G</a><a id="2657" class="Symbol">))))</a>
|
|||
|
<a id="2688" href="Categories.Category.Equivalence.html#862" class="Function">e.G∘F≈id</a>
|
|||
|
<a id="2701" class="Symbol">}</a>
|
|||
|
<a id="2705" class="Symbol">}</a>
|
|||
|
<a id="2709" class="Keyword">where</a> <a id="2715" class="Keyword">module</a> <a id="2722" href="Categories.Category.Equivalence.html#2722" class="Module">e</a> <a id="2725" class="Symbol">=</a> <a id="2727" href="Categories.Category.Equivalence.html#1000" class="Module">StrongEquivalence</a> <a id="2745" href="Categories.Category.Equivalence.html#2030" class="Bound">e</a>
|
|||
|
<a id="2755" class="Keyword">module</a> <a id="2762" href="Categories.Category.Equivalence.html#2762" class="Module">e′</a> <a id="2765" class="Symbol">=</a> <a id="2767" href="Categories.Category.Equivalence.html#1000" class="Module">StrongEquivalence</a> <a id="2785" href="Categories.Category.Equivalence.html#2032" class="Bound">e′</a>
|
|||
|
|
|||
|
<a id="isEquivalence"></a><a id="2789" href="Categories.Category.Equivalence.html#2789" class="Function">isEquivalence</a> <a id="2803" class="Symbol">:</a> <a id="2805" class="Symbol">∀</a> <a id="2807" class="Symbol">{</a><a id="2808" href="Categories.Category.Equivalence.html#2808" class="Bound">o</a> <a id="2810" href="Categories.Category.Equivalence.html#2810" class="Bound">ℓ</a> <a id="2812" href="Categories.Category.Equivalence.html#2812" class="Bound">e</a><a id="2813" class="Symbol">}</a> <a id="2815" class="Symbol">→</a> <a id="2817" href="Relation.Binary.Structures.html#1531" class="Record">IsEquivalence</a> <a id="2831" class="Symbol">(</a><a id="2832" href="Categories.Category.Equivalence.html#1000" class="Record">StrongEquivalence</a> <a id="2850" class="Symbol">{</a><a id="2851" href="Categories.Category.Equivalence.html#2808" class="Bound">o</a><a id="2852" class="Symbol">}</a> <a id="2854" class="Symbol">{</a><a id="2855" href="Categories.Category.Equivalence.html#2810" class="Bound">ℓ</a><a id="2856" class="Symbol">}</a> <a id="2858" class="Symbol">{</a><a id="2859" href="Categories.Category.Equivalence.html#2812" class="Bound">e</a><a id="2860" class="Symbol">})</a>
|
|||
|
<a id="2863" href="Categories.Category.Equivalence.html#2789" class="Function">isEquivalence</a> <a id="2877" class="Symbol">=</a> <a id="2879" class="Keyword">record</a>
|
|||
|
<a id="2888" class="Symbol">{</a> <a id="2890" href="Relation.Binary.Structures.html#1577" class="Field">refl</a> <a id="2896" class="Symbol">=</a> <a id="2898" href="Categories.Category.Equivalence.html#1519" class="Function">refl</a>
|
|||
|
<a id="2905" class="Symbol">;</a> <a id="2907" href="Relation.Binary.Structures.html#1603" class="Field">sym</a> <a id="2913" class="Symbol">=</a> <a id="2915" href="Categories.Category.Equivalence.html#1691" class="Function">sym</a>
|
|||
|
<a id="2921" class="Symbol">;</a> <a id="2923" href="Relation.Binary.Structures.html#1629" class="Field">trans</a> <a id="2929" class="Symbol">=</a> <a id="2931" href="Categories.Category.Equivalence.html#1922" class="Function">trans</a>
|
|||
|
<a id="2939" class="Symbol">}</a>
|
|||
|
|
|||
|
<a id="setoid"></a><a id="2942" href="Categories.Category.Equivalence.html#2942" class="Function">setoid</a> <a id="2949" class="Symbol">:</a> <a id="2951" class="Symbol">∀</a> <a id="2953" href="Categories.Category.Equivalence.html#2953" class="Bound">o</a> <a id="2955" href="Categories.Category.Equivalence.html#2955" class="Bound">ℓ</a> <a id="2957" href="Categories.Category.Equivalence.html#2957" class="Bound">e</a> <a id="2959" class="Symbol">→</a> <a id="2961" href="Relation.Binary.Bundles.html#1018" class="Record">Setoid</a> <a id="2968" class="Symbol">_</a> <a id="2970" class="Symbol">_</a>
|
|||
|
<a id="2972" href="Categories.Category.Equivalence.html#2942" class="Function">setoid</a> <a id="2979" href="Categories.Category.Equivalence.html#2979" class="Bound">o</a> <a id="2981" href="Categories.Category.Equivalence.html#2981" class="Bound">ℓ</a> <a id="2983" href="Categories.Category.Equivalence.html#2983" class="Bound">e</a> <a id="2985" class="Symbol">=</a> <a id="2987" class="Keyword">record</a>
|
|||
|
<a id="2996" class="Symbol">{</a> <a id="2998" href="Relation.Binary.Bundles.html#1081" class="Field">Carrier</a> <a id="3012" class="Symbol">=</a> <a id="3014" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="3023" href="Categories.Category.Equivalence.html#2979" class="Bound">o</a> <a id="3025" href="Categories.Category.Equivalence.html#2981" class="Bound">ℓ</a> <a id="3027" href="Categories.Category.Equivalence.html#2983" class="Bound">e</a>
|
|||
|
<a id="3031" class="Symbol">;</a> <a id="3033" href="Relation.Binary.Bundles.html#1107" class="Field Operator">_≈_</a> <a id="3047" class="Symbol">=</a> <a id="3049" href="Categories.Category.Equivalence.html#1000" class="Record">StrongEquivalence</a>
|
|||
|
<a id="3069" class="Symbol">;</a> <a id="3071" href="Relation.Binary.Bundles.html#1141" class="Field">isEquivalence</a> <a id="3085" class="Symbol">=</a> <a id="3087" href="Categories.Category.Equivalence.html#2789" class="Function">isEquivalence</a>
|
|||
|
<a id="3103" class="Symbol">}</a>
|
|||
|
</pre></body></html>
|