mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
361 lines
No EOL
162 KiB
HTML
361 lines
No EOL
162 KiB
HTML
<!DOCTYPE HTML>
|
||
<html><head><meta charset="utf-8"><title>Categories.Category.Construction.Functors</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">module</a> <a id="43" href="Categories.Category.Construction.Functors.html" class="Module">Categories.Category.Construction.Functors</a> <a id="85" class="Keyword">where</a>
|
||
|
||
<a id="92" class="Comment">-- the "Functor Category", often denoted [ C , D ]</a>
|
||
|
||
<a id="144" class="Keyword">open</a> <a id="149" class="Keyword">import</a> <a id="156" href="Level.html" class="Module">Level</a>
|
||
<a id="162" class="Keyword">open</a> <a id="167" class="Keyword">import</a> <a id="174" href="Data.Product.html" class="Module">Data.Product</a> <a id="187" class="Keyword">using</a> <a id="193" class="Symbol">(</a><a id="194" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">_,_</a><a id="197" class="Symbol">;</a> <a id="199" href="Agda.Builtin.Sigma.html#234" class="Field">proj₁</a><a id="204" class="Symbol">;</a> <a id="206" href="Data.Product.html#4893" class="Function">uncurry′</a><a id="214" class="Symbol">)</a>
|
||
|
||
<a id="217" class="Keyword">open</a> <a id="222" class="Keyword">import</a> <a id="229" href="Categories.Adjoint.Equivalence.html" class="Module">Categories.Adjoint.Equivalence</a> <a id="260" class="Keyword">using</a> <a id="266" class="Symbol">(</a><a id="267" href="Categories.Adjoint.Equivalence.html#573" class="Record">⊣Equivalence</a><a id="279" class="Symbol">)</a>
|
||
<a id="281" class="Keyword">open</a> <a id="286" class="Keyword">import</a> <a id="293" href="Categories.Adjoint.TwoSided.html" class="Module">Categories.Adjoint.TwoSided</a> <a id="321" class="Keyword">using</a> <a id="327" class="Symbol">(</a><a id="328" href="Categories.Adjoint.TwoSided.html#5870" class="Function">withZig</a><a id="335" class="Symbol">)</a>
|
||
<a id="337" class="Keyword">open</a> <a id="342" class="Keyword">import</a> <a id="349" href="Categories.Category.html" class="Module">Categories.Category</a> <a id="369" class="Keyword">using</a> <a id="375" class="Symbol">(</a><a id="376" href="Categories.Category.Core.html#442" class="Record">Category</a><a id="384" class="Symbol">;</a> <a id="386" href="Categories.Category.html#700" class="Function Operator">_[_∘_]</a><a id="392" class="Symbol">)</a>
|
||
<a id="394" class="Keyword">open</a> <a id="399" class="Keyword">import</a> <a id="406" href="Categories.Category.Product.html" class="Module">Categories.Category.Product</a> <a id="434" class="Keyword">using</a> <a id="440" class="Symbol">(</a><a id="441" href="Categories.Category.Product.html#2966" class="Function Operator">_※ⁿ_</a><a id="445" class="Symbol">)</a> <a id="447" class="Keyword">renaming</a> <a id="456" class="Symbol">(</a><a id="457" href="Categories.Category.Product.html#745" class="Function">Product</a> <a id="465" class="Symbol">to</a> <a id="468" class="Function">_×_</a><a id="471" class="Symbol">)</a>
|
||
<a id="473" class="Keyword">open</a> <a id="478" class="Keyword">import</a> <a id="485" href="Categories.Functor.html" class="Module">Categories.Functor</a> <a id="504" class="Keyword">using</a> <a id="510" class="Symbol">(</a><a id="511" href="Categories.Functor.Core.html#248" class="Record">Functor</a><a id="518" class="Symbol">;</a> <a id="520" href="Categories.Functor.html#747" class="Function Operator">_∘F_</a><a id="524" class="Symbol">)</a> <a id="526" class="Keyword">renaming</a> <a id="535" class="Symbol">(</a><a id="536" href="Categories.Functor.html#349" class="Function">id</a> <a id="539" class="Symbol">to</a> <a id="542" class="Function">idF</a><a id="545" class="Symbol">)</a>
|
||
<a id="547" class="Keyword">open</a> <a id="552" class="Keyword">import</a> <a id="559" href="Categories.Functor.Bifunctor.html" class="Module">Categories.Functor.Bifunctor</a>
|
||
<a id="588" class="Keyword">open</a> <a id="593" class="Keyword">import</a> <a id="600" href="Categories.Functor.Bifunctor.Properties.html" class="Module">Categories.Functor.Bifunctor.Properties</a> <a id="640" class="Keyword">using</a> <a id="646" class="Symbol">(</a><a id="647" href="Categories.Functor.Bifunctor.Properties.html#1241" class="Function Operator">[_]-decompose₂</a><a id="661" class="Symbol">)</a>
|
||
<a id="663" class="Keyword">open</a> <a id="668" class="Keyword">import</a> <a id="675" href="Categories.Functor.Construction.Constant.html" class="Module">Categories.Functor.Construction.Constant</a> <a id="716" class="Keyword">using</a> <a id="722" class="Symbol">(</a><a id="723" href="Categories.Functor.Construction.Constant.html#964" class="Function">constNat</a><a id="731" class="Symbol">)</a>
|
||
<a id="733" class="Keyword">open</a> <a id="738" class="Keyword">import</a> <a id="745" href="Categories.NaturalTransformation.html" class="Module">Categories.NaturalTransformation</a>
|
||
<a id="780" class="Keyword">using</a> <a id="786" class="Symbol">(</a><a id="787" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a><a id="808" class="Symbol">;</a> <a id="810" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a><a id="818" class="Symbol">;</a> <a id="820" href="Categories.NaturalTransformation.Core.html#2439" class="Function Operator">_∘ᵥ_</a><a id="824" class="Symbol">;</a> <a id="826" href="Categories.NaturalTransformation.Core.html#3439" class="Function Operator">_∘ˡ_</a><a id="830" class="Symbol">;</a> <a id="832" href="Categories.NaturalTransformation.Core.html#2919" class="Function Operator">_∘ₕ_</a><a id="836" class="Symbol">)</a> <a id="838" class="Keyword">renaming</a> <a id="847" class="Symbol">(</a><a id="848" href="Categories.NaturalTransformation.Core.html#2132" class="Function">id</a> <a id="851" class="Symbol">to</a> <a id="854" class="Function">idN</a><a id="857" class="Symbol">)</a>
|
||
<a id="859" class="Keyword">open</a> <a id="864" class="Keyword">import</a> <a id="871" href="Categories.NaturalTransformation.Equivalence.html" class="Module">Categories.NaturalTransformation.Equivalence</a> <a id="916" class="Keyword">using</a> <a id="922" class="Symbol">(</a><a id="923" href="Categories.NaturalTransformation.Equivalence.html#630" class="Function Operator">_≃_</a><a id="926" class="Symbol">;</a> <a id="928" href="Categories.NaturalTransformation.Equivalence.html#785" class="Function">≃-isEquivalence</a><a id="943" class="Symbol">)</a>
|
||
<a id="945" class="Keyword">open</a> <a id="950" class="Keyword">import</a> <a id="957" href="Categories.NaturalTransformation.NaturalIsomorphism.html" class="Module">Categories.NaturalTransformation.NaturalIsomorphism</a>
|
||
<a id="1011" class="Keyword">using</a> <a id="1017" class="Symbol">(</a><a id="1018" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Record">NaturalIsomorphism</a><a id="1036" class="Symbol">)</a>
|
||
<a id="1038" class="Keyword">import</a> <a id="1045" href="Categories.Morphism.Reasoning.html" class="Module">Categories.Morphism.Reasoning</a> <a id="1075" class="Symbol">as</a> <a id="1078" class="Module">MR</a>
|
||
|
||
<a id="1082" class="Keyword">private</a>
|
||
<a id="1092" class="Keyword">variable</a>
|
||
<a id="1105" href="Categories.Category.Construction.Functors.html#1105" class="Generalizable">o</a> <a id="1107" href="Categories.Category.Construction.Functors.html#1107" class="Generalizable">ℓ</a> <a id="1109" href="Categories.Category.Construction.Functors.html#1109" class="Generalizable">e</a> <a id="1111" href="Categories.Category.Construction.Functors.html#1111" class="Generalizable">o′</a> <a id="1114" href="Categories.Category.Construction.Functors.html#1114" class="Generalizable">ℓ′</a> <a id="1117" href="Categories.Category.Construction.Functors.html#1117" class="Generalizable">e′</a> <a id="1120" class="Symbol">:</a> <a id="1122" href="Agda.Primitive.html#591" class="Postulate">Level</a>
|
||
<a id="1132" href="Categories.Category.Construction.Functors.html#1132" class="Generalizable">A</a> <a id="1134" href="Categories.Category.Construction.Functors.html#1134" class="Generalizable">B</a> <a id="1136" href="Categories.Category.Construction.Functors.html#1136" class="Generalizable">C</a> <a id="1138" href="Categories.Category.Construction.Functors.html#1138" class="Generalizable">D</a> <a id="1140" href="Categories.Category.Construction.Functors.html#1140" class="Generalizable">C₁</a> <a id="1143" href="Categories.Category.Construction.Functors.html#1143" class="Generalizable">C₂</a> <a id="1146" class="Symbol">:</a> <a id="1148" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="1157" href="Categories.Category.Construction.Functors.html#1105" class="Generalizable">o</a> <a id="1159" href="Categories.Category.Construction.Functors.html#1107" class="Generalizable">ℓ</a> <a id="1161" href="Categories.Category.Construction.Functors.html#1109" class="Generalizable">e</a>
|
||
|
||
<a id="1164" class="Comment">-- The reason the proofs below are so easy is that _∘ᵥ_ 'computes' all the way down into</a>
|
||
<a id="1253" class="Comment">-- expressions in D, from which the properties follow.</a>
|
||
<a id="Functors"></a><a id="1308" href="Categories.Category.Construction.Functors.html#1308" class="Function">Functors</a> <a id="1317" class="Symbol">:</a> <a id="1319" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="1328" href="Categories.Category.Construction.Functors.html#1105" class="Generalizable">o</a> <a id="1330" href="Categories.Category.Construction.Functors.html#1107" class="Generalizable">ℓ</a> <a id="1332" href="Categories.Category.Construction.Functors.html#1109" class="Generalizable">e</a> <a id="1334" class="Symbol">→</a> <a id="1336" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="1345" href="Categories.Category.Construction.Functors.html#1111" class="Generalizable">o′</a> <a id="1348" href="Categories.Category.Construction.Functors.html#1114" class="Generalizable">ℓ′</a> <a id="1351" href="Categories.Category.Construction.Functors.html#1117" class="Generalizable">e′</a> <a id="1354" class="Symbol">→</a> <a id="1356" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="1365" class="Symbol">(</a><a id="1366" href="Categories.Category.Construction.Functors.html#1105" class="Generalizable">o</a> <a id="1368" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1370" href="Categories.Category.Construction.Functors.html#1107" class="Generalizable">ℓ</a> <a id="1372" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1374" href="Categories.Category.Construction.Functors.html#1109" class="Generalizable">e</a> <a id="1376" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1378" href="Categories.Category.Construction.Functors.html#1111" class="Generalizable">o′</a> <a id="1381" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1383" href="Categories.Category.Construction.Functors.html#1114" class="Generalizable">ℓ′</a> <a id="1386" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1388" href="Categories.Category.Construction.Functors.html#1117" class="Generalizable">e′</a><a id="1390" class="Symbol">)</a> <a id="1392" class="Symbol">(</a><a id="1393" href="Categories.Category.Construction.Functors.html#1105" class="Generalizable">o</a> <a id="1395" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1397" href="Categories.Category.Construction.Functors.html#1107" class="Generalizable">ℓ</a> <a id="1399" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1401" href="Categories.Category.Construction.Functors.html#1114" class="Generalizable">ℓ′</a> <a id="1404" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1406" href="Categories.Category.Construction.Functors.html#1117" class="Generalizable">e′</a><a id="1408" class="Symbol">)</a> <a id="1410" class="Symbol">(</a><a id="1411" href="Categories.Category.Construction.Functors.html#1105" class="Generalizable">o</a> <a id="1413" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1415" href="Categories.Category.Construction.Functors.html#1117" class="Generalizable">e′</a><a id="1417" class="Symbol">)</a>
|
||
<a id="1419" href="Categories.Category.Construction.Functors.html#1308" class="Function">Functors</a> <a id="1428" href="Categories.Category.Construction.Functors.html#1428" class="Bound">C</a> <a id="1430" href="Categories.Category.Construction.Functors.html#1430" class="Bound">D</a> <a id="1432" class="Symbol">=</a> <a id="1434" class="Keyword">record</a>
|
||
<a id="1443" class="Symbol">{</a> <a id="1445" href="Categories.Category.Core.html#559" class="Field">Obj</a> <a id="1455" class="Symbol">=</a> <a id="1457" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="1465" href="Categories.Category.Construction.Functors.html#1428" class="Bound">C</a> <a id="1467" href="Categories.Category.Construction.Functors.html#1430" class="Bound">D</a>
|
||
<a id="1471" class="Symbol">;</a> <a id="1473" href="Categories.Category.Core.html#575" class="Field Operator">_⇒_</a> <a id="1483" class="Symbol">=</a> <a id="1485" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a>
|
||
<a id="1509" class="Symbol">;</a> <a id="1511" href="Categories.Category.Core.html#595" class="Field Operator">_≈_</a> <a id="1521" class="Symbol">=</a> <a id="1523" href="Categories.NaturalTransformation.Equivalence.html#630" class="Function Operator">_≃_</a>
|
||
<a id="1529" class="Symbol">;</a> <a id="1531" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="1541" class="Symbol">=</a> <a id="1543" href="Categories.Category.Construction.Functors.html#854" class="Function">idN</a>
|
||
<a id="1549" class="Symbol">;</a> <a id="1551" href="Categories.Category.Core.html#656" class="Field Operator">_∘_</a> <a id="1561" class="Symbol">=</a> <a id="1563" href="Categories.NaturalTransformation.Core.html#2439" class="Function Operator">_∘ᵥ_</a>
|
||
<a id="1570" class="Symbol">;</a> <a id="1572" href="Categories.Category.Core.html#715" class="Field">assoc</a> <a id="1582" class="Symbol">=</a> <a id="1584" href="Categories.Category.Core.html#715" class="Field">assoc</a>
|
||
<a id="1592" class="Symbol">;</a> <a id="1594" href="Categories.Category.Core.html#1004" class="Field">sym-assoc</a> <a id="1604" class="Symbol">=</a> <a id="1606" href="Categories.Category.Core.html#1004" class="Field">sym-assoc</a>
|
||
<a id="1618" class="Symbol">;</a> <a id="1620" href="Categories.Category.Core.html#1096" class="Field">identityˡ</a> <a id="1630" class="Symbol">=</a> <a id="1632" href="Categories.Category.Core.html#1096" class="Field">identityˡ</a>
|
||
<a id="1644" class="Symbol">;</a> <a id="1646" href="Categories.Category.Core.html#1145" class="Field">identityʳ</a> <a id="1656" class="Symbol">=</a> <a id="1658" href="Categories.Category.Core.html#1145" class="Field">identityʳ</a>
|
||
<a id="1670" class="Symbol">;</a> <a id="1672" href="Categories.Category.Core.html#1339" class="Field">identity²</a> <a id="1682" class="Symbol">=</a> <a id="1684" href="Categories.Category.Core.html#1339" class="Field">identity²</a>
|
||
<a id="1696" class="Symbol">;</a> <a id="1698" href="Categories.Category.Core.html#1384" class="Field">equiv</a> <a id="1708" class="Symbol">=</a> <a id="1710" href="Categories.NaturalTransformation.Equivalence.html#785" class="Function">≃-isEquivalence</a>
|
||
<a id="1728" class="Symbol">;</a> <a id="1730" href="Categories.Category.Core.html#1438" class="Field">∘-resp-≈</a> <a id="1740" class="Symbol">=</a> <a id="1742" class="Symbol">λ</a> <a id="1744" href="Categories.Category.Construction.Functors.html#1744" class="Bound">eq</a> <a id="1747" href="Categories.Category.Construction.Functors.html#1747" class="Bound">eq′</a> <a id="1751" class="Symbol">→</a> <a id="1753" href="Categories.Category.Core.html#1438" class="Field">∘-resp-≈</a> <a id="1762" href="Categories.Category.Construction.Functors.html#1744" class="Bound">eq</a> <a id="1765" href="Categories.Category.Construction.Functors.html#1747" class="Bound">eq′</a>
|
||
<a id="1771" class="Symbol">}</a>
|
||
<a id="1775" class="Keyword">where</a> <a id="1781" class="Keyword">module</a> <a id="1788" href="Categories.Category.Construction.Functors.html#1788" class="Module">C</a> <a id="1790" class="Symbol">=</a> <a id="1792" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="1801" href="Categories.Category.Construction.Functors.html#1428" class="Bound">C</a>
|
||
<a id="1811" class="Keyword">module</a> <a id="1818" href="Categories.Category.Construction.Functors.html#1818" class="Module">D</a> <a id="1820" class="Symbol">=</a> <a id="1822" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="1831" href="Categories.Category.Construction.Functors.html#1430" class="Bound">D</a>
|
||
<a id="1841" class="Keyword">open</a> <a id="1846" href="Categories.Category.Construction.Functors.html#1818" class="Module">D</a>
|
||
|
||
<a id="1849" class="Comment">-- Part of the proof that Cats is a CCC:</a>
|
||
<a id="eval"></a><a id="1890" href="Categories.Category.Construction.Functors.html#1890" class="Function">eval</a> <a id="1895" class="Symbol">:</a> <a id="1897" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="1907" class="Symbol">(</a><a id="1908" href="Categories.Category.Construction.Functors.html#1308" class="Function">Functors</a> <a id="1917" href="Categories.Category.Construction.Functors.html#1136" class="Generalizable">C</a> <a id="1919" href="Categories.Category.Construction.Functors.html#1138" class="Generalizable">D</a><a id="1920" class="Symbol">)</a> <a id="1922" href="Categories.Category.Construction.Functors.html#1136" class="Generalizable">C</a> <a id="1924" href="Categories.Category.Construction.Functors.html#1138" class="Generalizable">D</a>
|
||
<a id="1926" href="Categories.Category.Construction.Functors.html#1890" class="Function">eval</a> <a id="1931" class="Symbol">{</a><a id="1932" class="Argument">C</a> <a id="1934" class="Symbol">=</a> <a id="1936" href="Categories.Category.Construction.Functors.html#1936" class="Bound">C</a><a id="1937" class="Symbol">}</a> <a id="1939" class="Symbol">{</a><a id="1940" class="Argument">D</a> <a id="1942" class="Symbol">=</a> <a id="1944" href="Categories.Category.Construction.Functors.html#1944" class="Bound">D</a><a id="1945" class="Symbol">}</a> <a id="1947" class="Symbol">=</a> <a id="1949" class="Keyword">record</a>
|
||
<a id="1958" class="Symbol">{</a> <a id="1960" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="1973" class="Symbol">=</a> <a id="1975" href="Data.Product.html#4893" class="Function">uncurry′</a> <a id="1984" href="Categories.Functor.Core.html#432" class="Field">Functor.F₀</a>
|
||
<a id="1997" class="Symbol">;</a> <a id="1999" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2012" class="Symbol">=</a> <a id="2014" class="Symbol">λ</a> <a id="2016" class="Keyword">where</a>
|
||
<a id="2026" class="Symbol">{</a><a id="2027" href="Categories.Category.Construction.Functors.html#2027" class="Bound">F</a> <a id="2029" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2031" class="Symbol">_}</a> <a id="2034" class="Symbol">{_</a> <a id="2037" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2039" href="Categories.Category.Construction.Functors.html#2039" class="Bound">B</a><a id="2040" class="Symbol">}</a> <a id="2042" class="Symbol">(</a><a id="2043" href="Categories.Category.Construction.Functors.html#2043" class="Bound">α</a> <a id="2045" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2047" href="Categories.Category.Construction.Functors.html#2047" class="Bound">f</a><a id="2048" class="Symbol">)</a> <a id="2050" class="Symbol">→</a>
|
||
<a id="2058" class="Keyword">let</a> <a id="2062" class="Keyword">open</a> <a id="2067" href="Categories.NaturalTransformation.Core.html#466" class="Module">NaturalTransformation</a> <a id="2089" href="Categories.Category.Construction.Functors.html#2043" class="Bound">α</a>
|
||
<a id="2101" class="Keyword">open</a> <a id="2106" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="2114" href="Categories.Category.Construction.Functors.html#2027" class="Bound">F</a>
|
||
<a id="2122" class="Keyword">in</a> <a id="2125" href="Categories.NaturalTransformation.Core.html#783" class="Function">η</a> <a id="2127" href="Categories.Category.Construction.Functors.html#2039" class="Bound">B</a> <a id="2129" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2131" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="2134" href="Categories.Category.Construction.Functors.html#2047" class="Bound">f</a>
|
||
<a id="2138" class="Symbol">;</a> <a id="2140" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="2153" class="Symbol">=</a> <a id="2155" class="Symbol">λ</a> <a id="2157" class="Keyword">where</a>
|
||
<a id="2167" class="Symbol">{</a><a id="2168" href="Categories.Category.Construction.Functors.html#2168" class="Bound">F</a> <a id="2170" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2172" class="Symbol">_}</a> <a id="2175" class="Symbol">→</a> <a id="2177" href="Categories.Morphism.Reasoning.Core.html#2786" class="Function">elimʳ</a> <a id="2183" class="Symbol">(</a><a id="2184" href="Categories.Functor.Core.html#511" class="Field">Functor.identity</a> <a id="2201" href="Categories.Category.Construction.Functors.html#2168" class="Bound">F</a><a id="2202" class="Symbol">)</a>
|
||
<a id="2206" class="Symbol">;</a> <a id="2208" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="2221" class="Symbol">=</a> <a id="2223" class="Symbol">λ</a> <a id="2225" class="Keyword">where</a>
|
||
<a id="2235" class="Symbol">{</a><a id="2236" href="Categories.Category.Construction.Functors.html#2236" class="Bound">F</a> <a id="2238" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2240" class="Symbol">_}</a> <a id="2243" class="Symbol">{</a><a id="2244" href="Categories.Category.Construction.Functors.html#2244" class="Bound">G</a> <a id="2246" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2248" href="Categories.Category.Construction.Functors.html#2248" class="Bound">B</a><a id="2249" class="Symbol">}</a> <a id="2251" class="Symbol">{_</a> <a id="2254" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2256" href="Categories.Category.Construction.Functors.html#2256" class="Bound">C</a><a id="2257" class="Symbol">}</a> <a id="2259" class="Symbol">{</a><a id="2260" href="Categories.Category.Construction.Functors.html#2260" class="Bound">α</a> <a id="2262" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2264" href="Categories.Category.Construction.Functors.html#2264" class="Bound">f</a><a id="2265" class="Symbol">}</a> <a id="2267" class="Symbol">{</a><a id="2268" href="Categories.Category.Construction.Functors.html#2268" class="Bound">β</a> <a id="2270" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2272" href="Categories.Category.Construction.Functors.html#2272" class="Bound">g</a><a id="2273" class="Symbol">}</a> <a id="2275" class="Symbol">→</a>
|
||
<a id="2283" class="Keyword">let</a> <a id="2287" class="Keyword">open</a> <a id="2292" href="Categories.NaturalTransformation.Core.html#466" class="Module">NaturalTransformation</a>
|
||
<a id="2324" class="Keyword">open</a> <a id="2329" href="Categories.Functor.Core.html#248" class="Module">Functor</a>
|
||
<a id="2343" class="Keyword">in</a> <a id="2346" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
||
<a id="2360" class="Symbol">(</a><a id="2361" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="2363" href="Categories.Category.Construction.Functors.html#2268" class="Bound">β</a> <a id="2365" href="Categories.Category.Construction.Functors.html#2256" class="Bound">C</a> <a id="2367" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2369" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="2371" href="Categories.Category.Construction.Functors.html#2260" class="Bound">α</a> <a id="2373" href="Categories.Category.Construction.Functors.html#2256" class="Bound">C</a><a id="2374" class="Symbol">)</a> <a id="2376" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2378" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2381" href="Categories.Category.Construction.Functors.html#2236" class="Bound">F</a> <a id="2383" class="Symbol">(</a><a id="2384" href="Categories.Category.Construction.Functors.html#2272" class="Bound">g</a> <a id="2386" href="Categories.Category.Core.html#656" class="Function Operator">C.∘</a> <a id="2390" href="Categories.Category.Construction.Functors.html#2264" class="Bound">f</a><a id="2391" class="Symbol">)</a> <a id="2394" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2397" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="2405" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="2418" href="Categories.Category.Construction.Functors.html#2236" class="Bound">F</a> <a id="2420" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="2430" class="Symbol">(</a><a id="2431" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="2433" href="Categories.Category.Construction.Functors.html#2268" class="Bound">β</a> <a id="2435" href="Categories.Category.Construction.Functors.html#2256" class="Bound">C</a> <a id="2437" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2439" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="2441" href="Categories.Category.Construction.Functors.html#2260" class="Bound">α</a> <a id="2443" href="Categories.Category.Construction.Functors.html#2256" class="Bound">C</a><a id="2444" class="Symbol">)</a> <a id="2446" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2448" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2451" href="Categories.Category.Construction.Functors.html#2236" class="Bound">F</a> <a id="2453" href="Categories.Category.Construction.Functors.html#2272" class="Bound">g</a> <a id="2455" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2457" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2460" href="Categories.Category.Construction.Functors.html#2236" class="Bound">F</a> <a id="2462" href="Categories.Category.Construction.Functors.html#2264" class="Bound">f</a> <a id="2464" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2467" href="Categories.Morphism.Reasoning.Core.html#1914" class="Function">pullʳ</a> <a id="2473" class="Symbol">(</a><a id="2474" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="2480" class="Symbol">(</a><a id="2481" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="2489" href="Categories.Category.Construction.Functors.html#2260" class="Bound">α</a> <a id="2491" href="Categories.Category.Construction.Functors.html#2272" class="Bound">g</a><a id="2492" class="Symbol">))</a> <a id="2495" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="2505" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="2507" href="Categories.Category.Construction.Functors.html#2268" class="Bound">β</a> <a id="2509" href="Categories.Category.Construction.Functors.html#2256" class="Bound">C</a> <a id="2511" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2513" class="Symbol">(</a><a id="2514" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2517" href="Categories.Category.Construction.Functors.html#2244" class="Bound">G</a> <a id="2519" href="Categories.Category.Construction.Functors.html#2272" class="Bound">g</a> <a id="2521" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2523" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="2525" href="Categories.Category.Construction.Functors.html#2260" class="Bound">α</a> <a id="2527" href="Categories.Category.Construction.Functors.html#2248" class="Bound">B</a><a id="2528" class="Symbol">)</a> <a id="2530" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2532" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2535" href="Categories.Category.Construction.Functors.html#2236" class="Bound">F</a> <a id="2537" href="Categories.Category.Construction.Functors.html#2264" class="Bound">f</a> <a id="2539" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2542" href="Categories.Morphism.Reasoning.Core.html#2347" class="Function">pushʳ</a> <a id="2548" href="Categories.Category.Core.html#715" class="Field">assoc</a> <a id="2554" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="2564" class="Symbol">(</a><a id="2565" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="2567" href="Categories.Category.Construction.Functors.html#2268" class="Bound">β</a> <a id="2569" href="Categories.Category.Construction.Functors.html#2256" class="Bound">C</a> <a id="2571" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2573" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2576" href="Categories.Category.Construction.Functors.html#2244" class="Bound">G</a> <a id="2578" href="Categories.Category.Construction.Functors.html#2272" class="Bound">g</a><a id="2579" class="Symbol">)</a> <a id="2581" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2583" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="2585" href="Categories.Category.Construction.Functors.html#2260" class="Bound">α</a> <a id="2587" href="Categories.Category.Construction.Functors.html#2248" class="Bound">B</a> <a id="2589" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2591" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="2594" href="Categories.Category.Construction.Functors.html#2236" class="Bound">F</a> <a id="2596" href="Categories.Category.Construction.Functors.html#2264" class="Bound">f</a> <a id="2598" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
||
<a id="2602" class="Symbol">;</a> <a id="2604" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="2617" class="Symbol">=</a> <a id="2619" class="Symbol">λ</a> <a id="2621" class="Keyword">where</a>
|
||
<a id="2631" class="Symbol">{</a><a id="2632" href="Categories.Category.Construction.Functors.html#2632" class="Bound">F</a> <a id="2634" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2636" class="Symbol">_}</a> <a id="2639" class="Symbol">(</a><a id="2640" href="Categories.Category.Construction.Functors.html#2640" class="Bound">comm</a> <a id="2645" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="2647" href="Categories.Category.Construction.Functors.html#2647" class="Bound">eq</a><a id="2649" class="Symbol">)</a> <a id="2651" class="Symbol">→</a> <a id="2653" href="Categories.Category.Core.html#1438" class="Field">∘-resp-≈</a> <a id="2662" href="Categories.Category.Construction.Functors.html#2640" class="Bound">comm</a> <a id="2667" class="Symbol">(</a><a id="2668" href="Categories.Functor.Core.html#696" class="Field">Functor.F-resp-≈</a> <a id="2685" href="Categories.Category.Construction.Functors.html#2632" class="Bound">F</a> <a id="2687" href="Categories.Category.Construction.Functors.html#2647" class="Bound">eq</a><a id="2689" class="Symbol">)</a>
|
||
<a id="2693" class="Symbol">}</a>
|
||
<a id="2697" class="Keyword">where</a> <a id="2703" class="Keyword">module</a> <a id="2710" href="Categories.Category.Construction.Functors.html#2710" class="Module">C</a> <a id="2712" class="Symbol">=</a> <a id="2714" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="2723" href="Categories.Category.Construction.Functors.html#1936" class="Bound">C</a>
|
||
<a id="2733" class="Keyword">module</a> <a id="2740" href="Categories.Category.Construction.Functors.html#2740" class="Module">D</a> <a id="2742" class="Symbol">=</a> <a id="2744" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="2753" href="Categories.Category.Construction.Functors.html#1944" class="Bound">D</a>
|
||
<a id="2763" class="Keyword">open</a> <a id="2768" href="Categories.Category.Construction.Functors.html#2740" class="Module">D</a>
|
||
<a id="2778" class="Keyword">open</a> <a id="2783" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="2786" href="Categories.Category.Construction.Functors.html#1944" class="Bound">D</a>
|
||
<a id="2796" class="Keyword">open</a> <a id="2801" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
|
||
|
||
<a id="evalF"></a><a id="2815" href="Categories.Category.Construction.Functors.html#2815" class="Function">evalF</a> <a id="2821" class="Symbol">:</a> <a id="2823" class="Symbol">∀</a> <a id="2825" class="Symbol">(</a><a id="2826" href="Categories.Category.Construction.Functors.html#2826" class="Bound">C</a> <a id="2828" class="Symbol">:</a> <a id="2830" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="2839" href="Categories.Category.Construction.Functors.html#1105" class="Generalizable">o</a> <a id="2841" href="Categories.Category.Construction.Functors.html#1107" class="Generalizable">ℓ</a> <a id="2843" href="Categories.Category.Construction.Functors.html#1109" class="Generalizable">e</a><a id="2844" class="Symbol">)</a> <a id="2846" class="Symbol">(</a><a id="2847" href="Categories.Category.Construction.Functors.html#2847" class="Bound">D</a> <a id="2849" class="Symbol">:</a> <a id="2851" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="2860" href="Categories.Category.Construction.Functors.html#1111" class="Generalizable">o′</a> <a id="2863" href="Categories.Category.Construction.Functors.html#1114" class="Generalizable">ℓ′</a> <a id="2866" href="Categories.Category.Construction.Functors.html#1117" class="Generalizable">e′</a><a id="2868" class="Symbol">)</a> <a id="2870" class="Symbol">→</a> <a id="2872" href="Categories.Category.Core.html#559" class="Field">Category.Obj</a> <a id="2885" href="Categories.Category.Construction.Functors.html#2826" class="Bound">C</a> <a id="2887" class="Symbol">→</a> <a id="2889" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="2897" class="Symbol">(</a><a id="2898" href="Categories.Category.Construction.Functors.html#1308" class="Function">Functors</a> <a id="2907" href="Categories.Category.Construction.Functors.html#2826" class="Bound">C</a> <a id="2909" href="Categories.Category.Construction.Functors.html#2847" class="Bound">D</a><a id="2910" class="Symbol">)</a> <a id="2912" href="Categories.Category.Construction.Functors.html#2847" class="Bound">D</a>
|
||
<a id="2914" href="Categories.Category.Construction.Functors.html#2815" class="Function">evalF</a> <a id="2920" class="Symbol">_</a> <a id="2922" class="Symbol">_</a> <a id="2924" href="Categories.Category.Construction.Functors.html#2924" class="Bound">X</a> <a id="2926" class="Symbol">=</a> <a id="2928" href="Categories.Functor.Bifunctor.html#938" class="Function">appʳ</a> <a id="2933" href="Categories.Category.Construction.Functors.html#1890" class="Function">eval</a> <a id="2938" href="Categories.Category.Construction.Functors.html#2924" class="Bound">X</a>
|
||
|
||
<a id="2941" class="Comment">-- Currying induces a functor between functor categories -- another</a>
|
||
<a id="3009" class="Comment">-- part of the proof that Cats is a cartesian closed (bi)category.</a>
|
||
|
||
<a id="curry"></a><a id="3077" href="Categories.Category.Construction.Functors.html#3077" class="Function">curry</a> <a id="3083" class="Symbol">:</a> <a id="3085" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="3093" class="Symbol">(</a><a id="3094" href="Categories.Category.Construction.Functors.html#1308" class="Function">Functors</a> <a id="3103" class="Symbol">(</a><a id="3104" href="Categories.Category.Construction.Functors.html#1140" class="Generalizable">C₁</a> <a id="3107" href="Categories.Category.Construction.Functors.html#468" class="Function Operator">×</a> <a id="3109" href="Categories.Category.Construction.Functors.html#1143" class="Generalizable">C₂</a><a id="3111" class="Symbol">)</a> <a id="3113" href="Categories.Category.Construction.Functors.html#1138" class="Generalizable">D</a><a id="3114" class="Symbol">)</a> <a id="3116" class="Symbol">(</a><a id="3117" href="Categories.Category.Construction.Functors.html#1308" class="Function">Functors</a> <a id="3126" href="Categories.Category.Construction.Functors.html#1140" class="Generalizable">C₁</a> <a id="3129" class="Symbol">(</a><a id="3130" href="Categories.Category.Construction.Functors.html#1308" class="Function">Functors</a> <a id="3139" href="Categories.Category.Construction.Functors.html#1143" class="Generalizable">C₂</a> <a id="3142" href="Categories.Category.Construction.Functors.html#1138" class="Generalizable">D</a><a id="3143" class="Symbol">))</a>
|
||
<a id="3146" href="Categories.Category.Construction.Functors.html#3077" class="Function">curry</a> <a id="3152" class="Symbol">{</a><a id="3153" class="Argument">C₁</a> <a id="3156" class="Symbol">=</a> <a id="3158" href="Categories.Category.Construction.Functors.html#3158" class="Bound">C₁</a><a id="3160" class="Symbol">}</a> <a id="3162" class="Symbol">{</a><a id="3163" class="Argument">C₂</a> <a id="3166" class="Symbol">=</a> <a id="3168" href="Categories.Category.Construction.Functors.html#3168" class="Bound">C₂</a><a id="3170" class="Symbol">}</a> <a id="3172" class="Symbol">{</a><a id="3173" class="Argument">D</a> <a id="3175" class="Symbol">=</a> <a id="3177" href="Categories.Category.Construction.Functors.html#3177" class="Bound">D</a><a id="3178" class="Symbol">}</a> <a id="3180" class="Symbol">=</a> <a id="3182" class="Keyword">record</a>
|
||
<a id="3191" class="Symbol">{</a> <a id="3193" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="3196" class="Symbol">=</a> <a id="3198" href="Categories.Category.Construction.Functors.html#3371" class="Function">curry₀</a>
|
||
<a id="3207" class="Symbol">;</a> <a id="3209" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3212" class="Symbol">=</a> <a id="3214" href="Categories.Category.Construction.Functors.html#3959" class="Function">curry₁</a>
|
||
<a id="3223" class="Symbol">;</a> <a id="3225" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="3238" class="Symbol">=</a> <a id="3240" href="Relation.Binary.Structures.html#1577" class="Function">Equiv.refl</a> <a id="3251" href="Categories.Category.Construction.Functors.html#3177" class="Bound">D</a>
|
||
<a id="3255" class="Symbol">;</a> <a id="3257" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="3270" class="Symbol">=</a> <a id="3272" href="Relation.Binary.Structures.html#1577" class="Function">Equiv.refl</a> <a id="3283" href="Categories.Category.Construction.Functors.html#3177" class="Bound">D</a>
|
||
<a id="3287" class="Symbol">;</a> <a id="3289" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="3302" class="Symbol">=</a> <a id="3304" class="Symbol">λ</a> <a id="3306" href="Categories.Category.Construction.Functors.html#3306" class="Bound">F≈G</a> <a id="3310" class="Symbol">{</a><a id="3311" href="Categories.Category.Construction.Functors.html#3311" class="Bound">x₁</a><a id="3313" class="Symbol">}</a> <a id="3315" class="Symbol">{</a><a id="3316" href="Categories.Category.Construction.Functors.html#3316" class="Bound">x₂</a><a id="3318" class="Symbol">}</a> <a id="3320" class="Symbol">→</a> <a id="3322" href="Categories.Category.Construction.Functors.html#3306" class="Bound">F≈G</a> <a id="3326" class="Symbol">{</a><a id="3327" href="Categories.Category.Construction.Functors.html#3311" class="Bound">x₁</a> <a id="3330" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="3332" href="Categories.Category.Construction.Functors.html#3316" class="Bound">x₂</a><a id="3334" class="Symbol">}</a>
|
||
<a id="3338" class="Symbol">}</a>
|
||
<a id="3342" class="Keyword">where</a>
|
||
<a id="3352" class="Keyword">open</a> <a id="3357" href="Categories.Category.Core.html#442" class="Module">Category</a>
|
||
|
||
<a id="3371" href="Categories.Category.Construction.Functors.html#3371" class="Function">curry₀</a> <a id="3378" class="Symbol">:</a> <a id="3380" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="3390" href="Categories.Category.Construction.Functors.html#3158" class="Bound">C₁</a> <a id="3393" href="Categories.Category.Construction.Functors.html#3168" class="Bound">C₂</a> <a id="3396" href="Categories.Category.Construction.Functors.html#3177" class="Bound">D</a> <a id="3398" class="Symbol">→</a> <a id="3400" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="3408" href="Categories.Category.Construction.Functors.html#3158" class="Bound">C₁</a> <a id="3411" class="Symbol">(</a><a id="3412" href="Categories.Category.Construction.Functors.html#1308" class="Function">Functors</a> <a id="3421" href="Categories.Category.Construction.Functors.html#3168" class="Bound">C₂</a> <a id="3424" href="Categories.Category.Construction.Functors.html#3177" class="Bound">D</a><a id="3425" class="Symbol">)</a>
|
||
<a id="3431" href="Categories.Category.Construction.Functors.html#3371" class="Function">curry₀</a> <a id="3438" href="Categories.Category.Construction.Functors.html#3438" class="Bound">F</a> <a id="3440" class="Symbol">=</a> <a id="3442" class="Keyword">record</a>
|
||
<a id="3455" class="Symbol">{</a> <a id="3457" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="3460" class="Symbol">=</a> <a id="3462" class="Symbol">λ</a> <a id="3464" href="Categories.Category.Construction.Functors.html#3464" class="Bound">c</a> <a id="3466" class="Symbol">→</a> <a id="3468" href="Categories.Functor.Bifunctor.html#874" class="Function">appˡ</a> <a id="3473" href="Categories.Category.Construction.Functors.html#3438" class="Bound">F</a> <a id="3475" href="Categories.Category.Construction.Functors.html#3464" class="Bound">c</a>
|
||
<a id="3483" class="Symbol">;</a> <a id="3485" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3488" class="Symbol">=</a> <a id="3490" class="Symbol">λ</a> <a id="3492" href="Categories.Category.Construction.Functors.html#3492" class="Bound">f</a> <a id="3494" class="Symbol">→</a> <a id="3496" href="Categories.Category.Construction.Functors.html#3438" class="Bound">F</a> <a id="3498" href="Categories.NaturalTransformation.Core.html#3439" class="Function Operator">∘ˡ</a> <a id="3501" class="Symbol">(</a><a id="3502" href="Categories.Functor.Construction.Constant.html#964" class="Function">constNat</a> <a id="3511" href="Categories.Category.Construction.Functors.html#3492" class="Bound">f</a> <a id="3513" href="Categories.Category.Product.html#2966" class="Function Operator">※ⁿ</a> <a id="3516" href="Categories.Category.Construction.Functors.html#854" class="Function">idN</a><a id="3519" class="Symbol">)</a>
|
||
<a id="3527" class="Symbol">;</a> <a id="3529" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="3542" class="Symbol">=</a> <a id="3544" href="Categories.Functor.Core.html#511" class="Field">identity</a>
|
||
<a id="3559" class="Symbol">;</a> <a id="3561" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="3574" class="Symbol">=</a> <a id="3576" class="Symbol">λ</a> <a id="3578" class="Symbol">{</a><a id="3579" href="Categories.Category.Construction.Functors.html#3579" class="Bound">_</a><a id="3580" class="Symbol">}</a> <a id="3582" class="Symbol">{</a><a id="3583" href="Categories.Category.Construction.Functors.html#3583" class="Bound">_</a><a id="3584" class="Symbol">}</a> <a id="3586" class="Symbol">{</a><a id="3587" href="Categories.Category.Construction.Functors.html#3587" class="Bound">_</a><a id="3588" class="Symbol">}</a> <a id="3590" class="Symbol">{</a><a id="3591" href="Categories.Category.Construction.Functors.html#3591" class="Bound">f</a><a id="3592" class="Symbol">}</a> <a id="3594" class="Symbol">{</a><a id="3595" href="Categories.Category.Construction.Functors.html#3595" class="Bound">g</a><a id="3596" class="Symbol">}</a> <a id="3598" class="Symbol">→</a> <a id="3600" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
||
<a id="3616" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3619" class="Symbol">(</a><a id="3620" href="Categories.Category.Construction.Functors.html#3158" class="Bound">C₁</a> <a id="3623" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="3625" href="Categories.Category.Construction.Functors.html#3595" class="Bound">g</a> <a id="3627" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="3629" href="Categories.Category.Construction.Functors.html#3591" class="Bound">f</a> <a id="3631" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="3633" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="3635" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="3638" href="Categories.Category.Construction.Functors.html#3168" class="Bound">C₂</a><a id="3640" class="Symbol">)</a> <a id="3657" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="3661" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="3670" class="Symbol">(</a><a id="3671" href="Relation.Binary.Structures.html#1577" class="Function">Equiv.refl</a> <a id="3682" href="Categories.Category.Construction.Functors.html#3158" class="Bound">C₁</a> <a id="3685" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="3687" href="Categories.Category.Core.html#1096" class="Field">identityˡ</a> <a id="3697" href="Categories.Category.Construction.Functors.html#3168" class="Bound">C₂</a><a id="3699" class="Symbol">)</a> <a id="3701" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
||
<a id="3713" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3716" class="Symbol">(</a><a id="3717" href="Categories.Category.Construction.Functors.html#3158" class="Bound">C₁</a> <a id="3720" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="3722" href="Categories.Category.Construction.Functors.html#3595" class="Bound">g</a> <a id="3724" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="3726" href="Categories.Category.Construction.Functors.html#3591" class="Bound">f</a> <a id="3728" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="3730" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="3732" href="Categories.Category.Construction.Functors.html#3168" class="Bound">C₂</a> <a id="3735" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="3737" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="3740" href="Categories.Category.Construction.Functors.html#3168" class="Bound">C₂</a> <a id="3743" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="3745" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="3748" href="Categories.Category.Construction.Functors.html#3168" class="Bound">C₂</a> <a id="3751" href="Categories.Category.html#700" class="Function Operator">]</a><a id="3752" class="Symbol">)</a> <a id="3754" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="3757" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="3770" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="3782" href="Categories.Category.Construction.Functors.html#3177" class="Bound">D</a> <a id="3784" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="3786" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3789" class="Symbol">(</a><a id="3790" href="Categories.Category.Construction.Functors.html#3595" class="Bound">g</a> <a id="3792" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="3794" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="3797" href="Categories.Category.Construction.Functors.html#3168" class="Bound">C₂</a><a id="3799" class="Symbol">)</a> <a id="3801" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="3803" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="3806" class="Symbol">(</a><a id="3807" href="Categories.Category.Construction.Functors.html#3591" class="Bound">f</a> <a id="3809" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="3811" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="3814" href="Categories.Category.Construction.Functors.html#3168" class="Bound">C₂</a><a id="3816" class="Symbol">)</a> <a id="3818" href="Categories.Category.html#700" class="Function Operator">]</a> <a id="3823" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
||
<a id="3831" class="Symbol">;</a> <a id="3833" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="3842" class="Symbol">=</a> <a id="3844" class="Symbol">λ</a> <a id="3846" href="Categories.Category.Construction.Functors.html#3846" class="Bound">f≈g</a> <a id="3850" class="Symbol">→</a> <a id="3852" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="3861" class="Symbol">(</a><a id="3862" href="Categories.Category.Construction.Functors.html#3846" class="Bound">f≈g</a> <a id="3866" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="3868" href="Relation.Binary.Structures.html#1577" class="Function">Equiv.refl</a> <a id="3879" href="Categories.Category.Construction.Functors.html#3168" class="Bound">C₂</a><a id="3881" class="Symbol">)</a>
|
||
<a id="3889" class="Symbol">}</a>
|
||
<a id="3897" class="Keyword">where</a>
|
||
<a id="3911" class="Keyword">open</a> <a id="3916" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="3924" href="Categories.Category.Construction.Functors.html#3438" class="Bound">F</a>
|
||
<a id="3934" class="Keyword">open</a> <a id="3939" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a> <a id="3952" href="Categories.Category.Construction.Functors.html#3177" class="Bound">D</a>
|
||
|
||
<a id="3959" href="Categories.Category.Construction.Functors.html#3959" class="Function">curry₁</a> <a id="3966" class="Symbol">:</a> <a id="3968" class="Symbol">{</a><a id="3969" href="Categories.Category.Construction.Functors.html#3969" class="Bound">F</a> <a id="3971" href="Categories.Category.Construction.Functors.html#3971" class="Bound">G</a> <a id="3973" class="Symbol">:</a> <a id="3975" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="3985" href="Categories.Category.Construction.Functors.html#3158" class="Bound">C₁</a> <a id="3988" href="Categories.Category.Construction.Functors.html#3168" class="Bound">C₂</a> <a id="3991" href="Categories.Category.Construction.Functors.html#3177" class="Bound">D</a><a id="3992" class="Symbol">}</a> <a id="3994" class="Symbol">→</a>
|
||
<a id="4009" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="4031" href="Categories.Category.Construction.Functors.html#3969" class="Bound">F</a> <a id="4033" href="Categories.Category.Construction.Functors.html#3971" class="Bound">G</a> <a id="4035" class="Symbol">→</a>
|
||
<a id="4050" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="4072" class="Symbol">(</a><a id="4073" href="Categories.Category.Construction.Functors.html#3371" class="Function">curry₀</a> <a id="4080" href="Categories.Category.Construction.Functors.html#3969" class="Bound">F</a><a id="4081" class="Symbol">)</a> <a id="4083" class="Symbol">(</a><a id="4084" href="Categories.Category.Construction.Functors.html#3371" class="Function">curry₀</a> <a id="4091" href="Categories.Category.Construction.Functors.html#3971" class="Bound">G</a><a id="4092" class="Symbol">)</a>
|
||
<a id="4098" href="Categories.Category.Construction.Functors.html#3959" class="Function">curry₁</a> <a id="4105" href="Categories.Category.Construction.Functors.html#4105" class="Bound">α</a> <a id="4107" class="Symbol">=</a> <a id="4109" class="Keyword">record</a>
|
||
<a id="4122" class="Symbol">{</a> <a id="4124" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="4126" class="Symbol">=</a> <a id="4128" class="Symbol">λ</a> <a id="4130" href="Categories.Category.Construction.Functors.html#4130" class="Bound">c</a> <a id="4132" class="Symbol">→</a> <a id="4134" class="Keyword">record</a>
|
||
<a id="4149" class="Symbol">{</a> <a id="4151" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="4163" class="Symbol">=</a> <a id="4165" class="Symbol">λ</a> <a id="4167" href="Categories.Category.Construction.Functors.html#4167" class="Bound">a</a> <a id="4169" class="Symbol">→</a> <a id="4171" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="4173" href="Categories.Category.Construction.Functors.html#4105" class="Bound">α</a> <a id="4175" class="Symbol">(</a><a id="4176" href="Categories.Category.Construction.Functors.html#4130" class="Bound">c</a> <a id="4178" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4180" href="Categories.Category.Construction.Functors.html#4167" class="Bound">a</a><a id="4181" class="Symbol">)</a>
|
||
<a id="4191" class="Symbol">;</a> <a id="4193" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="4205" class="Symbol">=</a> <a id="4207" class="Symbol">λ</a> <a id="4209" href="Categories.Category.Construction.Functors.html#4209" class="Bound">f</a> <a id="4211" class="Symbol">→</a> <a id="4217" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="4225" href="Categories.Category.Construction.Functors.html#4105" class="Bound">α</a> <a id="4227" class="Symbol">(</a><a id="4228" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="4231" href="Categories.Category.Construction.Functors.html#3158" class="Bound">C₁</a> <a id="4235" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4237" href="Categories.Category.Construction.Functors.html#4209" class="Bound">f</a><a id="4238" class="Symbol">)</a>
|
||
<a id="4248" class="Symbol">;</a> <a id="4250" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="4262" class="Symbol">=</a> <a id="4264" class="Symbol">λ</a> <a id="4266" href="Categories.Category.Construction.Functors.html#4266" class="Bound">f</a> <a id="4268" class="Symbol">→</a> <a id="4270" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="4282" href="Categories.Category.Construction.Functors.html#4105" class="Bound">α</a> <a id="4284" class="Symbol">(</a><a id="4285" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="4288" href="Categories.Category.Construction.Functors.html#3158" class="Bound">C₁</a> <a id="4292" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4294" href="Categories.Category.Construction.Functors.html#4266" class="Bound">f</a><a id="4295" class="Symbol">)</a>
|
||
<a id="4305" class="Symbol">}</a>
|
||
<a id="4313" class="Symbol">;</a> <a id="4315" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="4329" class="Symbol">=</a> <a id="4331" class="Symbol">λ</a> <a id="4333" href="Categories.Category.Construction.Functors.html#4333" class="Bound">f</a> <a id="4335" class="Symbol">→</a> <a id="4341" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="4349" href="Categories.Category.Construction.Functors.html#4105" class="Bound">α</a> <a id="4351" class="Symbol">(</a><a id="4352" href="Categories.Category.Construction.Functors.html#4333" class="Bound">f</a> <a id="4354" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4356" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="4359" href="Categories.Category.Construction.Functors.html#3168" class="Bound">C₂</a><a id="4361" class="Symbol">)</a>
|
||
<a id="4369" class="Symbol">;</a> <a id="4371" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="4385" class="Symbol">=</a> <a id="4387" class="Symbol">λ</a> <a id="4389" href="Categories.Category.Construction.Functors.html#4389" class="Bound">f</a> <a id="4391" class="Symbol">→</a> <a id="4393" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="4405" href="Categories.Category.Construction.Functors.html#4105" class="Bound">α</a> <a id="4407" class="Symbol">(</a><a id="4408" href="Categories.Category.Construction.Functors.html#4389" class="Bound">f</a> <a id="4410" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="4412" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="4415" href="Categories.Category.Construction.Functors.html#3168" class="Bound">C₂</a><a id="4417" class="Symbol">)</a>
|
||
<a id="4425" class="Symbol">}</a>
|
||
<a id="4433" class="Keyword">where</a> <a id="4439" class="Keyword">open</a> <a id="4444" href="Categories.NaturalTransformation.Core.html#466" class="Module">NaturalTransformation</a>
|
||
|
||
<a id="4467" class="Keyword">module</a> <a id="curry"></a><a id="4474" href="Categories.Category.Construction.Functors.html#4474" class="Module">curry</a> <a id="4480" class="Symbol">{</a><a id="4481" href="Categories.Category.Construction.Functors.html#4481" class="Bound">o₁</a> <a id="4484" href="Categories.Category.Construction.Functors.html#4484" class="Bound">e₁</a> <a id="4487" href="Categories.Category.Construction.Functors.html#4487" class="Bound">ℓ₁</a><a id="4489" class="Symbol">}</a> <a id="4491" class="Symbol">{</a><a id="4492" href="Categories.Category.Construction.Functors.html#4492" class="Bound">C₁</a> <a id="4495" class="Symbol">:</a> <a id="4497" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="4506" href="Categories.Category.Construction.Functors.html#4481" class="Bound">o₁</a> <a id="4509" href="Categories.Category.Construction.Functors.html#4484" class="Bound">e₁</a> <a id="4512" href="Categories.Category.Construction.Functors.html#4487" class="Bound">ℓ₁</a><a id="4514" class="Symbol">}</a>
|
||
<a id="4529" class="Symbol">{</a><a id="4530" href="Categories.Category.Construction.Functors.html#4530" class="Bound">o₂</a> <a id="4533" href="Categories.Category.Construction.Functors.html#4533" class="Bound">e₂</a> <a id="4536" href="Categories.Category.Construction.Functors.html#4536" class="Bound">ℓ₂</a><a id="4538" class="Symbol">}</a> <a id="4540" class="Symbol">{</a><a id="4541" href="Categories.Category.Construction.Functors.html#4541" class="Bound">C₂</a> <a id="4544" class="Symbol">:</a> <a id="4546" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="4555" href="Categories.Category.Construction.Functors.html#4530" class="Bound">o₂</a> <a id="4558" href="Categories.Category.Construction.Functors.html#4533" class="Bound">e₂</a> <a id="4561" href="Categories.Category.Construction.Functors.html#4536" class="Bound">ℓ₂</a><a id="4563" class="Symbol">}</a>
|
||
<a id="4578" class="Symbol">{</a><a id="4579" href="Categories.Category.Construction.Functors.html#4579" class="Bound">o′</a> <a id="4582" href="Categories.Category.Construction.Functors.html#4582" class="Bound">e′</a> <a id="4585" href="Categories.Category.Construction.Functors.html#4585" class="Bound">ℓ′</a><a id="4587" class="Symbol">}</a> <a id="4589" class="Symbol">{</a><a id="4590" href="Categories.Category.Construction.Functors.html#4590" class="Bound">D</a> <a id="4593" class="Symbol">:</a> <a id="4595" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="4604" href="Categories.Category.Construction.Functors.html#4579" class="Bound">o′</a> <a id="4607" href="Categories.Category.Construction.Functors.html#4582" class="Bound">e′</a> <a id="4610" href="Categories.Category.Construction.Functors.html#4585" class="Bound">ℓ′</a><a id="4612" class="Symbol">}</a>
|
||
<a id="4627" class="Keyword">where</a>
|
||
<a id="4635" class="Keyword">open</a> <a id="4640" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="4648" class="Symbol">(</a><a id="4649" href="Categories.Category.Construction.Functors.html#3077" class="Function">curry</a> <a id="4655" class="Symbol">{</a><a id="4656" class="Argument">C₁</a> <a id="4659" class="Symbol">=</a> <a id="4661" href="Categories.Category.Construction.Functors.html#4492" class="Bound">C₁</a><a id="4663" class="Symbol">}</a> <a id="4665" class="Symbol">{</a><a id="4666" class="Argument">C₂</a> <a id="4669" class="Symbol">=</a> <a id="4671" href="Categories.Category.Construction.Functors.html#4541" class="Bound">C₂</a><a id="4673" class="Symbol">}</a> <a id="4675" class="Symbol">{</a><a id="4676" class="Argument">D</a> <a id="4678" class="Symbol">=</a> <a id="4680" href="Categories.Category.Construction.Functors.html#4590" class="Bound">D</a><a id="4681" class="Symbol">})</a> <a id="4684" class="Keyword">public</a>
|
||
<a id="4693" class="Keyword">open</a> <a id="4698" href="Categories.Category.Core.html#442" class="Module">Category</a>
|
||
<a id="4709" class="Keyword">open</a> <a id="4714" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Module">NaturalIsomorphism</a>
|
||
|
||
<a id="4736" class="Comment">-- Currying preserves natural isos.</a>
|
||
<a id="4774" class="Comment">-- This makes |curry.F₀| a map between the hom-setoids of Cats.</a>
|
||
|
||
<a id="curry.resp-NI"></a><a id="4841" href="Categories.Category.Construction.Functors.html#4841" class="Function">resp-NI</a> <a id="4849" class="Symbol">:</a> <a id="4851" class="Symbol">{</a><a id="4852" href="Categories.Category.Construction.Functors.html#4852" class="Bound">F</a> <a id="4854" href="Categories.Category.Construction.Functors.html#4854" class="Bound">G</a> <a id="4856" class="Symbol">:</a> <a id="4858" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="4868" href="Categories.Category.Construction.Functors.html#4492" class="Bound">C₁</a> <a id="4871" href="Categories.Category.Construction.Functors.html#4541" class="Bound">C₂</a> <a id="4874" href="Categories.Category.Construction.Functors.html#4590" class="Bound">D</a><a id="4875" class="Symbol">}</a> <a id="4877" class="Symbol">→</a>
|
||
<a id="4891" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Record">NaturalIsomorphism</a> <a id="4910" href="Categories.Category.Construction.Functors.html#4852" class="Bound">F</a> <a id="4912" href="Categories.Category.Construction.Functors.html#4854" class="Bound">G</a> <a id="4914" class="Symbol">→</a> <a id="4916" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Record">NaturalIsomorphism</a> <a id="4935" class="Symbol">(</a><a id="4936" href="Categories.Functor.Core.html#432" class="Function">F₀</a> <a id="4939" href="Categories.Category.Construction.Functors.html#4852" class="Bound">F</a><a id="4940" class="Symbol">)</a> <a id="4942" class="Symbol">(</a><a id="4943" href="Categories.Functor.Core.html#432" class="Function">F₀</a> <a id="4946" href="Categories.Category.Construction.Functors.html#4854" class="Bound">G</a><a id="4947" class="Symbol">)</a>
|
||
<a id="4951" href="Categories.Category.Construction.Functors.html#4841" class="Function">resp-NI</a> <a id="4959" href="Categories.Category.Construction.Functors.html#4959" class="Bound">α</a> <a id="4961" class="Symbol">=</a> <a id="4963" class="Keyword">record</a>
|
||
<a id="4974" class="Symbol">{</a> <a id="4976" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="4980" class="Symbol">=</a> <a id="4982" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="4985" class="Symbol">(</a><a id="4986" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="4990" href="Categories.Category.Construction.Functors.html#4959" class="Bound">α</a><a id="4991" class="Symbol">)</a>
|
||
<a id="4997" class="Symbol">;</a> <a id="4999" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="5003" class="Symbol">=</a> <a id="5005" href="Categories.Functor.Core.html#455" class="Function">F₁</a> <a id="5008" class="Symbol">(</a><a id="5009" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="5013" href="Categories.Category.Construction.Functors.html#4959" class="Bound">α</a><a id="5014" class="Symbol">)</a>
|
||
<a id="5020" class="Symbol">;</a> <a id="5022" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="5026" class="Symbol">=</a> <a id="5028" class="Symbol">λ</a> <a id="5030" href="Categories.Category.Construction.Functors.html#5030" class="Bound">x</a> <a id="5032" class="Symbol">→</a> <a id="5034" class="Keyword">record</a>
|
||
<a id="5047" class="Symbol">{</a> <a id="5049" href="Categories.Morphism.html#1586" class="Field">isoˡ</a> <a id="5054" class="Symbol">=</a> <a id="5056" href="Categories.Morphism.html#1586" class="Function">iso.isoˡ</a> <a id="5065" href="Categories.Category.Construction.Functors.html#4959" class="Bound">α</a> <a id="5067" class="Symbol">(</a><a id="5068" href="Categories.Category.Construction.Functors.html#5030" class="Bound">x</a> <a id="5070" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5072" class="Symbol">_)</a>
|
||
<a id="5081" class="Symbol">;</a> <a id="5083" href="Categories.Morphism.html#1612" class="Field">isoʳ</a> <a id="5088" class="Symbol">=</a> <a id="5090" href="Categories.Morphism.html#1612" class="Function">iso.isoʳ</a> <a id="5099" href="Categories.Category.Construction.Functors.html#4959" class="Bound">α</a> <a id="5101" class="Symbol">(</a><a id="5102" href="Categories.Category.Construction.Functors.html#5030" class="Bound">x</a> <a id="5104" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5106" class="Symbol">_)</a>
|
||
<a id="5115" class="Symbol">}</a>
|
||
<a id="5121" class="Symbol">}</a>
|
||
|
||
<a id="uncurry"></a><a id="5124" href="Categories.Category.Construction.Functors.html#5124" class="Function">uncurry</a> <a id="5132" class="Symbol">:</a> <a id="5134" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="5142" class="Symbol">(</a><a id="5143" href="Categories.Category.Construction.Functors.html#1308" class="Function">Functors</a> <a id="5152" href="Categories.Category.Construction.Functors.html#1140" class="Generalizable">C₁</a> <a id="5155" class="Symbol">(</a><a id="5156" href="Categories.Category.Construction.Functors.html#1308" class="Function">Functors</a> <a id="5165" href="Categories.Category.Construction.Functors.html#1143" class="Generalizable">C₂</a> <a id="5168" href="Categories.Category.Construction.Functors.html#1138" class="Generalizable">D</a><a id="5169" class="Symbol">))</a> <a id="5172" class="Symbol">(</a><a id="5173" href="Categories.Category.Construction.Functors.html#1308" class="Function">Functors</a> <a id="5182" class="Symbol">(</a><a id="5183" href="Categories.Category.Construction.Functors.html#1140" class="Generalizable">C₁</a> <a id="5186" href="Categories.Category.Construction.Functors.html#468" class="Function Operator">×</a> <a id="5188" href="Categories.Category.Construction.Functors.html#1143" class="Generalizable">C₂</a><a id="5190" class="Symbol">)</a> <a id="5192" href="Categories.Category.Construction.Functors.html#1138" class="Generalizable">D</a><a id="5193" class="Symbol">)</a>
|
||
<a id="5195" href="Categories.Category.Construction.Functors.html#5124" class="Function">uncurry</a> <a id="5203" class="Symbol">{</a><a id="5204" class="Argument">C₁</a> <a id="5207" class="Symbol">=</a> <a id="5209" href="Categories.Category.Construction.Functors.html#5209" class="Bound">C₁</a><a id="5211" class="Symbol">}</a> <a id="5213" class="Symbol">{</a><a id="5214" class="Argument">C₂</a> <a id="5217" class="Symbol">=</a> <a id="5219" href="Categories.Category.Construction.Functors.html#5219" class="Bound">C₂</a><a id="5221" class="Symbol">}</a> <a id="5223" class="Symbol">{</a><a id="5224" class="Argument">D</a> <a id="5226" class="Symbol">=</a> <a id="5228" href="Categories.Category.Construction.Functors.html#5228" class="Bound">D</a><a id="5229" class="Symbol">}</a> <a id="5231" class="Symbol">=</a> <a id="5233" class="Keyword">record</a>
|
||
<a id="5242" class="Symbol">{</a> <a id="5244" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="5247" class="Symbol">=</a> <a id="5249" href="Categories.Category.Construction.Functors.html#5494" class="Function">uncurry₀</a>
|
||
<a id="5260" class="Symbol">;</a> <a id="5262" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5265" class="Symbol">=</a> <a id="5267" href="Categories.Category.Construction.Functors.html#6241" class="Function">uncurry₁</a>
|
||
<a id="5278" class="Symbol">;</a> <a id="5280" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="5289" class="Symbol">=</a> <a id="5291" href="Relation.Binary.Structures.html#1577" class="Function">refl</a>
|
||
<a id="5298" class="Symbol">;</a> <a id="5300" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="5313" class="Symbol">=</a> <a id="5315" href="Relation.Binary.Structures.html#1577" class="Function">refl</a>
|
||
<a id="5322" class="Symbol">;</a> <a id="5324" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="5333" class="Symbol">=</a> <a id="5335" class="Symbol">λ</a> <a id="5337" href="Categories.Category.Construction.Functors.html#5337" class="Bound">f≈g</a> <a id="5341" class="Symbol">→</a> <a id="5343" href="Categories.Category.Construction.Functors.html#5337" class="Bound">f≈g</a>
|
||
<a id="5349" class="Symbol">}</a> <a id="5351" class="Keyword">where</a>
|
||
<a id="5363" class="Keyword">open</a> <a id="5368" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="5377" href="Categories.Category.Construction.Functors.html#5228" class="Bound">D</a>
|
||
<a id="5385" class="Keyword">open</a> <a id="5390" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
|
||
<a id="5409" class="Keyword">open</a> <a id="5414" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="5417" href="Categories.Category.Construction.Functors.html#5228" class="Bound">D</a>
|
||
<a id="5425" class="Keyword">open</a> <a id="5430" href="Categories.Functor.Core.html#248" class="Module">Functor</a>
|
||
<a id="5444" class="Keyword">open</a> <a id="5449" href="Categories.Category.Core.html#1530" class="Module">Equiv</a>
|
||
<a id="5461" class="Keyword">open</a> <a id="5466" href="Categories.NaturalTransformation.Core.html#466" class="Module">NaturalTransformation</a>
|
||
<a id="5494" href="Categories.Category.Construction.Functors.html#5494" class="Function">uncurry₀</a> <a id="5503" class="Symbol">:</a> <a id="5505" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="5513" href="Categories.Category.Construction.Functors.html#5209" class="Bound">C₁</a> <a id="5516" class="Symbol">(</a><a id="5517" href="Categories.Category.Construction.Functors.html#1308" class="Function">Functors</a> <a id="5526" href="Categories.Category.Construction.Functors.html#5219" class="Bound">C₂</a> <a id="5529" href="Categories.Category.Construction.Functors.html#5228" class="Bound">D</a><a id="5530" class="Symbol">)</a> <a id="5532" class="Symbol">→</a> <a id="5534" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="5544" href="Categories.Category.Construction.Functors.html#5209" class="Bound">C₁</a> <a id="5547" href="Categories.Category.Construction.Functors.html#5219" class="Bound">C₂</a> <a id="5550" href="Categories.Category.Construction.Functors.html#5228" class="Bound">D</a>
|
||
<a id="5558" href="Categories.Category.Construction.Functors.html#5494" class="Function">uncurry₀</a> <a id="5567" href="Categories.Category.Construction.Functors.html#5567" class="Bound">F</a> <a id="5569" class="Symbol">=</a> <a id="5571" class="Keyword">record</a>
|
||
<a id="5586" class="Symbol">{</a> <a id="5588" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="5591" class="Symbol">=</a> <a id="5593" class="Symbol">λ</a> <a id="5595" class="Symbol">{(</a><a id="5597" href="Categories.Category.Construction.Functors.html#5597" class="Bound">x</a> <a id="5599" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5601" href="Categories.Category.Construction.Functors.html#5601" class="Bound">y</a><a id="5602" class="Symbol">)</a> <a id="5604" class="Symbol">→</a> <a id="5606" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="5609" class="Symbol">(</a><a id="5610" href="Categories.Functor.Core.html#432" class="Field">F.F₀</a> <a id="5615" href="Categories.Category.Construction.Functors.html#5597" class="Bound">x</a><a id="5616" class="Symbol">)</a> <a id="5618" href="Categories.Category.Construction.Functors.html#5601" class="Bound">y</a><a id="5619" class="Symbol">}</a>
|
||
<a id="5629" class="Symbol">;</a> <a id="5631" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5634" class="Symbol">=</a> <a id="5636" class="Symbol">λ</a> <a id="5638" class="Symbol">{</a> <a id="5640" class="Symbol">{(</a><a id="5642" href="Categories.Category.Construction.Functors.html#5642" class="Bound">x</a> <a id="5644" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5646" href="Categories.Category.Construction.Functors.html#5646" class="Bound">a</a><a id="5647" class="Symbol">)}</a> <a id="5650" class="Symbol">{(</a><a id="5652" href="Categories.Category.Construction.Functors.html#5652" class="Bound">y</a> <a id="5654" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5656" href="Categories.Category.Construction.Functors.html#5656" class="Bound">b</a><a id="5657" class="Symbol">)}</a> <a id="5660" class="Symbol">(</a><a id="5661" href="Categories.Category.Construction.Functors.html#5661" class="Bound">f</a> <a id="5663" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5665" href="Categories.Category.Construction.Functors.html#5665" class="Bound">g</a><a id="5666" class="Symbol">)</a> <a id="5668" class="Symbol">→</a> <a id="5670" href="Categories.Category.Construction.Functors.html#5228" class="Bound">D</a> <a id="5672" href="Categories.Category.html#700" class="Function Operator">[</a> <a id="5674" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="5677" class="Symbol">(</a><a id="5678" href="Categories.Functor.Core.html#432" class="Field">F.F₀</a> <a id="5683" href="Categories.Category.Construction.Functors.html#5652" class="Bound">y</a><a id="5684" class="Symbol">)</a> <a id="5686" href="Categories.Category.Construction.Functors.html#5665" class="Bound">g</a> <a id="5688" href="Categories.Category.html#700" class="Function Operator">∘</a> <a id="5690" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="5692" class="Symbol">(</a><a id="5693" href="Categories.Functor.Core.html#455" class="Field">F.F₁</a> <a id="5698" href="Categories.Category.Construction.Functors.html#5661" class="Bound">f</a><a id="5699" class="Symbol">)</a> <a id="5701" href="Categories.Category.Construction.Functors.html#5646" class="Bound">a</a> <a id="5703" href="Categories.Category.html#700" class="Function Operator">]</a><a id="5704" class="Symbol">}</a>
|
||
<a id="5714" class="Symbol">;</a> <a id="5716" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="5725" class="Symbol">=</a> <a id="5727" class="Symbol">λ</a> <a id="5729" class="Symbol">{</a> <a id="5731" class="Symbol">{</a><a id="5732" href="Categories.Category.Construction.Functors.html#5732" class="Bound">x</a> <a id="5734" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5736" href="Categories.Category.Construction.Functors.html#5736" class="Bound">y</a><a id="5737" class="Symbol">}</a> <a id="5739" class="Symbol">→</a> <a id="5741" href="Categories.Morphism.Reasoning.Core.html#2786" class="Function">elimʳ</a> <a id="5747" href="Categories.Functor.Core.html#511" class="Field">F.identity</a> <a id="5758" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="5760" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="5769" class="Symbol">(</a><a id="5770" href="Categories.Functor.Core.html#432" class="Field">F.F₀</a> <a id="5775" href="Categories.Category.Construction.Functors.html#5732" class="Bound">x</a><a id="5776" class="Symbol">)</a> <a id="5778" class="Symbol">{</a><a id="5779" href="Categories.Category.Construction.Functors.html#5736" class="Bound">y</a><a id="5780" class="Symbol">}</a> <a id="5782" class="Symbol">}</a>
|
||
<a id="5792" class="Symbol">;</a> <a id="5794" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="5807" class="Symbol">=</a> <a id="5809" class="Symbol">λ</a> <a id="5811" class="Symbol">{</a> <a id="5813" class="Symbol">{</a><a id="5814" href="Categories.Category.Construction.Functors.html#5814" class="Bound">x</a> <a id="5816" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5818" href="Categories.Category.Construction.Functors.html#5818" class="Bound">y</a><a id="5819" class="Symbol">}</a> <a id="5821" class="Symbol">{</a><a id="5822" href="Categories.Category.Construction.Functors.html#5822" class="Bound">a</a> <a id="5824" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5826" href="Categories.Category.Construction.Functors.html#5826" class="Bound">b</a><a id="5827" class="Symbol">}</a> <a id="5829" class="Symbol">{</a><a id="5830" href="Categories.Category.Construction.Functors.html#5830" class="Bound">c</a> <a id="5832" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5834" href="Categories.Category.Construction.Functors.html#5834" class="Bound">d</a><a id="5835" class="Symbol">}</a> <a id="5837" class="Symbol">{</a><a id="5838" href="Categories.Category.Construction.Functors.html#5838" class="Bound">f1</a> <a id="5841" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5843" href="Categories.Category.Construction.Functors.html#5843" class="Bound">f2</a><a id="5845" class="Symbol">}</a> <a id="5847" class="Symbol">{</a><a id="5848" href="Categories.Category.Construction.Functors.html#5848" class="Bound">g1</a> <a id="5851" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="5853" href="Categories.Category.Construction.Functors.html#5853" class="Bound">g2</a><a id="5855" class="Symbol">}</a> <a id="5857" class="Symbol">→</a>
|
||
<a id="5869" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a> <a id="5875" class="Symbol">_</a> <a id="5877" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="5880" class="Symbol">(</a><a id="5881" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="5894" class="Symbol">(</a><a id="5895" href="Categories.Functor.Core.html#432" class="Field">F.F₀</a> <a id="5900" href="Categories.Category.Construction.Functors.html#5830" class="Bound">c</a><a id="5901" class="Symbol">)</a> <a id="5903" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a><a id="5910" class="Symbol">)</a> <a id="5912" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="5930" class="Symbol">_</a> <a id="5932" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="5935" href="Categories.Category.Core.html#715" class="Field">assoc</a> <a id="5941" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="5959" class="Symbol">_</a> <a id="5961" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="5964" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="5972" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="5980" href="Categories.Functor.Core.html#565" class="Field">F.homomorphism</a> <a id="5995" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="6013" class="Symbol">_</a> <a id="6015" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="6018" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="6026" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="6032" class="Symbol">(</a><a id="6033" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="6045" class="Symbol">(</a><a id="6046" href="Categories.Functor.Core.html#455" class="Field">F.F₁</a> <a id="6051" href="Categories.Category.Construction.Functors.html#5848" class="Bound">g1</a><a id="6053" class="Symbol">)</a> <a id="6055" href="Categories.Category.Construction.Functors.html#5843" class="Bound">f2</a><a id="6057" class="Symbol">)</a> <a id="6059" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="6077" class="Symbol">_</a> <a id="6079" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="6082" href="Categories.Morphism.Reasoning.Core.html#1650" class="Function">assoc²''</a> <a id="6091" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="6109" class="Symbol">_</a> <a id="6111" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a> <a id="6113" class="Symbol">}</a>
|
||
<a id="6123" class="Symbol">;</a> <a id="6125" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="6134" class="Symbol">=</a> <a id="6136" class="Symbol">λ</a> <a id="6138" class="Symbol">(</a><a id="6139" href="Categories.Category.Construction.Functors.html#6139" class="Bound">f≈f₁</a> <a id="6144" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="6146" href="Categories.Category.Construction.Functors.html#6146" class="Bound">f≈f₂</a><a id="6150" class="Symbol">)</a> <a id="6152" class="Symbol">→</a> <a id="6154" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="6163" class="Symbol">(</a><a id="6164" href="Categories.Functor.Core.html#432" class="Field">F.F₀</a> <a id="6169" class="Symbol">_)</a> <a id="6172" href="Categories.Category.Construction.Functors.html#6146" class="Bound">f≈f₂</a> <a id="6177" href="Categories.Category.Core.html#2634" class="Function Operator">⟩∘⟨</a> <a id="6181" href="Categories.Functor.Core.html#696" class="Field">F.F-resp-≈</a> <a id="6192" href="Categories.Category.Construction.Functors.html#6139" class="Bound">f≈f₁</a>
|
||
<a id="6205" class="Symbol">}</a> <a id="6207" class="Keyword">where</a> <a id="6213" class="Keyword">module</a> <a id="6220" href="Categories.Category.Construction.Functors.html#6220" class="Module">F</a> <a id="6222" class="Symbol">=</a> <a id="6224" href="Categories.Functor.Core.html#248" class="Module">Functor</a> <a id="6232" href="Categories.Category.Construction.Functors.html#5567" class="Bound">F</a>
|
||
|
||
<a id="6241" href="Categories.Category.Construction.Functors.html#6241" class="Function">uncurry₁</a> <a id="6250" class="Symbol">:</a> <a id="6252" class="Symbol">∀</a> <a id="6254" class="Symbol">{</a><a id="6255" href="Categories.Category.Construction.Functors.html#6255" class="Bound">A</a> <a id="6257" href="Categories.Category.Construction.Functors.html#6257" class="Bound">B</a><a id="6258" class="Symbol">}</a>
|
||
<a id="6275" class="Symbol">→</a> <a id="6277" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="6299" href="Categories.Category.Construction.Functors.html#6255" class="Bound">A</a> <a id="6301" href="Categories.Category.Construction.Functors.html#6257" class="Bound">B</a>
|
||
<a id="6318" class="Symbol">→</a> <a id="6320" href="Categories.NaturalTransformation.Core.html#466" class="Record">NaturalTransformation</a> <a id="6342" class="Symbol">(</a><a id="6343" href="Categories.Category.Construction.Functors.html#5494" class="Function">uncurry₀</a> <a id="6352" href="Categories.Category.Construction.Functors.html#6255" class="Bound">A</a><a id="6353" class="Symbol">)</a> <a id="6355" class="Symbol">(</a><a id="6356" href="Categories.Category.Construction.Functors.html#5494" class="Function">uncurry₀</a> <a id="6365" href="Categories.Category.Construction.Functors.html#6257" class="Bound">B</a><a id="6366" class="Symbol">)</a>
|
||
<a id="6374" href="Categories.Category.Construction.Functors.html#6241" class="Function">uncurry₁</a> <a id="6383" href="Categories.Category.Construction.Functors.html#6383" class="Bound">t</a> <a id="6385" class="Symbol">=</a> <a id="6387" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="6396" class="Keyword">record</a>
|
||
<a id="6413" class="Symbol">{</a> <a id="6415" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="6417" class="Symbol">=</a> <a id="6419" class="Symbol">λ</a> <a id="6421" href="Categories.Category.Construction.Functors.html#6421" class="Bound">_</a> <a id="6423" class="Symbol">→</a> <a id="6425" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="6427" class="Symbol">(</a><a id="6428" href="Categories.NaturalTransformation.Core.html#783" class="Field">t.η</a> <a id="6432" class="Symbol">_)</a> <a id="6435" class="Symbol">_</a>
|
||
<a id="6447" class="Symbol">;</a> <a id="6449" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="6457" class="Symbol">=</a> <a id="6459" class="Symbol">λ</a> <a id="6461" class="Symbol">{</a> <a id="6463" class="Symbol">(</a><a id="6464" href="Categories.Category.Construction.Functors.html#6464" class="Bound">f</a> <a id="6466" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="6468" href="Categories.Category.Construction.Functors.html#6468" class="Bound">g</a><a id="6469" class="Symbol">)</a> <a id="6471" class="Symbol">→</a>
|
||
<a id="6501" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a> <a id="6507" class="Symbol">_</a> <a id="6509" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="6512" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="6518" class="Symbol">(</a><a id="6519" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="6527" class="Symbol">(</a><a id="6528" href="Categories.NaturalTransformation.Core.html#783" class="Field">t.η</a> <a id="6532" class="Symbol">_)</a> <a id="6535" class="Symbol">_)</a> <a id="6538" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="6574" class="Symbol">_</a> <a id="6576" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="6579" href="Categories.Category.Core.html#715" class="Field">assoc</a> <a id="6585" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="6621" class="Symbol">_</a> <a id="6623" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="6626" href="Categories.Morphism.Reasoning.Core.html#2347" class="Function">pushʳ</a> <a id="6632" class="Symbol">(</a><a id="6633" href="Categories.NaturalTransformation.Core.html#827" class="Field">t.commute</a> <a id="6643" class="Symbol">_)</a> <a id="6646" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="6682" class="Symbol">_</a> <a id="6684" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a> <a id="6686" class="Symbol">}</a>
|
||
<a id="6698" class="Symbol">}</a> <a id="6700" class="Keyword">where</a> <a id="6706" class="Keyword">module</a> <a id="6713" href="Categories.Category.Construction.Functors.html#6713" class="Module">t</a> <a id="6715" class="Symbol">=</a> <a id="6717" href="Categories.NaturalTransformation.Core.html#466" class="Module">NaturalTransformation</a> <a id="6739" href="Categories.Category.Construction.Functors.html#6383" class="Bound">t</a>
|
||
<a id="6759" class="Keyword">open</a> <a id="6764" href="Categories.NaturalTransformation.Core.html#466" class="Module">NaturalTransformation</a>
|
||
|
||
<a id="6787" class="Keyword">module</a> <a id="6794" href="Categories.Category.Construction.Functors.html#6794" class="Module">_</a> <a id="6796" class="Symbol">{</a><a id="6797" href="Categories.Category.Construction.Functors.html#6797" class="Bound">o₁</a> <a id="6800" href="Categories.Category.Construction.Functors.html#6800" class="Bound">e₁</a> <a id="6803" href="Categories.Category.Construction.Functors.html#6803" class="Bound">ℓ₁</a><a id="6805" class="Symbol">}</a> <a id="6807" class="Symbol">{</a><a id="6808" href="Categories.Category.Construction.Functors.html#6808" class="Bound">C₁</a> <a id="6811" class="Symbol">:</a> <a id="6813" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="6822" href="Categories.Category.Construction.Functors.html#6797" class="Bound">o₁</a> <a id="6825" href="Categories.Category.Construction.Functors.html#6800" class="Bound">e₁</a> <a id="6828" href="Categories.Category.Construction.Functors.html#6803" class="Bound">ℓ₁</a><a id="6830" class="Symbol">}</a>
|
||
<a id="6841" class="Symbol">{</a><a id="6842" href="Categories.Category.Construction.Functors.html#6842" class="Bound">o₂</a> <a id="6845" href="Categories.Category.Construction.Functors.html#6845" class="Bound">e₂</a> <a id="6848" href="Categories.Category.Construction.Functors.html#6848" class="Bound">ℓ₂</a><a id="6850" class="Symbol">}</a> <a id="6852" class="Symbol">{</a><a id="6853" href="Categories.Category.Construction.Functors.html#6853" class="Bound">C₂</a> <a id="6856" class="Symbol">:</a> <a id="6858" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="6867" href="Categories.Category.Construction.Functors.html#6842" class="Bound">o₂</a> <a id="6870" href="Categories.Category.Construction.Functors.html#6845" class="Bound">e₂</a> <a id="6873" href="Categories.Category.Construction.Functors.html#6848" class="Bound">ℓ₂</a><a id="6875" class="Symbol">}</a>
|
||
<a id="6886" class="Symbol">{</a><a id="6887" href="Categories.Category.Construction.Functors.html#6887" class="Bound">o′</a> <a id="6890" href="Categories.Category.Construction.Functors.html#6890" class="Bound">e′</a> <a id="6893" href="Categories.Category.Construction.Functors.html#6893" class="Bound">ℓ′</a><a id="6895" class="Symbol">}</a> <a id="6897" class="Symbol">{</a><a id="6898" href="Categories.Category.Construction.Functors.html#6898" class="Bound">D</a> <a id="6901" class="Symbol">:</a> <a id="6903" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="6912" href="Categories.Category.Construction.Functors.html#6887" class="Bound">o′</a> <a id="6915" href="Categories.Category.Construction.Functors.html#6890" class="Bound">e′</a> <a id="6918" href="Categories.Category.Construction.Functors.html#6893" class="Bound">ℓ′</a><a id="6920" class="Symbol">}</a> <a id="6922" class="Keyword">where</a>
|
||
<a id="6930" href="Categories.Category.Construction.Functors.html#6930" class="Function">curry∘uncurry≅id</a> <a id="6947" class="Symbol">:</a> <a id="6949" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Record">NaturalIsomorphism</a> <a id="6968" class="Symbol">(</a><a id="6969" href="Categories.Category.Construction.Functors.html#3077" class="Function">curry</a> <a id="6975" class="Symbol">{</a><a id="6976" class="Argument">C₁</a> <a id="6979" class="Symbol">=</a> <a id="6981" href="Categories.Category.Construction.Functors.html#6808" class="Bound">C₁</a><a id="6983" class="Symbol">}</a> <a id="6985" class="Symbol">{</a><a id="6986" class="Argument">C₂</a> <a id="6989" class="Symbol">=</a> <a id="6991" href="Categories.Category.Construction.Functors.html#6853" class="Bound">C₂</a><a id="6993" class="Symbol">}</a> <a id="6995" class="Symbol">{</a><a id="6996" class="Argument">D</a> <a id="6998" class="Symbol">=</a> <a id="7000" href="Categories.Category.Construction.Functors.html#6898" class="Bound">D</a><a id="7001" class="Symbol">}</a> <a id="7003" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="7006" href="Categories.Category.Construction.Functors.html#5124" class="Function">uncurry</a> <a id="7014" class="Symbol">{</a><a id="7015" class="Argument">C₁</a> <a id="7018" class="Symbol">=</a> <a id="7020" href="Categories.Category.Construction.Functors.html#6808" class="Bound">C₁</a><a id="7022" class="Symbol">}</a> <a id="7024" class="Symbol">{</a><a id="7025" class="Argument">C₂</a> <a id="7028" class="Symbol">=</a> <a id="7030" href="Categories.Category.Construction.Functors.html#6853" class="Bound">C₂</a><a id="7032" class="Symbol">}</a> <a id="7034" class="Symbol">{</a><a id="7035" class="Argument">D</a> <a id="7037" class="Symbol">=</a> <a id="7039" href="Categories.Category.Construction.Functors.html#6898" class="Bound">D</a><a id="7040" class="Symbol">})</a> <a id="7043" href="Categories.Category.Construction.Functors.html#542" class="Function">idF</a>
|
||
<a id="7049" href="Categories.Category.Construction.Functors.html#6930" class="Function">curry∘uncurry≅id</a> <a id="7066" class="Symbol">=</a> <a id="7068" class="Keyword">record</a>
|
||
<a id="7079" class="Symbol">{</a> <a id="7081" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="7085" class="Symbol">=</a> <a id="7087" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="7096" class="Symbol">(</a><a id="7097" class="Keyword">record</a>
|
||
<a id="7110" class="Symbol">{</a> <a id="7112" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="7114" class="Symbol">=</a> <a id="7116" class="Symbol">λ</a> <a id="7118" href="Categories.Category.Construction.Functors.html#7118" class="Bound">X</a> <a id="7120" class="Symbol">→</a> <a id="7122" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="7131" class="Symbol">(</a><a id="7132" class="Keyword">record</a>
|
||
<a id="7147" class="Symbol">{</a> <a id="7149" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="7151" class="Symbol">=</a> <a id="7153" class="Symbol">λ</a> <a id="7155" href="Categories.Category.Construction.Functors.html#7155" class="Bound">Y</a> <a id="7157" class="Symbol">→</a> <a id="7159" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="7168" class="Symbol">(</a><a id="7169" class="Keyword">record</a>
|
||
<a id="7186" class="Symbol">{</a> <a id="7188" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="7190" class="Symbol">=</a> <a id="7192" class="Symbol">λ</a> <a id="7194" href="Categories.Category.Construction.Functors.html#7194" class="Bound">_</a> <a id="7196" class="Symbol">→</a> <a id="7198" href="Categories.Category.Core.html#630" class="Field">D.id</a>
|
||
<a id="7213" class="Symbol">;</a> <a id="7215" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="7223" class="Symbol">=</a> <a id="7225" class="Symbol">λ</a> <a id="7227" href="Categories.Category.Construction.Functors.html#7227" class="Bound">f</a> <a id="7229" class="Symbol">→</a>
|
||
<a id="7244" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a> <a id="7250" class="Symbol">_</a> <a id="7252" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="7255" href="Categories.Category.Core.html#1096" class="Field">D.identityˡ</a> <a id="7267" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="7288" class="Symbol">_</a> <a id="7290" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="7293" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="7301" href="Categories.Functor.Core.html#511" class="Field">Functor.identity</a> <a id="7318" href="Categories.Category.Construction.Functors.html#7118" class="Bound">X</a> <a id="7320" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="7341" class="Symbol">_</a> <a id="7343" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
||
<a id="7355" class="Symbol">})</a>
|
||
<a id="7366" class="Symbol">;</a> <a id="7368" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="7376" class="Symbol">=</a> <a id="7378" class="Symbol">λ</a> <a id="7380" class="Symbol">{</a><a id="7381" href="Categories.Category.Construction.Functors.html#7381" class="Bound">A</a><a id="7382" class="Symbol">}</a> <a id="7384" class="Symbol">{</a><a id="7385" href="Categories.Category.Construction.Functors.html#7385" class="Bound">B</a><a id="7386" class="Symbol">}</a> <a id="7388" href="Categories.Category.Construction.Functors.html#7388" class="Bound">f</a> <a id="7390" class="Symbol">→</a>
|
||
<a id="7405" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a> <a id="7411" class="Symbol">_</a> <a id="7413" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="7416" href="Categories.Category.Core.html#1096" class="Field">D.identityˡ</a> <a id="7428" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="7449" class="Symbol">_</a> <a id="7451" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="7454" href="Categories.Functor.Core.html#511" class="Field">Functor.identity</a> <a id="7471" class="Symbol">(</a><a id="7472" href="Categories.Functor.Core.html#432" class="Field">Functor.F₀</a> <a id="7483" href="Categories.Category.Construction.Functors.html#7118" class="Bound">X</a> <a id="7485" href="Categories.Category.Construction.Functors.html#7385" class="Bound">B</a><a id="7486" class="Symbol">)</a> <a id="7488" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="7496" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="7517" class="Symbol">_</a> <a id="7519" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="7522" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a> <a id="7534" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="7555" class="Symbol">_</a> <a id="7557" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
||
<a id="7567" class="Symbol">})</a>
|
||
<a id="7576" class="Symbol">;</a> <a id="7578" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="7586" class="Symbol">=</a> <a id="7588" class="Symbol">λ</a> <a id="7590" href="Categories.Category.Construction.Functors.html#7590" class="Bound">f</a> <a id="7592" class="Symbol">→</a> <a id="7594" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a>
|
||
<a id="7612" class="Symbol">})</a>
|
||
<a id="7619" class="Symbol">;</a> <a id="7621" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="7625" class="Symbol">=</a> <a id="7627" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="7636" class="Symbol">(</a><a id="7637" class="Keyword">record</a>
|
||
<a id="7650" class="Symbol">{</a> <a id="7652" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="7654" class="Symbol">=</a> <a id="7656" class="Symbol">λ</a> <a id="7658" href="Categories.Category.Construction.Functors.html#7658" class="Bound">X</a> <a id="7660" class="Symbol">→</a> <a id="7662" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="7671" class="Symbol">(</a><a id="7672" class="Keyword">record</a>
|
||
<a id="7687" class="Symbol">{</a> <a id="7689" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="7691" class="Symbol">=</a> <a id="7693" class="Symbol">λ</a> <a id="7695" href="Categories.Category.Construction.Functors.html#7695" class="Bound">Y</a> <a id="7697" class="Symbol">→</a> <a id="7699" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="7708" class="Symbol">(</a><a id="7709" class="Keyword">record</a>
|
||
<a id="7726" class="Symbol">{</a> <a id="7728" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="7730" class="Symbol">=</a> <a id="7732" class="Symbol">λ</a> <a id="7734" href="Categories.Category.Construction.Functors.html#7734" class="Bound">_</a> <a id="7736" class="Symbol">→</a> <a id="7738" href="Categories.Category.Core.html#630" class="Field">D.id</a>
|
||
<a id="7753" class="Symbol">;</a> <a id="7755" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="7763" class="Symbol">=</a> <a id="7765" class="Symbol">λ</a> <a id="7767" href="Categories.Category.Construction.Functors.html#7767" class="Bound">f</a> <a id="7769" class="Symbol">→</a>
|
||
<a id="7784" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a> <a id="7790" class="Symbol">_</a> <a id="7792" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="7795" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a> <a id="7807" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="7828" class="Symbol">_</a> <a id="7830" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="7833" href="Categories.Morphism.Reasoning.Core.html#2899" class="Function">introʳ</a> <a id="7840" class="Symbol">(</a><a id="7841" href="Categories.Functor.Core.html#511" class="Field">Functor.identity</a> <a id="7858" href="Categories.Category.Construction.Functors.html#7658" class="Bound">X</a><a id="7859" class="Symbol">)</a> <a id="7861" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="7869" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="7890" class="Symbol">_</a> <a id="7892" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
||
<a id="7904" class="Symbol">})</a>
|
||
<a id="7915" class="Symbol">;</a> <a id="7917" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="7925" class="Symbol">=</a> <a id="7927" class="Symbol">λ</a> <a id="7929" class="Symbol">{</a><a id="7930" href="Categories.Category.Construction.Functors.html#7930" class="Bound">A</a><a id="7931" class="Symbol">}</a> <a id="7933" class="Symbol">{</a><a id="7934" href="Categories.Category.Construction.Functors.html#7934" class="Bound">B</a><a id="7935" class="Symbol">}</a> <a id="7937" href="Categories.Category.Construction.Functors.html#7937" class="Bound">f</a> <a id="7939" class="Symbol">→</a>
|
||
<a id="7954" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a> <a id="7960" class="Symbol">_</a> <a id="7962" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="7965" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a> <a id="7977" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="7998" class="Symbol">_</a> <a id="8000" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="8003" href="Categories.Morphism.Reasoning.Core.html#3063" class="Function">introˡ</a> <a id="8010" class="Symbol">(</a><a id="8011" href="Categories.Functor.Core.html#511" class="Field">Functor.identity</a> <a id="8028" class="Symbol">(</a><a id="8029" href="Categories.Functor.Core.html#432" class="Field">Functor.F₀</a> <a id="8040" href="Categories.Category.Construction.Functors.html#7658" class="Bound">X</a> <a id="8042" href="Categories.Category.Construction.Functors.html#7934" class="Bound">B</a><a id="8043" class="Symbol">))</a> <a id="8046" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="8054" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="8075" class="Symbol">_</a> <a id="8077" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
||
<a id="8087" class="Symbol">})</a>
|
||
<a id="8096" class="Symbol">;</a> <a id="8098" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="8106" class="Symbol">=</a> <a id="8108" class="Symbol">λ</a> <a id="8110" href="Categories.Category.Construction.Functors.html#8110" class="Bound">f</a> <a id="8112" class="Symbol">→</a> <a id="8114" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a>
|
||
<a id="8132" class="Symbol">})</a>
|
||
<a id="8139" class="Symbol">;</a> <a id="8141" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="8145" class="Symbol">=</a> <a id="8147" class="Symbol">λ</a> <a id="8149" href="Categories.Category.Construction.Functors.html#8149" class="Bound">X</a> <a id="8151" class="Symbol">→</a> <a id="8153" class="Keyword">record</a>
|
||
<a id="8166" class="Symbol">{</a> <a id="8168" href="Categories.Morphism.html#1586" class="Field">isoˡ</a> <a id="8173" class="Symbol">=</a> <a id="8175" href="Categories.Category.Core.html#1339" class="Field">D.identity²</a>
|
||
<a id="8193" class="Symbol">;</a> <a id="8195" href="Categories.Morphism.html#1612" class="Field">isoʳ</a> <a id="8200" class="Symbol">=</a> <a id="8202" href="Categories.Category.Core.html#1339" class="Field">D.identity²</a>
|
||
<a id="8220" class="Symbol">}</a>
|
||
<a id="8226" class="Symbol">}</a> <a id="8228" class="Keyword">where</a> <a id="8234" class="Keyword">module</a> <a id="8241" href="Categories.Category.Construction.Functors.html#8241" class="Module">D</a> <a id="8243" class="Symbol">=</a> <a id="8245" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="8254" href="Categories.Category.Construction.Functors.html#6898" class="Bound">D</a>
|
||
<a id="8268" class="Keyword">open</a> <a id="8273" href="Categories.Category.Core.html#2462" class="Module">D.HomReasoning</a>
|
||
<a id="8300" class="Keyword">open</a> <a id="8305" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="8308" href="Categories.Category.Construction.Functors.html#6898" class="Bound">D</a>
|
||
|
||
<a id="8313" href="Categories.Category.Construction.Functors.html#8313" class="Function">uncurry∘curry≅id</a> <a id="8330" class="Symbol">:</a> <a id="8332" href="Categories.NaturalTransformation.NaturalIsomorphism.html#651" class="Record">NaturalIsomorphism</a> <a id="8351" class="Symbol">(</a><a id="8352" href="Categories.Category.Construction.Functors.html#5124" class="Function">uncurry</a> <a id="8360" class="Symbol">{</a><a id="8361" class="Argument">C₁</a> <a id="8364" class="Symbol">=</a> <a id="8366" href="Categories.Category.Construction.Functors.html#6808" class="Bound">C₁</a><a id="8368" class="Symbol">}</a> <a id="8370" class="Symbol">{</a><a id="8371" class="Argument">C₂</a> <a id="8374" class="Symbol">=</a> <a id="8376" href="Categories.Category.Construction.Functors.html#6853" class="Bound">C₂</a><a id="8378" class="Symbol">}</a> <a id="8380" class="Symbol">{</a><a id="8381" class="Argument">D</a> <a id="8383" class="Symbol">=</a> <a id="8385" href="Categories.Category.Construction.Functors.html#6898" class="Bound">D</a><a id="8386" class="Symbol">}</a> <a id="8388" href="Categories.Functor.html#747" class="Function Operator">∘F</a> <a id="8391" href="Categories.Category.Construction.Functors.html#3077" class="Function">curry</a> <a id="8397" class="Symbol">{</a><a id="8398" class="Argument">C₁</a> <a id="8401" class="Symbol">=</a> <a id="8403" href="Categories.Category.Construction.Functors.html#6808" class="Bound">C₁</a><a id="8405" class="Symbol">}</a> <a id="8407" class="Symbol">{</a><a id="8408" class="Argument">C₂</a> <a id="8411" class="Symbol">=</a> <a id="8413" href="Categories.Category.Construction.Functors.html#6853" class="Bound">C₂</a><a id="8415" class="Symbol">}</a> <a id="8417" class="Symbol">{</a><a id="8418" class="Argument">D</a> <a id="8420" class="Symbol">=</a> <a id="8422" href="Categories.Category.Construction.Functors.html#6898" class="Bound">D</a><a id="8423" class="Symbol">})</a> <a id="8426" href="Categories.Category.Construction.Functors.html#542" class="Function">idF</a>
|
||
<a id="8432" href="Categories.Category.Construction.Functors.html#8313" class="Function">uncurry∘curry≅id</a> <a id="8449" class="Symbol">=</a> <a id="8451" class="Keyword">record</a>
|
||
<a id="8462" class="Symbol">{</a> <a id="8464" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="8468" class="Symbol">=</a> <a id="8470" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="8479" class="Symbol">(</a><a id="8480" class="Keyword">record</a>
|
||
<a id="8493" class="Symbol">{</a> <a id="8495" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="8497" class="Symbol">=</a> <a id="8499" class="Symbol">λ</a> <a id="8501" href="Categories.Category.Construction.Functors.html#8501" class="Bound">X</a> <a id="8503" class="Symbol">→</a> <a id="8505" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="8514" class="Symbol">(</a><a id="8515" class="Keyword">record</a>
|
||
<a id="8530" class="Symbol">{</a> <a id="8532" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="8534" class="Symbol">=</a> <a id="8536" class="Symbol">λ</a> <a id="8538" href="Categories.Category.Construction.Functors.html#8538" class="Bound">Y</a> <a id="8540" class="Symbol">→</a> <a id="8542" href="Categories.Category.Core.html#630" class="Field">D.id</a>
|
||
<a id="8555" class="Symbol">;</a> <a id="8557" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="8565" class="Symbol">=</a> <a id="8567" class="Symbol">λ</a> <a id="8569" class="Symbol">(</a><a id="8570" href="Categories.Category.Construction.Functors.html#8570" class="Bound">f₁</a> <a id="8573" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="8575" href="Categories.Category.Construction.Functors.html#8575" class="Bound">f₂</a><a id="8577" class="Symbol">)</a> <a id="8579" class="Symbol">→</a>
|
||
<a id="8593" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a> <a id="8599" class="Symbol">_</a> <a id="8601" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="8604" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="8612" href="Relation.Binary.Structures.html#1603" class="Function">D.Equiv.sym</a> <a id="8624" href="Categories.Functor.Bifunctor.Properties.html#1241" class="Function Operator">[</a> <a id="8626" href="Categories.Category.Construction.Functors.html#8501" class="Bound">X</a> <a id="8628" href="Categories.Functor.Bifunctor.Properties.html#1241" class="Function Operator">]-decompose₂</a> <a id="8641" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="8661" class="Symbol">_</a> <a id="8663" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="8666" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a> <a id="8678" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="8698" class="Symbol">_</a> <a id="8700" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
||
<a id="8710" class="Symbol">})</a>
|
||
<a id="8719" class="Symbol">;</a> <a id="8721" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="8729" class="Symbol">=</a> <a id="8731" class="Symbol">λ</a> <a id="8733" href="Categories.Category.Construction.Functors.html#8733" class="Bound">f</a> <a id="8735" class="Symbol">→</a> <a id="8737" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a>
|
||
<a id="8755" class="Symbol">})</a>
|
||
<a id="8762" class="Symbol">;</a> <a id="8764" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="8768" class="Symbol">=</a> <a id="8770" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="8779" class="Symbol">(</a><a id="8780" class="Keyword">record</a>
|
||
<a id="8793" class="Symbol">{</a> <a id="8795" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="8797" class="Symbol">=</a> <a id="8799" class="Symbol">λ</a> <a id="8801" href="Categories.Category.Construction.Functors.html#8801" class="Bound">X</a> <a id="8803" class="Symbol">→</a> <a id="8805" href="Categories.NaturalTransformation.Core.html#1750" class="Function">ntHelper</a> <a id="8814" class="Symbol">(</a><a id="8815" class="Keyword">record</a>
|
||
<a id="8830" class="Symbol">{</a> <a id="8832" href="Categories.NaturalTransformation.Core.html#1637" class="Field">η</a> <a id="8834" class="Symbol">=</a> <a id="8836" class="Symbol">λ</a> <a id="8838" href="Categories.Category.Construction.Functors.html#8838" class="Bound">Y</a> <a id="8840" class="Symbol">→</a> <a id="8842" href="Categories.Category.Core.html#630" class="Field">D.id</a>
|
||
<a id="8855" class="Symbol">;</a> <a id="8857" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="8865" class="Symbol">=</a> <a id="8867" class="Symbol">λ</a> <a id="8869" class="Symbol">(</a><a id="8870" href="Categories.Category.Construction.Functors.html#8870" class="Bound">f₁</a> <a id="8873" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="8875" href="Categories.Category.Construction.Functors.html#8875" class="Bound">f₂</a><a id="8877" class="Symbol">)</a> <a id="8879" class="Symbol">→</a>
|
||
<a id="8893" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a> <a id="8899" class="Symbol">_</a> <a id="8901" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="8904" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a> <a id="8916" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="8936" class="Symbol">_</a> <a id="8938" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="8941" class="Symbol">(</a><a id="8942" href="Categories.Functor.Bifunctor.Properties.html#1241" class="Function Operator">[</a> <a id="8944" href="Categories.Category.Construction.Functors.html#8801" class="Bound">X</a> <a id="8946" href="Categories.Functor.Bifunctor.Properties.html#1241" class="Function Operator">]-decompose₂</a> <a id="8959" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a><a id="8966" class="Symbol">)</a> <a id="8968" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="8988" class="Symbol">_</a> <a id="8990" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
||
<a id="9000" class="Symbol">})</a>
|
||
<a id="9009" class="Symbol">;</a> <a id="9011" href="Categories.NaturalTransformation.Core.html#1681" class="Field">commute</a> <a id="9019" class="Symbol">=</a> <a id="9021" class="Symbol">λ</a> <a id="9023" href="Categories.Category.Construction.Functors.html#9023" class="Bound">f</a> <a id="9025" class="Symbol">→</a> <a id="9027" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a>
|
||
<a id="9045" class="Symbol">})</a>
|
||
<a id="9052" class="Symbol">;</a> <a id="9054" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="9058" class="Symbol">=</a> <a id="9060" class="Symbol">λ</a> <a id="9062" href="Categories.Category.Construction.Functors.html#9062" class="Bound">X</a> <a id="9064" class="Symbol">→</a> <a id="9066" class="Keyword">record</a>
|
||
<a id="9079" class="Symbol">{</a> <a id="9081" href="Categories.Morphism.html#1586" class="Field">isoˡ</a> <a id="9086" class="Symbol">=</a> <a id="9088" href="Categories.Category.Core.html#1339" class="Field">D.identity²</a>
|
||
<a id="9106" class="Symbol">;</a> <a id="9108" href="Categories.Morphism.html#1612" class="Field">isoʳ</a> <a id="9113" class="Symbol">=</a> <a id="9115" href="Categories.Category.Core.html#1339" class="Field">D.identity²</a>
|
||
<a id="9133" class="Symbol">}</a>
|
||
<a id="9139" class="Symbol">}</a> <a id="9141" class="Keyword">where</a> <a id="9147" class="Keyword">module</a> <a id="9154" href="Categories.Category.Construction.Functors.html#9154" class="Module">D</a> <a id="9156" class="Symbol">=</a> <a id="9158" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="9167" href="Categories.Category.Construction.Functors.html#6898" class="Bound">D</a>
|
||
<a id="9181" class="Keyword">open</a> <a id="9186" href="Categories.Category.Core.html#2462" class="Module">D.HomReasoning</a>
|
||
<a id="9213" class="Keyword">open</a> <a id="9218" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="9221" href="Categories.Category.Construction.Functors.html#6898" class="Bound">D</a>
|
||
|
||
<a id="9224" class="Comment">-- Godement product ?</a>
|
||
<a id="product"></a><a id="9246" href="Categories.Category.Construction.Functors.html#9246" class="Function">product</a> <a id="9254" class="Symbol">:</a> <a id="9256" href="Categories.Functor.Bifunctor.html#441" class="Function">Bifunctor</a> <a id="9266" class="Symbol">(</a><a id="9267" href="Categories.Category.Construction.Functors.html#1308" class="Function">Functors</a> <a id="9276" href="Categories.Category.Construction.Functors.html#1134" class="Generalizable">B</a> <a id="9278" href="Categories.Category.Construction.Functors.html#1136" class="Generalizable">C</a><a id="9279" class="Symbol">)</a> <a id="9281" class="Symbol">(</a><a id="9282" href="Categories.Category.Construction.Functors.html#1308" class="Function">Functors</a> <a id="9291" href="Categories.Category.Construction.Functors.html#1132" class="Generalizable">A</a> <a id="9293" href="Categories.Category.Construction.Functors.html#1134" class="Generalizable">B</a><a id="9294" class="Symbol">)</a> <a id="9296" class="Symbol">(</a><a id="9297" href="Categories.Category.Construction.Functors.html#1308" class="Function">Functors</a> <a id="9306" href="Categories.Category.Construction.Functors.html#1132" class="Generalizable">A</a> <a id="9308" href="Categories.Category.Construction.Functors.html#1136" class="Generalizable">C</a><a id="9309" class="Symbol">)</a>
|
||
<a id="9311" href="Categories.Category.Construction.Functors.html#9246" class="Function">product</a> <a id="9319" class="Symbol">{</a><a id="9320" class="Argument">B</a> <a id="9322" class="Symbol">=</a> <a id="9324" href="Categories.Category.Construction.Functors.html#9324" class="Bound">B</a><a id="9325" class="Symbol">}</a> <a id="9327" class="Symbol">{</a><a id="9328" class="Argument">C</a> <a id="9330" class="Symbol">=</a> <a id="9332" href="Categories.Category.Construction.Functors.html#9332" class="Bound">C</a><a id="9333" class="Symbol">}</a> <a id="9335" class="Symbol">{</a><a id="9336" class="Argument">A</a> <a id="9338" class="Symbol">=</a> <a id="9340" href="Categories.Category.Construction.Functors.html#9340" class="Bound">A</a><a id="9341" class="Symbol">}</a> <a id="9343" class="Symbol">=</a> <a id="9345" class="Keyword">record</a>
|
||
<a id="9354" class="Symbol">{</a> <a id="9356" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="9359" class="Symbol">=</a> <a id="9361" href="Data.Product.html#4893" class="Function">uncurry′</a> <a id="9370" href="Categories.Functor.html#747" class="Function Operator">_∘F_</a>
|
||
<a id="9377" class="Symbol">;</a> <a id="9379" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="9382" class="Symbol">=</a> <a id="9384" href="Data.Product.html#4893" class="Function">uncurry′</a> <a id="9393" href="Categories.NaturalTransformation.Core.html#2919" class="Function Operator">_∘ₕ_</a>
|
||
<a id="9400" class="Symbol">;</a> <a id="9402" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="9411" class="Symbol">=</a> <a id="9413" class="Symbol">λ</a> <a id="9415" class="Symbol">{</a><a id="9416" href="Categories.Category.Construction.Functors.html#9416" class="Bound">f</a><a id="9417" class="Symbol">}</a> <a id="9419" class="Symbol">→</a> <a id="9421" href="Categories.Category.Core.html#1145" class="Function">identityʳ</a> <a id="9431" href="Categories.Category.Core.html#3061" class="Function Operator">○</a> <a id="9433" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="9442" class="Symbol">{</a><a id="9443" class="Argument">D</a> <a id="9445" class="Symbol">=</a> <a id="9447" href="Categories.Category.Construction.Functors.html#9332" class="Bound">C</a><a id="9448" class="Symbol">}</a> <a id="9450" class="Symbol">(</a><a id="9451" href="Agda.Builtin.Sigma.html#234" class="Field">proj₁</a> <a id="9457" href="Categories.Category.Construction.Functors.html#9416" class="Bound">f</a><a id="9458" class="Symbol">)</a>
|
||
<a id="9462" class="Symbol">;</a> <a id="9464" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="9477" class="Symbol">=</a> <a id="9479" class="Symbol">λ</a> <a id="9481" class="Symbol">{</a> <a id="9483" class="Symbol">{_</a> <a id="9486" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="9488" href="Categories.Category.Construction.Functors.html#9488" class="Bound">F₂</a><a id="9490" class="Symbol">}</a> <a id="9492" class="Symbol">{</a><a id="9493" href="Categories.Category.Construction.Functors.html#9493" class="Bound">G₁</a> <a id="9496" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="9498" href="Categories.Category.Construction.Functors.html#9498" class="Bound">G₂</a><a id="9500" class="Symbol">}</a> <a id="9502" class="Symbol">{</a><a id="9503" href="Categories.Category.Construction.Functors.html#9503" class="Bound">H₁</a> <a id="9506" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="9508" class="Symbol">_}</a> <a id="9511" class="Symbol">{</a><a id="9512" href="Categories.Category.Construction.Functors.html#9512" class="Bound">f₁</a> <a id="9515" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="9517" href="Categories.Category.Construction.Functors.html#9517" class="Bound">f₂</a><a id="9519" class="Symbol">}</a> <a id="9521" class="Symbol">{</a><a id="9522" href="Categories.Category.Construction.Functors.html#9522" class="Bound">g₁</a> <a id="9525" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="9527" href="Categories.Category.Construction.Functors.html#9527" class="Bound">g₂</a><a id="9529" class="Symbol">}</a> <a id="9531" class="Symbol">{</a><a id="9532" href="Categories.Category.Construction.Functors.html#9532" class="Bound">x</a><a id="9533" class="Symbol">}</a> <a id="9535" class="Symbol">→</a> <a id="9537" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
||
<a id="9549" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="9552" href="Categories.Category.Construction.Functors.html#9503" class="Bound">H₁</a> <a id="9555" class="Symbol">(</a><a id="9556" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="9558" href="Categories.Category.Construction.Functors.html#9527" class="Bound">g₂</a> <a id="9561" href="Categories.Category.Construction.Functors.html#9532" class="Bound">x</a> <a id="9563" href="Categories.Category.Core.html#656" class="Function Operator">B.∘</a> <a id="9567" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="9569" href="Categories.Category.Construction.Functors.html#9517" class="Bound">f₂</a> <a id="9572" href="Categories.Category.Construction.Functors.html#9532" class="Bound">x</a><a id="9573" class="Symbol">)</a> <a id="9575" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9577" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="9579" href="Categories.Category.Construction.Functors.html#9522" class="Bound">g₁</a> <a id="9582" class="Symbol">(</a><a id="9583" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="9586" href="Categories.Category.Construction.Functors.html#9488" class="Bound">F₂</a> <a id="9589" href="Categories.Category.Construction.Functors.html#9532" class="Bound">x</a><a id="9590" class="Symbol">)</a> <a id="9592" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9594" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="9596" href="Categories.Category.Construction.Functors.html#9512" class="Bound">f₁</a> <a id="9599" class="Symbol">(</a><a id="9600" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="9603" href="Categories.Category.Construction.Functors.html#9488" class="Bound">F₂</a> <a id="9606" href="Categories.Category.Construction.Functors.html#9532" class="Bound">x</a><a id="9607" class="Symbol">)</a>
|
||
<a id="9617" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="9620" href="Categories.Category.Core.html#1597" class="Function">∘-resp-≈ˡ</a> <a id="9630" class="Symbol">(</a><a id="9631" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="9644" href="Categories.Category.Construction.Functors.html#9503" class="Bound">H₁</a><a id="9646" class="Symbol">)</a> <a id="9648" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="9656" class="Symbol">((</a><a id="9658" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="9661" href="Categories.Category.Construction.Functors.html#9503" class="Bound">H₁</a> <a id="9664" class="Symbol">(</a><a id="9665" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="9667" href="Categories.Category.Construction.Functors.html#9527" class="Bound">g₂</a> <a id="9670" href="Categories.Category.Construction.Functors.html#9532" class="Bound">x</a><a id="9671" class="Symbol">)</a> <a id="9673" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9675" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="9678" href="Categories.Category.Construction.Functors.html#9503" class="Bound">H₁</a> <a id="9681" class="Symbol">(</a><a id="9682" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="9684" href="Categories.Category.Construction.Functors.html#9517" class="Bound">f₂</a> <a id="9687" href="Categories.Category.Construction.Functors.html#9532" class="Bound">x</a><a id="9688" class="Symbol">))</a> <a id="9691" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9693" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="9695" href="Categories.Category.Construction.Functors.html#9522" class="Bound">g₁</a> <a id="9698" class="Symbol">(</a><a id="9699" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="9702" href="Categories.Category.Construction.Functors.html#9488" class="Bound">F₂</a> <a id="9705" href="Categories.Category.Construction.Functors.html#9532" class="Bound">x</a><a id="9706" class="Symbol">)</a> <a id="9708" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9710" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="9712" href="Categories.Category.Construction.Functors.html#9512" class="Bound">f₁</a> <a id="9715" class="Symbol">(</a><a id="9716" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="9719" href="Categories.Category.Construction.Functors.html#9488" class="Bound">F₂</a> <a id="9722" href="Categories.Category.Construction.Functors.html#9532" class="Bound">x</a><a id="9723" class="Symbol">))</a>
|
||
<a id="9734" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="9737" href="Categories.Morphism.Reasoning.Core.html#7259" class="Function">center</a> <a id="9744" class="Symbol">(</a><a id="9745" href="Categories.Category.Core.html#3005" class="Function">⟺</a> <a id="9747" class="Symbol">(</a><a id="9748" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="9756" href="Categories.Category.Construction.Functors.html#9522" class="Bound">g₁</a> <a id="9759" class="Symbol">(</a><a id="9760" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="9762" href="Categories.Category.Construction.Functors.html#9517" class="Bound">f₂</a> <a id="9765" href="Categories.Category.Construction.Functors.html#9532" class="Bound">x</a><a id="9766" class="Symbol">)))</a> <a id="9770" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="9778" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="9781" href="Categories.Category.Construction.Functors.html#9503" class="Bound">H₁</a> <a id="9784" class="Symbol">(</a><a id="9785" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="9787" href="Categories.Category.Construction.Functors.html#9527" class="Bound">g₂</a> <a id="9790" href="Categories.Category.Construction.Functors.html#9532" class="Bound">x</a><a id="9791" class="Symbol">)</a> <a id="9793" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9795" class="Symbol">(</a><a id="9796" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="9798" href="Categories.Category.Construction.Functors.html#9522" class="Bound">g₁</a> <a id="9801" class="Symbol">(</a><a id="9802" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="9805" href="Categories.Category.Construction.Functors.html#9498" class="Bound">G₂</a> <a id="9808" href="Categories.Category.Construction.Functors.html#9532" class="Bound">x</a><a id="9809" class="Symbol">)</a> <a id="9811" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9813" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="9817" href="Categories.Category.Construction.Functors.html#9493" class="Bound">G₁</a> <a id="9820" class="Symbol">(</a><a id="9821" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="9823" href="Categories.Category.Construction.Functors.html#9517" class="Bound">f₂</a> <a id="9826" href="Categories.Category.Construction.Functors.html#9532" class="Bound">x</a><a id="9827" class="Symbol">))</a> <a id="9830" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9832" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="9834" href="Categories.Category.Construction.Functors.html#9512" class="Bound">f₁</a> <a id="9837" class="Symbol">(</a><a id="9838" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="9841" href="Categories.Category.Construction.Functors.html#9488" class="Bound">F₂</a> <a id="9844" href="Categories.Category.Construction.Functors.html#9532" class="Bound">x</a><a id="9845" class="Symbol">)</a>
|
||
<a id="9855" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="9858" href="Categories.Morphism.Reasoning.Core.html#7730" class="Function">pull-first</a> <a id="9869" href="Relation.Binary.Structures.html#1577" class="Function">refl</a> <a id="9874" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="9882" class="Symbol">(</a><a id="9883" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="9886" href="Categories.Category.Construction.Functors.html#9503" class="Bound">H₁</a> <a id="9889" class="Symbol">(</a><a id="9890" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="9892" href="Categories.Category.Construction.Functors.html#9527" class="Bound">g₂</a> <a id="9895" href="Categories.Category.Construction.Functors.html#9532" class="Bound">x</a><a id="9896" class="Symbol">)</a> <a id="9898" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9900" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="9902" href="Categories.Category.Construction.Functors.html#9522" class="Bound">g₁</a> <a id="9905" class="Symbol">(</a><a id="9906" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="9909" href="Categories.Category.Construction.Functors.html#9498" class="Bound">G₂</a> <a id="9912" href="Categories.Category.Construction.Functors.html#9532" class="Bound">x</a><a id="9913" class="Symbol">))</a> <a id="9916" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9918" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="9921" href="Categories.Category.Construction.Functors.html#9493" class="Bound">G₁</a> <a id="9924" class="Symbol">(</a><a id="9925" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="9927" href="Categories.Category.Construction.Functors.html#9517" class="Bound">f₂</a> <a id="9930" href="Categories.Category.Construction.Functors.html#9532" class="Bound">x</a><a id="9931" class="Symbol">)</a> <a id="9933" href="Categories.Category.Core.html#656" class="Function Operator">∘</a> <a id="9935" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="9937" href="Categories.Category.Construction.Functors.html#9512" class="Bound">f₁</a> <a id="9940" class="Symbol">(</a><a id="9941" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="9944" href="Categories.Category.Construction.Functors.html#9488" class="Bound">F₂</a> <a id="9947" href="Categories.Category.Construction.Functors.html#9532" class="Bound">x</a><a id="9948" class="Symbol">)</a>
|
||
<a id="9958" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a> <a id="9960" class="Symbol">}</a>
|
||
<a id="9964" class="Symbol">;</a> <a id="9966" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="9975" class="Symbol">=</a> <a id="9977" class="Symbol">λ</a> <a id="9979" class="Symbol">{</a> <a id="9981" class="Symbol">{_}</a> <a id="9985" class="Symbol">{</a><a id="9986" href="Categories.Category.Construction.Functors.html#9986" class="Bound">g₁</a> <a id="9989" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="9991" class="Symbol">_}</a> <a id="9994" class="Symbol">(</a><a id="9995" href="Categories.Category.Construction.Functors.html#9995" class="Bound">≈₁</a> <a id="9998" href="Agda.Builtin.Sigma.html#218" class="InductiveConstructor Operator">,</a> <a id="10000" href="Categories.Category.Construction.Functors.html#10000" class="Bound">≈₂</a><a id="10002" class="Symbol">)</a> <a id="10004" class="Symbol">→</a> <a id="10006" href="Categories.Category.Core.html#1438" class="Function">∘-resp-≈</a> <a id="10015" class="Symbol">(</a><a id="10016" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="10025" href="Categories.Category.Construction.Functors.html#9986" class="Bound">g₁</a> <a id="10028" href="Categories.Category.Construction.Functors.html#10000" class="Bound">≈₂</a><a id="10030" class="Symbol">)</a> <a id="10032" href="Categories.Category.Construction.Functors.html#9995" class="Bound">≈₁</a> <a id="10035" class="Symbol">}</a>
|
||
<a id="10039" class="Symbol">}</a>
|
||
<a id="10043" class="Keyword">where</a>
|
||
<a id="10053" class="Keyword">open</a> <a id="10058" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="10067" href="Categories.Category.Construction.Functors.html#9332" class="Bound">C</a>
|
||
<a id="10073" class="Keyword">open</a> <a id="10078" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="10081" href="Categories.Category.Construction.Functors.html#9332" class="Bound">C</a>
|
||
<a id="10087" class="Keyword">open</a> <a id="10092" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
|
||
<a id="10109" class="Keyword">open</a> <a id="10114" href="Categories.Category.Core.html#1530" class="Module">Equiv</a>
|
||
<a id="10124" class="Keyword">open</a> <a id="10129" href="Categories.Functor.Core.html#248" class="Module">Functor</a>
|
||
<a id="10141" class="Keyword">module</a> <a id="10148" href="Categories.Category.Construction.Functors.html#10148" class="Module">B</a> <a id="10150" class="Symbol">=</a> <a id="10152" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="10161" href="Categories.Category.Construction.Functors.html#9324" class="Bound">B</a>
|
||
<a id="10167" class="Keyword">open</a> <a id="10172" href="Categories.NaturalTransformation.Core.html#466" class="Module">NaturalTransformation</a>
|
||
|
||
<a id="10195" class="Comment">-- op induces a Functor on the Functors category.</a>
|
||
<a id="10245" class="Comment">-- This is an instance where the proof-irrelevant version is simpler because (op op C) is</a>
|
||
<a id="10335" class="Comment">-- just C. Here we rather need to be more explicit.</a>
|
||
<a id="opF⇒"></a><a id="10387" href="Categories.Category.Construction.Functors.html#10387" class="Function">opF⇒</a> <a id="10392" class="Symbol">:</a> <a id="10394" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="10402" class="Symbol">(</a><a id="10403" href="Categories.Category.Core.html#3132" class="Function">Category.op</a> <a id="10415" class="Symbol">(</a><a id="10416" href="Categories.Category.Construction.Functors.html#1308" class="Function">Functors</a> <a id="10425" class="Symbol">(</a><a id="10426" href="Categories.Category.Core.html#3132" class="Function">Category.op</a> <a id="10438" href="Categories.Category.Construction.Functors.html#1132" class="Generalizable">A</a><a id="10439" class="Symbol">)</a> <a id="10441" class="Symbol">(</a><a id="10442" href="Categories.Category.Core.html#3132" class="Function">Category.op</a> <a id="10454" href="Categories.Category.Construction.Functors.html#1134" class="Generalizable">B</a><a id="10455" class="Symbol">)))</a> <a id="10459" class="Symbol">(</a><a id="10460" href="Categories.Category.Construction.Functors.html#1308" class="Function">Functors</a> <a id="10469" href="Categories.Category.Construction.Functors.html#1132" class="Generalizable">A</a> <a id="10471" href="Categories.Category.Construction.Functors.html#1134" class="Generalizable">B</a><a id="10472" class="Symbol">)</a>
|
||
<a id="10474" href="Categories.Category.Construction.Functors.html#10387" class="Function">opF⇒</a> <a id="10479" class="Symbol">{</a><a id="10480" class="Argument">A</a> <a id="10482" class="Symbol">=</a> <a id="10484" href="Categories.Category.Construction.Functors.html#10484" class="Bound">A</a><a id="10485" class="Symbol">}</a> <a id="10487" class="Symbol">{</a><a id="10488" class="Argument">B</a> <a id="10490" class="Symbol">=</a> <a id="10492" href="Categories.Category.Construction.Functors.html#10492" class="Bound">B</a><a id="10493" class="Symbol">}</a> <a id="10495" class="Symbol">=</a> <a id="10497" class="Keyword">record</a>
|
||
<a id="10506" class="Symbol">{</a> <a id="10508" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="10521" class="Symbol">=</a> <a id="10523" href="Categories.Functor.Core.html#816" class="Function">Functor.op</a>
|
||
<a id="10536" class="Symbol">;</a> <a id="10538" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="10551" class="Symbol">=</a> <a id="10553" href="Categories.NaturalTransformation.Core.html#1114" class="Function">NaturalTransformation.op</a>
|
||
<a id="10580" class="Symbol">;</a> <a id="10582" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="10595" class="Symbol">=</a> <a id="10597" href="Relation.Binary.Structures.html#1577" class="Function">Equiv.refl</a>
|
||
<a id="10610" class="Symbol">;</a> <a id="10612" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="10625" class="Symbol">=</a> <a id="10627" href="Relation.Binary.Structures.html#1577" class="Function">Equiv.refl</a>
|
||
<a id="10640" class="Symbol">;</a> <a id="10642" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="10655" class="Symbol">=</a> <a id="10657" class="Symbol">λ</a> <a id="10659" href="Categories.Category.Construction.Functors.html#10659" class="Bound">eq</a> <a id="10662" class="Symbol">→</a> <a id="10664" href="Categories.Category.Construction.Functors.html#10659" class="Bound">eq</a>
|
||
<a id="10669" class="Symbol">}</a>
|
||
<a id="10673" class="Keyword">where</a> <a id="10679" class="Keyword">open</a> <a id="10684" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="10693" href="Categories.Category.Construction.Functors.html#10492" class="Bound">B</a>
|
||
|
||
<a id="opF⇐"></a><a id="10696" href="Categories.Category.Construction.Functors.html#10696" class="Function">opF⇐</a> <a id="10701" class="Symbol">:</a> <a id="10703" href="Categories.Functor.Core.html#248" class="Record">Functor</a> <a id="10711" class="Symbol">(</a><a id="10712" href="Categories.Category.Construction.Functors.html#1308" class="Function">Functors</a> <a id="10721" href="Categories.Category.Construction.Functors.html#1132" class="Generalizable">A</a> <a id="10723" href="Categories.Category.Construction.Functors.html#1134" class="Generalizable">B</a><a id="10724" class="Symbol">)</a> <a id="10726" class="Symbol">(</a><a id="10727" href="Categories.Category.Core.html#3132" class="Function">Category.op</a> <a id="10739" class="Symbol">(</a><a id="10740" href="Categories.Category.Construction.Functors.html#1308" class="Function">Functors</a> <a id="10749" class="Symbol">(</a><a id="10750" href="Categories.Category.Core.html#3132" class="Function">Category.op</a> <a id="10762" href="Categories.Category.Construction.Functors.html#1132" class="Generalizable">A</a><a id="10763" class="Symbol">)</a> <a id="10765" class="Symbol">(</a><a id="10766" href="Categories.Category.Core.html#3132" class="Function">Category.op</a> <a id="10778" href="Categories.Category.Construction.Functors.html#1134" class="Generalizable">B</a><a id="10779" class="Symbol">)))</a>
|
||
<a id="10783" href="Categories.Category.Construction.Functors.html#10696" class="Function">opF⇐</a> <a id="10788" class="Symbol">{</a><a id="10789" class="Argument">A</a> <a id="10791" class="Symbol">=</a> <a id="10793" href="Categories.Category.Construction.Functors.html#10793" class="Bound">A</a><a id="10794" class="Symbol">}</a> <a id="10796" class="Symbol">{</a><a id="10797" class="Argument">B</a> <a id="10799" class="Symbol">=</a> <a id="10801" href="Categories.Category.Construction.Functors.html#10801" class="Bound">B</a><a id="10802" class="Symbol">}</a> <a id="10804" class="Symbol">=</a> <a id="10806" class="Keyword">record</a>
|
||
<a id="10815" class="Symbol">{</a> <a id="10817" href="Categories.Functor.Core.html#432" class="Field">F₀</a> <a id="10830" class="Symbol">=</a> <a id="10832" href="Categories.Functor.Core.html#816" class="Function">Functor.op</a>
|
||
<a id="10845" class="Symbol">;</a> <a id="10847" href="Categories.Functor.Core.html#455" class="Field">F₁</a> <a id="10860" class="Symbol">=</a> <a id="10862" href="Categories.NaturalTransformation.Core.html#1114" class="Function">NaturalTransformation.op</a>
|
||
<a id="10889" class="Symbol">;</a> <a id="10891" href="Categories.Functor.Core.html#511" class="Field">identity</a> <a id="10904" class="Symbol">=</a> <a id="10906" href="Relation.Binary.Structures.html#1577" class="Function">Equiv.refl</a>
|
||
<a id="10919" class="Symbol">;</a> <a id="10921" href="Categories.Functor.Core.html#565" class="Field">homomorphism</a> <a id="10934" class="Symbol">=</a> <a id="10936" href="Relation.Binary.Structures.html#1577" class="Function">Equiv.refl</a>
|
||
<a id="10949" class="Symbol">;</a> <a id="10951" href="Categories.Functor.Core.html#696" class="Field">F-resp-≈</a> <a id="10964" class="Symbol">=</a> <a id="10966" class="Symbol">λ</a> <a id="10968" href="Categories.Category.Construction.Functors.html#10968" class="Bound">eq</a> <a id="10971" class="Symbol">→</a> <a id="10973" href="Categories.Category.Construction.Functors.html#10968" class="Bound">eq</a>
|
||
<a id="10978" class="Symbol">}</a>
|
||
<a id="10982" class="Keyword">where</a> <a id="10988" class="Keyword">open</a> <a id="10993" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="11002" href="Categories.Category.Construction.Functors.html#10801" class="Bound">B</a>
|
||
|
||
<a id="Functorsᵒᵖ-equiv"></a><a id="11005" href="Categories.Category.Construction.Functors.html#11005" class="Function">Functorsᵒᵖ-equiv</a> <a id="11022" class="Symbol">:</a> <a id="11024" class="Symbol">(</a><a id="11025" href="Categories.Category.Construction.Functors.html#11025" class="Bound">A</a> <a id="11027" class="Symbol">:</a> <a id="11029" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="11038" href="Categories.Category.Construction.Functors.html#1105" class="Generalizable">o</a> <a id="11040" href="Categories.Category.Construction.Functors.html#1107" class="Generalizable">ℓ</a> <a id="11042" href="Categories.Category.Construction.Functors.html#1109" class="Generalizable">e</a><a id="11043" class="Symbol">)</a> <a id="11045" class="Symbol">(</a><a id="11046" href="Categories.Category.Construction.Functors.html#11046" class="Bound">B</a> <a id="11048" class="Symbol">:</a> <a id="11050" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="11059" href="Categories.Category.Construction.Functors.html#1111" class="Generalizable">o′</a> <a id="11062" href="Categories.Category.Construction.Functors.html#1114" class="Generalizable">ℓ′</a> <a id="11065" href="Categories.Category.Construction.Functors.html#1117" class="Generalizable">e′</a><a id="11067" class="Symbol">)</a> <a id="11069" class="Symbol">→</a>
|
||
<a id="11090" href="Categories.Adjoint.Equivalence.html#573" class="Record">⊣Equivalence</a> <a id="11103" class="Symbol">(</a><a id="11104" href="Categories.Category.Core.html#3132" class="Function">Category.op</a> <a id="11116" class="Symbol">(</a><a id="11117" href="Categories.Category.Construction.Functors.html#1308" class="Function">Functors</a> <a id="11126" class="Symbol">(</a><a id="11127" href="Categories.Category.Core.html#3132" class="Function">Category.op</a> <a id="11139" href="Categories.Category.Construction.Functors.html#11025" class="Bound">A</a><a id="11140" class="Symbol">)</a> <a id="11142" class="Symbol">(</a><a id="11143" href="Categories.Category.Core.html#3132" class="Function">Category.op</a> <a id="11155" href="Categories.Category.Construction.Functors.html#11046" class="Bound">B</a><a id="11156" class="Symbol">)))</a> <a id="11160" class="Symbol">(</a><a id="11161" href="Categories.Category.Construction.Functors.html#1308" class="Function">Functors</a> <a id="11170" href="Categories.Category.Construction.Functors.html#11025" class="Bound">A</a> <a id="11172" href="Categories.Category.Construction.Functors.html#11046" class="Bound">B</a><a id="11173" class="Symbol">)</a>
|
||
<a id="11175" href="Categories.Category.Construction.Functors.html#11005" class="Function">Functorsᵒᵖ-equiv</a> <a id="11192" href="Categories.Category.Construction.Functors.html#11192" class="Bound">A</a> <a id="11194" href="Categories.Category.Construction.Functors.html#11194" class="Bound">B</a> <a id="11196" class="Symbol">=</a> <a id="11198" class="Keyword">record</a>
|
||
<a id="11207" class="Symbol">{</a> <a id="11209" href="Categories.Adjoint.Equivalence.html#682" class="Field">L</a> <a id="11214" class="Symbol">=</a> <a id="11216" href="Categories.Category.Construction.Functors.html#10387" class="Function">opF⇒</a>
|
||
<a id="11223" class="Symbol">;</a> <a id="11225" href="Categories.Adjoint.Equivalence.html#705" class="Field">R</a> <a id="11230" class="Symbol">=</a> <a id="11232" href="Categories.Category.Construction.Functors.html#10696" class="Function">opF⇐</a>
|
||
<a id="11239" class="Symbol">;</a> <a id="11241" href="Categories.Adjoint.Equivalence.html#728" class="Field">L⊣⊢R</a> <a id="11246" class="Symbol">=</a> <a id="11248" href="Categories.Adjoint.TwoSided.html#5870" class="Function">withZig</a> <a id="11256" class="Keyword">record</a>
|
||
<a id="11267" class="Symbol">{</a> <a id="11269" href="Categories.Adjoint.TwoSided.html#3118" class="Field">unit</a> <a id="11276" class="Symbol">=</a> <a id="11278" class="Keyword">record</a>
|
||
<a id="11291" class="Symbol">{</a> <a id="11293" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="11297" class="Symbol">=</a> <a id="11299" class="Keyword">record</a>
|
||
<a id="11314" class="Symbol">{</a> <a id="11316" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="11328" class="Symbol">=</a> <a id="11330" class="Symbol">λ</a> <a id="11332" href="Categories.Category.Construction.Functors.html#11332" class="Bound">_</a> <a id="11334" class="Symbol">→</a> <a id="11336" href="Categories.Category.Construction.Functors.html#854" class="Function">idN</a>
|
||
<a id="11348" class="Symbol">;</a> <a id="11350" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="11362" class="Symbol">=</a> <a id="11364" class="Symbol">λ</a> <a id="11366" href="Categories.Category.Construction.Functors.html#11366" class="Bound">_</a> <a id="11368" class="Symbol">→</a> <a id="11370" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a>
|
||
<a id="11390" class="Symbol">;</a> <a id="11392" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="11404" class="Symbol">=</a> <a id="11406" class="Symbol">λ</a> <a id="11408" href="Categories.Category.Construction.Functors.html#11408" class="Bound">_</a> <a id="11410" class="Symbol">→</a> <a id="11412" href="Categories.Morphism.Reasoning.Core.html#1202" class="Function">id-comm</a>
|
||
<a id="11428" class="Symbol">}</a>
|
||
<a id="11436" class="Symbol">;</a> <a id="11438" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="11442" class="Symbol">=</a> <a id="11444" class="Keyword">record</a>
|
||
<a id="11459" class="Symbol">{</a> <a id="11461" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="11473" class="Symbol">=</a> <a id="11475" class="Symbol">λ</a> <a id="11477" href="Categories.Category.Construction.Functors.html#11477" class="Bound">_</a> <a id="11479" class="Symbol">→</a> <a id="11481" href="Categories.Category.Construction.Functors.html#854" class="Function">idN</a>
|
||
<a id="11493" class="Symbol">;</a> <a id="11495" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="11507" class="Symbol">=</a> <a id="11509" class="Symbol">λ</a> <a id="11511" href="Categories.Category.Construction.Functors.html#11511" class="Bound">_</a> <a id="11513" class="Symbol">→</a> <a id="11515" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a>
|
||
<a id="11535" class="Symbol">;</a> <a id="11537" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="11549" class="Symbol">=</a> <a id="11551" class="Symbol">λ</a> <a id="11553" href="Categories.Category.Construction.Functors.html#11553" class="Bound">_</a> <a id="11555" class="Symbol">→</a> <a id="11557" href="Categories.Morphism.Reasoning.Core.html#1202" class="Function">id-comm</a>
|
||
<a id="11573" class="Symbol">}</a>
|
||
<a id="11581" class="Symbol">;</a> <a id="11583" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="11587" class="Symbol">=</a> <a id="11589" class="Symbol">λ</a> <a id="11591" href="Categories.Category.Construction.Functors.html#11591" class="Bound">_</a> <a id="11593" class="Symbol">→</a> <a id="11595" class="Keyword">record</a>
|
||
<a id="11610" class="Symbol">{</a> <a id="11612" href="Categories.Morphism.html#1586" class="Field">isoˡ</a> <a id="11617" class="Symbol">=</a> <a id="11619" href="Categories.Category.Core.html#1339" class="Field">identity²</a>
|
||
<a id="11637" class="Symbol">;</a> <a id="11639" href="Categories.Morphism.html#1612" class="Field">isoʳ</a> <a id="11644" class="Symbol">=</a> <a id="11646" href="Categories.Category.Core.html#1339" class="Field">identity²</a>
|
||
<a id="11664" class="Symbol">}</a>
|
||
<a id="11672" class="Symbol">}</a>
|
||
<a id="11678" class="Symbol">;</a> <a id="11680" href="Categories.Adjoint.TwoSided.html#3148" class="Field">counit</a> <a id="11687" class="Symbol">=</a> <a id="11689" class="Keyword">record</a>
|
||
<a id="11702" class="Symbol">{</a> <a id="11704" href="Categories.NaturalTransformation.NaturalIsomorphism.html#891" class="Field">F⇒G</a> <a id="11708" class="Symbol">=</a> <a id="11710" class="Keyword">record</a>
|
||
<a id="11725" class="Symbol">{</a> <a id="11727" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="11739" class="Symbol">=</a> <a id="11741" class="Symbol">λ</a> <a id="11743" href="Categories.Category.Construction.Functors.html#11743" class="Bound">_</a> <a id="11745" class="Symbol">→</a> <a id="11747" href="Categories.Category.Construction.Functors.html#854" class="Function">idN</a>
|
||
<a id="11759" class="Symbol">;</a> <a id="11761" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="11773" class="Symbol">=</a> <a id="11775" class="Symbol">λ</a> <a id="11777" href="Categories.Category.Construction.Functors.html#11777" class="Bound">_</a> <a id="11779" class="Symbol">→</a> <a id="11781" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a>
|
||
<a id="11801" class="Symbol">;</a> <a id="11803" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="11815" class="Symbol">=</a> <a id="11817" class="Symbol">λ</a> <a id="11819" href="Categories.Category.Construction.Functors.html#11819" class="Bound">_</a> <a id="11821" class="Symbol">→</a> <a id="11823" href="Categories.Morphism.Reasoning.Core.html#1202" class="Function">id-comm</a>
|
||
<a id="11839" class="Symbol">}</a>
|
||
<a id="11847" class="Symbol">;</a> <a id="11849" href="Categories.NaturalTransformation.NaturalIsomorphism.html#927" class="Field">F⇐G</a> <a id="11853" class="Symbol">=</a> <a id="11855" class="Keyword">record</a>
|
||
<a id="11870" class="Symbol">{</a> <a id="11872" href="Categories.NaturalTransformation.Core.html#783" class="Field">η</a> <a id="11884" class="Symbol">=</a> <a id="11886" class="Symbol">λ</a> <a id="11888" href="Categories.Category.Construction.Functors.html#11888" class="Bound">_</a> <a id="11890" class="Symbol">→</a> <a id="11892" href="Categories.Category.Construction.Functors.html#854" class="Function">idN</a>
|
||
<a id="11904" class="Symbol">;</a> <a id="11906" href="Categories.NaturalTransformation.Core.html#827" class="Field">commute</a> <a id="11918" class="Symbol">=</a> <a id="11920" class="Symbol">λ</a> <a id="11922" href="Categories.Category.Construction.Functors.html#11922" class="Bound">_</a> <a id="11924" class="Symbol">→</a> <a id="11926" href="Categories.Morphism.Reasoning.Core.html#1309" class="Function">id-comm-sym</a>
|
||
<a id="11946" class="Symbol">;</a> <a id="11948" href="Categories.NaturalTransformation.Core.html#1043" class="Field">sym-commute</a> <a id="11960" class="Symbol">=</a> <a id="11962" class="Symbol">λ</a> <a id="11964" href="Categories.Category.Construction.Functors.html#11964" class="Bound">_</a> <a id="11966" class="Symbol">→</a> <a id="11968" href="Categories.Morphism.Reasoning.Core.html#1202" class="Function">id-comm</a>
|
||
<a id="11984" class="Symbol">}</a>
|
||
<a id="11992" class="Symbol">;</a> <a id="11994" href="Categories.NaturalTransformation.NaturalIsomorphism.html#1051" class="Field">iso</a> <a id="11998" class="Symbol">=</a> <a id="12000" class="Symbol">λ</a> <a id="12002" href="Categories.Category.Construction.Functors.html#12002" class="Bound">_</a> <a id="12004" class="Symbol">→</a> <a id="12006" class="Keyword">record</a>
|
||
<a id="12021" class="Symbol">{</a> <a id="12023" href="Categories.Morphism.html#1586" class="Field">isoˡ</a> <a id="12028" class="Symbol">=</a> <a id="12030" href="Categories.Category.Core.html#1339" class="Field">identity²</a>
|
||
<a id="12048" class="Symbol">;</a> <a id="12050" href="Categories.Morphism.html#1612" class="Field">isoʳ</a> <a id="12055" class="Symbol">=</a> <a id="12057" href="Categories.Category.Core.html#1339" class="Field">identity²</a>
|
||
<a id="12075" class="Symbol">}</a>
|
||
<a id="12083" class="Symbol">}</a>
|
||
<a id="12089" class="Symbol">;</a> <a id="12091" href="Categories.Adjoint.TwoSided.html#3564" class="Field">zig</a> <a id="12098" class="Symbol">=</a> <a id="12100" href="Categories.Category.Core.html#1339" class="Field">identity²</a>
|
||
<a id="12114" class="Symbol">}</a>
|
||
<a id="12118" class="Symbol">}</a>
|
||
<a id="12122" class="Keyword">where</a> <a id="12128" class="Keyword">open</a> <a id="12133" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="12142" href="Categories.Category.Construction.Functors.html#11194" class="Bound">B</a>
|
||
<a id="12152" class="Keyword">open</a> <a id="12157" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
|
||
<a id="12178" class="Keyword">open</a> <a id="12183" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="12186" href="Categories.Category.Construction.Functors.html#11194" class="Bound">B</a>
|
||
|
||
<a id="12189" class="Keyword">module</a> <a id="Functorsᵒᵖ-equiv"></a><a id="12196" href="Categories.Category.Construction.Functors.html#12196" class="Module">Functorsᵒᵖ-equiv</a> <a id="12213" class="Symbol">{</a><a id="12214" href="Categories.Category.Construction.Functors.html#12214" class="Bound">o</a> <a id="12216" href="Categories.Category.Construction.Functors.html#12216" class="Bound">ℓ</a> <a id="12218" href="Categories.Category.Construction.Functors.html#12218" class="Bound">e</a> <a id="12220" href="Categories.Category.Construction.Functors.html#12220" class="Bound">o′</a> <a id="12223" href="Categories.Category.Construction.Functors.html#12223" class="Bound">ℓ′</a> <a id="12226" href="Categories.Category.Construction.Functors.html#12226" class="Bound">e′</a><a id="12228" class="Symbol">}</a> <a id="12230" class="Symbol">(</a><a id="12231" href="Categories.Category.Construction.Functors.html#12231" class="Bound">A</a> <a id="12233" class="Symbol">:</a> <a id="12235" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="12244" href="Categories.Category.Construction.Functors.html#12214" class="Bound">o</a> <a id="12246" href="Categories.Category.Construction.Functors.html#12216" class="Bound">ℓ</a> <a id="12248" href="Categories.Category.Construction.Functors.html#12218" class="Bound">e</a><a id="12249" class="Symbol">)</a> <a id="12251" class="Symbol">(</a><a id="12252" href="Categories.Category.Construction.Functors.html#12252" class="Bound">B</a> <a id="12254" class="Symbol">:</a> <a id="12256" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="12265" href="Categories.Category.Construction.Functors.html#12220" class="Bound">o′</a> <a id="12268" href="Categories.Category.Construction.Functors.html#12223" class="Bound">ℓ′</a> <a id="12271" href="Categories.Category.Construction.Functors.html#12226" class="Bound">e′</a><a id="12273" class="Symbol">)</a> <a id="12275" class="Symbol">=</a> <a id="12277" href="Categories.Adjoint.Equivalence.html#573" class="Module">⊣Equivalence</a> <a id="12290" class="Symbol">(</a><a id="12291" href="Categories.Category.Construction.Functors.html#11005" class="Function">Functorsᵒᵖ-equiv</a> <a id="12308" href="Categories.Category.Construction.Functors.html#12231" class="Bound">A</a> <a id="12310" href="Categories.Category.Construction.Functors.html#12252" class="Bound">B</a><a id="12311" class="Symbol">)</a>
|
||
</pre></body></html> |