Dear forum members,
A few weeks ago I announced I was going to post some results I had writing some gap functions that permit to represent "chain complexes". First of all I have to make you aware that all this is very inuitive and there are no proofs of my assertions whatsoever. I admit the programming style is clumsy and not optimal.
Moreover the notion of "chain complex" is rather vague but can be seen as
purely algebraically abstract.

The idea of a chain complex is based on the notion of n-skeleton. For each object in this category, there is a list of skeletons built one upon the other. Here is
how a chain complex is built:
First there a set of vertices is chosen. For this 0-skeleton it does not matter
what exactly a set contains, only it's number of elements is important. The
command to create a 0-skeleton is simply:
ChainComplex(0, set), where the first argument is the dimension, and the
second argument is any finite set. Example
c0:=ChainComplex(0, [1..6]); #line 1 The command for 0- and 1- skeletons differ from those of higher dimensions as will be clear in the following. As an example of the creation of a 1-skeleton we could
enter
    c1:=ChainComplex(1, c0,
[[1,2],[2,3],[3,1],[4,5],[5,6],[6,4],[1,4],[2,5],[3,6]]);      #line 2
The arguments are the dimension, the skeleton of dimension 0, and a set of
(order independent) order independent defind by a couple of vertices respectively. A closer inspection shows that these edges form two triangles with the respective
vertices joined: The 1-skeleton of a prism.

From dimension 2 on, the command ChainComplex is standard of the form
    ChainComplex(n, c, list),
where n is the dimension, c is a previously defined n-1 skeleton,
and "list" is a set of vectors of the same length, containing coefficients. These
coefficients are associated with objects of the previous skeleton c, the
objects being identified by their position in c. Example based on line 2:
    c2:=ChainComplex(2, c1, [
        [ 1, 0, 0, -1, 0, 0, 1, -1, 0 ], # the face 1,2,5,4
        [ 0, 1, 0, 0, -1, 0, 0, 1, -1 ], # the face 2,3,6,5
        [ 0, 0, 1, 0, 0, -1, -1, 0, 1 ]  # the face 3,1,4,6
] # line 3 This 2-skeleton is built on c1 and defines the three lateral square faces of the prism.

Some of the examples contain a scheme in ASCII characters. In order to distinguish between the labels of vertices and the labels of edges, the vertices are labeled by an asterix followed by a number. The labels of the edges are written on the edges themselves. I don't have examples where the faces needed to be labeled.

I expect to receive your suggestions, comments, questions and recommandations for improvement. I also don't know if it is admissible to add pictures as attachments, I've not seen it been doing
here before, but I'll do it anyway unless somebody complains.

Marc Bogaerts.



_______________________________________________
Forum mailing list
Forum@mail.gap-system.org
http://mail.gap-system.org/mailman/listinfo/forum

Reply via email to