# Product of Chain Complexes

At the moment there is not an '*' function for chain complexes. (although there is for FiniteSimplicialComplex). It would be good to add this function directly to ChainComplex.

.

 ```(1) -> p1:List(List(NNI)) := [[1::NNI,2::NNI]] (1) [[1, 2]] Type: List(List(NonNegativeInteger)) (2) -> p2:List(List(NNI)) := [[1::NNI,2::NNI]] (2) [[1, 2]] Type: List(List(NonNegativeInteger)) (3) -> ASIMP := FiniteSimplicialComplex(Integer) (3) FiniteSimplicialComplex(Integer) Type: Type (4) -> c1 := simplicialComplex([],2,p1)\$ASIMP (4) points 1..2 (1, 2) Type: FiniteSimplicialComplex(Integer) (5) -> c2 := simplicialComplex([],2,p2)\$ASIMP (5) points 1..2 (1, 2) Type: FiniteSimplicialComplex(Integer) (6) -> c3 := product(c1,c2) (6) points 1..4 (1, 2, 4) (1, 3, 4) Type: FiniteSimplicialComplex(Integer) (7) -> chain c1 + 1 + (7) [0 0], | |, [] +- 1+ Type: ChainComplex (8) -> chain c2 + 1 + (8) [0 0], | |, [] +- 1+ Type: ChainComplex (9) -> chain c3 + 1 0 + + 1 1 1 0 0 + | | | | | 0 1 | |- 1 0 0 1 0 | | | ++ (9) [0 0 0 0], | |, |- 1 - 1|, || | 0 - 1 0 0 1 | | | ++ | | | 1 0 | + 0 0 - 1 - 1 - 1+ | | + 0 1 + Type: ChainComplex (10) -> ```