[TYPES] [newbie] is {initial, terminal} object the identity for {coproduct, product}?

wagnerdm@seas.upenn.edu wagnerdm at seas.upenn.edu
Tue Aug 31 22:31:36 EDT 2010


Quoting Larry Evans <cppljevans at suddenlink.net>:

> Define + as the coproduct operator,
>   IOW, X+Y is the coproduct of X and Y for some category C.
> Define * as the product operator,
>   IOW  X*Y is the product of X and Y for some category C.
> Define 0 as the initial object of C.
> Define 1 as the terminal object of C.

Being completely careful here, we must observe that if we view + as an  
operator, then X+Y is merely picking out one of many possible  
coproducts of X and Y. (Of course, any other coproducts that exist are  
isomorphic.) We must make a similar caveat for *, 0, and 1 (which are  
particular initial and terminal objects, though again unique up to  
isomorphism).

> Is it true that, for all objects, X in C:
>
>   X+0 = X
>   0+X = X
>   X*1 = X
>   1*X = X

Then, here, we must take equality as isomorphism, of course. It's  
pretty straightforward to show that X is *a* coproduct of X and 0 --  
just take id : X -> X and the unique arrow i : 0 -> X as the  
injections. Therefore X is isomorphic to whatever object X+0 happens  
to be. The remaining equations follow by symmetry and duality.

> Also, what's X*0 and X+1?

I wasn't able to come up with a more edifying description of these  
objects than simply expanding the definitions. Perhaps somebody else  
can come up with some further property of X*0/X+1 or show that there  
isn't anything additional we can assume...?

~d


More information about the Types-list mailing list