[GAP Forum] Chin Complexes: The Cylinder
Marc Bogaerts
marc.bogaerts at cyclone.be
Mon Jun 21 17:24:53 BST 2010
# The following scheme sketches the 0- ,1- and 2 skeleton of a cyclinder,
# presented as a triangular prism. The vertices are numbered by a label
# preceded by an asterix, the edges are labelled by a number written on it.
#
#
#
# *6
/ | \
# / | \
# 6 | 5
# / | \
# *4---4--- *5
# | | |
# | 9 |
# 7 | 8
# | *3 |
# | / \ |
# | 3 2 |
# |/ \ |
# *1---1--- *2
# First we construct the 0-skeleton consisting of 6 points
c0:=ChainComplex(0,[1..6]);
dim 0:[ 1 .. 6 ]
# Then the 1-skeleton:
c1:=ChainComplex(1,c0,[[1,2],[2,3],[3,1],[4,5],[5,6],[6,4],[4,1],[5,2],[6,3]]);
dim 0:[ 1 .. 6 ]
dim 1:[ [ 1, -1, 0, 0, 0, 0 ], [ 0, 1, -1, 0, 0, 0 ], [ -1, 0, 1, 0, 0,
0 ],
[ 0, 0, 0, 1, -1, 0 ], [ 0, 0, 0, 0, 1, -1 ], [ 0, 0, 0, -1, 0, 1 ],
[ -1, 0, 0, 1, 0, 0 ], [ 0, -1, 0, 0, 1, 0 ], [ 0, 0, -1, 0, 0, 1 ] ]
Basis of 2-cells: [ [ 1, 0, 0, 0, 1, 1, 1, -1, 0 ],
[ 0, 1, 0, 0, -1, 0, 0, 1, -1 ], [ 0, 0, 1, 0, 0, -1, -1, 0, 1 ],
[ 0, 0, 0, 1, 1, 1, 0, 0, 0 ] ]
# Note that the software already indicates 5 independent 1-cycles that serve
# as a basis for all the possible cycles that can be promoted to cells.
# but we're only interested in those square faces which make up the
# open cylinder. In fact, we want for each square face, to find a
combination
# of edges that make up these faces, in such a way that they form a cycle.
# First let's get this set of edges: 1, 8, 4, 7 (the face at the front)
M:=GeneratorsOfBoundaries(0,c1); # a basis for all 1-faces
[ [ 1, -1, 0, 0, 0, 0 ], [ 0, 1, -1, 0, 0, 0 ], [ -1, 0, 1, 0, 0, 0 ], [
0, 0, 0, 1, -1, 0 ], [ 0, 0, 0, 0, 1, -1 ],
[ 0, 0, 0, -1, 0, 1 ], [ -1, 0, 0, 1, 0, 0 ], [ 0, -1, 0, 0, 1, 0 ], [
0, 0, -1, 0, 0, 1 ] ]
u:=[1..9]*0;
[ 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
faces:=[];
[ ]
# the first face with edges numbered 1,8,4,7
u{[1,8,4,7]}:=[a,b,c,d];
[ a, b, c, d ]
# I previously defined a,b,c,d,... as rational indeterminates;
u;
[ a, 0, 0, c, 0, 0, d, b, 0 ]
# in order to have a 1-cycle we must have u*M = 0, so;
u*M;
[ a-d, -a-b, 0, c+d, b-c, 0 ]
# we can chose a=d=1 giving
u{[1,8,4,7]}:=[1,b,c,1];
[ 1, b, c, 1 ]
u*M;
[ 0, -b-1, 0, c+1, b-c, 0 ]
# so b=-1, and c=-1 :
u{[1,8,4,7]}:=[1,-1,-1,1];
[ 1, -1, -1, 1 ]
u*M;
[ 0, 0, 0, 0, 0, 0 ]
# ok, we found the right combination for the first 2-face
u;
[ 1, 0, 0, -1, 0, 0, 1, -1, 0 ]
Add(faces,u); # two more to go
# next for the face 2,8,5,9:
u:=[1..9]*0;
[ 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
u{[2,8,5,9]}:=[a,b,c,d];
[ a, b, c, d ]
u;
[ 0, a, 0, 0, c, 0, 0, b, d ]
u*M;
[ 0, a-b, -a-d, 0, b+c, -c+d ]
u{[2,8,5,9]}:=[1,1,-1,-1];
[ 1, 1, -1, -1 ]
u*M;
[ 0, 0, 0, 0, 0, 0 ]
u;
[ 0, 1, 0, 0, -1, 0, 0, 1, -1 ]
Add(faces,u); # one more to go
faces;
[ [ 1, 0, 0, -1, 0, 0, 1, -1, 0 ], [ 0, 1, 0, 0, -1, 0, 0, 1, -1 ] ]
u:=[1..9]*0;
[ 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
u{[3,9,6,7]}:=[a,b,c,d];
[ a, b, c, d ]
u;
[ 0, 0, a, 0, 0, c, d, 0, b ]
u{[3,9,6,7]}:=[1,1,-1,-1];
[ 1, 1, -1, -1 ]
u*M;
[ 0, 0, 0, 0, 0, 0 ]
u;
[ 0, 0, 1, 0, 0, -1, -1, 0, 1 ]
Add(faces,u);
faces;
[ [ 1, 0, 0, -1, 0, 0, 1, -1, 0 ], [ 0, 1, 0, 0, -1, 0, 0, 1, -1 ], [ 0,
0, 1, 0, 0, -1, -1, 0, 1 ] ]
# We can now define the open ended cylinder as a chain complex:
c2:=ChainComplex(2,c1,faces);
dim 0:[ 1 .. 6 ]
dim 1:[ [ 1, -1, 0, 0, 0, 0 ], [ 0, 1, -1, 0, 0, 0 ], [ -1, 0, 1, 0, 0,
0 ], [ 0, 0, 0, 1, -1, 0 ], [ 0, 0, 0, 0, 1, -1 ],
[ 0, 0, 0, -1, 0, 1 ], [ -1, 0, 0, 1, 0, 0 ], [ 0, -1, 0, 0, 1, 0 ], [
0, 0, -1, 0, 0, 1 ] ]
dim 2:[ [ 1, 0, 0, -1, 0, 0, 1, -1, 0 ], [ 0, 1, 0, 0, -1, 0, 0, 1, -1
], [ 0, 0, 1, 0, 0, -1, -1, 0, 1 ] ]
Basis of 3-cells: [ ]
HomologyGroups(c2);
[ [ 0 ], [ 0 ], [ ] ]
# homotopy type of a circle confirmed
SingularFaces(c2);
[ [ 1, -1, 0, 0, 0, 0 ], [ 0, 1, -1, 0, 0, 0 ], [ -1, 0, 1, 0, 0, 0 ], [
0, 0, 0, 1, -1, 0 ], [ 0, 0, 0, 0, 1, -1 ],
[ 0, 0, 0, -1, 0, 1 ] ]
NullspaceIntMat(last);
[ [ 1, 1, 1, 0, 0, 0 ], [ 0, 0, 0, 1, 1, 1 ] ]
# The border has two components.
# This completes the construction of the open ended cylinder. Lets fill
up one triangle:
u:=[1..9]*0;
[ 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
u{[1,2,3]}:=[a,b,c];
[ a, b, c ]
u;
[ a, b, c, 0, 0, 0, 0, 0, 0 ]
u*M;
[ a-c, -a+b, -b+c, 0, 0, 0 ]
u{[1,2,3]}:=[1,1,1];
[ 1, 1, 1 ]
u;
[ 1, 1, 1, 0, 0, 0, 0, 0, 0 ]
Add(faces,u);
faces;
[ [ 1, 0, 0, -1, 0, 0, 1, -1, 0 ], [ 0, 1, 0, 0, -1, 0, 0, 1, -1 ], [ 0,
0, 1, 0, 0, -1, -1, 0, 1 ],
[ 1, 1, 1, 0, 0, 0, 0, 0, 0 ] ]
c2:=ChainComplex(2,c1,faces);
dim 0:[ 1 .. 6 ]
dim 1:[ [ 1, -1, 0, 0, 0, 0 ], [ 0, 1, -1, 0, 0, 0 ], [ -1, 0, 1, 0, 0,
0 ], [ 0, 0, 0, 1, -1, 0 ], [ 0, 0, 0, 0, 1, -1 ],
[ 0, 0, 0, -1, 0, 1 ], [ -1, 0, 0, 1, 0, 0 ], [ 0, -1, 0, 0, 1, 0 ], [
0, 0, -1, 0, 0, 1 ] ]
dim 2:[ [ 1, 0, 0, -1, 0, 0, 1, -1, 0 ], [ 0, 1, 0, 0, -1, 0, 0, 1, -1
], [ 0, 0, 1, 0, 0, -1, -1, 0, 1 ],
[ 1, 1, 1, 0, 0, 0, 0, 0, 0 ] ]
Basis of 3-cells: [ ]
SingularFaces(c2);
[ [ 0, 0, 0, 1, -1, 0 ], [ 0, 0, 0, 0, 1, -1 ], [ 0, 0, 0, -1, 0, 1 ] ]
NullspaceIntMat(last);
[ [ 1, 1, 1 ] ]
# only one border component
HomologyGroups(c2);
[ [ 0 ], [ ], [ ] ]
# contractible
# Now we fill up the other end:
u:=[1..9]*0;
[ 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
u{[4,5,6]}:=[a,b,c];
[ a, b, c ]
u*M;
[ 0, 0, 0, a-c, -a+b, -b+c ]
u{[4,5,6]}:=[1,1,1];
[ 1, 1, 1 ]
u;
[ 0, 0, 0, 1, 1, 1, 0, 0, 0 ]
Add(faces,u);
faces;
[ [ 1, 0, 0, -1, 0, 0, 1, -1, 0 ], [ 0, 1, 0, 0, -1, 0, 0, 1, -1 ], [ 0,
0, 1, 0, 0, -1, -1, 0, 1 ],
[ 1, 1, 1, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 1, 1, 0, 0, 0 ] ]
c2:=ChainComplex(2,c1,faces);
dim 0:[ 1 .. 6 ]
dim 1:[ [ 1, -1, 0, 0, 0, 0 ], [ 0, 1, -1, 0, 0, 0 ], [ -1, 0, 1, 0, 0,
0 ], [ 0, 0, 0, 1, -1, 0 ], [ 0, 0, 0, 0, 1, -1 ],
[ 0, 0, 0, -1, 0, 1 ], [ -1, 0, 0, 1, 0, 0 ], [ 0, -1, 0, 0, 1, 0 ], [
0, 0, -1, 0, 0, 1 ] ]
dim 2:[ [ 1, 0, 0, -1, 0, 0, 1, -1, 0 ], [ 0, 1, 0, 0, -1, 0, 0, 1, -1
], [ 0, 0, 1, 0, 0, -1, -1, 0, 1 ],
[ 1, 1, 1, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 1, 1, 0, 0, 0 ] ]
Basis of 3-cells: [ [ 1, 1, 1, -1, 1 ] ]
# Mark that the 2-cells now form a 2-cycle.
HomologyGroups(c2);
[ [ 0 ], [ ], [ 0 ] ]
# homotopytype of the 2-sphere confirmed
SingularFaces(c2);
[ ]
# no borders
More information about the Forum
mailing list