CommutativeDiagram( paramap1, paramap2, paramap3, paramap4 )
CommutativeDiagram( paramap1, paramap2, paramap3, paramap4,
                     improvements )
If [ CompositionMaps(paramap2,paramap1 ) =
    CompositionMaps(paramap4,paramap3 ) ]
shall hold, the consistency is checked and the four maps
will be improved according to this condition.
If a record improvements with fields imp1, imp2, imp3, imp4 
(all lists) is entered as parameter, only diagrams containing elements of
impi as positions in the i-th paramap are considered.
CommutativeDiagram returns false if an inconsistency was found,
otherwise a record is returned that contains four lists imp1, ldots,
imp4, where impi is the list of classes where the i-th paramap was
improved.
    gap> map1:= [ [ 1, 2, 3 ], [ 1, 3 ] ];;
    gap> map2:= [ [ 1, 2 ], 1, [ 1, 3 ] ];;
    gap> map3:= [ [ 2, 3 ], 3 ];; map4:= [ , 1, 2, [ 1, 2 ] ];;
    gap> CommutativeDiagram( map1, map2, map3, map4 );
    rec(
      imp1 := [ 2 ],
      imp2 := [ 1 ],
      imp3 := [  ],
      imp4 := [  ] )
    gap> imp:= last;; map1; map2; map3; map4;
    [ [ 1, 2, 3 ], 1 ]
    [ 2, 1, [ 1, 3 ] ]
    [ [ 2, 3 ], 3 ]
    [ , 1, 2, [ 1, 2 ] ]
    gap> CommutativeDiagram( map1, map2, map3, map4, imp );
    rec(
      imp1 := [  ],
      imp2 := [  ],
      imp3 := [  ],
      imp4 := [  ] )
GAP 3.4.4