<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>Comments on: “Category Theory for Programmers”</title>
	<atom:link href="http://artent.net/2020/07/14/category-theory-for-programmers/feed/" rel="self" type="application/rss+xml" />
	<link>http://artent.net/2020/07/14/category-theory-for-programmers/</link>
	<description>We&#039;re blogging machines!</description>
	<lastBuildDate>Wed, 15 Jan 2025 16:08:06 +0000</lastBuildDate>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.0</generator>
	<item>
		<title>By: hundalhh</title>
		<link>http://artent.net/2020/07/14/category-theory-for-programmers/#comment-44933</link>
		<dc:creator><![CDATA[hundalhh]]></dc:creator>
		<pubDate>Tue, 14 Jul 2020 15:20:45 +0000</pubDate>
		<guid isPermaLink="false">http://artent.net/?p=2926#comment-44933</guid>
		<description><![CDATA[On reddit, someone pointed out that you can always find an arrow from (A*B)+(A*C) to A*(B+C).  Here is a proof.

Def: If X+Y is the coproduct of X and Y, let inj(X, X+Y) and inj(Y,X+Y) be the associated injection arrows.  

Def: If X*Y is the product of X and Y, let pro(X*Y,X) and pro(X*Y, Y) be the associated projection arrows.  

Def: If aXY is an arrow from X to Y and aYZ is an arrow from Y to Z, then let 

comp(aYZ, aXY) 

be the composition of aYZ and aXY.   comp(aYZ, aXY) is an arrow from X to Z. 


Notation: If you have two arrows  f:Z-&gt;X, and g:Z-&gt;Y, the let &lt;f,g&gt; be the unique arrow from Z to X*Y such that   

comp( pro(X*Y,X) , &lt;f,g&gt; ) = f and 
comp( pro(X*Y,Y) , &lt;f,g&gt; ) = g.   (The existence of &lt;f,g&gt; comes from the definition of X*Y.)

Notation: If you have two arrows  f:X-&gt;Z, and g:Y-&gt;Z, the let [f,g] be the unique arrow from X+Y to Z such that   

comp( [f,g], inj(X,X+Y) ) = f and 
comp( [f,g], inj(Y,X+Y) ) = g.   (The existence of [f,g] comes from the definition of X+Y.)




1)  Let a_1 = comp( inj(B, B+C), pro(A*B, B).  a_1: A*B -&gt; B+C.
2)  Let a_2 = comp( inj(B, B+C), pro(A*C, C).  a_2: A*C -&gt; B+C.
3)  Let a_3 = [a_1, a_2].                 a_3:(A*B)+(A*C) -&gt; B+C.
4)  Let a_4 = [pro(A*B,A), pro(A*C,A)].   a_4:(A*B)+(A*C) -&gt; A.
5)  Let a_5 = &lt;a_3, a_4&gt;.                 a_5:(A*B)+(A*C) -&gt; A*(B+C).

a_5 is jagr2808&#039;s arrow.


(I am not a category theorist, so this notation may be totally non-standard, or maybe I saw it somewhere.)]]></description>
		<content:encoded><![CDATA[<p>On reddit, someone pointed out that you can always find an arrow from (A*B)+(A*C) to A*(B+C).  Here is a proof.</p>
<p>Def: If X+Y is the coproduct of X and Y, let inj(X, X+Y) and inj(Y,X+Y) be the associated injection arrows.  </p>
<p>Def: If X*Y is the product of X and Y, let pro(X*Y,X) and pro(X*Y, Y) be the associated projection arrows.  </p>
<p>Def: If aXY is an arrow from X to Y and aYZ is an arrow from Y to Z, then let </p>
<p>comp(aYZ, aXY) </p>
<p>be the composition of aYZ and aXY.   comp(aYZ, aXY) is an arrow from X to Z. </p>
<p>Notation: If you have two arrows  f:Z->X, and g:Z->Y, the let <f ,g> be the unique arrow from Z to X*Y such that   </p>
<p>comp( pro(X*Y,X) , </f><f ,g> ) = f and<br />
comp( pro(X*Y,Y) , </f><f ,g> ) = g.   (The existence of </f><f ,g> comes from the definition of X*Y.)</p>
<p>Notation: If you have two arrows  f:X->Z, and g:Y->Z, the let [f,g] be the unique arrow from X+Y to Z such that   </p>
<p>comp( [f,g], inj(X,X+Y) ) = f and<br />
comp( [f,g], inj(Y,X+Y) ) = g.   (The existence of [f,g] comes from the definition of X+Y.)</p>
<p>1)  Let a_1 = comp( inj(B, B+C), pro(A*B, B).  a_1: A*B -> B+C.<br />
2)  Let a_2 = comp( inj(B, B+C), pro(A*C, C).  a_2: A*C -> B+C.<br />
3)  Let a_3 = [a_1, a_2].                 a_3:(A*B)+(A*C) -> B+C.<br />
4)  Let a_4 = [pro(A*B,A), pro(A*C,A)].   a_4:(A*B)+(A*C) -> A.<br />
5)  Let a_5 = <a_3 , a_4>.                 a_5:(A*B)+(A*C) -> A*(B+C).</p>
<p>a_5 is jagr2808&#8217;s arrow.</p>
<p>(I am not a category theorist, so this notation may be totally non-standard, or maybe I saw it somewhere.)</a_3></f></p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

 Served from: artent.net @ 2026-04-16 07:13:18 by W3 Total Cache -->