The usual way of getting a category of metric spaces is to take metric spaces as objects, and the *nonexpansive* maps (ie, functions $f : A \to B$ such that $d\_B(f(a), f(a')) \leq d\_A(a, a')$) as morphisms. 


However, for my purposes I'd like to use the Banach fixed point theorem to get a category with a trace structure or Conway operators on it, which means I want to consider the contraction mappings on nonempty metric spaces -- that is, there should be $q < 1$ for each mapping $f$ such that $d\_B(f(a), f(a')) \leq q \cdot d\_A(a, a')$. 


But nonempty metric spaces and contraction mappings don't form a category, since the identity function is not a contraction map! Is there some way of defining this kind of setup as a category? I'm happy to play games with the metrics (e.g., use ultrametrics, but bounds on them, that sort of thing), if it helps.



"Category" of Nonempty Metric Spaces and Contractive Maps?
Presumably you don't want to allow arbitrary non-expansive maps, otherwise you could simply take that.


One thing that you could do artificially is to take the subcategory of "metric spaces + nonexpansive maps" generated by the strict contractions. This is a bit like adding the unit in to a non-unital ring. That may seem a little forced, though.


This sort of thing is also encountered in two other situations: Hilbert-Schmidt operators on Hilbert spaces, and cobordisms between manifolds (Stolz and Teichner have, at one time, needed something like this, I vaguely recall). One solution, that I think comes from those areas, is to use the idea of a "length" of a morphism. In this case, the length of a morphism would be its contraction factor. Morphisms of length 0 have to be the identity (or an isometric isomorphism, if you don't want to be too [evil](http://ncatlab.org/nlab/show/evil)).


Perhaps you could clarify exactly which nonexpansive maps you wish to disallow?


