You are right to think it is puzzling! I am biased but I am of the opinion there are very deep phenomena lurking under these seemingly unimportant oddities.
To the a first degree the answer mostly boils down to the assymmetry in Set, the category of sets. Set certainly doesn't treat limits and colimits the same, so concepts built on top of it (like limits and colimits for ordinary categories) inherit its assymmetry.
As a very concrete instance of the assymmetry in Set: The initial object 0 in Set is the empty set, which has a unique map to any other set (the empty map). The terminal object 1 in set is the set containing one element. Every set X has a unique map to 1.
What about the other way around? Given a set X, what about the maps 1-> X? They exactly correspond to elements x of X ! Cool! Then what about maps X -> 0 ? Ah. Not so interesting. There are none, unless X=0 is empty.
As pointed out by tailcalled, the opposite category of Set can be described as the category of complete atomic boolean algebras, a quite interesting category unto itself... but not equivalent to Set.
Cool, that's all very good but it doesn't explain why Set was assymetric in the first place.
Is this intrinsic? There are certainly natural categories that are equivalent to their opposites (the category of relations is a good examples).
To really understand what's going on here we need to dig deeper. We need to step outside the traditional framework of set theory, and re-examine the foundations of type theory. If we do, we will find that even the very notion of category itself has an underlying bias, a broken duality. To be continued...
I think exponentials and coexponentials are relevant here, since they are good at shuffling things back and forth between the sides of morphisms, which matters for limits and colimits as they are adjunctions (and a particularly nice kind of adjunction, at that).
I wonder if it is related to exponentials vs coexponentials, since categories with both exponentials and coexponentials are posetal. I don't have any particular argument for how that'd work, though.
Do you have a reference for this statement? I suppose it is related to Joyal's result that a Boolean category is always a poset, preventing a naive categorical analysis of classical proof theory.
I can't remember the entire proof, and maybe I misstated it, but IIRC part of the logic goes as follows:
With exponentials, you can prove that 0 x A ≈ 0, because any morphism 0 x A -> B curries into 0 -> B^A, of which by the universal property of 0, there's only one.
Similarly, with coexponentials, you can prove that 1 + A ≈ 1, because any morphism A -> B+1 cocurries into A-B -> 1, of which there is only one.
So this at least proves that all the objects built out of 0, 1, x and + are trivial. I think there was something funky where you made use of the fact that A -> B can be expressed as 1-(B^A) -> 0 and 1 -> 0^(B-A) to further prove all morphisms trivial, but I can't remember it exactly.
Ahh, now I've got it:
First, each morphism f : A -> 0 induces a unique morphism f . pr1 : A x 0 -> 0. Proof: suppose f . pr1 = g . pr1. Then we have f = f . pr1 . (id, f) = g . pr1 . (id, f) = g.
Corollary: if you have exponential objects, then if you have any f : A -> 0, then A ≈ 0, because there's only one morphism 0 -> 0^A.
But, if you have coexponential objects, any hom set A -> B can instead be expressed as a hom set A-B -> 0. This shows A-B ≈ 0, and also all homs are equal.
Not a category theorist, I only understood this post through set theory analogies, so I have no idea what you just said.
Do you know programming? A coexponential is intuitively roughly speaking an together with a return position where you can place a . It's how function calls are implemented in computers, as morphisms , corresponding to the fact that you have the parameters and the call stack .
(More formally: given a coproduct (~disjoint union) , a coexponential is defined based on being equivalent to .)
OK, that explanation helped me understand coexponentials a bit but I'm unsure how it's relevant to the assymetry between the examples Alok gave.
Trivially, a co-X in C^op is the same but flipped as an X in C.
Then as you know, Stone duality says that CABA = Set^op.
So a co-X in CABA is the same but flipped as an X in Set.
(I think it works constructively too if one replaces Boolean with Heyting?)
The 2 Aspects
There’s 2 Aspects to things in general. I will call them Mapping Out and Mapping In, in titlecase so you know they’re distinct concepts.
warmup:
0 -> 1
Here, 0 is an initial object and 1 is a terminal object. 0 is Mapped Out of because it’s
0 ->
and not-> 0
. 1 is Mapped Into because it’s-> 1
and not1 ->
. The defining property of an initial object is that it has 1 map to every other object. The defining property of a terminal object (1) is that it has 1 map from every other object.Broken Symmetries
a AND (NOT a) = false
is just the law of noncontradiction. A simple theorem (unless you’re Graham Priest), but the dual statementa OR (NOT a) = true
is the Law of Excluded Middle, which can be derived from a form of the Axiom of Choice, and in particular is not constructively valid.epimorphism too large to form set
gives a lot of stuff. Nothing similar formonomorphism too large to form set
The following is from Paul Garrett, Section 2: