DiagonalApproximation(X):: RegCWComplex --> RegCWMap, RegCWMap

Inputs a regular CW-complex X and outputs a pair [p,\iota] of maps of CW-complexes. The map p\colon X^\Delta \rightarrow X will often be a homotopy equivalence. This is always the case if X is the CW-space of any pure cubical complex. In general, one can test to see if the induced chain map p_\ast \colon C_\ast(X^\Delta) \rightarrow C_\ast(X) is an isomorphism on integral homology. The second map \iota \colon X^\Delta \hookrightarrow X\times X is an inclusion into the direct product. If p_\ast induces an isomorphism on homology then the chain map \iota_\ast\colon C_\ast(X^\Delta) \rightarrow C_\ast(X\times X) can be used to compute the cup product.