A rig is an algebraic object with multiplication and addition, such that multiplication distributes over addition and addition is commutative. However, instead of requiring that the set forms an abelian group under addition, we require only that it forms an abelian monoid. A commutative rig is a rig in which multiplication induces an abelian monoid.


A distributive category is a small category with finite products and coproducts, which I'll denote \* and + respectively, such that the canonical morphism X \* Y + X \* Z \rightarrow X \* (Y+Z) is an isomorphism. Essentially, taking products distributes over taking coproducts.


There's an apparent formal similarity between the definitions, and in fact you can get a commutative rig out of a distributive category C by taking the objects of the rig to be isomorphism classes of objects in the category (equivalently, considering the skeletal category) and letting coproducts correspond to addition and products to multiplication. For instance, if you start with the category of finite sets, you can skeletonize to obtain a commutative rig isomorphic to the rig of natural numbers.


So the question is, does every commutative rig arise this way from some distributive category? I suspect the answer is "no," and I can even think of some likely counterexamples (the nonnegative real numbers, Z), but I don't see an obvious way to prove that they are counterexamples.


Supposing that my hunch is correct, is there a nice way to classify the rigs that do arise in this manner? Is there a way to classify the commutative rings that arise when you add negatives to these rigs (analogously to the Grothendieck group)?



Which commutative rigs arise from a distributive category?
No commutative rig with a nontrivial solution to x + y = 0 (in particular, no nonzero ring) can arise from a distributive category. I believe Schanuel observes this near the beginning of one of his papers on Euler characteristics.


The proof is simple. Suppose C is a distributive category and R is its associated commutative rig. Suppose x + y = 0 for some x, y in R. Note that 0 in R is the isomorphism class of the initial object **0** of C, since the latter is obviously an additive unit. Then there are objects X and Y in C and an isomorphism X ∐ Y -> **0**. In other words, for every object Z of C, • = Hom(**0**, Z) = Hom(X ∐ Y, Z) = Hom(X, Z) × Hom(Y, Z), and this can only happen when Hom(X, Z) = Hom(Y, Z) = •, so X and Y are also initial objects and thus x = y = 0.


Of course, group completing the rig you get from a category is one way around this. Alternatively you can work in some kind of homotopical setting, e.g., finite CW complexes, and replace the condition about coproducts with one about homotopy pushouts. Either way, you have to define the ring in such a way that its elements are not isomorphism classes of objects, but in the latter case you can at least find representatives in the category for every ring element.


