15 | | Edit: this case is actually worse because in the product `L`, the vertices are named using string representations, so there is only one vertex, not four, as there should be. (Each vertex is named `'L1.00000000000000R1.00000000000000'`, and since they all have the same name, they are viewed as the same vertex.) You can avoid this by using `L = K.product(K, rename_vertices=False)`, but then the diagonal map is not defined: it relies on the vertex names coming from `rename_vertices=True`. |

| 13 | Edit: this case is actually worse because in the product `L`, the vertices are named using string representations, so there is only one vertex, not four, as there should be. (Each vertex is named `'L1.00000000000000R1.00000000000000'`, and since they all have the same name, they are viewed as the same vertex.) You can avoid this as follows: |

| 14 | {{{ |

| 15 | sage: K = SimplicialComplex([[1.0 + 2^-52, 1.0]]) |

| 16 | sage: L = K.product(K, rename_vertices=False) |

| 17 | sage: d = Hom(K,L).diagonal_morphism(rename_vertices=False) |

| 18 | sage: d.associated_chain_complex_morphism() |

| 19 | --------------------------------------------------------------------------- |

| 20 | ValueError Traceback (most recent call last) |

| 21 | ... |

| 22 | ValueError: matrices must define a chain complex morphism |

| 23 | }}} |

| 24 | Now the names of the vertices cause bad sorting, and so the purported map `d` does not induce a chain map as it should. This is the same problem that arises with other complexes if we don't sort at all. |