# Create a poset in GAP whose order complex is a torus # To run, "Read" the file into an XGAP or Gap.app session. # The poset is the face lattice of a regular CW subdivision of the torus # Create a poset object P:=GraphicPoset("Pic", 600, 400); # Gap internally numbers levels backwards from what is natural for us CreateLevel(P, 0, "2"); CreateLevel(P, 1, "1"); CreateLevel(P, 2, "0"); C2:=[]; C1:=[]; C0:=[]; # Create elements corresponding to 0-cells and 2-cells for i in [1..4] do xpos:=100+70*i; C2[i]:=Vertex(P, 0, rec(levelparam:=0,label:=[CHAR_INT(64+i)],x:=xpos)); C0[i]:=Vertex(P, 0, rec(levelparam:=2,label:=[CHAR_INT(96+i)],x:=xpos)); od; # Create elements corresponding to 1-cells for i in [1..8] do xpos:=50+50*i; C1[i]:=Vertex(P, 0, rec(levelparam:=1,label:=String(i),x:=xpos)); od; # Add cover relations between 1-cells and 2-cells Edge(P, C2[1], C1[1]); Edge(P, C2[1], C1[2]); Edge(P, C2[1], C1[3]); Edge(P, C2[1], C1[4]); Edge(P, C2[2], C1[1]); Edge(P, C2[2], C1[5]); Edge(P, C2[2], C1[3]); Edge(P, C2[2], C1[7]); Edge(P, C2[3], C1[2]); Edge(P, C2[3], C1[6]); Edge(P, C2[3], C1[4]); Edge(P, C2[3], C1[8]); Edge(P, C2[4], C1[5]); Edge(P, C2[4], C1[6]); Edge(P, C2[4], C1[7]); Edge(P, C2[4], C1[8]); # Add cover relations between 0-cells and 1-cells Edge(P, C1[1], C0[1]); Edge(P, C1[1], C0[2]); Edge(P, C1[2], C0[1]); Edge(P, C1[2], C0[3]); Edge(P, C1[5], C0[1]); Edge(P, C1[5], C0[3]); Edge(P, C1[6], C0[1]); Edge(P, C1[6], C0[2]); Edge(P, C1[3], C0[3]); Edge(P, C1[3], C0[4]); Edge(P, C1[4], C0[2]); Edge(P, C1[4], C0[4]); Edge(P, C1[7], C0[2]); Edge(P, C1[7], C0[4]); Edge(P, C1[8], C0[3]); Edge(P, C1[8], C0[4]);