mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
80 lines
No EOL
32 KiB
HTML
80 lines
No EOL
32 KiB
HTML
<!DOCTYPE HTML>
|
||
<html><head><meta charset="utf-8"><title>Categories.Category.Extensive.Properties.Distributive</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Symbol">{-#</a> <a id="5" class="Keyword">OPTIONS</a> <a id="13" class="Pragma">--without-K</a> <a id="25" class="Pragma">--safe</a> <a id="32" class="Symbol">#-}</a>
|
||
|
||
<a id="37" class="Keyword">open</a> <a id="42" class="Keyword">import</a> <a id="49" href="Level.html" class="Module">Level</a>
|
||
<a id="55" class="Keyword">open</a> <a id="60" class="Keyword">import</a> <a id="67" href="Categories.Category.Core.html" class="Module">Categories.Category.Core</a>
|
||
<a id="92" class="Keyword">open</a> <a id="97" class="Keyword">import</a> <a id="104" href="Categories.Category.Cartesian.html" class="Module">Categories.Category.Cartesian</a> <a id="134" class="Keyword">using</a> <a id="140" class="Symbol">(</a><a id="141" href="Categories.Category.Cartesian.html#727" class="Record">Cartesian</a><a id="150" class="Symbol">)</a>
|
||
<a id="152" class="Keyword">open</a> <a id="157" class="Keyword">import</a> <a id="164" href="Categories.Category.BinaryProducts.html" class="Module">Categories.Category.BinaryProducts</a> <a id="199" class="Keyword">using</a> <a id="205" class="Symbol">(</a><a id="206" href="Categories.Category.BinaryProducts.html#812" class="Record">BinaryProducts</a><a id="220" class="Symbol">)</a>
|
||
<a id="222" class="Keyword">open</a> <a id="227" class="Keyword">import</a> <a id="234" href="Categories.Category.Cocartesian.html" class="Module">Categories.Category.Cocartesian</a> <a id="266" class="Keyword">using</a> <a id="272" class="Symbol">(</a><a id="273" href="Categories.Category.Cocartesian.html#3385" class="Record">Cocartesian</a><a id="284" class="Symbol">)</a>
|
||
<a id="286" class="Keyword">open</a> <a id="291" class="Keyword">import</a> <a id="298" href="Categories.Category.Distributive.html" class="Module">Categories.Category.Distributive</a> <a id="331" class="Keyword">using</a> <a id="337" class="Symbol">(</a><a id="338" href="Categories.Category.Distributive.html#686" class="Record">Distributive</a><a id="350" class="Symbol">)</a>
|
||
<a id="352" class="Keyword">open</a> <a id="357" class="Keyword">import</a> <a id="364" href="Categories.Category.Extensive.html" class="Module">Categories.Category.Extensive</a> <a id="394" class="Keyword">using</a> <a id="400" class="Symbol">(</a><a id="401" href="Categories.Category.Extensive.html#599" class="Record">Extensive</a><a id="410" class="Symbol">)</a>
|
||
<a id="412" class="Keyword">open</a> <a id="417" class="Keyword">import</a> <a id="424" href="Categories.Diagram.Pullback.html" class="Module">Categories.Diagram.Pullback</a> <a id="452" class="Keyword">using</a> <a id="458" class="Symbol">(</a><a id="459" href="Categories.Diagram.Pullback.html#2029" class="Record">Pullback</a><a id="467" class="Symbol">)</a>
|
||
|
||
<a id="470" class="Keyword">import</a> <a id="477" href="Categories.Morphism.html" class="Module">Categories.Morphism</a> <a id="497" class="Symbol">as</a> <a id="500" class="Module">M</a>
|
||
<a id="502" class="Keyword">import</a> <a id="509" href="Categories.Morphism.Reasoning.html" class="Module">Categories.Morphism.Reasoning</a> <a id="539" class="Symbol">as</a> <a id="542" class="Module">MR</a>
|
||
<a id="545" class="Keyword">import</a> <a id="552" href="Categories.Object.Coproduct.html" class="Module">Categories.Object.Coproduct</a> <a id="580" class="Symbol">as</a> <a id="583" class="Module">CP</a>
|
||
<a id="586" class="Keyword">open</a> <a id="591" href="Categories.Object.Coproduct.html" class="Module">CP</a> <a id="594" class="Keyword">using</a> <a id="600" class="Symbol">(</a><a id="601" href="Categories.Object.Coproduct.html#398" class="Record">Coproduct</a><a id="610" class="Symbol">;</a> <a id="612" href="Categories.Object.Coproduct.html#1139" class="Record">IsCoproduct</a><a id="623" class="Symbol">;</a> <a id="625" href="Categories.Object.Coproduct.html#1629" class="Function">IsCoproduct⇒Coproduct</a><a id="646" class="Symbol">)</a>
|
||
|
||
<a id="649" class="Keyword">import</a> <a id="656" href="Categories.Object.Duality.html" class="Module">Categories.Object.Duality</a> <a id="682" class="Symbol">as</a> <a id="685" class="Module">Duality</a>
|
||
|
||
<a id="694" class="Keyword">module</a> <a id="701" href="Categories.Category.Extensive.Properties.Distributive.html" class="Module">Categories.Category.Extensive.Properties.Distributive</a> <a id="755" class="Symbol">{</a><a id="756" href="Categories.Category.Extensive.Properties.Distributive.html#756" class="Bound">o</a> <a id="758" href="Categories.Category.Extensive.Properties.Distributive.html#758" class="Bound">ℓ</a> <a id="760" href="Categories.Category.Extensive.Properties.Distributive.html#760" class="Bound">e</a><a id="761" class="Symbol">}</a> <a id="763" class="Symbol">(</a><a id="764" href="Categories.Category.Extensive.Properties.Distributive.html#764" class="Bound">𝒞</a> <a id="766" class="Symbol">:</a> <a id="768" href="Categories.Category.Core.html#442" class="Record">Category</a> <a id="777" href="Categories.Category.Extensive.Properties.Distributive.html#756" class="Bound">o</a> <a id="779" href="Categories.Category.Extensive.Properties.Distributive.html#758" class="Bound">ℓ</a> <a id="781" href="Categories.Category.Extensive.Properties.Distributive.html#760" class="Bound">e</a><a id="782" class="Symbol">)</a> <a id="784" class="Keyword">where</a>
|
||
<a id="792" class="Keyword">open</a> <a id="797" href="Categories.Category.Core.html#442" class="Module">Category</a> <a id="806" href="Categories.Category.Extensive.Properties.Distributive.html#764" class="Bound">𝒞</a>
|
||
<a id="810" class="Keyword">open</a> <a id="815" href="Categories.Diagram.Pullback.html#2029" class="Module">Pullback</a> <a id="824" class="Keyword">using</a> <a id="830" class="Symbol">(</a><a id="831" href="Categories.Diagram.Pullback.html#1081" class="Function">p₁∘universal≈h₁</a><a id="846" class="Symbol">)</a>
|
||
<a id="850" class="Keyword">open</a> <a id="855" href="Categories.Morphism.html" class="Module">M</a> <a id="857" href="Categories.Category.Extensive.Properties.Distributive.html#764" class="Bound">𝒞</a>
|
||
<a id="861" class="Keyword">open</a> <a id="866" href="Categories.Morphism.Reasoning.html" class="Module">MR</a> <a id="869" href="Categories.Category.Extensive.Properties.Distributive.html#764" class="Bound">𝒞</a>
|
||
<a id="873" class="Keyword">open</a> <a id="878" href="Categories.Category.Core.html#2462" class="Module">HomReasoning</a>
|
||
<a id="893" class="Keyword">open</a> <a id="898" href="Categories.Category.Core.html#1530" class="Module">Equiv</a>
|
||
<a id="906" class="Keyword">open</a> <a id="911" href="Categories.Object.Duality.html" class="Module">Duality</a> <a id="919" href="Categories.Category.Extensive.Properties.Distributive.html#764" class="Bound">𝒞</a>
|
||
|
||
<a id="924" class="Comment">-- Any extensive cartesian category is also distributive</a>
|
||
<a id="983" class="Comment">-- To show this we construct the following two pullbacks and then show by pullback-of-cp-is-cp</a>
|
||
<a id="1080" class="Comment">-- that the top row must be a coproduct, and thereby isomorphic to A × B + A × C</a>
|
||
<a id="1163" class="Comment">{-
|
||
A × B -- id ⁂ i₁ --> A × (B + C) <-- id ⁂ i₂ -- A × C
|
||
| | |
|
||
π₂ pb₁ π₂ pb₂ π₂
|
||
| | |
|
||
V V V
|
||
B ------ i₁ -------> B + C <------- i₂ ------ C
|
||
-}</a>
|
||
<a id="Extensive×Cartesian⇒Distributive"></a><a id="1506" href="Categories.Category.Extensive.Properties.Distributive.html#1506" class="Function">Extensive×Cartesian⇒Distributive</a> <a id="1539" class="Symbol">:</a> <a id="1541" href="Categories.Category.Extensive.html#599" class="Record">Extensive</a> <a id="1551" href="Categories.Category.Extensive.Properties.Distributive.html#764" class="Bound">𝒞</a> <a id="1553" class="Symbol">→</a> <a id="1555" href="Categories.Category.Cartesian.html#727" class="Record">Cartesian</a> <a id="1565" href="Categories.Category.Extensive.Properties.Distributive.html#764" class="Bound">𝒞</a> <a id="1567" class="Symbol">→</a> <a id="1569" href="Categories.Category.Distributive.html#686" class="Record">Distributive</a> <a id="1582" href="Categories.Category.Extensive.Properties.Distributive.html#764" class="Bound">𝒞</a>
|
||
<a id="1586" href="Categories.Category.Extensive.Properties.Distributive.html#1506" class="Function">Extensive×Cartesian⇒Distributive</a> <a id="1619" href="Categories.Category.Extensive.Properties.Distributive.html#1619" class="Bound">extensive</a> <a id="1629" href="Categories.Category.Extensive.Properties.Distributive.html#1629" class="Bound">cartesian</a> <a id="1639" class="Symbol">=</a> <a id="1641" class="Keyword">record</a>
|
||
<a id="1653" class="Symbol">{</a> <a id="1655" href="Categories.Category.Distributive.html#739" class="Field">cartesian</a> <a id="1665" class="Symbol">=</a> <a id="1667" href="Categories.Category.Extensive.Properties.Distributive.html#1629" class="Bound">cartesian</a>
|
||
<a id="1682" class="Symbol">;</a> <a id="1684" href="Categories.Category.Distributive.html#767" class="Field">cocartesian</a> <a id="1696" class="Symbol">=</a> <a id="1698" href="Categories.Category.Extensive.html#734" class="Function">cocartesian</a>
|
||
<a id="1715" class="Symbol">;</a> <a id="1717" href="Categories.Category.Distributive.html#1016" class="Field">isIsoˡ</a> <a id="1724" class="Symbol">=</a> <a id="1726" class="Keyword">record</a> <a id="1733" class="Symbol">{</a> <a id="1735" href="Categories.Morphism.html#1879" class="Field">inv</a> <a id="1739" class="Symbol">=</a> <a id="1741" href="Categories.Morphism.html#2023" class="Function">distrib.to</a> <a id="1752" class="Symbol">;</a> <a id="1754" href="Categories.Morphism.html#1895" class="Field">iso</a> <a id="1758" class="Symbol">=</a> <a id="1760" href="Categories.Morphism.html#2040" class="Function">distrib.iso</a> <a id="1772" class="Symbol">}</a>
|
||
<a id="1778" class="Symbol">}</a>
|
||
<a id="1784" class="Keyword">where</a>
|
||
<a id="1796" class="Keyword">open</a> <a id="1801" href="Categories.Category.Extensive.html#599" class="Module">Extensive</a> <a id="1811" href="Categories.Category.Extensive.Properties.Distributive.html#1619" class="Bound">extensive</a>
|
||
<a id="1827" class="Keyword">open</a> <a id="1832" href="Categories.Category.Cocartesian.html#3385" class="Module">Cocartesian</a> <a id="1844" href="Categories.Category.Extensive.html#734" class="Function">cocartesian</a>
|
||
<a id="1862" class="Keyword">open</a> <a id="1867" href="Categories.Category.Cartesian.html#727" class="Module">Cartesian</a> <a id="1877" href="Categories.Category.Extensive.Properties.Distributive.html#1629" class="Bound">cartesian</a> <a id="1887" class="Keyword">using</a> <a id="1893" class="Symbol">(</a><a id="1894" href="Categories.Category.Cartesian.html#801" class="Field">products</a><a id="1902" class="Symbol">)</a>
|
||
<a id="1910" class="Keyword">module</a> <a id="1917" href="Categories.Category.Extensive.Properties.Distributive.html#1917" class="Module">BP</a> <a id="1920" class="Symbol">=</a> <a id="1922" href="Categories.Category.BinaryProducts.html#812" class="Module">BinaryProducts</a> <a id="1937" href="Categories.Category.Cartesian.html#801" class="Field">products</a>
|
||
<a id="1952" class="Keyword">open</a> <a id="1957" href="Categories.Category.Extensive.Properties.Distributive.html#1917" class="Module">BP</a>
|
||
|
||
<a id="1967" class="Keyword">module</a> <a id="1974" href="Categories.Category.Extensive.Properties.Distributive.html#1974" class="Module">_</a> <a id="1976" class="Symbol">{</a><a id="1977" href="Categories.Category.Extensive.Properties.Distributive.html#1977" class="Bound">A</a> <a id="1979" href="Categories.Category.Extensive.Properties.Distributive.html#1979" class="Bound">B</a> <a id="1981" href="Categories.Category.Extensive.Properties.Distributive.html#1981" class="Bound">C</a> <a id="1983" class="Symbol">:</a> <a id="1985" href="Categories.Category.Core.html#559" class="Field">Obj</a><a id="1988" class="Symbol">}</a> <a id="1990" class="Keyword">where</a>
|
||
<a id="2004" class="Comment">-- we can even proof that the square is a pullback for any g</a>
|
||
<a id="2073" class="Comment">-- then the left and right square are just instances with g = i₁ and g = i₂</a>
|
||
<a id="2157" href="Categories.Category.Extensive.Properties.Distributive.html#2157" class="Function">pb</a> <a id="2160" class="Symbol">:</a> <a id="2162" class="Symbol">∀</a> <a id="2164" class="Symbol">{</a><a id="2165" href="Categories.Category.Extensive.Properties.Distributive.html#2165" class="Bound">D</a><a id="2166" class="Symbol">}</a> <a id="2168" class="Symbol">(</a><a id="2169" href="Categories.Category.Extensive.Properties.Distributive.html#2169" class="Bound">g</a> <a id="2171" class="Symbol">:</a> <a id="2173" href="Categories.Category.Extensive.Properties.Distributive.html#2165" class="Bound">D</a> <a id="2175" href="Categories.Category.Core.html#575" class="Field Operator">⇒</a> <a id="2177" href="Categories.Category.Extensive.Properties.Distributive.html#1979" class="Bound">B</a> <a id="2179" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="2181" href="Categories.Category.Extensive.Properties.Distributive.html#1981" class="Bound">C</a><a id="2182" class="Symbol">)</a> <a id="2184" class="Symbol">→</a> <a id="2186" href="Categories.Diagram.Pullback.html#2029" class="Record">Pullback</a> <a id="2195" href="Categories.Category.Extensive.Properties.Distributive.html#764" class="Bound">𝒞</a> <a id="2197" class="Symbol">(</a><a id="2198" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="2201" class="Symbol">{</a><a id="2202" class="Argument">A</a> <a id="2204" class="Symbol">=</a> <a id="2206" href="Categories.Category.Extensive.Properties.Distributive.html#1977" class="Bound">A</a><a id="2207" class="Symbol">}</a> <a id="2209" class="Symbol">{</a><a id="2210" class="Argument">B</a> <a id="2212" class="Symbol">=</a> <a id="2214" href="Categories.Category.Extensive.Properties.Distributive.html#1979" class="Bound">B</a> <a id="2216" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="2218" href="Categories.Category.Extensive.Properties.Distributive.html#1981" class="Bound">C</a><a id="2219" class="Symbol">})</a> <a id="2222" href="Categories.Category.Extensive.Properties.Distributive.html#2169" class="Bound">g</a>
|
||
<a id="2232" href="Categories.Category.Extensive.Properties.Distributive.html#2157" class="Function">pb</a> <a id="2235" href="Categories.Category.Extensive.Properties.Distributive.html#2235" class="Bound">g</a> <a id="2237" class="Symbol">=</a> <a id="2239" class="Keyword">record</a> <a id="2246" class="Symbol">{</a> <a id="2248" href="Categories.Diagram.Pullback.html#2112" class="Field">p₁</a> <a id="2251" class="Symbol">=</a> <a id="2253" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="2256" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator">⁂</a> <a id="2258" href="Categories.Category.Extensive.Properties.Distributive.html#2235" class="Bound">g</a> <a id="2260" class="Symbol">;</a> <a id="2262" href="Categories.Diagram.Pullback.html#2128" class="Field">p₂</a> <a id="2265" class="Symbol">=</a> <a id="2267" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="2270" class="Symbol">;</a> <a id="2272" href="Categories.Diagram.Pullback.html#2144" class="Field">isPullback</a> <a id="2283" class="Symbol">=</a> <a id="2285" class="Keyword">record</a>
|
||
<a id="2302" class="Symbol">{</a> <a id="2304" href="Categories.Diagram.Pullback.html#854" class="Field">commute</a> <a id="2312" class="Symbol">=</a> <a id="2314" href="Categories.Category.BinaryProducts.html#2417" class="Function">π₂∘⁂</a>
|
||
<a id="2329" class="Symbol">;</a> <a id="2331" href="Categories.Diagram.Pullback.html#886" class="Field">universal</a> <a id="2341" class="Symbol">=</a> <a id="2343" class="Symbol">λ</a> <a id="2345" class="Symbol">{</a><a id="2346" href="Categories.Category.Extensive.Properties.Distributive.html#2346" class="Bound">_</a><a id="2347" class="Symbol">}</a> <a id="2349" class="Symbol">{</a><a id="2350" href="Categories.Category.Extensive.Properties.Distributive.html#2350" class="Bound">h₁</a><a id="2352" class="Symbol">}</a> <a id="2354" class="Symbol">{</a><a id="2355" href="Categories.Category.Extensive.Properties.Distributive.html#2355" class="Bound">h₂</a><a id="2357" class="Symbol">}</a> <a id="2359" href="Categories.Category.Extensive.Properties.Distributive.html#2359" class="Bound">H</a> <a id="2361" class="Symbol">→</a> <a id="2363" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="2365" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="2368" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2370" href="Categories.Category.Extensive.Properties.Distributive.html#2350" class="Bound">h₁</a> <a id="2373" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="2375" href="Categories.Category.Extensive.Properties.Distributive.html#2355" class="Bound">h₂</a> <a id="2378" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a>
|
||
<a id="2390" class="Symbol">;</a> <a id="2392" href="Categories.Diagram.Pullback.html#956" class="Field">unique</a> <a id="2399" class="Symbol">=</a> <a id="2401" class="Symbol">λ</a> <a id="2403" class="Symbol">{</a><a id="2404" href="Categories.Category.Extensive.Properties.Distributive.html#2404" class="Bound">X</a><a id="2405" class="Symbol">}</a> <a id="2407" class="Symbol">{</a><a id="2408" href="Categories.Category.Extensive.Properties.Distributive.html#2408" class="Bound">h₁</a><a id="2410" class="Symbol">}</a> <a id="2412" class="Symbol">{</a><a id="2413" href="Categories.Category.Extensive.Properties.Distributive.html#2413" class="Bound">h₂</a><a id="2415" class="Symbol">}</a> <a id="2417" class="Symbol">{</a><a id="2418" href="Categories.Category.Extensive.Properties.Distributive.html#2418" class="Bound">i</a><a id="2419" class="Symbol">}</a> <a id="2421" class="Symbol">{</a><a id="2422" href="Categories.Category.Extensive.Properties.Distributive.html#2422" class="Bound">eq</a><a id="2424" class="Symbol">}</a> <a id="2426" href="Categories.Category.Extensive.Properties.Distributive.html#2426" class="Bound">H1</a> <a id="2429" href="Categories.Category.Extensive.Properties.Distributive.html#2429" class="Bound">H2</a> <a id="2432" class="Symbol">→</a> <a id="2434" href="Relation.Binary.Structures.html#1603" class="Function">sym</a> <a id="2438" class="Symbol">(</a><a id="2439" href="Categories.Object.Product.Core.html#671" class="Function">BP.unique</a> <a id="2449" class="Symbol">(</a><a id="2450" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
||
<a id="2471" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="2474" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2476" href="Categories.Category.Extensive.Properties.Distributive.html#2418" class="Bound">i</a> <a id="2491" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="2495" href="Categories.Category.Core.html#1096" class="Field">identityˡ</a> <a id="2505" href="Categories.Category.Core.html#2837" class="Function Operator">⟩∘⟨refl</a> <a id="2513" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
||
<a id="2530" class="Symbol">((</a><a id="2532" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="2535" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2537" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a><a id="2539" class="Symbol">)</a> <a id="2541" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2543" href="Categories.Category.Extensive.Properties.Distributive.html#2418" class="Bound">i</a><a id="2544" class="Symbol">)</a> <a id="2550" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="2554" href="Categories.Morphism.Reasoning.Core.html#2048" class="Function">pullˡ</a> <a id="2560" href="Categories.Category.BinaryProducts.html#2355" class="Function">π₁∘⁂</a> <a id="2565" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
||
<a id="2581" class="Symbol">(</a><a id="2582" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="2585" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2587" class="Symbol">(</a><a id="2588" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="2591" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator">⁂</a> <a id="2593" href="Categories.Category.Extensive.Properties.Distributive.html#2235" class="Bound">g</a><a id="2594" class="Symbol">)</a> <a id="2596" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2598" href="Categories.Category.Extensive.Properties.Distributive.html#2418" class="Bound">i</a><a id="2599" class="Symbol">)</a> <a id="2601" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2604" href="Categories.Category.Core.html#2734" class="Function Operator">refl⟩∘⟨</a> <a id="2612" href="Categories.Category.Extensive.Properties.Distributive.html#2426" class="Bound">H1</a> <a id="2615" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="2631" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="2634" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2636" href="Categories.Category.Extensive.Properties.Distributive.html#2408" class="Bound">h₁</a> <a id="2651" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a><a id="2652" class="Symbol">)</a> <a id="2654" href="Categories.Category.Extensive.Properties.Distributive.html#2429" class="Bound">H2</a><a id="2656" class="Symbol">)</a>
|
||
<a id="2668" class="Symbol">;</a> <a id="2670" href="Categories.Diagram.Pullback.html#1081" class="Field">p₁∘universal≈h₁</a> <a id="2686" class="Symbol">=</a> <a id="2688" class="Symbol">λ</a> <a id="2690" class="Symbol">{</a><a id="2691" href="Categories.Category.Extensive.Properties.Distributive.html#2691" class="Bound">X</a><a id="2692" class="Symbol">}</a> <a id="2694" class="Symbol">{</a><a id="2695" href="Categories.Category.Extensive.Properties.Distributive.html#2695" class="Bound">h₁</a><a id="2697" class="Symbol">}</a> <a id="2699" class="Symbol">{</a><a id="2700" href="Categories.Category.Extensive.Properties.Distributive.html#2700" class="Bound">h₂</a><a id="2702" class="Symbol">}</a> <a id="2704" class="Symbol">{</a><a id="2705" href="Categories.Category.Extensive.Properties.Distributive.html#2705" class="Bound">eq</a><a id="2707" class="Symbol">}</a> <a id="2709" class="Symbol">→</a> <a id="2711" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a>
|
||
<a id="2731" class="Symbol">(</a><a id="2732" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="2735" href="Categories.Category.BinaryProducts.html#1429" class="Function Operator">⁂</a> <a id="2737" href="Categories.Category.Extensive.Properties.Distributive.html#2235" class="Bound">g</a><a id="2738" class="Symbol">)</a> <a id="2740" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2742" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="2744" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="2747" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2749" href="Categories.Category.Extensive.Properties.Distributive.html#2695" class="Bound">h₁</a> <a id="2752" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="2754" href="Categories.Category.Extensive.Properties.Distributive.html#2700" class="Bound">h₂</a> <a id="2757" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="2759" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2762" href="Categories.Category.BinaryProducts.html#2563" class="Function">⁂∘⟨⟩</a> <a id="2767" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="2783" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="2785" href="Categories.Category.Core.html#630" class="Field">id</a> <a id="2788" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2790" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="2793" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2795" href="Categories.Category.Extensive.Properties.Distributive.html#2695" class="Bound">h₁</a> <a id="2798" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="2800" href="Categories.Category.Extensive.Properties.Distributive.html#2235" class="Bound">g</a> <a id="2802" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2804" href="Categories.Category.Extensive.Properties.Distributive.html#2700" class="Bound">h₂</a> <a id="2807" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="2811" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2814" href="Categories.Category.BinaryProducts.html#1842" class="Function">⟨⟩-congʳ</a> <a id="2823" href="Categories.Category.Core.html#1096" class="Field">identityˡ</a> <a id="2833" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="2849" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="2851" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="2854" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2856" href="Categories.Category.Extensive.Properties.Distributive.html#2695" class="Bound">h₁</a> <a id="2859" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="2861" href="Categories.Category.Extensive.Properties.Distributive.html#2235" class="Bound">g</a> <a id="2863" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2865" href="Categories.Category.Extensive.Properties.Distributive.html#2700" class="Bound">h₂</a> <a id="2868" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="2877" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">≈˘⟨</a> <a id="2881" href="Categories.Category.BinaryProducts.html#1927" class="Function">⟨⟩-congˡ</a> <a id="2890" href="Categories.Category.Extensive.Properties.Distributive.html#2705" class="Bound">eq</a> <a id="2893" href="Relation.Binary.Reasoning.Setoid.html#1162" class="Function">⟩</a>
|
||
<a id="2909" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟨</a> <a id="2911" href="Categories.Object.Product.Core.html#526" class="Function">π₁</a> <a id="2914" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2916" href="Categories.Category.Extensive.Properties.Distributive.html#2695" class="Bound">h₁</a> <a id="2919" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">,</a> <a id="2921" href="Categories.Object.Product.Core.html#546" class="Function">π₂</a> <a id="2924" href="Categories.Category.Core.html#656" class="Field Operator">∘</a> <a id="2926" href="Categories.Category.Extensive.Properties.Distributive.html#2695" class="Bound">h₁</a> <a id="2929" href="Categories.Category.BinaryProducts.html#1360" class="Function Operator">⟩</a> <a id="2937" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">≈⟨</a> <a id="2940" href="Categories.Object.Product.Core.html#739" class="Function">g-η</a> <a id="2944" href="Relation.Binary.Reasoning.Setoid.html#1061" class="Function">⟩</a>
|
||
<a id="2960" href="Categories.Category.Extensive.Properties.Distributive.html#2695" class="Bound">h₁</a> <a id="2988" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a>
|
||
<a id="3000" class="Symbol">;</a> <a id="3002" href="Categories.Diagram.Pullback.html#1179" class="Field">p₂∘universal≈h₂</a> <a id="3018" class="Symbol">=</a> <a id="3020" href="Categories.Object.Product.Core.html#637" class="Function">project₂</a>
|
||
<a id="3039" class="Symbol">}</a> <a id="3041" class="Symbol">}</a>
|
||
|
||
<a id="3060" class="Comment">-- by the diagram we get the canonical distributivity (iso-)morphism</a>
|
||
<a id="3137" href="Categories.Category.Extensive.Properties.Distributive.html#3137" class="Function">distrib</a> <a id="3145" class="Symbol">:</a> <a id="3147" class="Symbol">(</a><a id="3148" href="Categories.Category.Extensive.Properties.Distributive.html#1977" class="Bound">A</a> <a id="3150" href="Categories.Category.BinaryProducts.html#1017" class="Function Operator">×</a> <a id="3152" href="Categories.Category.Extensive.Properties.Distributive.html#1979" class="Bound">B</a><a id="3153" class="Symbol">)</a> <a id="3155" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="3157" class="Symbol">(</a><a id="3158" href="Categories.Category.Extensive.Properties.Distributive.html#1977" class="Bound">A</a> <a id="3160" href="Categories.Category.BinaryProducts.html#1017" class="Function Operator">×</a> <a id="3162" href="Categories.Category.Extensive.Properties.Distributive.html#1981" class="Bound">C</a><a id="3163" class="Symbol">)</a> <a id="3165" href="Categories.Morphism.html#1958" class="Record Operator">≅</a> <a id="3167" href="Categories.Category.Extensive.Properties.Distributive.html#1977" class="Bound">A</a> <a id="3169" href="Categories.Category.BinaryProducts.html#1017" class="Function Operator">×</a> <a id="3171" class="Symbol">(</a><a id="3172" href="Categories.Category.Extensive.Properties.Distributive.html#1979" class="Bound">B</a> <a id="3174" href="Categories.Category.Cocartesian.html#1549" class="Function Operator">+</a> <a id="3176" href="Categories.Category.Extensive.Properties.Distributive.html#1981" class="Bound">C</a><a id="3177" class="Symbol">)</a>
|
||
<a id="3187" href="Categories.Category.Extensive.Properties.Distributive.html#3137" class="Function">distrib</a> <a id="3195" class="Symbol">=</a> <a id="3197" href="Categories.Object.Coproduct.html#2465" class="Function">CP.up-to-iso</a> <a id="3210" href="Categories.Category.Extensive.Properties.Distributive.html#764" class="Bound">𝒞</a>
|
||
<a id="3222" href="Categories.Category.Cocartesian.html#1450" class="Function">coproduct</a>
|
||
<a id="3242" class="Symbol">(</a><a id="3243" href="Categories.Object.Coproduct.html#1629" class="Function">IsCoproduct⇒Coproduct</a> <a id="3265" href="Categories.Category.Extensive.Properties.Distributive.html#764" class="Bound">𝒞</a> <a id="3267" class="Symbol">(</a><a id="3268" href="Categories.Category.Extensive.html#1844" class="Function">pullback-of-cp-is-cp'</a> <a id="3290" class="Symbol">(</a><a id="3291" href="Categories.Category.Extensive.Properties.Distributive.html#2157" class="Function">pb</a> <a id="3294" href="Categories.Object.Coproduct.html#492" class="Function">i₁</a><a id="3296" class="Symbol">)</a> <a id="3298" class="Symbol">(</a><a id="3299" href="Categories.Category.Extensive.Properties.Distributive.html#2157" class="Function">pb</a> <a id="3302" href="Categories.Object.Coproduct.html#512" class="Function">i₂</a><a id="3304" class="Symbol">)))</a>
|
||
<a id="3316" class="Keyword">module</a> <a id="3323" href="Categories.Category.Extensive.Properties.Distributive.html#3323" class="Module">distrib</a> <a id="3332" class="Symbol">=</a> <a id="3334" href="Categories.Morphism.html#1958" class="Module Operator">_≅_</a> <a id="3338" href="Categories.Category.Extensive.Properties.Distributive.html#3137" class="Function">distrib</a>
|
||
</pre></body></html> |