Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it

1035331 views
1
2
6 Functions and operations for SCSimplicialComplex
3
4
5
6.1 Creating an SCSimplicialComplex object from a facet list
6
7
This section contains functions to generate or to construct new simplicial
8
complexes. Some of them obtain new complexes from existing ones, some
9
generate new complexes from scratch.
10
11
6.1-1 SCFromFacets
12
13
SCFromFacets( facets )  method
14
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
15
otherwise.
16
17
Constructs a simplicial complex object from the given facet list. The facet
18
list facets has to be a duplicate free list (or set) which consists of
19
duplicate free entries, which are in turn lists or sets. For the vertex
20
labels (i. e. the entries of the list items of facets) an ordering via the
21
less-operator has to be defined. Following Section 4.11 of the GAP manual
22
this is the case for objects of the following families: rationals IsRat,
23
cyclotomics IsCyclotomic, finite field elements IsFFE, permutations IsPerm,
24
booleans IsBool, characters IsChar and lists (strings) IsList.
25
26
Internally the vertices are mapped to the standard labeling 1..n, where n is
27
the number of vertices of the complex and the vertex labels of the original
28
complex are stored in the property ''VertexLabels'', see SCLabels (4.2-3)
29
and the SCRelabel.. functions like SCRelabel (4.2-6) or SCRelabelStandard
30
(4.2-7).
31
32
 Example 
33
 gap> c:=SCFromFacets([[1,2,5], [1,4,5], [1,4,6], [2,3,5], [3,4,6], [3,5,6]]);
34
 [SimplicialComplex
35
 
36
 Properties known: Dim, FacetsEx, Name, Vertices.
37
 
38
 Name="unnamed complex 9"
39
 Dim=2
40
 
41
 /SimplicialComplex]
42
 gap> c:=SCFromFacets([["a","b","c"], ["a","b",1], ["a","c",1], ["b","c",1]]);
43
 [SimplicialComplex
44
 
45
 Properties known: Dim, FacetsEx, Name, Vertices.
46
 
47
 Name="unnamed complex 10"
48
 Dim=2
49
 
50
 /SimplicialComplex]
51
 
52

53
54
6.1-2 SC
55
56
SC( facets )  method
57
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
58
otherwise.
59
60
A shorter function to create a simplicial complex from a facet list, just
61
calls SCFromFacets (6.1-1)(facets).
62
63
 Example 
64
 gap> c:=SC(Combinations([1..6],5));
65
 [SimplicialComplex
66
 
67
 Properties known: Dim, FacetsEx, Name, Vertices.
68
 
69
 Name="unnamed complex 11"
70
 Dim=4
71
 
72
 /SimplicialComplex]
73
 
74

75
76
6.1-3 SCFromDifferenceCycles
77
78
SCFromDifferenceCycles( diffcycles )  method
79
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
80
otherwise.
81
82
Creates a simplicial complex object from the list of difference cycles
83
provided. If diffcycles is of length 1 the computation is equivalent to the
84
one in SCDifferenceCycleExpand (6.6-8). Otherwise the induced modulus (the
85
sum of all entries of a difference cycle) of all cycles has to be equal and
86
the union of all expanded difference cycles is returned.
87
88
A n-dimensional difference cycle D = (d_1 : ... : d_n+1) induces a simplex ∆
89
= ( v_1 , ... , v_n+1 ) by v_1 = d_1, v_i = v_i-1 + d_i and a cyclic group
90
action by Z_σ where σ = ∑ d_i is the modulus of D. The function returns the
91
Z_σ-orbit of ∆.
92
93
Note that modulo operations in GAP are often a little bit cumbersome, since
94
all integer ranges usually start from 1.
95
96
 Example 
97
 gap> c:=SCFromDifferenceCycles([[1,1,6],[2,3,3]]);;
98
 gap> c.F;
99
 [ 8, 24, 16 ]
100
 gap> c.Homology;
101
 [ [ 0, [ ] ], [ 2, [ ] ], [ 1, [ ] ] ]
102
 gap> c.Chi;
103
 0
104
 gap> c.HasBoundary;
105
 false
106
 gap> SCIsPseudoManifold(c);
107
 true
108
 gap> SCIsManifold(c);
109
 true
110
 
111

112
113
6.1-4 SCFromGenerators
114
115
SCFromGenerators( group, generators )  method
116
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
117
otherwise.
118
119
Constructs a simplicial complex object from the set of generators on which
120
the group group acts, i.e. a complex which has group as a subgroup of the
121
automorphism group and a facet list that consists of the group-orbits
122
specified by the list of representatives passed in generators. Note that
123
group is not stored as an attribute of the resulting complex as it might
124
just be a subgroup of the actual automorphism group. Internally calls Orbits
125
and SCFromFacets (6.1-1).
126
127
 Example 
128
 gap> #group: AGL(1,7) of order 42
129
 gap> G:=Group([(2,6,5,7,3,4),(1,3,5,7,2,4,6)]);;
130
 gap> c:=SCFromGenerators(G,[[ 1, 2, 4 ]]);
131
 [SimplicialComplex
132
 
133
 Properties known: Dim, FacetsEx, Name, Vertices.
134
 
135
 Name="complex from generators under unknown group"
136
 Dim=2
137
 
138
 /SimplicialComplex]
139
 gap> SCLib.DetermineTopologicalType(c);
140
 [SimplicialComplex
141
 
142
 Properties known: BoundaryEx, Dim, FacetsEx, HasBoundary, 
143
 IsPseudoManifold, IsPure, Name, SkelExs[], 
144
 Vertices.
145
 
146
 Name="complex from generators under unknown group"
147
 Dim=2
148
 HasBoundary=false
149
 IsPseudoManifold=true
150
 IsPure=true
151
 
152
 /SimplicialComplex]
153
 
154

155
156
157
6.2 Isomorphism signatures
158
159
This section contains functions to construct simplicial complexes from
160
isomorphism signatures and to compress closed and strongly connected weak
161
pseudomanifolds to strings.
162
163
The isomorphism signature of a closed and strongly connected weak
164
pseudomanifold is a representation which is invariant under relabelings of
165
the underlying complex and thus unique for a combinatorial type, i.e. two
166
complexes are isomorphic iff they have the same isomorphism signature.
167
168
To compute the isomorphism signature of a closed and strongly connected weak
169
pseudomanifold P we have to compute all canonical labelings of P and chose
170
the one that is lexicographically minimal.
171
172
A canonical labeling of P is determined by chosing a facet ∆ ∈ P and a
173
numbering 1, 2, ... , d+1 of the vertices of ∆ (which in turn determines a
174
numbering of the co-dimension one faces of ∆ by identifying each face with
175
its opposite vertex). This numbering can then be uniquely extended to a
176
numbering (and thus a labeling) on all vertices of P by the weak
177
pseudomanifold property: start at face 1 of ∆ and label the opposite vertex
178
of the unique other facet δ meeting face 1 by d+2, go on with face 2 of ∆
179
and so on. After finishing with the first facet we now have a numbering on
180
δ, repeat the procedure for δ, etc. Whenever the opposite vertex of a face
181
is already labeled (and also, if the vertex occurs for the first time) we
182
note this label. Whenever a facet is already visited we skip this step and
183
keep track of the number of skippings between any two newly discovered
184
facets. This results in a sequence of m-1 vertex labels together with m-1
185
skipping numbers (where m denotes the number of facets in P) which then can
186
by encoded by characters via a lookup table.
187
188
Note that there are precisely (d+1)! m canonical labelings we have to check
189
in order to find the lexicographically minimal one. Thus, computing the
190
isomorphism signature of a large or highly dimensional complex can be time
191
consuming. If you are not interested in the isomorphism signature but just
192
in the compressed string representation use SCExportToString (6.2-1) which
193
just computes the first canonical labeling of the complex provided as
194
argument and returns the resulting string.
195
196
Note: Another way of storing and loading complexes is provided by simpcomp's
197
library functionality, see Section 13.1 for details.
198
199
6.2-1 SCExportToString
200
201
SCExportToString( c )  function
202
Returns: string upon success, fail otherwise.
203
204
Computes one string representation of a closed and strongly connected weak
205
pseudomanifold. Compare SCExportIsoSig (6.2-2), which returns the
206
lexicographically minimal string representation.
207
208
 Example 
209
 gap> c:=SCSeriesBdHandleBody(3,9);;
210
 gap> s:=SCExportToString(c); time;
211
 "deffg.h.f.fahaiciai.i.hai.fbgeiagihbhceceba.g.gag"
212
 0
213
 gap> s:=SCExportIsoSig(c); time;
214
 "deefgaf.hbi.gbh.eaiaeaicg.g.ibf.heg.iff.hggcfffgg"
215
 16
216
 
217

218
219
6.2-2 SCExportIsoSig
220
221
SCExportIsoSig( c )  method
222
Returns: string upon success, fail otherwise.
223
224
Computes the isomorphism signature of a closed, strongly connected weak
225
pseudomanifold. The isomorphism signature is stored as an attribute of the
226
complex.
227
228
 Example 
229
 gap> c:=SCSeriesBdHandleBody(3,9);;
230
 gap> s:=SCExportIsoSig(c);
231
 "deefgaf.hbi.gbh.eaiaeaicg.g.ibf.heg.iff.hggcfffgg"
232
 
233

234
235
6.2-3 SCFromIsoSig
236
237
SCFromIsoSig( str )  method
238
Returns: a SCSimplicialComplex object upon success, fail otherwise.
239
240
Computes a simplicial complex from its isomorphism signature. If a file with
241
isomorphism signatures is provided a list of all complexes is returned.
242
243
 Example 
244
 gap> s:="deeee";;
245
 gap> c:=SCFromIsoSig(s);;
246
 gap> SCIsIsomorphic(c,SCBdSimplex(4));
247
 true
248
 
249

250
251
 Example 
252
 gap> s:="deeee";;
253
 gap> PrintTo("tmp.txt",s,"\n");;
254
 gap> cc:=SCFromIsoSig("tmp.txt");
255
 [ [SimplicialComplex
256
 
257
 Properties known: Dim, ExportIsoSig, FacetsEx, Name, Vertices.
258
 
259
 Name="unnamed complex 7"
260
 Dim=3
261
 
262
 /SimplicialComplex] ]
263
 gap> cc[1].F;
264
 [ 5, 10, 10, 5 ]
265
 
266

267
268
269
6.3 Generating some standard triangulations
270
271
6.3-1 SCBdCyclicPolytope
272
273
SCBdCyclicPolytope( d, n )  function
274
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
275
otherwise.
276
277
Generates the boundary complex of the d-dimensional cyclic polytope (a
278
combinatorial d-1-sphere) on n vertices, where n≥ d+2.
279
280
 Example 
281
 gap> SCBdCyclicPolytope(3,8); 
282
 [SimplicialComplex
283
 
284
 Properties known: Dim, EulerCharacteristic, FacetsEx, HasBoundary, 
285
 Homology, IsConnected, IsStronglyConnected, Name, 
286
 NumFaces[], TopologicalType, Vertices.
287
 
288
 Name="Bd(C_3(8))"
289
 Dim=2
290
 EulerCharacteristic=2
291
 HasBoundary=false
292
 Homology=[ [ 0, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ]
293
 IsConnected=true
294
 IsStronglyConnected=true
295
 TopologicalType="S^2"
296
 
297
 /SimplicialComplex]
298
 
299

300
301
6.3-2 SCBdSimplex
302
303
SCBdSimplex( d )  function
304
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
305
otherwise.
306
307
Generates the boundary of the d-simplex ∆^d, a combinatorial d-1-sphere.
308
309
 Example 
310
 gap> SCBdSimplex(5);
311
 [SimplicialComplex
312
 
313
 Properties known: AutomorphismGroup, AutomorphismGroupSize, 
314
 AutomorphismGroupStructure, 
315
 AutomorphismGroupTransitivity, Dim, 
316
 EulerCharacteristic, FacetsEx, GeneratorsEx, 
317
 HasBoundary, Homology, IsConnected, 
318
 IsStronglyConnected, Name, NumFaces[], 
319
 TopologicalType, Vertices.
320
 
321
 Name="S^4_6"
322
 Dim=4
323
 AutomorphismGroupSize=720
324
 AutomorphismGroupStructure="S6"
325
 AutomorphismGroupTransitivity=6
326
 EulerCharacteristic=2
327
 HasBoundary=false
328
 Homology=[ [ 0, [ ] ], [ 0, [ ] ], [ 0, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ]
329
 IsConnected=true
330
 IsStronglyConnected=true
331
 TopologicalType="S^4"
332
 
333
 /SimplicialComplex]
334
 
335

336
337
6.3-3 SCEmpty
338
339
SCEmpty( )  function
340
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
341
otherwise.
342
343
Generates an empty complex (of dimension -1), i. e. a SCSimplicialComplex
344
object with empty facet list.
345
346
 Example 
347
 gap> SCEmpty();
348
 [SimplicialComplex
349
 
350
 Properties known: Dim, FacetsEx, Name, Vertices.
351
 
352
 Name="empty complex"
353
 Dim=-1
354
 
355
 /SimplicialComplex]
356
 
357

358
359
6.3-4 SCSimplex
360
361
SCSimplex( d )  function
362
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
363
otherwise.
364
365
Generates the d-simplex.
366
367
 Example 
368
 gap> SCSimplex(3);
369
 [SimplicialComplex
370
 
371
 Properties known: Dim, EulerCharacteristic, FacetsEx, Name, 
372
 NumFaces[], TopologicalType, Vertices.
373
 
374
 Name="B^3_4"
375
 Dim=3
376
 EulerCharacteristic=1
377
 TopologicalType="B^3"
378
 
379
 /SimplicialComplex]
380
 
381

382
383
6.3-5 SCSeriesTorus
384
385
SCSeriesTorus( d )  function
386
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
387
otherwise.
388
389
Generates the d-torus described in [K{\86].
390
391
 Example 
392
 gap> t4:=SCSeriesTorus(4);
393
 [SimplicialComplex
394
 
395
 Properties known: DifferenceCycles, Dim, FacetsEx, Name, 
396
 TopologicalType, Vertices.
397
 
398
 Name="4-torus T^4"
399
 Dim=4
400
 TopologicalType="T^4"
401
 
402
 /SimplicialComplex]
403
 gap> t4.Homology;
404
 [ [ 0, [ ] ], [ 4, [ ] ], [ 6, [ ] ], [ 4, [ ] ], [ 1, [ ] ] ]
405
 
406

407
408
6.3-6 SCSurface
409
410
SCSurface( g, orient )  function
411
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
412
otherwise.
413
414
Generates the surface of genus g where the boolean argument orient specifies
415
whether the surface is orientable or not. The surfaces have transitive
416
cyclic group actions and can be described using the minimum amount of
417
O(operatornamelog (g)) memory. If orient is true and g≥ 50 or if orient is
418
false and g≥ 100 only the difference cycles of the surface are returned
419
420
 Example 
421
 gap> c:=SCSurface(23,true); 
422
 [SimplicialComplex
423
 
424
 Properties known: DifferenceCycles, Dim, FacetsEx, Name, 
425
 TopologicalType, Vertices.
426
 
427
 Name="S_23^or"
428
 Dim=2
429
 TopologicalType="(T^2)^#23"
430
 
431
 /SimplicialComplex]
432
 gap> c.Homology;
433
 [ [ 0, [ ] ], [ 46, [ ] ], [ 1, [ ] ] ]
434
 gap> c.TopologicalType;
435
 "(T^2)^#23"
436
 gap> c:=SCSurface(23,false); 
437
 [SimplicialComplex
438
 
439
 Properties known: DifferenceCycles, Dim, FacetsEx, Name, 
440
 TopologicalType, Vertices.
441
 
442
 Name="S_23^non"
443
 Dim=2
444
 TopologicalType="(RP^2)^#23"
445
 
446
 /SimplicialComplex]
447
 gap> c.Homology;
448
 [ [ 0, [ ] ], [ 22, [ 2 ] ], [ 0, [ ] ] ]
449
 gap> c.TopologicalType;
450
 "(RP^2)^#23"
451
 
452

453
454
 Example 
455
 gap> dc:=SCSurface(345,true);
456
 [ [ 1, 1, 1374 ], [ 2, 343, 1031 ], [ 343, 345, 688 ] ]
457
 gap> c:=SCFromDifferenceCycles(dc);
458
 [SimplicialComplex
459
 
460
 Properties known: DifferenceCycles, Dim, FacetsEx, Name, Vertices.
461
 
462
 Name="complex from diffcycles [ [ 1, 1, 1374 ], [ 2, 343, 1031 ], [ 343, 345,\
463
 688 ] ]"
464
 Dim=2
465
 
466
 /SimplicialComplex]
467
 gap> c.Chi;
468
 -688
469
 gap> dc:=SCSurface(12345678910,true); time;
470
 [ [ 1, 1, 24691357816 ], [ 2, 4, 24691357812 ], [ 3, 3, 24691357812 ], 
471
 [ 4, 12345678907, 12345678907 ] ]
472
 0
473
 
474

475
476
6.3-7 SCFVectorBdCrossPolytope
477
478
SCFVectorBdCrossPolytope( d )  function
479
Returns: a list of integers of size d + 1 upon success, fail otherwise.
480
481
Computes the f-vector of the d-dimensional cross polytope without generating
482
the underlying complex.
483
484
 Example 
485
gap> SCFVectorBdCrossPolytope(50);
486
[ 100, 4900, 156800, 3684800, 67800320, 1017004800, 12785203200, 
487
 137440934400, 1282782054400, 10518812846080, 76500457062400, 
488
 497252970905600, 2907017368371200, 15365663232819200, 73755183517532160, 
489
 322678927889203200, 1290715711556812800, 4732624275708313600, 
490
 15941471244491161600, 49418560857922600960, 141195888165493145600, 
491
 372243705163572838400, 906332499528699084800, 2039248123939572940800, 
492
 4241636097794311716864, 8156992495758291763200, 14501319992459185356800, 
493
 23823597130468661657600, 36146147370366245273600, 50604606318512743383040, 
494
 65296266217435797913600, 77539316133205010022400, 84588344872587283660800, 
495
 84588344872587283660800, 77337915312079802204160, 64448262760066501836800, 
496
 48771658304915190579200, 33370081998099867238400, 20535435075753764454400, 
497
 11294489291664570449920, 5509506971543692902400, 2361217273518725529600, 
498
 878592473867432755200, 279552150776001331200, 74547240206933688320, 
499
 16205921784116019200, 2758454771764428800, 344806846470553600, 
500
 28147497671065600, 1125899906842624 ]
501

502
503
6.3-8 SCFVectorBdCyclicPolytope
504
505
SCFVectorBdCyclicPolytope( d, n )  function
506
Returns: a list of integers of size d+1 upon success, fail otherwise.
507
508
Computes the f-vector of the d-dimensional cyclic polytope on n vertices, n≥
509
d+2, without generating the underlying complex.
510
511
 Example 
512
gap> SCFVectorBdCyclicPolytope(25,198); 
513
[ 198, 19503, 1274196, 62117055, 2410141734, 77526225777, 2126433621312, 
514
 50768602708824, 1071781612741840, 20256672480820776, 346204947854027808, 
515
 5395027104058600008, 48354596155522298656, 262068846498922699590, 
516
 940938105142239825104, 2379003007642628680027, 4396097923113038784642, 
517
 6062663500381642763609, 6294919173643129209180, 4911378208855785427761, 
518
 2840750019404460890298, 1183225500922302444568, 335951678686835900832, 
519
 58265626173398052500, 4661250093871844200 ]
520

521
522
6.3-9 SCFVectorBdSimplex
523
524
SCFVectorBdSimplex( d )  function
525
Returns: a list of integers of size d + 1 upon success, fail otherwise.
526
527
Computes the f-vector of the d-simplex without generating the underlying
528
complex.
529
530
 Example 
531
 gap> SCFVectorBdSimplex(100);
532
 [ 101, 5050, 166650, 4082925, 79208745, 1267339920, 17199613200, 
533
 202095455100, 2088319702700, 19212541264840, 158940114100040, 
534
 1192050855750300, 8160963550905900, 51297485177122800, 297525414027312240, 
535
 1599199100396803290, 7995995501984016450, 37314645675925410100, 
536
 163006083742200475700, 668324943343021950370, 2577824781465941808570, 
537
 9373908296239788394800, 32197337191432316660400, 104641345872155029146300, 
538
 322295345286237489770604, 942094086221309585483304, 
539
 2616928017281415515231400, 6916166902815169575968700, 
540
 17409661513983013070541900, 41783187633559231369300560, 
541
 95696978128474368620010960, 209337139656037681356273975, 
542
 437704928371715151926754675, 875409856743430303853509350, 
543
 1675784582908852295948146470, 3072271735332895875904935195, 
544
 5397234129638871133346507775, 9090078534128625066688855200, 
545
 14683973016669317415420458400, 22760158175837441993901710520, 
546
 33862674359172779551902544920, 48375249084532542217003635600, 
547
 66375341767149302111702662800, 87494768693060443692698964600, 
548
 110826707011209895344085355160, 134919469404951176940625649760, 
549
 157884485473879036845412994400, 177620046158113916451089618700, 
550
 192119641762857909630770403900, 199804427433372226016001220056, 
551
 199804427433372226016001220056, 192119641762857909630770403900, 
552
 177620046158113916451089618700, 157884485473879036845412994400, 
553
 134919469404951176940625649760, 110826707011209895344085355160, 
554
 87494768693060443692698964600, 66375341767149302111702662800, 
555
 48375249084532542217003635600, 33862674359172779551902544920, 
556
 22760158175837441993901710520, 14683973016669317415420458400, 
557
 9090078534128625066688855200, 5397234129638871133346507775, 
558
 3072271735332895875904935195, 1675784582908852295948146470, 
559
 875409856743430303853509350, 437704928371715151926754675, 
560
 209337139656037681356273975, 95696978128474368620010960, 
561
 41783187633559231369300560, 17409661513983013070541900, 
562
 6916166902815169575968700, 2616928017281415515231400, 
563
 942094086221309585483304, 322295345286237489770604, 
564
 104641345872155029146300, 32197337191432316660400, 9373908296239788394800, 
565
 2577824781465941808570, 668324943343021950370, 163006083742200475700, 
566
 37314645675925410100, 7995995501984016450, 1599199100396803290, 
567
 297525414027312240, 51297485177122800, 8160963550905900, 1192050855750300, 
568
 158940114100040, 19212541264840, 2088319702700, 202095455100, 17199613200, 
569
 1267339920, 79208745, 4082925, 166650, 5050, 101 ]
570
 
571

572
573
574
6.4 Generating infinite series of transitive triangulations
575
576
6.4-1 SCSeriesAGL
577
578
SCSeriesAGL( p )  function
579
Returns: a permutation group and a list of 5-tuples of integers upon
580
success, fail otherwise.
581
582
For a given prime p the automorphism group (AGL(1,p)) and the generators of
583
all members of the series of 2-transitive combinatorial 4-pseudomanifolds
584
with p vertices from [Spr11a], Section 5.2, is computed. The affine linear
585
group AGL(1,p) is returned as the first argument. If no member of the series
586
with p vertices exists only the group is returned.
587
588
 Example 
589
 gap> gens:=SCSeriesAGL(17);
590
 [ AGL(1,17), [ [ 1, 2, 4, 8, 16 ] ] ]
591
 gap> c:=SCFromGenerators(gens[1],gens[2]);;
592
 gap> SCIsManifold(SCLink(c,1));
593
 true
594
 
595

596
597
 Example 
598
 gap> List([19..23],x->SCSeriesAGL(x)); 
599
 #I SCSeriesAGL: argument must be a prime > 13.
600
 #I SCSeriesAGL: argument must be a prime > 13.
601
 #I SCSeriesAGL: argument must be a prime > 13.
602
 [ [ AGL(1,19), [ [ 1, 2, 10, 12, 17 ] ] ], fail, fail, fail, 
603
 [ AGL(1,23), [ [ 1, 2, 7, 9, 19 ], [ 1, 2, 4, 8, 22 ] ] ] ]
604
 gap> for i in [80000..80100] do if IsPrime(i) then Print(i,"\n"); fi; od;
605
 80021
606
 80039
607
 80051
608
 80071
609
 80077
610
 gap> SCSeriesAGL(80021); 
611
 AGL(1,80021)
612
 gap> SCSeriesAGL(80039); 
613
 [ AGL(1,80039), [ [ 1, 2, 6496, 73546, 78018 ] ] ]
614
 gap> SCSeriesAGL(80051); 
615
 [ AGL(1,80051), [ [ 1, 2, 31498, 37522, 48556 ] ] ]
616
 gap> SCSeriesAGL(80071); 
617
 AGL(1,80071)
618
 gap> SCSeriesAGL(80077); 
619
 [ AGL(1,80077), [ [ 1, 2, 4126, 39302, 40778 ] ] ]
620
 
621

622
623
6.4-2 SCSeriesBrehmKuehnelTorus
624
625
SCSeriesBrehmKuehnelTorus( n )  function
626
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
627
otherwise.
628
629
Generates a neighborly 3-torus with n vertices if n is odd and a centrally
630
symmetric 3-torus if n is even (n≥ 15 . The triangulations are taken from
631
[BK12]
632
633
 Example 
634
 gap> T3:=SCSeriesBrehmKuehnelTorus(15);
635
 [SimplicialComplex
636
 
637
 Properties known: DifferenceCycles, Dim, FacetsEx, Name, 
638
 TopologicalType, Vertices.
639
 
640
 Name="Neighborly 3-Torus NT3(15)"
641
 Dim=3
642
 TopologicalType="T^3"
643
 
644
 /SimplicialComplex]
645
 gap> T3.Homology;
646
 [ [ 0, [ ] ], [ 3, [ ] ], [ 3, [ ] ], [ 1, [ ] ] ]
647
 gap> T3.Neighborliness;
648
 2
649
 gap> T3:=SCSeriesBrehmKuehnelTorus(16);
650
 [SimplicialComplex
651
 
652
 Properties known: DifferenceCycles, Dim, FacetsEx, Name, 
653
 TopologicalType, Vertices.
654
 
655
 Name="Centrally symmetric 3-Torus SCT3(16)"
656
 Dim=3
657
 TopologicalType="T^3"
658
 
659
 /SimplicialComplex]
660
 gap> T3.Homology;
661
 [ [ 0, [ ] ], [ 3, [ ] ], [ 3, [ ] ], [ 1, [ ] ] ]
662
 gap> T3.IsCentrallySymmetric;
663
 true
664
 
665

666
667
6.4-3 SCSeriesBdHandleBody
668
669
SCSeriesBdHandleBody( d, n )  function
670
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
671
otherwise.
672
673
SCSeriesBdHandleBody(d,n) generates a transitive d-dimensional sphere bundle
674
(d ≥ 2) with n vertices (n ≥ 2d + 3) which coincides with the boundary of
675
SCSeriesHandleBody (6.4-9)(d,n). The sphere bundle is orientable if d is
676
even or if d is odd and n is even, otherwise it is not orientable.
677
Internally calls SCFromDifferenceCycles (6.1-3).
678
679
 Example 
680
 gap> c:=SCSeriesBdHandleBody(2,7);
681
 [SimplicialComplex
682
 
683
 Properties known: Dim, FacetsEx, IsOrientable, Name, TopologicalType, 
684
 Vertices.
685
 
686
 Name="Sphere bundle S^1 x S^1"
687
 Dim=2
688
 IsOrientable=true
689
 TopologicalType="S^1 x S^1"
690
 
691
 /SimplicialComplex]
692
 gap> SCLib.DetermineTopologicalType(c);
693
 [SimplicialComplex
694
 
695
 Properties known: BoundaryEx, Dim, FacetsEx, HasBoundary, 
696
 IsOrientable, IsPseudoManifold, IsPure, Name, 
697
 SkelExs[], TopologicalType, Vertices.
698
 
699
 Name="Sphere bundle S^1 x S^1"
700
 Dim=2
701
 HasBoundary=false
702
 IsOrientable=true
703
 IsPseudoManifold=true
704
 IsPure=true
705
 TopologicalType="S^1 x S^1"
706
 
707
 /SimplicialComplex]
708
 gap> SCIsIsomorphic(c,SCSeriesHandleBody(3,7).Boundary);
709
 true
710
 
711

712
713
6.4-4 SCSeriesBid
714
715
SCSeriesBid( i, d )  function
716
Returns: a simplicial complex upon success, fail otherwise.
717
718
Constructs the complex B(i,d) as described in [KN12], cf. [Eff11a], [Spa99].
719
The complex B(i,d) is a i-Hamiltonian subcomplex of the d-cross polytope and
720
its boundary topologically is a sphere product S^i× S^d-i-2 with vertex
721
transitive automorphism group.
722
723
 Example 
724
 gap> b26:=SCSeriesBid(2,6);
725
 [SimplicialComplex
726
 
727
 Properties known: Dim, FacetsEx, Name, Reference, Vertices.
728
 
729
 Name="B(2,6)"
730
 Dim=5
731
 
732
 /SimplicialComplex]
733
 gap> s2s2:=SCBoundary(b26);
734
 [SimplicialComplex
735
 
736
 Properties known: Dim, FacetsEx, Name, Vertices.
737
 
738
 Name="Bd(B(2,6))"
739
 Dim=4
740
 
741
 /SimplicialComplex]
742
 gap> SCFVector(s2s2);
743
 [ 12, 60, 160, 180, 72 ]
744
 gap> SCAutomorphismGroup(s2s2); 
745
 TransitiveGroup(12,28) = D(4)[x]S(3)
746
 gap> SCIsManifold(s2s2); 
747
 true
748
 gap> SCHomology(s2s2);
749
 [ [ 0, [ ] ], [ 0, [ ] ], [ 2, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ]
750
 
751

752
753
6.4-5 SCSeriesC2n
754
755
SCSeriesC2n( n )  function
756
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
757
otherwise.
758
759
Generates the combinatorial 3-manifold C_2n, n ≥ 8, with 2n vertices from
760
[Spr11a], Section 4.5.3 and Section 5.2. The complex is homeomorphic to S^2
761
× S^1 for n odd and homeomorphic to S^2 dtimes S^1 in case n is an even
762
number. In the latter case C_2n is isomorphic to D_2n from SCSeriesD2n
763
(6.4-8). The complexes are believed to appear as the vertex links of some of
764
the members of the series of 2-transitive 4-pseudomanifolds from SCSeriesAGL
765
(6.4-1). Internally calls SCFromDifferenceCycles (6.1-3).
766
767
 Example 
768
 gap> c:=SCSeriesC2n(8);
769
 [SimplicialComplex
770
 
771
 Properties known: DifferenceCycles, Dim, FacetsEx, Name, 
772
 TopologicalType, Vertices.
773
 
774
 Name="C_16 = { (1:1:3:11),(1:1:11:3),(1:3:1:11),(2:3:2:9),(2:5:2:7) }"
775
 Dim=3
776
 TopologicalType="S^2 ~ S^1"
777
 
778
 /SimplicialComplex]
779
 gap> SCGenerators(c); 
780
 [ [ [ 1, 2, 3, 6 ], 32 ], [ [ 1, 2, 5, 6 ], 16 ], [ [ 1, 3, 6, 8 ], 16 ], 
781
 [ [ 1, 3, 8, 10 ], 16 ] ]
782
 
783

784
785
 Example 
786
 gap> c:=SCSeriesC2n(8);;
787
 gap> d:=SCSeriesD2n(8); 
788
 [SimplicialComplex
789
 
790
 Properties known: DifferenceCycles, Dim, FacetsEx, Name, 
791
 TopologicalType, Vertices.
792
 
793
 Name="D_16 = { (1:1:1:13),(1:2:11:2),(3:4:5:4),(2:3:4:7),(2:7:4:3) }"
794
 Dim=3
795
 TopologicalType="S^2 ~ S^1"
796
 
797
 /SimplicialComplex]
798
 gap> SCIsIsomorphic(c,d);
799
 true
800
 gap> c:=SCSeriesC2n(11);;
801
 gap> d:=SCSeriesD2n(11);;
802
 gap> c.Homology;
803
 [ [ 0, [ ] ], [ 1, [ ] ], [ 1, [ ] ], [ 1, [ ] ] ]
804
 gap> d.Homology;
805
 [ [ 0, [ ] ], [ 1, [ ] ], [ 0, [ 2 ] ], [ 0, [ ] ] ]
806
 
807

808
809
6.4-6 SCSeriesConnectedSum
810
811
SCSeriesConnectedSum( k )  function
812
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
813
otherwise.
814
815
Generates a combinatorial manifold of type (S^2 x S^1)^#k for k even. The
816
complex is a combinatorial 3-manifold with transitive cyclic symmetry as
817
described in [BS14].
818
819
 Example 
820
 gap> c:=SCSeriesConnectedSum(12);
821
 [SimplicialComplex
822
 
823
 Properties known: DifferenceCycles, Dim, FacetsEx, Name, 
824
 TopologicalType, Vertices.
825
 
826
 Name="(S^2xS^1)^#12)"
827
 Dim=3
828
 TopologicalType="(S^2xS^1)^#12)"
829
 
830
 /SimplicialComplex]
831
 gap> c.Homology;
832
 [ [ 0, [ ] ], [ 12, [ ] ], [ 12, [ ] ], [ 1, [ ] ] ]
833
 gap> g:=SimplifiedFpGroup(SCFundamentalGroup(c));
834
 <fp group of size infinity on the generators 
835
 [ [2,3], [2,14], [3,4], [6,7], [9,10], [10,11], [11,12], [12,13], [26,32], 
836
 [26,34], [29,31], [33,35] ]>
837
 gap> RelatorsOfFpGroup(g);
838
 [ ]
839
 
840

841
842
6.4-7 SCSeriesCSTSurface
843
844
SCSeriesCSTSurface( l[, j], 2k )  function
845
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
846
otherwise.
847
848
SCSeriesCSTSurface(l,j,2k) generates the centrally symmetric transitive
849
(cst) surface S_(l,j,2k), SCSeriesCSTSurface(l,2k) generates the cst surface
850
S_(l,2k) from [Spr12], Section 4.4.
851
852
 Example 
853
 gap> SCSeriesCSTSurface(2,4,14);
854
 [SimplicialComplex
855
 
856
 Properties known: DifferenceCycles, Dim, FacetsEx, Name, Vertices.
857
 
858
 Name="cst surface S_{(2,4,14)} = { (2:4:8),(2:8:4) }"
859
 Dim=2
860
 
861
 /SimplicialComplex]
862
 gap> last.Homology;
863
 [ [ 1, [ ] ], [ 4, [ ] ], [ 2, [ ] ] ]
864
 gap> SCSeriesCSTSurface(2,10); 
865
 [SimplicialComplex
866
 
867
 Properties known: DifferenceCycles, Dim, FacetsEx, Name, Vertices.
868
 
869
 Name="cst surface S_{(2,10)} = { (2:2:6),(3:3:4) }"
870
 Dim=2
871
 
872
 /SimplicialComplex]
873
 gap> last.Homology; 
874
 [ [ 0, [ ] ], [ 1, [ 2 ] ], [ 0, [ ] ] ]
875
 
876

877
878
6.4-8 SCSeriesD2n
879
880
SCSeriesD2n( n )  function
881
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
882
otherwise.
883
884
Generates the combinatorial 3-manifold D_2n, n ≥ 8, n ≠ 9, with 2n vertices
885
from [Spr11a], Section 4.5.3 and Section 5.2. The complex is homeomorphic to
886
S^2 dtimes S^1. In the case that n is even D_2n is isomorphic to C_2n from
887
SCSeriesC2n (6.4-5). The complexes are believed to appear as the vertex
888
links of some of the members of the series of 2-transitive 4-pseudomanifolds
889
from SCSeriesAGL (6.4-1). Internally calls SCFromDifferenceCycles (6.1-3).
890
891
 Example 
892
 gap> d:=SCSeriesD2n(15);
893
 [SimplicialComplex
894
 
895
 Properties known: DifferenceCycles, Dim, FacetsEx, Name, 
896
 TopologicalType, Vertices.
897
 
898
 Name="D_30 = { (1:1:1:27),(1:2:25:2),(3:11:5:11),(2:3:11:14),(2:14:11:3) }"
899
 Dim=3
900
 TopologicalType="S^2 ~ S^1"
901
 
902
 /SimplicialComplex]
903
 gap> SCAutomorphismGroup(d); 
904
 TransitiveGroup(30,14) = t30n14
905
 gap> StructureDescription(last);
906
 "D60"
907
 
908

909
910
 Example 
911
 gap> c:=SCSeriesC2n(8);;
912
 gap> d:=SCSeriesD2n(8); 
913
 [SimplicialComplex
914
 
915
 Properties known: DifferenceCycles, Dim, FacetsEx, Name, 
916
 TopologicalType, Vertices.
917
 
918
 Name="D_16 = { (1:1:1:13),(1:2:11:2),(3:4:5:4),(2:3:4:7),(2:7:4:3) }"
919
 Dim=3
920
 TopologicalType="S^2 ~ S^1"
921
 
922
 /SimplicialComplex]
923
 gap> SCIsIsomorphic(c,d);
924
 true
925
 gap> c:=SCSeriesC2n(11);;
926
 gap> d:=SCSeriesD2n(11);;
927
 gap> c.Homology;
928
 [ [ 0, [ ] ], [ 1, [ ] ], [ 1, [ ] ], [ 1, [ ] ] ]
929
 gap> d.Homology;
930
 [ [ 0, [ ] ], [ 1, [ ] ], [ 0, [ 2 ] ], [ 0, [ ] ] ]
931
 
932

933
934
6.4-9 SCSeriesHandleBody
935
936
SCSeriesHandleBody( d, n )  function
937
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
938
otherwise.
939
940
SCSeriesHandleBody(d,n) generates a transitive d-dimensional handle body (d
941
≥ 3) with n vertices (n ≥ 2d + 1). The handle body is orientable if d is odd
942
or if d and n are even, otherwise it is not orientable. The complex equals
943
the difference cycle (1 : ... : 1 : n-d) To obtain the boundary complexes of
944
SCSeriesHandleBody(d,n) use the function SCSeriesBdHandleBody (6.4-3).
945
Internally calls SCFromDifferenceCycles (6.1-3).
946
947
 Example 
948
 gap> c:=SCSeriesHandleBody(3,7);
949
 [SimplicialComplex
950
 
951
 Properties known: DifferenceCycles, Dim, FacetsEx, IsOrientable, 
952
 Name, TopologicalType, Vertices.
953
 
954
 Name="Handle body B^2 x S^1"
955
 Dim=3
956
 IsOrientable=true
957
 TopologicalType="B^2 x S^1"
958
 
959
 /SimplicialComplex]
960
 gap> SCAutomorphismGroup(c); 
961
 PrimitiveGroup(7,2) = D(2*7)
962
 gap> bd:=SCBoundary(c);;
963
 gap> SCAutomorphismGroup(bd);
964
 PrimitiveGroup(7,4) = AGL(1, 7)
965
 gap> SCIsIsomorphic(bd,SCSeriesBdHandleBody(2,7));
966
 true
967
 
968

969
970
6.4-10 SCSeriesHomologySphere
971
972
SCSeriesHomologySphere( p, q, r )  function
973
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
974
otherwise.
975
976
Generates a combinatorial Brieskorn homology sphere of type Σ (p,q,r), p, q
977
and r pairwise co-prime. The complex is a combinatorial 3-manifold with
978
transitive cyclic symmetry as described in [BS14].
979
980
 Example 
981
 gap> c:=SCSeriesHomologySphere(2,3,5);
982
 [SimplicialComplex
983
 
984
 Properties known: DifferenceCycles, Dim, FacetsEx, Name, 
985
 TopologicalType, Vertices.
986
 
987
 Name="Homology sphere Sigma(2,3,5)"
988
 Dim=3
989
 TopologicalType="Sigma(2,3,5)"
990
 
991
 /SimplicialComplex]
992
 gap> c.Homology;
993
 [ [ 0, [ ] ], [ 0, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ]
994
 gap> c:=SCSeriesHomologySphere(3,4,13);
995
 [SimplicialComplex
996
 
997
 Properties known: DifferenceCycles, Dim, FacetsEx, Name, 
998
 TopologicalType, Vertices.
999
 
1000
 Name="Homology sphere Sigma(3,4,13)"
1001
 Dim=3
1002
 TopologicalType="Sigma(3,4,13)"
1003
 
1004
 /SimplicialComplex]
1005
 gap> c.Homology;
1006
 [ [ 0, [ ] ], [ 0, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ]
1007
 
1008

1009
1010
6.4-11 SCSeriesK
1011
1012
SCSeriesK( i, k )  function
1013
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
1014
otherwise.
1015
1016
Generates the k-th member (k ≥ 0) of the series K^i (1 ≤ i ≤ 396) from
1017
[Spr11a]. The 396 series describe a complete classification of all dense
1018
series (i. e. there is a member of the series for every integer, f_0 (K^i
1019
(k+1) ) = f_0 (K^i (k)) +1) of cyclic 3-manifolds with a fixed number of
1020
difference cycles and at least one member with less than 23 vertices. See
1021
SCSeriesL (6.4-13) for a list of series of order 2.
1022
1023
 Example 
1024
 gap> cc:=List([1..10],x->SCSeriesK(x,0));; 
1025
 gap> Set(List(cc,x->x.F)); 
1026
 [ [ 9, 36, 54, 27 ], [ 11, 55, 88, 44 ], [ 13, 65, 104, 52 ], 
1027
 [ 13, 78, 130, 65 ], [ 15, 90, 150, 75 ], [ 15, 105, 180, 90 ] ]
1028
 gap> cc:=List([1..10],x->SCSeriesK(x,10));;
1029
 gap> gap> cc:=List([1..10],x->SCSeriesK(x,10));;
1030
 gap> Set(List(cc,x->x.Homology));
1031
 [ [ [ 0, [ ] ], [ 1, [ ] ], [ 0, [ 2 ] ], [ 0, [ ] ] ] ]
1032
 gap> Set(List(cc,x->x.IsManifold));
1033
 [ true ]
1034
 
1035

1036
1037
6.4-12 SCSeriesKu
1038
1039
SCSeriesKu( n )  function
1040
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
1041
otherwise.
1042
1043
Computes the symmetric orientable sphere bundle Ku(n) with 4n vertices from
1044
[Spr11a], Section 4.5.2. The series is defined as a generalization of the
1045
slicings from [Spr11a], Section 3.3.
1046
1047
 Example 
1048
 gap> c:=SCSeriesKu(4); 
1049
 [SimplicialComplex
1050
 
1051
 Properties known: Dim, FacetsEx, Name, Vertices.
1052
 
1053
 Name="Sl_16 = G{ [1,2,5,9],[1,2,9,10],[1,5,9,16] }"
1054
 Dim=3
1055
 
1056
 /SimplicialComplex]
1057
 gap> SCSlicing(c,[[1,2,3,4,9,10,11,12],[5,6,7,8,13,14,15,16]]);
1058
 [NormalSurface
1059
 
1060
 Properties known: ConnectedComponents, Dim, EulerCharacteristic, FVector, Fac\
1061
 etsEx, Genus, IsConnected, IsOrientable, NSTriangulation, Name, TopologicalTyp\
1062
 e, Vertices.
1063
 
1064
 Name="slicing [ [ 1, 2, 3, 4, 9, 10, 11, 12 ], [ 5, 6, 7, 8, 13, 14, 15, 16 ]\
1065
 ] of Sl_16 = G{ [1,2,5,9],[1,2,9,10],[1,5,9,16] }"
1066
 Dim=2
1067
 FVector=[ 32, 80, 32, 16 ]
1068
 EulerCharacteristic=0
1069
 IsOrientable=true
1070
 TopologicalType="T^2"
1071
 
1072
 /NormalSurface]
1073
 gap> Mminus:=SCSpan(c,[1,2,3,4,9,10,11,12]);; 
1074
 gap> Mplus:=SCSpan(c,[5,6,7,8,13,14,15,16]);; 
1075
 gap> SCCollapseGreedy(Mminus).Facets;
1076
 [ [ 1, 2 ], [ 1, 12 ], [ 2, 11 ], [ 11, 12 ] ]
1077
 gap> SCCollapseGreedy(Mplus).Facets; 
1078
 [ [ 7, 14 ], [ 7, 15 ], [ 8, 13 ], [ 8, 16 ], [ 13, 14 ], [ 15, 16 ] ]
1079
 
1080

1081
1082
6.4-13 SCSeriesL
1083
1084
SCSeriesL( i, k )  function
1085
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
1086
otherwise.
1087
1088
Generates the k-th member (k ≥ 0) of the series L^i, 1 ≤ i ≤ 18 from
1089
[Spr11a]. The 18 series describe a complete classification of all series of
1090
cyclic 3-manifolds with a fixed number of difference cycles of order 2 (i.
1091
e. there is a member of the series for every second integer, f_0 (L^i (k+1)
1092
) = f_0 (L^i (k)) +2) and at least one member with less than 15 vertices
1093
where each series does not appear as a sub series of one of the series K^i
1094
from SCSeriesK (6.4-11).
1095
1096
 Example 
1097
 gap> cc:=List([1..18],x->SCSeriesL(x,0));;
1098
 gap> Set(List(cc,x->x.F));
1099
 [ [ 10, 45, 70, 35 ], [ 12, 60, 96, 48 ], [ 12, 66, 108, 54 ], 
1100
 [ 14, 77, 126, 63 ], [ 14, 84, 140, 70 ], [ 14, 91, 154, 77 ] ]
1101
 gap> cc:=List([1..18],x->SCSeriesL(x,10));; 
1102
 gap> Set(List(cc,x->x.IsManifold));
1103
 [ true ]
1104
 
1105

1106
1107
6.4-14 SCSeriesLe
1108
1109
SCSeriesLe( k )  function
1110
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
1111
otherwise.
1112
1113
Generates the k-th member (k ≥ 7) of the series Le from [Spr11a], Section
1114
4.5.1. The series can be constructed as the generalization of the boundary
1115
of a genus 1 handlebody decomposition of the manifold manifold_3_14_1_5 from
1116
the classification in [Lut03].
1117
1118
 Example 
1119
 gap> c:=SCSeriesLe(7); 
1120
 [SimplicialComplex
1121
 
1122
 Properties known: DifferenceCycles, Dim, FacetsEx, Name, Vertices.
1123
 
1124
 Name="Le_14 = { (1:1:1:11),(1:2:4:7),(1:4:2:7),(2:1:4:7),(2:5:2:5),(2:4:2:6) \
1125
 }"
1126
 Dim=3
1127
 
1128
 /SimplicialComplex]
1129
 gap> d:=SCLib.DetermineTopologicalType(c);;
1130
 gap> SCReference(d);
1131
 "manifold_3_14_1_5 in F.H.Lutz: 'The Manifold Page', http://www.math.tu-berlin\
1132
 .de/diskregeom/stellar/,\r\nF.H.Lutz: 'Triangulated manifolds with few vertice\
1133
 s and vertex-transitive group actions', Doctoral Thesis TU Berlin 1999, Shaker\
1134
 -Verlag, Aachen 1999"
1135
 
1136

1137
1138
6.4-15 SCSeriesLensSpace
1139
1140
SCSeriesLensSpace( p, q )  function
1141
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
1142
otherwise.
1143
1144
Generates the lens space L(p,q) whenever p = (k+2)^2-1 and q = k+2 or p =
1145
2k+3 and q = 1 for a k ≥ 0 and fail otherwise. All complexes have a
1146
transitive cyclic automorphism group.
1147
1148
 Example 
1149
 gap> l154:=SCSeriesLensSpace(15,4);
1150
 [SimplicialComplex
1151
 
1152
 Properties known: DifferenceCycles, Dim, FacetsEx, Name, 
1153
 TopologicalType, Vertices.
1154
 
1155
 Name="Lens space L(15,4)"
1156
 Dim=3
1157
 TopologicalType="L(15,4)"
1158
 
1159
 /SimplicialComplex]
1160
 gap> l154.Homology;
1161
 [ [ 0, [ ] ], [ 0, [ 15 ] ], [ 0, [ ] ], [ 1, [ ] ] ]
1162
 gap> g:=SimplifiedFpGroup(SCFundamentalGroup(l154));
1163
 <fp group on the generators [ [2,5] ]>
1164
 gap> StructureDescription(g);
1165
 "C15"
1166
 
1167

1168
1169
 Example 
1170
 gap> l151:=SCSeriesLensSpace(15,1);
1171
 [SimplicialComplex
1172
 
1173
 Properties known: DifferenceCycles, Dim, FacetsEx, Name, 
1174
 TopologicalType, Vertices.
1175
 
1176
 Name="Lens space L(15,1)"
1177
 Dim=3
1178
 TopologicalType="L(15,1)"
1179
 
1180
 /SimplicialComplex]
1181
 gap> l151.Homology;
1182
 [ [ 0, [ ] ], [ 0, [ 15 ] ], [ 0, [ ] ], [ 1, [ ] ] ]
1183
 gap> g:=SimplifiedFpGroup(SCFundamentalGroup(l151));
1184
 <fp group on the generators [ [2,3] ]>
1185
 gap> StructureDescription(g);
1186
 "C15"
1187
 
1188

1189
1190
6.4-16 SCSeriesPrimeTorus
1191
1192
SCSeriesPrimeTorus( l, j, p )  function
1193
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
1194
otherwise.
1195
1196
Generates the well known triangulated torus { (l:j:p-l-j),(l:p-l-j:j) } with
1197
p vertices, 3p edges and 2p triangles where j has to be greater than l and p
1198
must be any prime number greater than 6.
1199
1200
 Example 
1201
 gap> l:=List([2..19],x->SCSeriesPrimeTorus(1,x,41));; 
1202
 gap> Set(List(l,x->SCHomology(x)));
1203
 [ [ [ 0, [ ] ], [ 2, [ ] ], [ 1, [ ] ] ] ]
1204
 
1205

1206
1207
6.4-17 SCSeriesSeifertFibredSpace
1208
1209
SCSeriesSeifertFibredSpace( p, q, r )  function
1210
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
1211
otherwise.
1212
1213
Generates a combinatorial Seifert fibred space of type
1214
1215
1216
SFS [ (\mathbb{T}^2)^{(a-1)(b-1)} : (p/a,b_1)^b , (q/b,b_2)^a,
1217
(r/ab,b_3) ] 
1218
1219
1220
where p and q are co-prime, a = operatornamegcd (p,r), b = operatornamegcd
1221
(p,r), and the b_i are given by the identity
1222
1223
1224
\frac{b_1}{p} + \frac{b_2}{q} + \frac{b_3}{r} = \frac{\pm ab}{pqr}. 
1225
1226
1227
This 3-parameter family of combinatorial 3-manifolds contains the families
1228
generated by SCSeriesHomologySphere (6.4-10), SCSeriesConnectedSum (6.4-6)
1229
and parts of SCSeriesLensSpace (6.4-15), internally calls
1230
SCIntFunc.SeifertFibredSpace(p,q,r). The complexes are combinatorial
1231
3-manifolds with transitive cyclic symmetry as described in [BS14].
1232
1233
 Example 
1234
 gap> c:=SCSeriesSeifertFibredSpace(2,3,15);
1235
 [SimplicialComplex
1236
 
1237
 Properties known: DifferenceCycles, Dim, FacetsEx, Name, 
1238
 TopologicalType, Vertices.
1239
 
1240
 Name="SFS [ S^2 : (2,b1)^3, (5,b3) ]"
1241
 Dim=3
1242
 TopologicalType="SFS [ S^2 : (2,b1)^3, (5,b3) ]"
1243
 
1244
 /SimplicialComplex]
1245
 gap> c.Homology;
1246
 [ [ 0, [ ] ], [ 0, [ 2, 2 ] ], [ 0, [ ] ], [ 1, [ ] ] ]
1247
 
1248

1249
1250
6.4-18 SCSeriesS2xS2
1251
1252
SCSeriesS2xS2( k )  function
1253
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
1254
otherwise.
1255
1256
Generates a combinatorial version of (S^2 × S^2)^# k.
1257
1258
 Example 
1259
 gap> c:=SCSeriesS2xS2(3);
1260
 [SimplicialComplex
1261
 
1262
 Properties known: DifferenceCycles, Dim, FacetsEx, Name, 
1263
 TopologicalType, Vertices.
1264
 
1265
 Name="(S^2 x S^2)^(# 3)"
1266
 Dim=4
1267
 TopologicalType="(S^2 x S^2)^(# 3)"
1268
 
1269
 /SimplicialComplex]
1270
 gap> c.Homology;
1271
 [ [ 0, [ ] ], [ 0, [ ] ], [ 6, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ]
1272
 
1273

1274
1275
1276
6.5 A census of regular and chiral maps
1277
1278
6.5-1 SCChiralMap
1279
1280
SCChiralMap( m, g )  function
1281
Returns: a SCSimplicialComplex object upon success, fail otherwise.
1282
1283
Returns the (hyperbolic) chiral map of vertex valence m and genus g if
1284
existent and fail otherwise. The list was generated with the help of the
1285
classification of regular maps by Marston Conder [Con09]. Use SCChiralMaps
1286
(6.5-2) to get a list of all chiral maps available.
1287
1288
 Example 
1289
 gap> SCChiralMaps();
1290
 [ [ 7, 17 ], [ 8, 10 ], [ 8, 28 ], [ 8, 37 ], [ 8, 46 ], [ 8, 82 ], 
1291
 [ 9, 43 ], [ 10, 73 ], [ 12, 22 ], [ 12, 33 ], [ 12, 40 ], [ 12, 51 ], 
1292
 [ 12, 58 ], [ 12, 64 ], [ 12, 85 ], [ 12, 94 ], [ 12, 97 ], [ 18, 28 ] ]
1293
 gap> c:=SCChiralMap(8,10);
1294
 [SimplicialComplex
1295
 
1296
 Properties known: Dim, FacetsEx, Name, TopologicalType, Vertices.
1297
 
1298
 Name="Chiral map {8,10}"
1299
 Dim=2
1300
 TopologicalType="(T^2)^#10"
1301
 
1302
 /SimplicialComplex]
1303
 gap> c.Homology;
1304
 [ [ 0, [ ] ], [ 20, [ ] ], [ 1, [ ] ] ]
1305
 
1306

1307
1308
6.5-2 SCChiralMaps
1309
1310
SCChiralMaps( )  function
1311
Returns: a list of lists upon success, fail otherwise.
1312
1313
Returns a list of all simplicial (hyperbolic) chiral maps of orientable
1314
genus up to 100. The list was generated with the help of the classification
1315
of regular maps by Marston Conder [Con09]. Every chiral map is given by a
1316
2-tuple (m,g) where m is the vertex valence and g is the genus of the map.
1317
Use the 2-tuples of the list together with SCChiralMap (6.5-1) to get the
1318
corresponding triangulations.
1319
1320
 Example 
1321
 gap> ll:=SCChiralMaps();
1322
 [ [ 7, 17 ], [ 8, 10 ], [ 8, 28 ], [ 8, 37 ], [ 8, 46 ], [ 8, 82 ], 
1323
 [ 9, 43 ], [ 10, 73 ], [ 12, 22 ], [ 12, 33 ], [ 12, 40 ], [ 12, 51 ], 
1324
 [ 12, 58 ], [ 12, 64 ], [ 12, 85 ], [ 12, 94 ], [ 12, 97 ], [ 18, 28 ] ]
1325
 gap> c:=SCChiralMap(ll[18][1],ll[18][2]);
1326
 [SimplicialComplex
1327
 
1328
 Properties known: Dim, FacetsEx, Name, TopologicalType, Vertices.
1329
 
1330
 Name="Chiral map {18,28}"
1331
 Dim=2
1332
 TopologicalType="(T^2)^#28"
1333
 
1334
 /SimplicialComplex]
1335
 gap> SCHomology(c);
1336
 [ [ 0, [ ] ], [ 56, [ ] ], [ 1, [ ] ] ]
1337
 
1338

1339
1340
6.5-3 SCChiralTori
1341
1342
SCChiralTori( n )  function
1343
Returns: a SCSimplicialComplex object upon success, fail otherwise.
1344
1345
Returns a list of chiral triangulations of the torus with n vertices. See
1346
[BK08] for details.
1347
1348
 Example 
1349
 gap> cc:=SCChiralTori(91);
1350
 [ [SimplicialComplex
1351
 
1352
 Properties known: AutomorphismGroup, Dim, FacetsEx, Name, 
1353
 TopologicalType, Vertices.
1354
 
1355
 Name="{3,6}_(9,1)"
1356
 Dim=2
1357
 TopologicalType="T^2"
1358
 
1359
 /SimplicialComplex], [SimplicialComplex
1360
 
1361
 Properties known: AutomorphismGroup, Dim, FacetsEx, Name, 
1362
 TopologicalType, Vertices.
1363
 
1364
 Name="{3,6}_(6,5)"
1365
 Dim=2
1366
 TopologicalType="T^2"
1367
 
1368
 /SimplicialComplex] ]
1369
 gap> SCIsIsomorphic(cc[1],cc[2]);
1370
 false
1371
 
1372

1373
1374
6.5-4 SCNrChiralTori
1375
1376
SCNrChiralTori( n )  function
1377
Returns: an integer upon success, fail otherwise.
1378
1379
Returns the number of simplicial chiral maps on the torus with n vertices,
1380
cf. [BK08] for details.
1381
1382
 Example 
1383
 gap> SCNrChiralTori(7);
1384
 1
1385
 gap> SCNrChiralTori(343);
1386
 2
1387
 
1388

1389
1390
6.5-5 SCNrRegularTorus
1391
1392
SCNrRegularTorus( n )  function
1393
Returns: an integer upon success, fail otherwise.
1394
1395
Returns the number of simplicial regular maps on the torus with n vertices,
1396
cf. [BK08] for details.
1397
1398
 Example 
1399
 gap> SCNrRegularTorus(9);
1400
 1
1401
 gap> SCNrRegularTorus(10);
1402
 0
1403
 
1404

1405
1406
6.5-6 SCRegularMap
1407
1408
SCRegularMap( m, g, orient )  function
1409
Returns: a SCSimplicialComplex object upon success, fail otherwise.
1410
1411
Returns the (hyperbolic) regular map of vertex valence m, genus g and
1412
orientability orient if existent and fail otherwise. The triangulations were
1413
generated with the help of the classification of regular maps by Marston
1414
Conder [Con09]. Use SCRegularMaps (6.5-7) to get a list of all regular maps
1415
available.
1416
1417
 Example 
1418
 gap> SCRegularMaps(){[1..10]};
1419
 [ [ 7, 3, true ], [ 7, 7, true ], [ 7, 8, false ], [ 7, 14, true ], 
1420
 [ 7, 15, false ], [ 7, 147, false ], [ 8, 3, true ], [ 8, 5, true ], 
1421
 [ 8, 8, true ], [ 8, 9, false ] ]
1422
 gap> c:=SCRegularMap(7,7,true);
1423
 [SimplicialComplex
1424
 
1425
 Properties known: Dim, FacetsEx, Name, TopologicalType, Vertices.
1426
 
1427
 Name="Orientable regular map {7,7}"
1428
 Dim=2
1429
 TopologicalType="(T^2)^#7"
1430
 
1431
 /SimplicialComplex]
1432
 gap> g:=SCAutomorphismGroup(c);
1433
 #I group not listed
1434
 C2 x PSL(2,8)
1435
 gap> Size(g);
1436
 1008
1437
 
1438

1439
1440
6.5-7 SCRegularMaps
1441
1442
SCRegularMaps( )  function
1443
Returns: a list of lists upon success, fail otherwise.
1444
1445
Returns a list of all simplicial (hyperbolic) regular maps of orientable
1446
genus up to 100 or non-orientable genus up to 200. The list was generated
1447
with the help of the classification of regular maps by Marston Conder
1448
[Con09]. Every regular map is given by a 3-tuple (m,g,or) where m is the
1449
vertex valence, g is the genus and or is a boolean stating if the map is
1450
orientable or not. Use the 3-tuples of the list together with SCRegularMap
1451
(6.5-6) to get the corresponding triangulations. g
1452
1453
 Example 
1454
 gap> ll:=SCRegularMaps(){[1..10]};
1455
 [ [ 7, 3, true ], [ 7, 7, true ], [ 7, 8, false ], [ 7, 14, true ], 
1456
 [ 7, 15, false ], [ 7, 147, false ], [ 8, 3, true ], [ 8, 5, true ], 
1457
 [ 8, 8, true ], [ 8, 9, false ] ]
1458
 gap> c:=SCRegularMap(ll[5][1],ll[5][2],ll[5][3]);
1459
 [SimplicialComplex
1460
 
1461
 Properties known: Dim, FacetsEx, Name, TopologicalType, Vertices.
1462
 
1463
 Name="Non-orientable regular map {7,15}"
1464
 Dim=2
1465
 TopologicalType="(RP^2)^#15"
1466
 
1467
 /SimplicialComplex]
1468
 gap> SCHomology(c);
1469
 [ [ 0, [ ] ], [ 14, [ 2 ] ], [ 0, [ ] ] ]
1470
 gap> SCGenerators(c);
1471
 [ [ [ 1, 4, 7 ], 182 ] ]
1472
 
1473

1474
1475
6.5-8 SCRegularTorus
1476
1477
SCRegularTorus( n )  function
1478
Returns: a SCSimplicialComplex object upon success, fail otherwise.
1479
1480
Returns a list of regular triangulations of the torus with n vertices (the
1481
length of the list will be at most 1). See [BK08] for details.
1482
1483
 Example 
1484
 gap> cc:=SCRegularTorus(9);
1485
 [ [SimplicialComplex
1486
 
1487
 Properties known: AutomorphismGroup, Dim, FacetsEx, Name, 
1488
 TopologicalType, Vertices.
1489
 
1490
 Name="{3,6}_(3,0)"
1491
 Dim=2
1492
 TopologicalType="T^2"
1493
 
1494
 /SimplicialComplex] ]
1495
 gap> g:=SCAutomorphismGroup(cc[1]);
1496
 Group([ (2,7)(3,4)(5,9), (1,4,2)(3,7,9)(5,8,6), (2,8,7,3,6,4)(5,9) ])
1497
 gap> SCNumFaces(cc[1],0)*12 = Size(g);
1498
 true
1499
 
1500

1501
1502
6.5-9 SCSeriesSymmetricTorus
1503
1504
SCSeriesSymmetricTorus( p, q )  function
1505
Returns: a SCSimplicialComplex object upon success, fail otherwise.
1506
1507
Returns the equivarient triangulation of the torus { 3,6 }_(p,q) with
1508
fundamental domain (p,q) on the 2-dimensional integer lattice. See [BK08]
1509
for details.
1510
1511
 Example 
1512
 gap> c:=SCSeriesSymmetricTorus(2,1);
1513
 [SimplicialComplex
1514
 
1515
 Properties known: AutomorphismGroup, Dim, FacetsEx, Name, 
1516
 TopologicalType, Vertices.
1517
 
1518
 Name="{3,6}_(2,1)"
1519
 Dim=2
1520
 TopologicalType="T^2"
1521
 
1522
 /SimplicialComplex]
1523
 gap> SCFVector(c);
1524
 [ 7, 21, 14 ]
1525
 
1526

1527
1528
See also SCSurface (6.3-6) for example triangulations of all compact closed
1529
surfaces with transitive cyclic automorphism group.
1530
1531
1532
6.6 Generating new complexes from old
1533
1534
6.6-1 SCCartesianPower
1535
1536
SCCartesianPower( complex, n )  method
1537
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
1538
otherwise.
1539
1540
The new complex is PL-homeomorphic to n times the cartesian product of
1541
complex, of dimensions n ⋅ d and has f_d^n ⋅ n ⋅ frac2n-12^n-1}! facets
1542
where d denotes the dimension and f_d denotes the number of facets of
1543
complex. Note that the complex returned by the function is not the n-fold
1544
cartesian product complex^n of complex (which, in general, is not
1545
simplicial) but a simplicial subdivision of complex^n.
1546
1547
 Example 
1548
 gap> c:=SCBdSimplex(2);;
1549
 gap> 4torus:=SCCartesianPower(c,4);
1550
 [SimplicialComplex
1551
 
1552
 Properties known: Dim, FacetsEx, Name, TopologicalType, Vertices.
1553
 
1554
 Name="(S^1_3)^4"
1555
 Dim=4
1556
 TopologicalType="(S^1)^4"
1557
 
1558
 /SimplicialComplex]
1559
 gap> 4torus.Homology;
1560
 [ [ 0, [ ] ], [ 4, [ ] ], [ 6, [ ] ], [ 4, [ ] ], [ 1, [ ] ] ]
1561
 gap> 4torus.Chi;
1562
 0
1563
 gap> 4torus.F;
1564
 [ 81, 1215, 4050, 4860, 1944 ]
1565
 
1566

1567
1568
6.6-2 SCCartesianProduct
1569
1570
SCCartesianProduct( complex1, complex2 )  method
1571
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
1572
otherwise.
1573
1574
Computes the simplicial cartesian product of complex1 and complex2 where
1575
complex1 and complex2 are pure, simplicial complexes. The original vertex
1576
labeling of complex1 and complex2 is changed into the standard one. The new
1577
complex has vertex labels of type [v_i, v_j] where v_i is a vertex of
1578
complex1 and v_j is a vertex of complex2.
1579
1580
If n_i, i=1,2, are the number facets and d_i, i=1,2, are the dimensions of
1581
complexi, then the new complex has n_1 ⋅ n_2 ⋅ d_1+d_2 choose d_1 facets.
1582
The number of vertices of the new complex equals the product of the numbers
1583
of vertices of the arguments.
1584
1585
 Example 
1586
 gap> c1:=SCBdSimplex(2);;
1587
 gap> c2:=SCBdSimplex(3);;
1588
 gap> c3:=SCCartesianProduct(c1,c2);
1589
 [SimplicialComplex
1590
 
1591
 Properties known: Dim, FacetsEx, Name, TopologicalType, Vertices.
1592
 
1593
 Name="S^1_3xS^2_4"
1594
 Dim=3
1595
 TopologicalType="S^1xS^2"
1596
 
1597
 /SimplicialComplex]
1598
 gap> c3.Homology;
1599
 [ [ 0, [ ] ], [ 1, [ ] ], [ 1, [ ] ], [ 1, [ ] ] ]
1600
 gap> c3.F;
1601
 [ 12, 48, 72, 36 ]
1602
 
1603

1604
1605
6.6-3 SCConnectedComponents
1606
1607
SCConnectedComponents( complex )  method
1608
Returns: a list of simplicial complexes of type SCSimplicialComplex upon
1609
success, fail otherwise.
1610
1611
Computes all connected components of an arbitrary simplicial complex.
1612
1613
 Example 
1614
 gap> c:=SC([[1,2,3],[3,4,5],[4,5,6,7,8]]);;
1615
 gap> SCRename(c,"connected complex");;
1616
 gap> SCConnectedComponents(c);
1617
 [ [SimplicialComplex
1618
 
1619
 Properties known: Dim, FacetsEx, Name, Vertices.
1620
 
1621
 Name="Connected component #1 of connected complex"
1622
 Dim=4
1623
 
1624
 /SimplicialComplex] ]
1625
 gap> c:=SC([[1,2,3],[4,5],[6,7,8]]);;
1626
 gap> SCRename(c,"non-connected complex");;
1627
 gap> SCConnectedComponents(c);
1628
 [ [SimplicialComplex
1629
 
1630
 Properties known: Dim, FacetsEx, Name, Vertices.
1631
 
1632
 Name="Connected component #1 of non-connected complex"
1633
 Dim=2
1634
 
1635
 /SimplicialComplex], [SimplicialComplex
1636
 
1637
 Properties known: Dim, FacetsEx, Name, Vertices.
1638
 
1639
 Name="Connected component #2 of non-connected complex"
1640
 Dim=1
1641
 
1642
 /SimplicialComplex], [SimplicialComplex
1643
 
1644
 Properties known: Dim, FacetsEx, Name, Vertices.
1645
 
1646
 Name="Connected component #3 of non-connected complex"
1647
 Dim=2
1648
 
1649
 /SimplicialComplex] ]
1650
 
1651

1652
1653
6.6-4 SCConnectedProduct
1654
1655
SCConnectedProduct( complex, n )  method
1656
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
1657
otherwise.
1658
1659
If n ≥ 2, the function internally calls 1 × SCConnectedSum (6.6-5) and (n-2)
1660
× SCConnectedSumMinus (6.6-6).
1661
1662
 Example 
1663
 gap> SCLib.SearchByName("T^2"){[1..6]};
1664
 [ [ 4, "T^2 (VT)" ], [ 5, "T^2 (VT)" ], [ 9, "T^2 (VT)" ], [ 10, "T^2 (VT)" ],
1665
 [ 18, "T^2 (VT)" ], [ 20, "(T^2)#2" ] ]
1666
 gap> torus:=SCLib.Load(last[1][1]);;
1667
 gap> genus10:=SCConnectedProduct(torus,10);
1668
 [SimplicialComplex
1669
 
1670
 Properties known: Dim, FacetsEx, Name, Vertices.
1671
 
1672
 Name="T^2 (VT)#+-T^2 (VT)#+-T^2 (VT)#+-T^2 (VT)#+-T^2 (VT)#+-T^2 (VT)#+-T^2 (\
1673
 VT)#+-T^2 (VT)#+-T^2 (VT)#+-T^2 (VT)"
1674
 Dim=2
1675
 
1676
 /SimplicialComplex]
1677
 gap> genus10.Chi;
1678
 -18
1679
 gap> genus10.F;
1680
 [ 43, 183, 122 ]
1681
 
1682

1683
1684
6.6-5 SCConnectedSum
1685
1686
SCConnectedSum( complex1, complex2 )  method
1687
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
1688
otherwise.
1689
1690
In a lexicographic ordering the smallest facet of both complex1 and complex2
1691
is removed and the complexes are glued together along the resulting
1692
boundaries. The bijection used to identify the vertices of the boundaries
1693
differs from the one chosen in SCConnectedSumMinus (6.6-6) by a
1694
transposition. Thus, the topological type of SCConnectedSum is different
1695
from the one of SCConnectedSumMinus (6.6-6) whenever complex1 and complex2
1696
do not allow an orientation reversing homeomorphism.
1697
1698
 Example 
1699
 gap> SCLib.SearchByName("T^2"){[1..6]};
1700
 [ [ 4, "T^2 (VT)" ], [ 5, "T^2 (VT)" ], [ 9, "T^2 (VT)" ], [ 10, "T^2 (VT)" ],
1701
 [ 18, "T^2 (VT)" ], [ 20, "(T^2)#2" ] ]
1702
 gap> torus:=SCLib.Load(last[1][1]);;
1703
 gap> genus2:=SCConnectedSum(torus,torus);
1704
 [SimplicialComplex
1705
 
1706
 Properties known: Dim, FacetsEx, Name, Vertices.
1707
 
1708
 Name="T^2 (VT)#+-T^2 (VT)"
1709
 Dim=2
1710
 
1711
 /SimplicialComplex]
1712
 gap> genus2.Homology;
1713
 [ [ 0, [ ] ], [ 4, [ ] ], [ 1, [ ] ] ]
1714
 gap> genus2.Chi;
1715
 -2
1716
 
1717

1718
1719
 Example 
1720
 gap> SCLib.SearchByName("CP^2");
1721
 [ [ 16, "CP^2 (VT)" ], [ 99, "CP^2#-CP^2" ], [ 100, "CP^2#CP^2" ], 
1722
 [ 400, "CP^2#(S^2xS^2)" ], [ 2486, "Gaifullin CP^2" ], 
1723
 [ 4401, "(S^3~S^1)#(CP^2)^{#5} (VT)" ] ]
1724
 gap> cp2:=SCLib.Load(last[1][1]);;
1725
 gap> c1:=SCConnectedSum(cp2,cp2);;
1726
 gap> c2:=SCConnectedSumMinus(cp2,cp2);;
1727
 gap> c1.F=c2.F;
1728
 true
1729
 gap> c1.ASDet=c2.ASDet;
1730
 true
1731
 gap> SCIsIsomorphic(c1,c2);
1732
 false
1733
 gap> PrintArray(SCIntersectionForm(c1));
1734
 [ [ 1, 0 ],
1735
 [ 0, 1 ] ]
1736
 gap> PrintArray(SCIntersectionForm(c2));
1737
 [ [ 1, 0 ],
1738
 [ 0, -1 ] ]
1739
 
1740

1741
1742
6.6-6 SCConnectedSumMinus
1743
1744
SCConnectedSumMinus( complex1, complex2 )  method
1745
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
1746
otherwise.
1747
1748
In a lexicographic ordering the smallest facet of both complex1 and complex2
1749
is removed and the complexes are glued together along the resulting
1750
boundaries. The bijection used to identify the vertices of the boundaries
1751
differs from the one chosen in SCConnectedSum (6.6-5) by a transposition.
1752
Thus, the topological type of SCConnectedSumMinus is different from the one
1753
of SCConnectedSum (6.6-5) whenever complex1 and complex2 do not allow an
1754
orientation reversing homeomorphism.
1755
1756
 Example 
1757
 gap> SCLib.SearchByName("T^2"){[1..6]};
1758
 [ [ 4, "T^2 (VT)" ], [ 5, "T^2 (VT)" ], [ 9, "T^2 (VT)" ], [ 10, "T^2 (VT)" ],
1759
 [ 18, "T^2 (VT)" ], [ 20, "(T^2)#2" ] ]
1760
 gap> torus:=SCLib.Load(last[1][1]);;
1761
 gap> genus2:=SCConnectedSumMinus(torus,torus);
1762
 [SimplicialComplex
1763
 
1764
 Properties known: Dim, FacetsEx, Name, Vertices.
1765
 
1766
 Name="T^2 (VT)#+-T^2 (VT)"
1767
 Dim=2
1768
 
1769
 /SimplicialComplex]
1770
 gap> genus2.Homology;
1771
 [ [ 0, [ ] ], [ 4, [ ] ], [ 1, [ ] ] ]
1772
 gap> genus2.Chi;
1773
 -2
1774
 
1775

1776
1777
 Example 
1778
 gap> SCLib.SearchByName("CP^2");
1779
 [ [ 16, "CP^2 (VT)" ], [ 99, "CP^2#-CP^2" ], [ 100, "CP^2#CP^2" ], 
1780
 [ 400, "CP^2#(S^2xS^2)" ], [ 2486, "Gaifullin CP^2" ], 
1781
 [ 4401, "(S^3~S^1)#(CP^2)^{#5} (VT)" ] ]
1782
 gap> cp2:=SCLib.Load(last[1][1]);;
1783
 gap> c1:=SCConnectedSum(cp2,cp2);;
1784
 gap> c2:=SCConnectedSumMinus(cp2,cp2);;
1785
 gap> c1.F=c2.F;
1786
 true
1787
 gap> c1.ASDet=c2.ASDet;
1788
 true
1789
 gap> SCIsIsomorphic(c1,c2);
1790
 false
1791
 gap> PrintArray(SCIntersectionForm(c1));
1792
 [ [ 1, 0 ],
1793
 [ 0, 1 ] ]
1794
 gap> PrintArray(SCIntersectionForm(c2));
1795
 [ [ 1, 0 ],
1796
 [ 0, -1 ] ]
1797
 
1798

1799
1800
6.6-7 SCDifferenceCycleCompress
1801
1802
SCDifferenceCycleCompress( simplex, modulus )  function
1803
Returns: list with possibly duplicate entries upon success, fail otherwise.
1804
1805
A difference cycle is returned, i. e. a list of integer values of length
1806
(d+1), if d is the dimension of simplex, and a sum equal to modulus. In some
1807
sense this is the inverse operation of SCDifferenceCycleExpand (6.6-8).
1808
1809
 Example 
1810
 gap> sphere:=SCBdSimplex(4);;
1811
 gap> gens:=SCGenerators(sphere);
1812
 [ [ [ 1, 2, 3, 4 ], [ 5 ] ] ]
1813
 gap> diffcycle:=SCDifferenceCycleCompress(gens[1][1],5);
1814
 [ 1, 1, 1, 2 ]
1815
 gap> c:=SCDifferenceCycleExpand([1,1,1,2]);;
1816
 gap> c.Facets;
1817
 [ [ 1, 2, 3, 4 ], [ 1, 2, 3, 5 ], [ 1, 2, 4, 5 ], [ 1, 3, 4, 5 ], 
1818
 [ 2, 3, 4, 5 ] ]
1819
 
1820

1821
1822
6.6-8 SCDifferenceCycleExpand
1823
1824
SCDifferenceCycleExpand( diffcycle )  function
1825
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
1826
otherwise.
1827
1828
diffcycle induces a simplex ∆ = ( v_1 , ... , v_n+1 ) by v_1 =diffcycle[1],
1829
v_i = v_i-1 + diffcycle[i] and a cyclic group action by Z_σ where σ = ∑
1830
diffcycle[i] is the modulus of diffcycle. The function returns the Z_σ-orbit
1831
of ∆.
1832
1833
Note that modulo operations in GAP are often a little bit cumbersome, since
1834
all integer ranges usually start from 1.
1835
1836
 Example 
1837
 gap> c:=SCDifferenceCycleExpand([1,1,2]);;
1838
 gap> c.Facets;
1839
 [ [ 1, 2, 3 ], [ 1, 2, 4 ], [ 1, 3, 4 ], [ 2, 3, 4 ] ]
1840
 
1841

1842
1843
6.6-9 SCStronglyConnectedComponents
1844
1845
SCStronglyConnectedComponents( complex )  method
1846
Returns: a list of simplicial complexes of type SCSimplicialComplex upon
1847
success, fail otherwise.
1848
1849
Computes all strongly connected components of a pure simplicial complex.
1850
1851
 Example 
1852
 gap> c:=SC([[1,2,3],[2,3,4],[4,5,6],[5,6,7]]);;
1853
 gap> comps:=SCStronglyConnectedComponents(c);
1854
 [ [SimplicialComplex
1855
 
1856
 Properties known: Dim, FacetsEx, Name, Vertices.
1857
 
1858
 Name="Strongly connected component #1 of unnamed complex 82"
1859
 Dim=2
1860
 
1861
 /SimplicialComplex], [SimplicialComplex
1862
 
1863
 Properties known: Dim, FacetsEx, Name, Vertices.
1864
 
1865
 Name="Strongly connected component #2 of unnamed complex 82"
1866
 Dim=2
1867
 
1868
 /SimplicialComplex] ]
1869
 gap> comps[1].Facets;
1870
 [ [ 1, 2, 3 ], [ 2, 3, 4 ] ]
1871
 gap> comps[2].Facets;
1872
 [ [ 4, 5, 6 ], [ 5, 6, 7 ] ]
1873
 
1874

1875
1876
1877
6.7 Simplicial complexes from transitive permutation groups
1878
1879
Beginning from Version 1.3.0, simpcomp is able to generate triangulations
1880
from a prescribed transitive group action on its set of vertices. Note that
1881
the corresponding group is a subgroup of the full automorphism group, but
1882
not necessarily the full automorphism group of the triangulations obtained
1883
in this way. The methods and algorithms are based on the works of Frank H.
1884
Lutz [Lut03], [ManifoldPage] and in particular his program MANIFOLD_VT.
1885
1886
6.7-1 SCsFromGroupExt
1887
1888
SCsFromGroupExt( G, n, d, objectType, cache, removeDoubleEntries, outfile, maxLinkSize, subset )  function
1889
Returns: a list of simplicial complexes of type SCSimplicialComplex upon
1890
success, fail otherwise.
1891
1892
Computes all combinatorial d-pseudomanifolds, d=2 / all strongly connected
1893
combinatorial d-pseudomanifolds, d ≥ 3, as a union of orbits of the group
1894
action of G on (d+1)-tuples on the set of n vertices, see [Lut03]. The
1895
integer argument objectType specifies, whether complexes exceeding the
1896
maximal size of each vertex link for combinatorial manifolds are sorted out
1897
(objectType = 0) or not (objectType = 1, in this case some combinatorial
1898
pseudomanifolds won't be found, but no combinatorial manifold will be sorted
1899
out). The integer argument cache specifies if the orbits are held in memory
1900
during the computation, a value of 0 means that the orbits are discarded,
1901
trading speed for memory, any other value means that they are kept, trading
1902
memory for speed. The boolean argument removeDoubleEntries specifies whether
1903
the results are checked for combinatorial isomorphism, preventing isomorphic
1904
entries. The argument outfile specifies an output file containing all
1905
complexes found by the algorithm, if outfile is anything else than a string,
1906
not output file is generated. The argument maxLinkSize determines a maximal
1907
link size of any output complex. If maxLinkSize=0 or if maxLinkSize is
1908
anything else than an integer the argument is ignored. The argument subset
1909
specifies a set of orbits (given by a list of indices of repHigh) which have
1910
to be contained in any output complex. If subset is anything else than a
1911
subset of matrixAllowedRows the argument is ignored.
1912
1913
 Example 
1914
 gap> G:=PrimitiveGroup(8,5);
1915
 PGL(2, 7)
1916
 gap> Size(G);
1917
 336
1918
 gap> Transitivity(G);
1919
 3
1920
 gap> list:=SCsFromGroupExt(G,8,3,1,0,true,false,0,[]);
1921
 [ "defgh.g.h.fah.e.gaf.h.eag.e.faf.a.haa.g.fah.a.gjhzh" ]
1922
 gap> c:=SCFromIsoSig(list[1]);
1923
 [SimplicialComplex
1924
 
1925
 Properties known: Dim, ExportIsoSig, FacetsEx, Name, Vertices.
1926
 
1927
 Name="unnamed complex 6"
1928
 Dim=3
1929
 
1930
 /SimplicialComplex]
1931
 gap> SCNeighborliness(c); 
1932
 3
1933
 gap> c.F;
1934
 [ 8, 28, 56, 28 ]
1935
 gap> c.IsManifold; 
1936
 false
1937
 gap> SCLibDetermineTopologicalType(SCLink(c,1));
1938
 [SimplicialComplex
1939
 
1940
 Properties known: BoundaryEx, Dim, FacetsEx, HasBoundary, 
1941
 IsPseudoManifold, IsPure, Name, SkelExs[], 
1942
 Vertices.
1943
 
1944
 Name="lk([ 1 ]) in unnamed complex 6"
1945
 Dim=2
1946
 HasBoundary=false
1947
 IsPseudoManifold=true
1948
 IsPure=true
1949
 
1950
 /SimplicialComplex]
1951
 gap> # there are no 3-neighborly 3-manifolds with 8 vertices
1952
 gap> list:=SCsFromGroupExt(PrimitiveGroup(8,5),8,3,0,0,true,false,0,[]); 
1953
 gap> [ ]
1954
 
1955

1956
1957
6.7-2 SCsFromGroupByTransitivity
1958
1959
SCsFromGroupByTransitivity( n, d, k, maniflag, computeAutGroup, removeDoubleEntries )  function
1960
Returns: a list of simplicial complexes of type SCSimplicialComplex upon
1961
success, fail otherwise.
1962
1963
Computes all combinatorial d-pseudomanifolds, d = 2 / all strongly connected
1964
combinatorial d-pseudomanifolds, d ≥ 3, as union of orbits of group actions
1965
for all k-transitive groups on (d+1)-tuples on the set of n vertices, see
1966
[Lut03]. The boolean argument maniflag specifies, whether the resulting
1967
complexes should be listed separately by combinatorial manifolds,
1968
combinatorial pseudomanifolds and complexes where the verification that the
1969
object is at least a combinatorial pseudomanifold failed. The boolean
1970
argument computeAutGroup specifies whether or not the real automorphism
1971
group should be computed (note that a priori the generating group is just a
1972
subgroup of the automorphism group). The boolean argument
1973
removeDoubleEntries specifies whether the results are checked for
1974
combinatorial isomorphism, preventing isomorphic entries. Internally calls
1975
SCsFromGroupExt (6.7-1) for every group.
1976
1977
 Example 
1978
 gap> list:=SCsFromGroupByTransitivity(8,3,2,true,true,true);
1979
 #I SCsFromGroupByTransitivity: Building list of groups...
1980
 #I SCsFromGroupByTransitivity: ...2 groups found.
1981
 #I degree 8: [ AGL(1, 8), PSL(2, 7) ]
1982
 #I SCsFromGroupByTransitivity: Processing dimension 3.
1983
 #I SCsFromGroupByTransitivity: Processing degree 8.
1984
 #I SCsFromGroupByTransitivity: 1 / 2 groups calculated, found 0 complexes.
1985
 #I SCsFromGroupByTransitivity: Calculating 0 automorphism and homology groups...
1986
 #I SCsFromGroupByTransitivity: ...all automorphism groups calculated for group 1 / 2.
1987
 #I SCsFromGroupByTransitivity: 2 / 2 groups calculated, found 1 complexes.
1988
 #I SCsFromGroupByTransitivity: Calculating 1 automorphism and homology groups...
1989
 #I group not listed
1990
 #I SCsFromGroupByTransitivity: 1 / 1 automorphism groups calculated.
1991
 #I SCsFromGroupByTransitivity: ...all automorphism groups calculated for group 2 / 2.
1992
 #I SCsFromGroupByTransitivity: ...done dim = 3, deg = 8, 0 manifolds, 1 pseudomanifolds, 0 candidates found.
1993
 #I SCsFromGroupByTransitivity: ...done dim = 3.
1994
 [ [ ], [ ], [ ] ]
1995
 
1996

1997
1998
1999
6.8 The classification of cyclic combinatorial 3-manifolds
2000
2001
This section contains functions to access the classification of
2002
combinatorial 3-manifolds with transitive cyclic symmetry and up to 22
2003
vertices as presented in [Spr14].
2004
2005
6.8-1 SCNrCyclic3Mflds
2006
2007
SCNrCyclic3Mflds( i )  function
2008
Returns: integer upon success, fail otherwise.
2009
2010
Returns the number of combinatorial 3-manifolds with transitive cyclic
2011
symmetry with i vertices. See [Spr14] for more about the classification of
2012
combinatorial 3-manifolds with transitive cyclic symmetry up to 22 vertices.
2013
2014
 Example 
2015
 gap> SCNrCyclic3Mflds(22);
2016
 3090
2017
 
2018

2019
2020
6.8-2 SCCyclic3MfldTopTypes
2021
2022
SCCyclic3MfldTopTypes( i )  function
2023
Returns: a list of strings upon success, fail otherwise.
2024
2025
Returns a list of all topological types that occur in the classification
2026
combinatorial 3-manifolds with transitive cyclic symmetry with i vertices.
2027
See [Spr14] for more about the classification of combinatorial 3-manifolds
2028
with transitive cyclic symmetry up to 22 vertices.
2029
2030
 Example 
2031
 gap> SCCyclic3MfldTopTypes(19);
2032
 [ "B2", "RP^2xS^1", "SFS[RP^2:(2,1)(3,1)]", "S^2~S^1", "S^3", "Sigma(2,3,7)", 
2033
 "T^3" ]
2034
 
2035

2036
2037
6.8-3 SCCyclic3Mfld
2038
2039
SCCyclic3Mfld( i, j )  function
2040
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
2041
otherwise.
2042
2043
Returns the jth combinatorial 3-manifold with i vertices in the
2044
classification of combinatorial 3-manifolds with transitive cyclic symmetry.
2045
See [Spr14] for more about the classification of combinatorial 3-manifolds
2046
with transitive cyclic symmetry up to 22 vertices.
2047
2048
 Example 
2049
 gap> SCCyclic3Mfld(15,34);
2050
 [SimplicialComplex
2051
 
2052
 Properties known: AutomorphismGroupTransitivity, DifferenceCycles, 
2053
 Dim, FacetsEx, IsManifold, Name, TopologicalType, 
2054
 Vertices.
2055
 
2056
 Name="Cyclic 3-mfld (15,34): T^3"
2057
 Dim=3
2058
 AutomorphismGroupTransitivity=1
2059
 TopologicalType="T^3"
2060
 
2061
 /SimplicialComplex]
2062
 
2063

2064
2065
6.8-4 SCCyclic3MfldByType
2066
2067
SCCyclic3MfldByType( type )  function
2068
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
2069
otherwise.
2070
2071
Returns the smallest combinatorial 3-manifolds in the classification of
2072
combinatorial 3-manifolds with transitive cyclic symmetry of topological
2073
type type. See [Spr14] for more about the classification of combinatorial
2074
3-manifolds with transitive cyclic symmetry up to 22 vertices.
2075
2076
 Example 
2077
 gap> SCCyclic3MfldByType("T^3");
2078
 [SimplicialComplex
2079
 
2080
 Properties known: AutomorphismGroupTransitivity, DifferenceCycles, 
2081
 Dim, FacetsEx, IsManifold, Name, TopologicalType, 
2082
 Vertices.
2083
 
2084
 Name="Cyclic 3-mfld (15,34): T^3"
2085
 Dim=3
2086
 AutomorphismGroupTransitivity=1
2087
 TopologicalType="T^3"
2088
 
2089
 /SimplicialComplex]
2090
 
2091

2092
2093
6.8-5 SCCyclic3MfldListOfGivenType
2094
2095
SCCyclic3MfldListOfGivenType( type )  function
2096
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
2097
otherwise.
2098
2099
Returns a list of indices { (i_1, j_1) , (i_1, j_1) , ... (i_n, j_n) } of
2100
all combinatorial 3-manifolds in the classification of combinatorial
2101
3-manifolds with transitive cyclic symmetry of topological type type.
2102
Complexes can be obtained by calling SCCyclic3Mfld (6.8-3) using these
2103
indices. See [Spr14] for more about the classification of combinatorial
2104
3-manifolds with transitive cyclic symmetry up to 22 vertices.
2105
2106
 Example 
2107
 gap> SCCyclic3MfldListOfGivenType("Sigma(2,3,7)");
2108
 [ [ 19, 100 ], [ 19, 118 ], [ 19, 120 ], [ 19, 130 ] ]
2109
 
2110

2111
2112
2113
6.9 Computing properties of simplicial complexes
2114
2115
The following functions compute basic properties of simplicial complexes of
2116
type SCSimplicialComplex. None of these functions alter the complex. All
2117
properties are returned as immutable objects (this ensures data consistency
2118
of the cached properties of a simplicial complex). Use ShallowCopy or the
2119
internal simpcomp function SCIntFunc.DeepCopy to get a mutable copy.
2120
2121
Note: every simplicial complex is internally stored with the standard vertex
2122
labeling from 1 to n and a maptable to restore the original vertex labeling.
2123
Thus, we have to relabel some of the complex properties (facets, face
2124
lattice, generators, etc...) whenever we want to return them to the user. As
2125
a consequence, some of the functions exist twice, one of them with the
2126
appendix "Ex". These functions return the standard labeling whereas the
2127
other ones relabel the result to the original labeling.
2128
2129
6.9-1 SCAltshulerSteinberg
2130
2131
SCAltshulerSteinberg( complex )  method
2132
Returns: a non-negative integer upon success, fail otherwise.
2133
2134
Computes the Altshuler-Steinberg determinant.
2135
2136
Definition: Let v_i, 1 ≤ i ≤ n be the vertices and let F_j, 1 ≤ j ≤ m be the
2137
facets of a pure simplicial complex C, then the determinant of AS ∈ Z^n × m,
2138
AS_ij=1 if v_i ∈ F_j, AS_ij=0 otherwise, is called the Altshuler-Steinberg
2139
matrix. The Altshuler-Steinberg determinant is the determinant of the
2140
quadratic matrix AS ⋅ AS^T.
2141
2142
The Altshuler-Steinberg determinant is a combinatorial invariant of C and
2143
can be checked before searching for an isomorphism between two simplicial
2144
complexes.
2145
2146
 Example 
2147
 gap> list:=SCLib.SearchByName("T^2");; 
2148
 gap> torus:=SCLib.Load(last[1][1]);;
2149
 gap> SCAltshulerSteinberg(torus);
2150
 73728
2151
 gap> c:=SCBdSimplex(3);;
2152
 gap> SCAltshulerSteinberg(c);
2153
 9
2154
 gap> c:=SCBdSimplex(4);;
2155
 gap> SCAltshulerSteinberg(c);
2156
 16
2157
 gap> c:=SCBdSimplex(5);;
2158
 gap> SCAltshulerSteinberg(c);
2159
 25
2160
 
2161

2162
2163
6.9-2 SCAutomorphismGroup
2164
2165
SCAutomorphismGroup( complex )  method
2166
Returns: a GAP permutation group upon success, fail otherwise.
2167
2168
Computes the automorphism group of a strongly connected pseudomanifold
2169
complex, i. e. the group of all automorphisms on the set of vertices of
2170
complex that do not change the complex as a whole. Necessarily the group is
2171
a subgroup of the symmetric group S_n where n is the number of vertices of
2172
the simplicial complex.
2173
2174
The function uses an efficient algorithm provided by the package GRAPE (see
2175
[Soi12], which is based on the program nauty by Brendan McKay [MP14]). If
2176
the package GRAPE is not available, this function call falls back to
2177
SCAutomorphismGroupInternal (6.9-3).
2178
2179
The position of the group in the GAP libraries of small groups, transitive
2180
groups or primitive groups is given. If the group is not listed, its
2181
structure description, provided by the GAP function StructureDescription(),
2182
is returned as the name of the group. Note that the latter form is not
2183
always unique, since every non trivial semi-direct product is denoted by
2184
'':''.
2185
2186
 Example 
2187
 gap> SCLib.SearchByName("K3"); 
2188
 [ [ 7648, "K3_16" ], [ 7649, "K3_17" ] ]
2189
 gap> k3surf:=SCLib.Load(last[1][1]);; 
2190
 gap> SCAutomorphismGroup(k3surf); 
2191
 Group([ (1,3,8,4,9,16,15,2,14,12,6,7,13,5,10), (1,13)(2,14)(3,15)(4,16)(5,9)
2192
 (6,10)(7,11)(8,12) ])
2193
 
2194

2195
2196
6.9-3 SCAutomorphismGroupInternal
2197
2198
SCAutomorphismGroupInternal( complex )  method
2199
Returns: a GAP permutation group upon success, fail otherwise.
2200
2201
Computes the automorphism group of a strongly connected pseudomanifold
2202
complex, i. e. the group of all automorphisms on the set of vertices of
2203
complex that do not change the complex as a whole. Necessarily the group is
2204
a subgroup of the symmetric group S_n where n is the number of vertices of
2205
the simplicial complex.
2206
2207
The position of the group in the GAP libraries of small groups, transitive
2208
groups or primitive groups is given. If the group is not listed, its
2209
structure description, provided by the GAP function StructureDescription(),
2210
is returned as the name of the group. Note that the latter form is not
2211
always unique, since every non trivial semi-direct product is denoted by
2212
'':''.
2213
2214
 Example 
2215
 gap> c:=SCBdSimplex(5);;
2216
 gap> SCAutomorphismGroupInternal(c);
2217
 Sym( [ 1 .. 6 ] )
2218
 
2219

2220
2221
 Example 
2222
 gap> c:=SC([[1,2],[2,3],[1,3]]);;
2223
 gap> g:=SCAutomorphismGroupInternal(c);
2224
 PrimitiveGroup(3,2) = S(3)
2225
 gap> List(g);
2226
 [ (), (1,3,2), (1,2,3), (2,3), (1,3), (1,2) ]
2227
 gap> StructureDescription(g);
2228
 "S3"
2229
 
2230

2231
2232
6.9-4 SCAutomorphismGroupSize
2233
2234
SCAutomorphismGroupSize( complex )  method
2235
Returns: a positive integer group upon success, fail otherwise.
2236
2237
Computes the size of the automorphism group of a strongly connected
2238
pseudomanifold complex, see SCAutomorphismGroup (6.9-2).
2239
2240
 Example 
2241
 gap> SCLib.SearchByName("K3"); 
2242
 [ [ 7648, "K3_16" ], [ 7649, "K3_17" ] ]
2243
 gap> k3surf:=SCLib.Load(last[1][1]);; 
2244
 gap> SCAutomorphismGroupSize(k3surf); 
2245
 240
2246
 
2247

2248
2249
6.9-5 SCAutomorphismGroupStructure
2250
2251
SCAutomorphismGroupStructure( complex )  method
2252
Returns: the GAP structure description upon success, fail otherwise.
2253
2254
Computes the GAP structure description of the automorphism group of a
2255
strongly connected pseudomanifold complex, see SCAutomorphismGroup (6.9-2).
2256
2257
 Example 
2258
 gap> SCLib.SearchByName("K3"); 
2259
 [ [ 7648, "K3_16" ], [ 7649, "K3_17" ] ]
2260
 gap> k3surf:=SCLib.Load(last[1][1]);; 
2261
 gap> SCAutomorphismGroupStructure(k3surf);
2262
 "((C2 x C2 x C2 x C2) : C5) : C3"
2263
 
2264

2265
2266
6.9-6 SCAutomorphismGroupTransitivity
2267
2268
SCAutomorphismGroupTransitivity( complex )  method
2269
Returns: a positive integer upon success, fail otherwise.
2270
2271
Computes the transitivity of the automorphism group of a strongly connected
2272
pseudomanifold complex, i. e. the maximal integer t such that for any two
2273
ordered t-tuples T_1 and T_2 of vertices of complex, there exists an element
2274
g in the automorphism group of complex for which gT_1=T_2, see [Hup67].
2275
2276
 Example 
2277
 gap> SCLib.SearchByName("K3"); 
2278
 [ [ 7648, "K3_16" ], [ 7649, "K3_17" ] ]
2279
 gap> k3surf:=SCLib.Load(last[1][1]);; 
2280
 gap> SCAutomorphismGroupTransitivity(k3surf); 
2281
 2
2282
 
2283

2284
2285
6.9-7 SCBoundary
2286
2287
SCBoundary( complex )  method
2288
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
2289
otherwise.
2290
2291
The function computes the boundary of a simplicial complex complex
2292
satisfying the weak pseudomanifold property and returns it as a simplicial
2293
complex. In addition, it is stored as a property of complex.
2294
2295
The boundary of a simplicial complex is defined as the simplicial complex
2296
consisting of all d-1-faces that are contained in exactly one facet.
2297
2298
If complex does not fulfill the weak pseudomanifold property (i. e. if the
2299
valence of any d-1-face exceeds 2) the function returns fail.
2300
2301
 Example 
2302
 gap> c:=SC([[1,2,3,4],[1,2,3,5],[1,2,4,5],[1,3,4,5]]);
2303
 [SimplicialComplex
2304
 
2305
 Properties known: Dim, FacetsEx, Name, Vertices.
2306
 
2307
 Name="unnamed complex 52"
2308
 Dim=3
2309
 
2310
 /SimplicialComplex]
2311
 gap> SCBoundary(c);
2312
 [SimplicialComplex
2313
 
2314
 Properties known: Dim, FacetsEx, Name, Vertices.
2315
 
2316
 Name="Bd(unnamed complex 52)"
2317
 Dim=2
2318
 
2319
 /SimplicialComplex]
2320
 gap> c; 
2321
 [SimplicialComplex
2322
 
2323
 Properties known: BoundaryEx, Dim, FacetsEx, HasBoundary, 
2324
 IsPseudoManifold, IsPure, Name, SkelExs[], 
2325
 Vertices.
2326
 
2327
 Name="unnamed complex 52"
2328
 Dim=3
2329
 HasBoundary=true
2330
 IsPseudoManifold=true
2331
 IsPure=true
2332
 
2333
 /SimplicialComplex]
2334
 
2335

2336
2337
6.9-8 SCDehnSommervilleCheck
2338
2339
SCDehnSommervilleCheck( c )  method
2340
Returns: true or false upon success, fail otherwise.
2341
2342
Checks if the simplicial complex c fulfills the Dehn Sommerville equations:
2343
h_j - h_d+1-j = (-1)^d+1-j d+1 choose j (χ (M) - 2) for 0 ≤ j ≤ fracd2 and d
2344
even, and h_j - h_d+1-j = 0 for 0 ≤ j ≤ fracd-12 and d odd. Where h_j is the
2345
jth component of the h-vector, see SCHVector (6.9-26).
2346
2347
 Example 
2348
 gap> c:=SCBdCrossPolytope(6);;
2349
 gap> SCDehnSommervilleCheck(c);
2350
 true
2351
 gap> c:=SC([[1,2,3],[1,4,5]]);;
2352
 gap> SCDehnSommervilleCheck(c);
2353
 false
2354
 
2355

2356
2357
6.9-9 SCDehnSommervilleMatrix
2358
2359
SCDehnSommervilleMatrix( d )  method
2360
Returns: a (d+1)×Int(d+1/2) matrix with integer entries upon success, fail
2361
otherwise.
2362
2363
Computes the coefficients of the Dehn Sommerville equations for dimension d:
2364
h_j - h_d+1-j = (-1)^d+1-j d+1 choose j (χ (M) - 2) for 0 ≤ j ≤ fracd2 and d
2365
even, and h_j - h_d+1-j = 0 for 0 ≤ j ≤ fracd-12 and d odd. Where h_j is the
2366
jth component of the h-vector, see SCHVector (6.9-26).
2367
2368
 Example 
2369
 gap> m:=SCDehnSommervilleMatrix(6);;
2370
 gap> PrintArray(m);
2371
 [ [ 1, -1, 1, -1, 1, -1, 1 ],
2372
 [ 0, -2, 3, -4, 5, -6, 7 ],
2373
 [ 0, 0, 0, -4, 10, -20, 35 ],
2374
 [ 0, 0, 0, 0, 0, -6, 21 ] ]
2375
 
2376

2377
2378
6.9-10 SCDifferenceCycles
2379
2380
SCDifferenceCycles( complex )  method
2381
Returns: a list of lists upon success, fail otherwise.
2382
2383
Computes the difference cycles of complex in standard labeling if complex is
2384
invariant under a shift of the vertices of type v ↦ v+1 mod n. The function
2385
returns the difference cycles as lists where the sum of the entries equals
2386
the number of vertices n of complex.
2387
2388
 Example 
2389
 gap> torus:=SCFromDifferenceCycles([[1,2,4],[1,4,2]]);
2390
 [SimplicialComplex
2391
 
2392
 Properties known: DifferenceCycles, Dim, FacetsEx, Name, Vertices.
2393
 
2394
 Name="complex from diffcycles [ [ 1, 2, 4 ], [ 1, 4, 2 ] ]"
2395
 Dim=2
2396
 
2397
 /SimplicialComplex]
2398
 gap> torus.Homology;
2399
 [ [ 0, [ ] ], [ 2, [ ] ], [ 1, [ ] ] ]
2400
 gap> torus.DifferenceCycles;
2401
 [ [ 1, 2, 4 ], [ 1, 4, 2 ] ]
2402
 
2403

2404
2405
6.9-11 SCDim
2406
2407
SCDim( complex )  method
2408
Returns: an integer ≥ -1 upon success, fail otherwise.
2409
2410
Computes the dimension of a simplicial complex. If the complex is not pure,
2411
the dimension of the highest dimensional simplex is returned.
2412
2413
 Example 
2414
 gap> complex:=SC([[1,2,3], [1,2,4], [1,3,4], [2,3,4]]);;
2415
 gap> SCDim(complex); 
2416
 2
2417
 gap> c:=SC([[1], [2,4], [3,4], [5,6,7,8]]);;
2418
 gap> SCDim(c);
2419
 3
2420
 
2421

2422
2423
6.9-12 SCDualGraph
2424
2425
SCDualGraph( complex )  method
2426
Returns: 1-dimensional simplicial complex of type SCSimplicialComplex upon
2427
success, fail otherwise.
2428
2429
Computes the dual graph of the pure simplicial complex complex.
2430
2431
 Example 
2432
 gap> sphere:=SCBdSimplex(5);;
2433
 gap> graph:=SCFaces(sphere,1); 
2434
 [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 1, 5 ], [ 1, 6 ], [ 2, 3 ], [ 2, 4 ], 
2435
 [ 2, 5 ], [ 2, 6 ], [ 3, 4 ], [ 3, 5 ], [ 3, 6 ], [ 4, 5 ], [ 4, 6 ], 
2436
 [ 5, 6 ] ]
2437
 gap> graph:=SC(graph);; 
2438
 gap> dualGraph:=SCDualGraph(sphere); 
2439
 [SimplicialComplex
2440
 
2441
 Properties known: Dim, FacetsEx, Name, Vertices.
2442
 
2443
 Name="dual graph of S^4_6"
2444
 Dim=1
2445
 
2446
 /SimplicialComplex]
2447
 gap> graph.Facets = dualGraph.Facets;
2448
 true
2449
 
2450

2451
2452
6.9-13 SCEulerCharacteristic
2453
2454
SCEulerCharacteristic( complex )  method
2455
Returns: integer upon success, fail otherwise.
2456
2457
Computes the Euler characteristic  \chi(C)=\sum \limits_{i=0}^{d} (-1)^{i}
2458
f_i  of a simplicial complex C, where f_i denotes the i-th component of the
2459
f-vector.
2460
2461
 Example 
2462
 gap> complex:=SCFromFacets([[1,2,3], [1,2,4], [1,3,4], [2,3,4]]);;
2463
 gap> SCEulerCharacteristic(complex);
2464
 2
2465
 gap> s2:=SCBdSimplex(3);;
2466
 gap> s2.EulerCharacteristic;
2467
 2
2468
 
2469

2470
2471
6.9-14 SCFVector
2472
2473
SCFVector( complex )  method
2474
Returns: a list of non-negative integers upon success, fail otherwise.
2475
2476
Computes the f-vector of the simplicial complex complex, i. e. the number of
2477
i-dimensional faces for 0 ≤ i ≤ d, where d is the dimension of complex. A
2478
memory-saving implicit algorithm is used that avoids calculating the face
2479
lattice of the complex. Internally calls SCNumFaces (6.9-52).
2480
2481
 Example 
2482
 gap> complex:=SC([[1,2,3], [1,2,4], [1,3,4], [2,3,4]]);;
2483
 gap> SCFVector(complex);
2484
 [ 4, 6, 4 ]
2485
 
2486

2487
2488
6.9-15 SCFaceLattice
2489
2490
SCFaceLattice( complex )  method
2491
Returns: a list of face lists upon success, fail otherwise.
2492
2493
Computes the entire face lattice of a d-dimensional simplicial complex, i.
2494
e. all of its i-skeletons for 0 ≤ i ≤ d. The faces are returned in the
2495
original labeling.
2496
2497
 Example 
2498
 gap> c:=SC([["a","b","c"],["a","b","d"], ["a","c","d"], ["b","c","d"]]);;
2499
 gap> SCFaceLattice(c);
2500
 [ [ [ "a" ], [ "b" ], [ "c" ], [ "d" ] ], 
2501
 [ [ "a", "b" ], [ "a", "c" ], [ "a", "d" ], [ "b", "c" ], [ "b", "d" ], 
2502
 [ "c", "d" ] ], 
2503
 [ [ "a", "b", "c" ], [ "a", "b", "d" ], [ "a", "c", "d" ], 
2504
 [ "b", "c", "d" ] ] ]
2505
 
2506

2507
2508
6.9-16 SCFaceLatticeEx
2509
2510
SCFaceLatticeEx( complex )  method
2511
Returns: a list of face lists upon success, fail otherwise.
2512
2513
Computes the entire face lattice of a d-dimensional simplicial complex, i.
2514
e. all of its i-skeletons for 0 ≤ i ≤ d. The faces are returned in the
2515
standard labeling.
2516
2517
 Example 
2518
 gap> c:=SC([["a","b","c"],["a","b","d"], ["a","c","d"], ["b","c","d"]]);;
2519
 gap> SCFaceLatticeEx(c);
2520
 [ [ [ 1 ], [ 2 ], [ 3 ], [ 4 ] ], 
2521
 [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 2, 3 ], [ 2, 4 ], [ 3, 4 ] ], 
2522
 [ [ 1, 2, 3 ], [ 1, 2, 4 ], [ 1, 3, 4 ], [ 2, 3, 4 ] ] ]
2523
 
2524

2525
2526
6.9-17 SCFaces
2527
2528
SCFaces( complex, k )  method
2529
Returns: a face list upon success, fail otherwise.
2530
2531
This is a synonym of the function SCSkel (7.3-13).
2532
2533
6.9-18 SCFacesEx
2534
2535
SCFacesEx( complex, k )  method
2536
Returns: a face list upon success, fail otherwise.
2537
2538
This is a synonym of the function SCSkelEx (7.3-14).
2539
2540
6.9-19 SCFacets
2541
2542
SCFacets( complex )  method
2543
Returns: a facet list upon success, fail otherwise.
2544
2545
Returns the facets of a simplicial complex in the original vertex labeling.
2546
2547
 Example 
2548
 gap> c:=SC([[2,3],[3,4],[4,2]]);;
2549
 gap> SCFacets(c);
2550
 [ [ 2, 3 ], [ 2, 4 ], [ 3, 4 ] ]
2551
 
2552

2553
2554
6.9-20 SCFacetsEx
2555
2556
SCFacetsEx( complex )  method
2557
Returns: a facet list upon success, fail otherwise.
2558
2559
Returns the facets of a simplicial complex as they are stored, i. e. with
2560
standard vertex labeling from 1 to n.
2561
2562
 Example 
2563
 gap> c:=SC([[2,3],[3,4],[4,2]]);;
2564
 gap> SCFacetsEx(c);
2565
 [ [ 1, 2 ], [ 1, 3 ], [ 2, 3 ] ]
2566
 
2567

2568
2569
6.9-21 SCFpBettiNumbers
2570
2571
SCFpBettiNumbers( complex, p )  method
2572
Returns: a list of non-negative integers upon success, fail otherwise.
2573
2574
Computes the Betti numbers of a simplicial complex with respect to the field
2575
F_p for any prime number p.
2576
2577
 Example 
2578
 gap> SCLib.SearchByName("K^2"); 
2579
 [ [ 17, "K^2 (VT)" ], [ 571, "K^2 (VT)" ] ]
2580
 gap> kleinBottle:=SCLib.Load(last[1][1]);; 
2581
 gap> SCHomology(kleinBottle); 
2582
 [ [ 0, [ ] ], [ 1, [ 2 ] ], [ 0, [ ] ] ]
2583
 gap> SCFpBettiNumbers(kleinBottle,2);
2584
 [ 1, 2, 1 ]
2585
 gap> SCFpBettiNumbers(kleinBottle,3);
2586
 [ 1, 1, 0 ]
2587
 
2588

2589
2590
6.9-22 SCFundamentalGroup
2591
2592
SCFundamentalGroup( complex )  method
2593
Returns: a GAP fp group upon success, fail otherwise.
2594
2595
Computes the first fundamental group of complex, which must be a connected
2596
simplicial complex, and returns it in form of a finitely presented group.
2597
The generators of the group are given as 2-tuples that correspond to the
2598
edges of complex in standard labeling. You can use GAP's SimplifiedFpGroup
2599
to simplify the group presenation.
2600
2601
 Example 
2602
 gap> list:=SCLib.SearchByName("RP^2");
2603
 [ [ 3, "RP^2 (VT)" ], [ 635, "RP^2xS^1" ] ]
2604
 gap> c:=SCLib.Load(list[1][1]);
2605
 [SimplicialComplex
2606
 
2607
 Properties known: AltshulerSteinberg, AutomorphismGroup, 
2608
 AutomorphismGroupSize, AutomorphismGroupStructure, 
2609
 AutomorphismGroupTransitivity, ConnectedComponents, 
2610
 Dim, DualGraph, EulerCharacteristic, FVector, 
2611
 FacetsEx, GVector, GeneratorsEx, HVector, 
2612
 HasBoundary, HasInterior, Homology, Interior, 
2613
 IsCentrallySymmetric, IsConnected, 
2614
 IsEulerianManifold, IsManifold, IsOrientable, 
2615
 IsPseudoManifold, IsPure, IsStronglyConnected, 
2616
 MinimalNonFacesEx, Name, Neighborliness, 
2617
 NumFaces[], Orientation, Reference, SkelExs[], 
2618
 Vertices.
2619
 
2620
 Name="RP^2 (VT)"
2621
 Dim=2
2622
 AltshulerSteinberg=3645
2623
 AutomorphismGroupSize=60
2624
 AutomorphismGroupStructure="A5"
2625
 AutomorphismGroupTransitivity=2
2626
 EulerCharacteristic=1
2627
 FVector=[ 6, 15, 10 ]
2628
 GVector=[ 2, 3 ]
2629
 HVector=[ 3, 6, 0 ]
2630
 HasBoundary=false
2631
 HasInterior=true
2632
 Homology=[ [ 0, [ ] ], [ 0, [ 2 ] ], [ 0, [ ] ] ]
2633
 IsCentrallySymmetric=false
2634
 IsConnected=true
2635
 IsEulerianManifold=true
2636
 IsOrientable=false
2637
 IsPseudoManifold=true
2638
 IsPure=true
2639
 IsStronglyConnected=true
2640
 Neighborliness=2
2641
 
2642
 /SimplicialComplex]
2643
 gap> g:=SCFundamentalGroup(c);;
2644
 gap> StructureDescription(g);
2645
 "C2"
2646
 
2647

2648
2649
6.9-23 SCGVector
2650
2651
SCGVector( complex )  method
2652
Returns: a list of integers upon success, fail otherwise.
2653
2654
Computes the g-vector of a simplicial complex. The g-vector is defined as
2655
follows:
2656
2657
Let h be the h-vector of a d-dimensional simplicial complex C, then
2658
g_i:=h_{i+1} - h_{i} ; \quad \frac{d}{2} \geq i \geq 0  is called the
2659
g-vector of C. For the definition of the h-vector see SCHVector (6.9-26).
2660
The information contained in g suffices to determine the f-vector of C.
2661
2662
 Example 
2663
 gap> SCLib.SearchByName("RP^2");
2664
 [ [ 3, "RP^2 (VT)" ], [ 635, "RP^2xS^1" ] ]
2665
 gap> rp2_6:=SCLib.Load(last[1][1]);;
2666
 gap> SCFVector(rp2_6);
2667
 [ 6, 15, 10 ]
2668
 gap> SCHVector(rp2_6);
2669
 [ 3, 6, 0 ]
2670
 gap> SCGVector(rp2_6);
2671
 [ 2, 3 ]
2672
 
2673

2674
2675
6.9-24 SCGenerators
2676
2677
SCGenerators( complex )  method
2678
Returns: a list of pairs of the form [ list, integer ] upon success, fail
2679
otherwise.
2680
2681
Computes the generators of a simplicial complex in the original vertex
2682
labeling.
2683
2684
The generating set of a simplicial complex is a list of simplices that will
2685
generate the complex by uniting their G-orbits if G is the automorphism
2686
group of complex.
2687
2688
The function returns the simplices together with the length of their orbits.
2689
2690
 Example 
2691
 gap> list:=SCLib.SearchByName("T^2");;
2692
 gap> torus:=SCLib.Load(list[1][1]);;
2693
 gap> SCGenerators(torus); 
2694
 [ [ [ 1, 2, 4 ], 14 ] ]
2695
 
2696

2697
2698
 Example 
2699
 gap> SCLib.SearchByName("K3");
2700
 [ [ 7648, "K3_16" ], [ 7649, "K3_17" ] ]
2701
 gap> SCLib.Load(last[1][1]);
2702
 [SimplicialComplex
2703
 
2704
 Properties known: AltshulerSteinberg, AutomorphismGroup, 
2705
 AutomorphismGroupSize, AutomorphismGroupStructure, 
2706
 AutomorphismGroupTransitivity, ConnectedComponents, 
2707
 Dim, DualGraph, EulerCharacteristic, FVector, 
2708
 FacetsEx, GVector, GeneratorsEx, HVector, 
2709
 HasBoundary, HasInterior, Homology, Interior, 
2710
 IsCentrallySymmetric, IsConnected, 
2711
 IsEulerianManifold, IsManifold, IsOrientable, 
2712
 IsPseudoManifold, IsPure, IsStronglyConnected, 
2713
 MinimalNonFacesEx, Name, Neighborliness, 
2714
 NumFaces[], Orientation, SkelExs[], Vertices.
2715
 
2716
 Name="K3_16"
2717
 Dim=4
2718
 AltshulerSteinberg=883835714748069945165599539200
2719
 AutomorphismGroupSize=240
2720
 AutomorphismGroupStructure="((C2 x C2 x C2 x C2) : C5) : C3"
2721
 AutomorphismGroupTransitivity=2
2722
 EulerCharacteristic=24
2723
 FVector=[ 16, 120, 560, 720, 288 ]
2724
 GVector=[ 10, 55, 220 ]
2725
 HVector=[ 11, 66, 286, -99, 23 ]
2726
 HasBoundary=false
2727
 HasInterior=true
2728
 Homology=[ [ 0, [ ] ], [ 0, [ ] ], [ 22, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ]
2729
 IsCentrallySymmetric=false
2730
 IsConnected=true
2731
 IsEulerianManifold=true
2732
 IsOrientable=true
2733
 IsPseudoManifold=true
2734
 IsPure=true
2735
 IsStronglyConnected=true
2736
 Neighborliness=3
2737
 
2738
 /SimplicialComplex]
2739
 gap> SCGenerators(last);
2740
 [ [ [ 1, 2, 3, 8, 12 ], 240 ], [ [ 1, 2, 5, 8, 14 ], 48 ] ]
2741
 
2742

2743
2744
6.9-25 SCGeneratorsEx
2745
2746
SCGeneratorsEx( complex )  method
2747
Returns: a list of pairs of the form [ list, integer ] upon success, fail
2748
otherwise.
2749
2750
Computes the generators of a simplicial complex in the standard vertex
2751
labeling.
2752
2753
The generating set of a simplicial complex is a list of simplices that will
2754
generate the complex by uniting their G-orbits if G is the automorphism
2755
group of complex.
2756
2757
The function returns the simplices together with the length of their orbits.
2758
2759
 Example 
2760
 gap> list:=SCLib.SearchByName("T^2");;
2761
 gap> torus:=SCLib.Load(list[1][1]);;
2762
 gap> SCGeneratorsEx(torus); 
2763
 [ [ [ 1, 2, 4 ], 14 ] ]
2764
 
2765

2766
2767
 Example 
2768
 gap> SCLib.SearchByName("K3");
2769
 [ [ 7648, "K3_16" ], [ 7649, "K3_17" ] ]
2770
 gap> SCLib.Load(last[1][1]);
2771
 [SimplicialComplex
2772
 
2773
 Properties known: AltshulerSteinberg, AutomorphismGroup, 
2774
 AutomorphismGroupSize, AutomorphismGroupStructure, 
2775
 AutomorphismGroupTransitivity, ConnectedComponents, 
2776
 Dim, DualGraph, EulerCharacteristic, FVector, 
2777
 FacetsEx, GVector, GeneratorsEx, HVector, 
2778
 HasBoundary, HasInterior, Homology, Interior, 
2779
 IsCentrallySymmetric, IsConnected, 
2780
 IsEulerianManifold, IsManifold, IsOrientable, 
2781
 IsPseudoManifold, IsPure, IsStronglyConnected, 
2782
 MinimalNonFacesEx, Name, Neighborliness, 
2783
 NumFaces[], Orientation, SkelExs[], Vertices.
2784
 
2785
 Name="K3_16"
2786
 Dim=4
2787
 AltshulerSteinberg=883835714748069945165599539200
2788
 AutomorphismGroupSize=240
2789
 AutomorphismGroupStructure="((C2 x C2 x C2 x C2) : C5) : C3"
2790
 AutomorphismGroupTransitivity=2
2791
 EulerCharacteristic=24
2792
 FVector=[ 16, 120, 560, 720, 288 ]
2793
 GVector=[ 10, 55, 220 ]
2794
 HVector=[ 11, 66, 286, -99, 23 ]
2795
 HasBoundary=false
2796
 HasInterior=true
2797
 Homology=[ [ 0, [ ] ], [ 0, [ ] ], [ 22, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ]
2798
 IsCentrallySymmetric=false
2799
 IsConnected=true
2800
 IsEulerianManifold=true
2801
 IsOrientable=true
2802
 IsPseudoManifold=true
2803
 IsPure=true
2804
 IsStronglyConnected=true
2805
 Neighborliness=3
2806
 
2807
 /SimplicialComplex]
2808
 gap> SCGeneratorsEx(last);
2809
 [ [ [ 1, 2, 3, 8, 12 ], 240 ], [ [ 1, 2, 5, 8, 14 ], 48 ] ]
2810
 
2811

2812
2813
6.9-26 SCHVector
2814
2815
SCHVector( complex )  method
2816
Returns: a list of integers upon success, fail otherwise.
2817
2818
Computes the h-vector of a simplicial complex. The h-vector is defined as 
2819
h_{k}:= \sum \limits_{i=-1}^{k-1} (-1)^{k-i-1}{d-i-1 \choose k-i-1} f_i for
2820
0 ≤ k ≤ d, where f_-1 := 1. For all simplicial complexes we have h_0 = 1,
2821
hence the returned list starts with the second entry of the h-vector.
2822
2823
 Example 
2824
 gap> SCLib.SearchByName("RP^2");
2825
 [ [ 3, "RP^2 (VT)" ], [ 635, "RP^2xS^1" ] ]
2826
 gap> rp2_6:=SCLib.Load(last[1][1]);;
2827
 gap> SCFVector(rp2_6);
2828
 [ 6, 15, 10 ]
2829
 gap> SCHVector(rp2_6);
2830
 [ 3, 6, 0 ]
2831
 
2832

2833
2834
6.9-27 SCHasBoundary
2835
2836
SCHasBoundary( complex )  method
2837
Returns: true or false upon success, fail otherwise.
2838
2839
Checks if a simplicial complex complex that fulfills the weak pseudo
2840
manifold property has a boundary, i. e. d-1-faces of valence 1. If complex
2841
is closed false is returned, if complex does not fulfill the weak
2842
pseudomanifold property, fail is returned, otherwise true is returned.
2843
2844
 Example 
2845
 gap> SCLib.SearchByName("K^2"); 
2846
 [ [ 17, "K^2 (VT)" ], [ 571, "K^2 (VT)" ] ]
2847
 gap> kleinBottle:=SCLib.Load(last[1][1]);;
2848
 gap> SCHasBoundary(kleinBottle);
2849
 false
2850
 
2851

2852
2853
 Example 
2854
 gap> c:=SC([[1,2,3,4],[1,2,3,5],[1,2,4,5],[1,3,4,5]]);;
2855
 gap> SCHasBoundary(c);
2856
 true
2857
 
2858

2859
2860
6.9-28 SCHasInterior
2861
2862
SCHasInterior( complex )  method
2863
Returns: true or false upon success, fail otherwise.
2864
2865
Returns true if a simplicial complex complex that fulfills the weak
2866
pseudomanifold property has at least one d-1-face of valence 2, i. e. if
2867
there exist at least one d-1-face that is not in the boundary of complex, if
2868
no such face can be found false is returned. It complex does not fulfill the
2869
weak pseudomanifold property fail is returned.
2870
2871
 Example 
2872
 gap> c:=SC([[1,2,3,4],[1,2,3,5],[1,2,4,5],[1,3,4,5]]);;
2873
 gap> SCHasInterior(c)
2874
 true
2875
 gap> c:=SC([[1,2,3,4]]);;
2876
 gap> SCHasInterior(c);
2877
 false
2878
 
2879

2880
2881
6.9-29 SCHeegaardSplittingSmallGenus
2882
2883
SCHeegaardSplittingSmallGenus( M )  method
2884
Returns: a list of an integer, a list of two sublists and a string upon
2885
success, fail otherwise.
2886
2887
Computes a Heegaard splitting of the combinatorial 3-manifold M of small
2888
genus. The function returns the genus of the Heegaard splitting, the vertex
2889
partition of the Heegaard splitting and information whether the splitting is
2890
minimal or just small (i. e. the Heegaard genus could not be determined).
2891
See also SCHeegaardSplitting (6.9-30) for a faster computation of a Heegaard
2892
splitting of arbitrary genus and SCIsHeegaardSplitting (6.9-40) for a test
2893
whether or not a given splitting defines a Heegaard splitting.
2894
2895
 Example 
2896
 gap> c:=SCSeriesBdHandleBody(3,10);;
2897
 gap> M:=SCConnectedProduct(c,3);;
2898
 gap> list:=SCHeegaardSplittingSmallGenus(M);
2899
 This creates an error
2900
 
2901

2902
2903
6.9-30 SCHeegaardSplitting
2904
2905
SCHeegaardSplitting( M )  method
2906
Returns: a list of an integer, a list of two sublists and a string upon
2907
success, fail otherwise.
2908
2909
Computes a Heegaard splitting of the combinatorial 3-manifold M. The
2910
function returns the genus of the Heegaard splitting, the vertex partition
2911
of the Heegaard splitting and a note, that splitting is arbitrary and in
2912
particular possibly not minimal. See also SCHeegaardSplittingSmallGenus
2913
(6.9-29) for the calculation of a Heegaard splitting of small genus and
2914
SCIsHeegaardSplitting (6.9-40) for a test whether or not a given splitting
2915
defines a Heegaard splitting.
2916
2917
 Example 
2918
 gap> M:=SCSeriesBdHandleBody(3,12);;
2919
 gap> list:=SCHeegaardSplitting(M);
2920
 [ 1, [ [ 1, 2, 3, 5, 9 ], [ 4, 6, 7, 8, 10, 11, 12 ] ], "arbitrary" ]
2921
 gap> sl:=SCSlicing(M,list[2]);
2922
 [NormalSurface
2923
 
2924
 Properties known: ConnectedComponents, Dim, EulerCharacteristic, FVector, Fac\
2925
 etsEx, Genus, IsConnected, IsOrientable, NSTriangulation, Name, TopologicalTyp\
2926
 e, Vertices.
2927
 
2928
 Name="slicing [ [ 1, 2, 3, 5, 9 ], [ 4, 6, 7, 8, 10, 11, 12 ] ] of Sphere bun\
2929
 dle S^2 x S^1"
2930
 Dim=2
2931
 FVector=[ 24, 55, 14, 17 ]
2932
 EulerCharacteristic=0
2933
 IsOrientable=true
2934
 TopologicalType="T^2"
2935
 
2936
 /NormalSurface]
2937
 
2938

2939
2940
6.9-31 SCHomologyClassic
2941
2942
SCHomologyClassic( complex )  function
2943
Returns: a list of pairs of the form [ integer, list ].
2944
2945
Computes the integral simplicial homology groups of a simplicial complex
2946
complex (internally calls the function SimplicialHomology(complex.FacetsEx)
2947
from the homology package, see [DHSW11]).
2948
2949
If the homology package is not available, this function call falls back to
2950
SCHomologyInternal (8.1-5). The output is a list of homology groups of the
2951
form [H_0,....,H_d], where d is the dimension of complex. The format of the
2952
homology groups H_i is given in terms of their maximal cyclic subgroups,
2953
i.e. a homology group H_i≅ Z^f + Z / t_1 Z × dots × Z / t_n Z is returned in
2954
form of a list [ f, [t_1,...,t_n] ], where f is the (integer) free part of
2955
H_i and t_i denotes the torsion parts of H_i ordered in weakly increasing
2956
size.
2957
2958
 Example 
2959
 gap> SCLib.SearchByName("K^2");
2960
 [ [ 17, "K^2 (VT)" ], [ 571, "K^2 (VT)" ] ]
2961
 gap> kleinBottle:=SCLib.Load(last[1][1]);;
2962
 gap> kleinBottle.Homology; 
2963
 [ [ 0, [ ] ], [ 1, [ 2 ] ], [ 0, [ ] ] ]
2964
 gap> SCLib.SearchByName("L_"){[1..10]};
2965
 [ [ 139, "L_3_1" ], [ 634, "L_4_1" ], [ 754, "L_5_2" ], 
2966
 [ 2416, "(S^2~S^1)#L_3_1" ], [ 2417, "(S^2xS^1)#L_3_1" ], [ 2490, "L_5_1" ],
2967
 [ 2492, "(S^2~S^1)#2#L_3_1" ], [ 2494, "(S^2xS^1)#2#L_3_1" ], 
2968
 [ 7467, "L_7_2" ], [ 7468, "L_8_3" ] ]
2969
 gap> c:=SCConnectedSum(SCLib.Load(last[9][1]),
2970
 SCConnectedProduct(SCLib.Load(last[10][1]),2));
2971
 > [SimplicialComplex
2972
 
2973
 Properties known: Dim, FacetsEx, Name, Vertices.
2974
 
2975
 Name="L_7_2#+-L_8_3#+-L_8_3"
2976
 Dim=3
2977
 
2978
 /SimplicialComplex]
2979
 gap> SCHomology(c);
2980
 [ [ 0, [ ] ], [ 0, [ 8, 56 ] ], [ 0, [ ] ], [ 1, [ ] ] ]
2981
 gap> SCFpBettiNumbers(c,2);
2982
 [ 1, 2, 2, 1 ]
2983
 gap> SCFpBettiNumbers(c,3);
2984
 [ 1, 0, 0, 1 ]
2985
 
2986

2987
2988
6.9-32 SCIncidences
2989
2990
SCIncidences( complex, k )  method
2991
Returns: a list of face lists upon success, fail otherwise.
2992
2993
Returns a list of all k-faces of the simplicial complex complex. The list is
2994
sorted by the valence of the faces in the k+1-skeleton of the complex, i. e.
2995
the i-th entry of the list contains all k-faces of valence i. The faces are
2996
returned in the original labeling.
2997
2998
 Example 
2999
 gap> c:=SC([[1,2,3],[2,3,4],[3,4,5],[4,5,6],[1,5,6],[1,4,6],[2,3,6]]);;
3000
 gap> SCIncidences(c,1);
3001
 [ [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 1, 5 ], [ 2, 4 ], [ 2, 6 ], [ 3, 5 ], 
3002
 [ 3, 6 ] ], [ [ 1, 6 ], [ 3, 4 ], [ 4, 5 ], [ 4, 6 ], [ 5, 6 ] ], 
3003
 [ [ 2, 3 ] ] ]
3004
 
3005

3006
3007
6.9-33 SCIncidencesEx
3008
3009
SCIncidencesEx( complex, k )  method
3010
Returns: a list of face lists upon success, fail otherwise.
3011
3012
Returns a list of all k-faces of the simplicial complex complex. The list is
3013
sorted by the valence of the faces in the k+1-skeleton of the complex, i. e.
3014
the i-th entry of the list contains all k-faces of valence i. The faces are
3015
returned in the standard labeling.
3016
3017
 Example 
3018
 gap> c:=SC([[1,2,3],[2,3,4],[3,4,5],[4,5,6],[1,5,6],[1,4,6],[2,3,6]]);;
3019
 gap> SCIncidences(c,1);
3020
 [ [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 1, 5 ], [ 2, 4 ], [ 2, 6 ], [ 3, 5 ], 
3021
 [ 3, 6 ] ], [ [ 1, 6 ], [ 3, 4 ], [ 4, 5 ], [ 4, 6 ], [ 5, 6 ] ], 
3022
 [ [ 2, 3 ] ] ]
3023
 
3024

3025
3026
6.9-34 SCInterior
3027
3028
SCInterior( complex )  method
3029
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
3030
otherwise.
3031
3032
Computes all d-1-faces of valence 2 of a simplicial complex complex that
3033
fulfills the weak pseudomanifold property, i. e. the function returns the
3034
part of the d-1-skeleton of C that is not part of the boundary.
3035
3036
 Example 
3037
 gap> c:=SC([[1,2,3,4],[1,2,3,5],[1,2,4,5],[1,3,4,5]]);;
3038
 gap> SCInterior(c).Facets;
3039
 [ [ 1, 2, 3 ], [ 1, 2, 4 ], [ 1, 2, 5 ], [ 1, 3, 4 ], [ 1, 3, 5 ], 
3040
 [ 1, 4, 5 ] ]
3041
 gap> c:=SC([[1,2,3,4]]);;
3042
 gap> SCInterior(c).Facets;
3043
 [ ]
3044
 
3045

3046
3047
6.9-35 SCIsCentrallySymmetric
3048
3049
SCIsCentrallySymmetric( complex )  method
3050
Returns: true or false upon success, fail otherwise.
3051
3052
Checks if a simplicial complex complex is centrally symmetric, i. e. if its
3053
automorphism group contains a fixed point free involution.
3054
3055
 Example 
3056
 gap> c:=SCBdCrossPolytope(4);;
3057
 gap> SCIsCentrallySymmetric(c);
3058
 true
3059
 
3060

3061
3062
 Example 
3063
 gap> c:=SCBdSimplex(4);;
3064
 gap> SCIsCentrallySymmetric(c);
3065
 false
3066
 
3067

3068
3069
6.9-36 SCIsConnected
3070
3071
SCIsConnected( complex )  method
3072
Returns: true or false upon success, fail otherwise.
3073
3074
Checks if a simplicial complex complex is connected.
3075
3076
 Example 
3077
 gap> c:=SCBdSimplex(1);;
3078
 gap> SCIsConnected(c);
3079
 false
3080
 gap> c:=SCBdSimplex(2);;
3081
 gap> SCIsConnected(c);
3082
 true
3083
 
3084

3085
3086
6.9-37 SCIsEmpty
3087
3088
SCIsEmpty( complex )  method
3089
Returns: true or false upon success, fail otherwise.
3090
3091
Checks if a simplicial complex complex is the empty complex, i. e. a
3092
SCSimplicialComplex object with empty facet list.
3093
3094
 Example 
3095
 gap> c:=SC([[1]]);;
3096
 gap> SCIsEmpty(c);
3097
 false
3098
 gap> c:=SC([]);;
3099
 gap> SCIsEmpty(c);
3100
 true
3101
 gap> c:=SC([[]]);;
3102
 gap> SCIsEmpty(c);
3103
 true
3104
 
3105

3106
3107
6.9-38 SCIsEulerianManifold
3108
3109
SCIsEulerianManifold( complex )  method
3110
Returns: true or false upon success, fail otherwise.
3111
3112
Checks whether a given simplicial complex complex is a Eulerian manifold or
3113
not, i. e. checks if all vertex links of complex have the Euler
3114
characteristic of a sphere. In particular the function returns false in case
3115
complex has a non-empty boundary.
3116
3117
 Example 
3118
 gap> c:=SCBdSimplex(4);;
3119
 gap> SCIsEulerianManifold(c);
3120
 true
3121
 gap> SCLib.SearchByName("Moebius");
3122
 [ [ 1, "Moebius Strip" ] ]
3123
 gap> moebius:=SCLib.Load(last[1][1]); # a moebius strip
3124
 [SimplicialComplex
3125
 
3126
 Properties known: Dim, EulerCharacteristic, FVector, FacetsEx, 
3127
 GVector, HVector, HasBoundary, Homology, 
3128
 IsConnected, IsManifold, IsPseudoManifold, 
3129
 MinimalNonFacesEx, Name, NumFaces[], SkelExs[], 
3130
 Vertices.
3131
 
3132
 Name="Moebius Strip"
3133
 Dim=2
3134
 EulerCharacteristic=0
3135
 FVector=[ 5, 10, 5 ]
3136
 GVector=[ 1, 1 ]
3137
 HVector=[ 2, 3, -1 ]
3138
 HasBoundary=true
3139
 Homology=[ [ 0 ], [ 1 ], [ 0 ] ]
3140
 IsConnected=true
3141
 IsPseudoManifold=true
3142
 
3143
 /SimplicialComplex]
3144
 gap> SCIsEulerianManifold(moebius);
3145
 false
3146
 
3147

3148
3149
6.9-39 SCIsFlag
3150
3151
SCIsFlag( complex, k )  method
3152
Returns: true or false upon success, fail otherwise.
3153
3154
Checks if complex is flag. A connected simplicial complex of dimension at
3155
least one is a flag complex if all cliques in its 1-skeleton span a face of
3156
the complex (cf. [Fro08]).
3157
3158
 Example 
3159
 gap> SCLib.SearchByName("RP^2"); 
3160
 [ [ 3, "RP^2 (VT)" ], [ 635, "RP^2xS^1" ] ]
3161
 gap> rp2_6:=SCLib.Load(last[1][1]);;
3162
 gap> SCIsFlag(rp2_6);
3163
 false
3164
 
3165

3166
3167
6.9-40 SCIsHeegaardSplitting
3168
3169
SCIsHeegaardSplitting( c, list )  method
3170
Returns: true or false upon success, fail otherwise.
3171
3172
Checks whether list defines a Heegaard splitting of c or not. See also
3173
SCHeegaardSplitting (6.9-30) and SCHeegaardSplittingSmallGenus (6.9-29) for
3174
functions to compute Heegaard splittings.
3175
3176
 Example 
3177
 gap> c:=SCSeriesBdHandleBody(3,9);;
3178
 gap> list:=[[1..3],[4..9]];
3179
 [ [ 1 .. 3 ], [ 4 .. 9 ] ]
3180
 gap> SCIsHeegaardSplitting(c,list);
3181
 false
3182
 gap> splitting:=SCHeegaardSplitting(c);
3183
 [ 1, [ [ 1, 2, 3, 6 ], [ 4, 5, 7, 8, 9 ] ], "arbitrary" ]
3184
 gap> SCIsHeegaardSplitting(c,splitting[2]); 
3185
 true
3186
 
3187

3188
3189
6.9-41 SCIsHomologySphere
3190
3191
SCIsHomologySphere( complex )  method
3192
Returns: true or false upon success, fail otherwise.
3193
3194
Checks whether a simplicial complex complex is a homology sphere, i. e. has
3195
the homology of a sphere, or not.
3196
3197
 Example 
3198
 gap> c:=SC([[2,3],[3,4],[4,2]]);;
3199
 gap> SCIsHomologySphere(c);
3200
 true
3201
 
3202

3203
3204
6.9-42 SCIsInKd
3205
3206
SCIsInKd( complex, k )  method
3207
Returns: true / false upon success, fail otherwise.
3208
3209
Checks whether the simplicial complex complex that must be a combinatorial
3210
d-manifold is in the class mathcalK^k(d), 1≤ k≤ ⌊fracd+12⌋, of simplicial
3211
complexes that only have k-stacked spheres as vertex links, see [Eff11b].
3212
Note that it is not checked whether complex is a combinatorial manifold --
3213
if not, the algorithm will not succeed. Returns true / false upon success.
3214
If true is returned this means that complex is at least k-stacked and thus
3215
that the complex is in the class mathcalK^k(d), i.e. all vertex links are
3216
i-stacked spheres. If false is returnd the complex cannot be k-stacked. In
3217
some cases the question can not be decided. In this case fail is returned.
3218
3219
Internally calls SCIsKStackedSphere (9.2-5) for all links. Please note that
3220
this is a radomized algorithm that may give an indefinite answer to the
3221
membership problem.
3222
3223
 Example 
3224
 gap> list:=SCLib.SearchByName("S^2~S^1");;{[1..3]};
3225
 gap> c:=SCLib.Load(list[1][1]);;
3226
 gap> c.AutomorphismGroup;
3227
 Group([ (1,3)(4,9)(5,8)(6,7), (1,9,8,7,6,5,4,3,2) ])
3228
 gap> SCIsInKd(c,1);
3229
 #I SCIsKStackedSphere: checking if complex is a 1-stacked sphere...
3230
 #I SCIsKStackedSphere: try 1/1
3231
 #I SCIsKStackedSphere: complex is a 1-stacked sphere.
3232
 true
3233
 
3234

3235
3236
6.9-43 SCIsKNeighborly
3237
3238
SCIsKNeighborly( complex, k )  method
3239
Returns: true or false upon success, fail otherwise.
3240
3241
 Example 
3242
 gap> SCLib.SearchByName("RP^2"); 
3243
 [ [ 3, "RP^2 (VT)" ], [ 635, "RP^2xS^1" ] ]
3244
 gap> rp2_6:=SCLib.Load(last[1][1]);;
3245
 gap> SCFVector(rp2_6);
3246
 [ 6, 15, 10 ]
3247
 gap> SCIsKNeighborly(rp2_6,2);
3248
 true
3249
 gap> SCIsKNeighborly(rp2_6,3);
3250
 false
3251
 
3252

3253
3254
6.9-44 SCIsOrientable
3255
3256
SCIsOrientable( complex )  method
3257
Returns: true or false upon success, fail otherwise.
3258
3259
Checks if a simplicial complex complex, satisfying the weak pseudomanifold
3260
property, is orientable.
3261
3262
 Example 
3263
 gap> c:=SCBdCrossPolytope(4);;
3264
 gap> SCIsOrientable(c);
3265
 true
3266
 
3267

3268
3269
6.9-45 SCIsPseudoManifold
3270
3271
SCIsPseudoManifold( complex )  method
3272
Returns: true or false upon success, fail otherwise.
3273
3274
Checks if a simplicial complex complex fulfills the weak pseudomanifold
3275
property, i. e. if every d-1-face of complex is contained in at most 2
3276
facets.
3277
3278
 Example 
3279
 gap> c:=SC([[1,2,3],[1,2,4],[1,3,4],[2,3,4],[1,5,6],[1,5,7],[1,6,7],[5,6,7]]);;
3280
 gap> SCIsPseudoManifold(c);
3281
 true
3282
 gap> c:=SC([[1,2],[2,3],[3,1],[1,4],[4,5],[5,1]]);;
3283
 gap> SCIsPseudoManifold(c);
3284
 false
3285
 
3286

3287
3288
6.9-46 SCIsPure
3289
3290
SCIsPure( complex )  method
3291
Returns: a boolean upon success, fail otherwise.
3292
3293
Checks if a simplicial complex complex is pure.
3294
3295
 Example 
3296
 gap> c:=SC([[1,2], [1,4], [2,4], [2,3,4]]);;
3297
 gap> SCIsPure(c);
3298
 false
3299
 gap> c:=SC([[1,2], [1,4], [2,4]]);;
3300
 gap> SCIsPure(c);
3301
 true
3302
 
3303

3304
3305
6.9-47 SCIsShellable
3306
3307
SCIsShellable( complex )  method
3308
Returns: true or false upon success, fail otherwise.
3309
3310
The simplicial complex complex must be pure, strongly connected and must
3311
fulfill the weak pseudomanifold property with non-empty boundary (cf.
3312
SCBoundary (6.9-7)).
3313
3314
The function checks whether complex is shellable or not. An ordering (F_1,
3315
F_2, ... , F_r) on the facet list of a simplicial complex is called a
3316
shelling if and only if F_i ∩ (F_1 ∪ ... ∪ F_i-1) is a pure simplicial
3317
complex of dimension d-1 for all i = 1, ... , r. A simplicial complex is
3318
called shellable, if at least one shelling exists.
3319
3320
See [Zie95], [Pac87] to learn more about shellings.
3321
3322
 Example 
3323
 gap> c:=SCBdCrossPolytope(4);; 
3324
 gap> c:=Difference(c,SC([[1,3,5,7]]));; # bounded version
3325
 gap> SCIsShellable(c);
3326
 true
3327
 
3328

3329
3330
6.9-48 SCIsStronglyConnected
3331
3332
SCIsStronglyConnected( complex )  method
3333
Returns: true or false upon success, fail otherwise.
3334
3335
Checks if a simplicial complex complex is strongly connected, i. e. if for
3336
any pair of facets (hat∆,tilde∆) there exists a sequence of facets ( ∆_1 ,
3337
... , ∆_k ) with ∆_1 = hat∆ and ∆_k = tilde∆ and dim(∆_i , ∆_i+1 ) = d - 1
3338
for all 1 ≤ i ≤ k - 1.
3339
3340
 Example 
3341
 gap> c:=SC([[1,2,3],[1,2,4],[1,3,4],[2,3,4], [1,5,6],[1,5,7],[1,6,7],[5,6,7]]);
3342
 [SimplicialComplex
3343
 
3344
 Properties known: Dim, FacetsEx, Name, Vertices.
3345
 
3346
 Name="unnamed complex 24"
3347
 Dim=2
3348
 
3349
 /SimplicialComplex]
3350
 gap> SCIsConnected(c); 
3351
 true
3352
 gap> SCIsStronglyConnected(c); 
3353
 false
3354
 
3355

3356
3357
6.9-49 SCMinimalNonFaces
3358
3359
SCMinimalNonFaces( complex )  method
3360
Returns: a list of face lists upon success, fail otherwise.
3361
3362
Computes all missing proper faces of a simplicial complex complex by calling
3363
SCMinimalNonFacesEx (6.9-50). The simplices are returned in the original
3364
labeling of complex.
3365
3366
 Example 
3367
 gap> c:=SCFromFacets(["abc","abd"]);;
3368
 gap> SCMinimalNonFaces(c); 
3369
 [ [ ], [ "cd" ] ]
3370
 
3371

3372
3373
6.9-50 SCMinimalNonFacesEx
3374
3375
SCMinimalNonFacesEx( complex )  method
3376
Returns: a list of face lists upon success, fail otherwise.
3377
3378
Computes all missing proper faces of a simplicial complex complex, i.e. the
3379
missing (i+1)-tuples in the i-dimensional skeleton of a complex. A missing
3380
i+1-tuple is not listed if it only consists of missing i-tuples. Note that
3381
whenever complex is k-neighborly the first k+1 entries are empty. The
3382
simplices are returned in the standard labeling 1,dots,n, where n is the
3383
number of vertices of complex.
3384
3385
 Example 
3386
 gap> SCLib.SearchByName("T^2"){[1..10]}; 
3387
 [ [ 4, "T^2 (VT)" ], [ 5, "T^2 (VT)" ], [ 9, "T^2 (VT)" ], [ 10, "T^2 (VT)" ],
3388
 [ 18, "T^2 (VT)" ], [ 20, "(T^2)#2" ], [ 24, "(T^2)#3" ], 
3389
 [ 41, "T^2 (VT)" ], [ 44, "(T^2)#4" ], [ 65, "T^2 (VT)" ] ]
3390
 gap> torus:=SCLib.Load(last[1][1]);;
3391
 gap> SCFVector(torus);
3392
 [ 7, 21, 14 ]
3393
 gap> SCMinimalNonFacesEx(torus);
3394
 [ [ ], [ ] ]
3395
 gap> SCMinimalNonFacesEx(SCBdCrossPolytope(4));
3396
 [ [ ], [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ], [ 7, 8 ] ], [ ] ]
3397
 
3398

3399
3400
6.9-51 SCNeighborliness
3401
3402
SCNeighborliness( complex )  method
3403
Returns: a positive integer upon success, fail otherwise.
3404
3405
Returns k if a simplicial complex complex is k-neighborly but not
3406
(k+1)-neighborly. See also SCIsKNeighborly (6.9-43).
3407
3408
Note that every complex is at least 1-neighborly.
3409
3410
 Example 
3411
 gap> c:=SCBdSimplex(4);;
3412
 gap> SCNeighborliness(c);
3413
 4
3414
 gap> c:=SCBdCrossPolytope(4);;
3415
 gap> SCNeighborliness(c);
3416
 1
3417
 gap> SCLib.SearchByAttribute("F[3]=Binomial(F[1],3) and Dim=4");
3418
 [ [ 16, "CP^2 (VT)" ], [ 7648, "K3_16" ] ]
3419
 gap> cp2:=SCLib.Load(last[2][1]);;
3420
 gap> SCNeighborliness(cp2);
3421
 3
3422
 
3423

3424
3425
6.9-52 SCNumFaces
3426
3427
SCNumFaces( complex[, i] )  method
3428
Returns: an integer or a list of integers upon success, fail otherwise.
3429
3430
If i is not specified the function computes the f-vector of the simplicial
3431
complex complex (cf. SCFVector (6.9-14)). If the optional integer parameter
3432
i is passed, only the i-th position of the f-vector of complex is
3433
calculated. In any case a memory-saving implicit algorithm is used that
3434
avoids calculating the face lattice of the complex.
3435
3436
 Example 
3437
 gap> complex:=SC([[1,2,3], [1,2,4], [1,3,4], [2,3,4]]);;
3438
 gap> SCNumFaces(complex,1);
3439
 6
3440
 
3441

3442
3443
6.9-53 SCOrientation
3444
3445
SCOrientation( complex )  method
3446
Returns: a list of the type { ± 1 }^f_d or [ ] upon success, fail
3447
otherwise.
3448
3449
This function tries to compute an orientation of a pure simplicial complex
3450
complex that fulfills the weak pseudomanifold property. If complex is
3451
orientable, an orientation in form of a list of orientations for the facets
3452
of complex is returned, otherwise an empty set.
3453
3454
 Example 
3455
 gap> c:=SCBdCrossPolytope(4);;
3456
 gap> SCOrientation(c);
3457
 [ 1, -1, -1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, -1, -1, 1 ]
3458
 
3459

3460
3461
6.9-54 SCSkel
3462
3463
SCSkel( complex, k )  method
3464
Returns: a face list or a list of face lists upon success, fail otherwise.
3465
3466
If k is an integer, the k-skeleton of a simplicial complex complex, i. e.
3467
all k-faces of complex, is computed. If k is a list, a list of all
3468
k[i]-faces of complex for each entry k[i] (which has to be an integer) is
3469
returned. The faces are returned in the original labeling.
3470
3471
 Example 
3472
 gap> SCLib.SearchByName("RP^2"); 
3473
 [ [ 3, "RP^2 (VT)" ], [ 635, "RP^2xS^1" ] ]
3474
 gap> rp2_6:=SCLib.Load(last[1][1]);; 
3475
 gap> rp2_6:=SC(rp2_6.Facets+10);;
3476
 gap> SCSkelEx(rp2_6,1);
3477
 [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 1, 5 ], [ 1, 6 ], [ 2, 3 ], [ 2, 4 ], 
3478
 [ 2, 5 ], [ 2, 6 ], [ 3, 4 ], [ 3, 5 ], [ 3, 6 ], [ 4, 5 ], [ 4, 6 ], 
3479
 [ 5, 6 ] ]
3480
 gap> SCSkel(rp2_6,1); 
3481
 [ [ 11, 12 ], [ 11, 13 ], [ 11, 14 ], [ 11, 15 ], [ 11, 16 ], [ 12, 13 ], 
3482
 [ 12, 14 ], [ 12, 15 ], [ 12, 16 ], [ 13, 14 ], [ 13, 15 ], [ 13, 16 ], 
3483
 [ 14, 15 ], [ 14, 16 ], [ 15, 16 ] ]
3484
 
3485

3486
3487
6.9-55 SCSkelEx
3488
3489
SCSkelEx( complex, k )  method
3490
Returns: a face list or a list of face lists upon success, fail otherwise.
3491
3492
If k is an integer, the k-skeleton of a simplicial complex complex, i. e.
3493
all k-faces of complex, is computed. If k is a list, a list of all
3494
k[i]-faces of complex for each entry k[i] (which has to be an integer) is
3495
returned. The faces are returned in the standard labeling.
3496
3497
 Example 
3498
 gap> SCLib.SearchByName("RP^2"); 
3499
 [ [ 3, "RP^2 (VT)" ], [ 635, "RP^2xS^1" ] ]
3500
 gap> rp2_6:=SCLib.Load(last[1][1]);; 
3501
 gap> rp2_6:=SC(rp2_6.Facets+10);;
3502
 gap> SCSkelEx(rp2_6,1);
3503
 [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 1, 5 ], [ 1, 6 ], [ 2, 3 ], [ 2, 4 ], 
3504
 [ 2, 5 ], [ 2, 6 ], [ 3, 4 ], [ 3, 5 ], [ 3, 6 ], [ 4, 5 ], [ 4, 6 ], 
3505
 [ 5, 6 ] ]
3506
 gap> SCSkel(rp2_6,1); 
3507
 [ [ 11, 12 ], [ 11, 13 ], [ 11, 14 ], [ 11, 15 ], [ 11, 16 ], [ 12, 13 ], 
3508
 [ 12, 14 ], [ 12, 15 ], [ 12, 16 ], [ 13, 14 ], [ 13, 15 ], [ 13, 16 ], 
3509
 [ 14, 15 ], [ 14, 16 ], [ 15, 16 ] ]
3510
 
3511

3512
3513
6.9-56 SCSpanningTree
3514
3515
SCSpanningTree( complex )  method
3516
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
3517
otherwise.
3518
3519
Computes a spanning tree of a connected simplicial complex complex using a
3520
greedy algorithm.
3521
3522
 Example 
3523
 gap> c:=SC([["a","b","c"],["a","b","d"], ["a","c","d"], ["b","c","d"]]);;
3524
 gap> s:=SCSpanningTree(c);
3525
 [SimplicialComplex
3526
 
3527
 Properties known: Dim, FacetsEx, Name, Vertices.
3528
 
3529
 Name="spanning tree of unnamed complex 1"
3530
 Dim=1
3531
 
3532
 /SimplicialComplex]
3533
 gap> s.Facets;
3534
 [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ] ]
3535
 
3536

3537
3538
3539
6.10 Operations on simplicial complexes
3540
3541
The following functions perform operations on simplicial complexes. Most of
3542
them return simplicial complexes. Thus, this section is closely related to
3543
the Sections 6.6 ''Generate new complexes from old''. However, the data
3544
generated here is rather seen as an intrinsic attribute of the original
3545
complex and not as an independent complex.
3546
3547
6.10-1 SCAlexanderDual
3548
3549
SCAlexanderDual( complex )  method
3550
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
3551
otherwise.
3552
3553
The Alexander dual of a simplicial complex complex with set of vertices V is
3554
the simplicial complex where any subset of V spans a face if and only if its
3555
complement in V is a non-face of complex.
3556
3557
 Example 
3558
 gap> c:=SC([[1,2],[2,3],[3,4],[4,1]]);;
3559
 gap> dual:=SCAlexanderDual(c);;
3560
 gap> dual.F;
3561
 [ 4, 2 ]
3562
 gap> dual.IsConnected;
3563
 false
3564
 gap> dual.Facets;
3565
 [ [ 1, 3 ], [ 2, 4 ] ]
3566
 
3567

3568
3569
6.10-2 SCClose
3570
3571
SCClose( complex[, apex] )  function
3572
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
3573
otherwise.
3574
3575
Closes a simplicial complex complex by building a cone over its boundary. If
3576
apex is specified it is assigned to the apex of the cone and the original
3577
vertex labeling of complex is preserved, otherwise an arbitrary vertex label
3578
is chosen and complex is returned in the standard labeling.
3579
3580
 Example 
3581
 gap> s:=SCSimplex(5);; 
3582
 gap> b:=SCSimplex(5);;
3583
 gap> s:=SCClose(b,13);;
3584
 gap> SCIsIsomorphic(s,SCBdSimplex(6)); 
3585
 true
3586
 
3587

3588
3589
6.10-3 SCCone
3590
3591
SCCone( complex, apex )  function
3592
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
3593
otherwise.
3594
3595
If the second argument is passed every facet of the simplicial complex
3596
complex is united with apex. If not, an arbitrary vertex label v is used
3597
(which is not a vertex of complex). In the first case the vertex labeling
3598
remains unchanged. In the second case the function returns the new complex
3599
in the standard vertex labeling from 1 to n+1 and the apex of the cone is
3600
n+1.
3601
3602
If called with a facet list instead of a SCSimplicialComplex object and apex
3603
is not specified, internally falls back to the homology package [DHSW11], if
3604
available.
3605
3606
 Example 
3607
 gap> SCLib.SearchByName("RP^3");
3608
 [ [ 45, "RP^3" ], [ 113, "RP^3=L(2,1) (VT)" ], [ 589, "(S^2~S^1)#RP^3" ], 
3609
 [ 590, "(S^2xS^1)#RP^3" ], [ 632, "(S^2~S^1)#2#RP^3" ], 
3610
 [ 633, "(S^2xS^1)#2#RP^3" ], [ 2414, "RP^3#RP^3" ], 
3611
 [ 2426, "RP^3=L(2,1) (VT)" ], [ 2488, "(S^2~S^1)#3#RP^3" ], 
3612
 [ 2489, "(S^2xS^1)#3#RP^3" ], [ 2502, "RP^3=L(2,1) (VT)" ], 
3613
 [ 7473, "(S^2~S^1)#4#RP^3" ], [ 7474, "(S^2xS^1)#4#RP^3" ], 
3614
 [ 7504, "(S^2~S^1)#5#RP^3" ], [ 7505, "(S^2xS^1)#5#RP^3" ] ]
3615
 gap> rp3:=SCLib.Load(last[1][1]);;
3616
 gap> rp3.F;
3617
 [ 11, 51, 80, 40 ]
3618
 gap> cone:=SCCone(rp3);;
3619
 gap> cone.F;
3620
 [ 12, 62, 131, 120, 40 ]
3621
 
3622

3623
3624
 Example 
3625
 gap> s:=SCBdSimplex(4)+12;;
3626
 gap> s.Facets; 
3627
 [ [ 13, 14, 15, 16 ], [ 13, 14, 15, 17 ], [ 13, 14, 16, 17 ], 
3628
 [ 13, 15, 16, 17 ], [ 14, 15, 16, 17 ] ]
3629
 gap> cc:=SCCone(s,13);; 
3630
 gap> cc:=SCCone(s,12);;
3631
 gap> cc.Facets;
3632
 [ [ 12, 13, 14, 15, 16 ], [ 12, 13, 14, 15, 17 ], [ 12, 13, 14, 16, 17 ], 
3633
 [ 12, 13, 15, 16, 17 ], [ 12, 14, 15, 16, 17 ] ]
3634
 
3635

3636
3637
6.10-4 SCDeletedJoin
3638
3639
SCDeletedJoin( complex1, complex2 )  method
3640
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
3641
otherwise.
3642
3643
Calculates the simplicial deleted join of the simplicial complexes complex1
3644
and complex2. If called with a facet list instead of a SCSimplicialComplex
3645
object, the function internally falls back to the homology package [DHSW11],
3646
if available.
3647
3648
 Example 
3649
 gap> deljoin:=SCDeletedJoin(SCBdSimplex(3),SCBdSimplex(3));
3650
 [SimplicialComplex
3651
 
3652
 Properties known: Dim, FacetsEx, Name, Vertices.
3653
 
3654
 Name="S^2_4 deljoin S^2_4"
3655
 Dim=3
3656
 
3657
 /SimplicialComplex]
3658
 gap> bddeljoin:=SCBoundary(deljoin);;
3659
 gap> bddeljoin.Homology;
3660
 [ [ 1, [ ] ], [ 0, [ ] ], [ 2, [ ] ] ]
3661
 gap> deljoin.Facets;
3662
 [ [ [ 1, 1 ], [ 2, 1 ], [ 3, 1 ], [ 4, 2 ] ], 
3663
 [ [ 1, 1 ], [ 2, 1 ], [ 3, 2 ], [ 4, 1 ] ], 
3664
 [ [ 1, 1 ], [ 2, 1 ], [ 3, 2 ], [ 4, 2 ] ], 
3665
 [ [ 1, 1 ], [ 2, 2 ], [ 3, 1 ], [ 4, 1 ] ], 
3666
 [ [ 1, 1 ], [ 2, 2 ], [ 3, 1 ], [ 4, 2 ] ], 
3667
 [ [ 1, 1 ], [ 2, 2 ], [ 3, 2 ], [ 4, 1 ] ], 
3668
 [ [ 1, 1 ], [ 2, 2 ], [ 3, 2 ], [ 4, 2 ] ], 
3669
 [ [ 1, 2 ], [ 2, 1 ], [ 3, 1 ], [ 4, 1 ] ], 
3670
 [ [ 1, 2 ], [ 2, 1 ], [ 3, 1 ], [ 4, 2 ] ], 
3671
 [ [ 1, 2 ], [ 2, 1 ], [ 3, 2 ], [ 4, 1 ] ], 
3672
 [ [ 1, 2 ], [ 2, 1 ], [ 3, 2 ], [ 4, 2 ] ], 
3673
 [ [ 1, 2 ], [ 2, 2 ], [ 3, 1 ], [ 4, 1 ] ], 
3674
 [ [ 1, 2 ], [ 2, 2 ], [ 3, 1 ], [ 4, 2 ] ], 
3675
 [ [ 1, 2 ], [ 2, 2 ], [ 3, 2 ], [ 4, 1 ] ] ]
3676
 
3677

3678
3679
6.10-5 SCDifference
3680
3681
SCDifference( complex1, complex2 )  method
3682
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
3683
otherwise.
3684
3685
Forms the ``difference'' of two simplicial complexes complex1 and complex2
3686
as the simplicial complex formed by the difference of the face lattices of
3687
complex1 minus complex2. The two arguments are not altered. Note: for the
3688
difference process the vertex labelings of the complexes are taken into
3689
account, see also Operation Difference (SCSimplicialComplex,
3690
SCSimplicialComplex) (5.3-2).
3691
3692
 Example 
3693
 gap> c:=SCBdSimplex(3);;
3694
 gap> d:=SC([[1,2,3]]);;
3695
 gap> disc:=SCDifference(c,d);;
3696
 gap> disc.Facets;
3697
 [ [ 1, 2, 4 ], [ 1, 3, 4 ], [ 2, 3, 4 ] ]
3698
 gap> empty:=SCDifference(d,c);;
3699
 gap> empty.Dim;
3700
 -1
3701
 
3702

3703
3704
6.10-6 SCFillSphere
3705
3706
SCFillSphere( complex[, vertex] )  function
3707
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
3708
otherwise .
3709
3710
Fills the given simplicial sphere complex by forming the suspension of the
3711
anti star of vertex over vertex. This is a triangulated (d+1)-ball with the
3712
boundary complex, see [BD08]. If the optional argument vertex is not
3713
supplied, the first vertex of complex is chosen.
3714
3715
Note that it is not checked whether complex really is a simplicial sphere --
3716
this has to be done by the user!
3717
3718
 Example 
3719
 gap> SCLib.SearchByName("S^4");
3720
 [ [ 36, "S^4 (VT)" ], [ 37, "S^4 (VT)" ], [ 38, "S^4 (VT)" ], 
3721
 [ 130, "S^4 (VT)" ], [ 463, "S^4~S^1 (VT)" ], [ 713, "S^4xS^1 (VT)" ], 
3722
 [ 1472, "S^4xS^1 (VT)" ], [ 1473, "S^4~S^1 (VT)" ], 
3723
 [ 1474, "S^4~S^1 (VT)" ], [ 1475, "S^4xS^1 (VT)" ], 
3724
 [ 2477, "S^4~S^1 (VT)" ], [ 2478, "S^4 (VT)" ], [ 3435, "S^4 (VT)" ], 
3725
 [ 4395, "S^4~S^1 (VT)" ], [ 4396, "S^4~S^1 (VT)" ], 
3726
 [ 4397, "S^4~S^1 (VT)" ], [ 4398, "S^4~S^1 (VT)" ], 
3727
 [ 4399, "S^4~S^1 (VT)" ], [ 4402, "S^4~S^1 (VT)" ], 
3728
 [ 4403, "S^4~S^1 (VT)" ], [ 4404, "S^4~S^1 (VT)" ], [ 7479, "S^4xS^2" ], 
3729
 [ 7539, "S^4xS^3" ], [ 7573, "S^4xS^4" ] ]
3730
 gap> s:=SCLib.Load(last[1][1]);;
3731
 gap> filled:=SCFillSphere(s);
3732
 [SimplicialComplex
3733
 
3734
 Properties known: Dim, FacetsEx, Name, Vertices.
3735
 
3736
 Name="FilledSphere(S^4 (VT)) at vertex [ 1 ]"
3737
 Dim=5
3738
 
3739
 /SimplicialComplex]
3740
 gap> SCHomology(filled);
3741
 [ [ 0, [ ] ], [ 0, [ ] ], [ 0, [ ] ], [ 0, [ ] ], [ 0, [ ] ], 
3742
 [ 0, [ ] ] ]
3743
 gap> SCCollapseGreedy(filled);
3744
 [SimplicialComplex
3745
 
3746
 Properties known: Dim, FVector, FacetsEx, IsPure, Name, NumFaces[], 
3747
 SkelExs[], Vertices.
3748
 
3749
 Name="collapsed version of FilledSphere(S^4 (VT)) at vertex [ 1 ]"
3750
 Dim=0
3751
 FVector=[ 1 ]
3752
 IsPure=true
3753
 
3754
 /SimplicialComplex]
3755
 gap> bd:=SCBoundary(filled);;
3756
 gap> bd=s;
3757
 true
3758
 
3759

3760
3761
6.10-7 SCHandleAddition
3762
3763
SCHandleAddition( complex, f1, f2 )  method
3764
Returns: simplicial complex of type SCSimplicialComplex, fail otherwise.
3765
3766
Returns a simplicial complex obtained by identifying the vertices of facet
3767
f1 with the ones from facet f2 in complex. A combinatorial handle addition
3768
is possible, whenever we have d(v,w) ≥ 3 for any two vertices v ∈f1 and w
3769
∈f2, where d(⋅,⋅) is the length of the shortest path from v to w. This
3770
condition is not checked by this algorithm. See [BD11] for further
3771
information.
3772
3773
 Example 
3774
 gap> c:=SC([[1,2,4],[2,4,5],[2,3,5],[3,5,6],[1,3,6],[1,4,6]]);;
3775
 gap> c:=SCUnion(c,SCUnion(SCCopy(c)+3,SCCopy(c)+6));;
3776
 gap> c:=SCUnion(c,SC([[1,2,3],[10,11,12]]));;
3777
 gap> c.Facets;
3778
 [ [ 1, 2, 3 ], [ 1, 2, 4 ], [ 1, 3, 6 ], [ 1, 4, 6 ], [ 2, 3, 5 ], 
3779
 [ 2, 4, 5 ], [ 3, 5, 6 ], [ 4, 5, 7 ], [ 4, 6, 9 ], [ 4, 7, 9 ], 
3780
 [ 5, 6, 8 ], [ 5, 7, 8 ], [ 6, 8, 9 ], [ 7, 8, 10 ], [ 7, 9, 12 ], 
3781
 [ 7, 10, 12 ], [ 8, 9, 11 ], [ 8, 10, 11 ], [ 9, 11, 12 ], [ 10, 11, 12 ] ]
3782
 gap> c.Homology;
3783
 [ [ 0, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ]
3784
 gap> torus:=SCHandleAddition(c,[1,2,3],[10,11,12]);;
3785
 gap> torus.Homology;
3786
 [ [ 0, [ ] ], [ 2, [ ] ], [ 1, [ ] ] ]
3787
 gap> ism:=SCIsManifold(torus);;
3788
 gap> ism;
3789
 true
3790
 
3791

3792
3793
6.10-8 SCIntersection
3794
3795
SCIntersection( complex1, complex2 )  method
3796
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
3797
otherwise.
3798
3799
Forms the ``intersection'' of two simplicial complexes complex1 and complex2
3800
as the simplicial complex formed by the intersection of the face lattices of
3801
complex1 and complex2. The two arguments are not altered. Note: for the
3802
intersection process the vertex labelings of the complexes are taken into
3803
account. See also Operation Intersection (SCSimplicialComplex,
3804
SCSimplicialComplex) (5.3-3).
3805
3806
 Example 
3807
 gap> c:=SCBdSimplex(3);; 
3808
 gap> d:=SCBdSimplex(3)+1;; 
3809
 gap> d.Facets;
3810
 [ [ 2, 3, 4 ], [ 2, 3, 5 ], [ 2, 4, 5 ], [ 3, 4, 5 ] ]
3811
 gap> c:=SCBdSimplex(3);; 
3812
 gap> d:=SCBdSimplex(3);; 
3813
 gap> d:=SCMove(d,[[1,2,3],[]])+1;;
3814
 gap> s1:=SCIntersection(c,d);;
3815
 gap> s1.Facets; 
3816
 [ [ 2, 3 ], [ 2, 4 ], [ 3, 4 ] ]
3817
 
3818

3819
3820
6.10-9 SCIsIsomorphic
3821
3822
SCIsIsomorphic( complex1, complex2 )  method
3823
Returns: true or false upon success, fail otherwise.
3824
3825
The function returns true, if the simplicial complexes complex1 and complex2
3826
are combinatorially isomorphic, false if not.
3827
3828
 Example 
3829
 gap> c1:=SC([[11,12,13],[11,12,14],[11,13,14],[12,13,14]]);;
3830
 gap> c2:=SCBdSimplex(3);;
3831
 gap> SCIsIsomorphic(c1,c2);
3832
 true
3833
 gap> c3:=SCBdCrossPolytope(3);;
3834
 gap> SCIsIsomorphic(c1,c3);
3835
 false
3836
 
3837

3838
3839
6.10-10 SCIsSubcomplex
3840
3841
SCIsSubcomplex( sc1, sc2 )  method
3842
Returns: true or false upon success, fail otherwise.
3843
3844
Returns true if the simplicial complex sc2 is a sub-complex of simplicial
3845
complex sc1, false otherwise. If dim(sc2) ≤ dim(sc1) the facets of sc2 are
3846
compared with the dim(sc2)-skeleton of sc1. Only works for pure simplicial
3847
complexes. Note: for the intersection process the vertex labelings of the
3848
complexes are taken into account.
3849
3850
 Example 
3851
 gap> SCLib.SearchByAttribute("F[1]=10"){[1..10]};
3852
 [ [ 17, "K^2 (VT)" ], [ 18, "T^2 (VT)" ], [ 19, "S^3 (VT)" ], 
3853
 [ 20, "(T^2)#2" ], [ 21, "S^3 (VT)" ], [ 22, "S^2xS^1 (VT)" ], 
3854
 [ 23, "S^3 (VT)" ], [ 24, "(T^2)#3" ], [ 25, "(P^2)#7 (VT)" ], 
3855
 [ 26, "S^3 (VT)" ] ]
3856
 gap> k:=SCLib.Load(last[1][1]);;
3857
 gap> c:=SCBdSimplex(9);;
3858
 gap> k.F;
3859
 [ 10, 30, 20 ]
3860
 gap> c.F;
3861
 [ 10, 45, 120, 210, 252, 210, 120, 45, 10 ]
3862
 gap> SCIsSubcomplex(c,k);
3863
 true
3864
 gap> SCIsSubcomplex(k,c);
3865
 false
3866
 
3867

3868
3869
6.10-11 SCIsomorphism
3870
3871
SCIsomorphism( complex1, complex2 )  method
3872
Returns: a list of pairs of vertex labels or false upon success, fail
3873
otherwise.
3874
3875
Returns an isomorphism of simplicial complex complex1 to simplicial complex
3876
complex2 in the standard labeling if they are combinatorially isomorphic,
3877
false otherwise. Internally calls SCIsomorphismEx (6.10-12).
3878
3879
 Example 
3880
 gap> c1:=SC([[11,12,13],[11,12,14],[11,13,14],[12,13,14]]);;
3881
 gap> c2:=SCBdSimplex(3);;
3882
 gap> SCIsomorphism(c1,c2);
3883
 [ [ 11, 1 ], [ 12, 2 ], [ 13, 3 ], [ 14, 4 ] ]
3884
 gap> SCIsomorphismEx(c1,c2);
3885
 [ [ [ 1, 1 ], [ 2, 2 ], [ 3, 3 ], [ 4, 4 ] ] ]
3886
 
3887

3888
3889
6.10-12 SCIsomorphismEx
3890
3891
SCIsomorphismEx( complex1, complex2 )  method
3892
Returns: a list of pairs of vertex labels or false upon success, fail
3893
otherwise.
3894
3895
Returns an isomorphism of simplicial complex complex1 to simplicial complex
3896
complex2 in the standard labeling if they are combinatorially isomorphic,
3897
false otherwise. If the f-vector and the Altshuler-Steinberg determinant of
3898
complex1 and complex2 are equal, the internal function
3899
SCIntFunc.SCComputeIsomorphismsEx(complex1,complex2,true) is called.
3900
3901
 Example 
3902
 gap> c1:=SC([[11,12,13],[11,12,14],[11,13,14],[12,13,14]]);;
3903
 gap> c2:=SCBdSimplex(3);;
3904
 gap> SCIsomorphism(c1,c2);
3905
 [ [ 11, 1 ], [ 12, 2 ], [ 13, 3 ], [ 14, 4 ] ]
3906
 gap> SCIsomorphismEx(c1,c2);
3907
 [ [ [ 1, 1 ], [ 2, 2 ], [ 3, 3 ], [ 4, 4 ] ] ]
3908
 
3909

3910
3911
6.10-13 SCJoin
3912
3913
SCJoin( complex1, complex2 )  method
3914
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
3915
otherwise.
3916
3917
Calculates the simplicial join of the simplicial complexes complex1 and
3918
complex2. If facet lists instead of SCSimplicialComplex objects are passed
3919
as arguments, the function internally falls back to the homology package
3920
[DHSW11], if available. Note that the vertex labelings of the complexes
3921
passed as arguments are not propagated to the new complex.
3922
3923
 Example 
3924
 gap> sphere:=SCJoin(SCBdSimplex(2),SCBdSimplex(2));
3925
 [SimplicialComplex
3926
 
3927
 Properties known: Dim, FacetsEx, Name, Vertices.
3928
 
3929
 Name="S^1_3 join S^1_3"
3930
 Dim=3
3931
 
3932
 /SimplicialComplex]
3933
 gap> SCHasBoundary(sphere);
3934
 false
3935
 gap> sphere.Facets;
3936
 [ [ [ 1, 1 ], [ 1, 2 ], [ 2, 1 ], [ 2, 2 ] ], 
3937
 [ [ 1, 1 ], [ 1, 2 ], [ 2, 1 ], [ 2, 3 ] ], 
3938
 [ [ 1, 1 ], [ 1, 2 ], [ 2, 2 ], [ 2, 3 ] ], 
3939
 [ [ 1, 1 ], [ 1, 3 ], [ 2, 1 ], [ 2, 2 ] ], 
3940
 [ [ 1, 1 ], [ 1, 3 ], [ 2, 1 ], [ 2, 3 ] ], 
3941
 [ [ 1, 1 ], [ 1, 3 ], [ 2, 2 ], [ 2, 3 ] ], 
3942
 [ [ 1, 2 ], [ 1, 3 ], [ 2, 1 ], [ 2, 2 ] ], 
3943
 [ [ 1, 2 ], [ 1, 3 ], [ 2, 1 ], [ 2, 3 ] ], 
3944
 [ [ 1, 2 ], [ 1, 3 ], [ 2, 2 ], [ 2, 3 ] ] ]
3945
 gap> sphere.Homology;
3946
 [ [ 0, [ ] ], [ 0, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ]
3947
 
3948

3949
3950
 Example 
3951
 gap> ball:=SCJoin(SC([[1]]),SCBdSimplex(2));
3952
 [SimplicialComplex
3953
 
3954
 Properties known: Dim, FacetsEx, Name, Vertices.
3955
 
3956
 Name="unnamed complex 4 join S^1_3"
3957
 Dim=2
3958
 
3959
 /SimplicialComplex]
3960
 gap> ball.Homology;
3961
 [ [ 0, [ ] ], [ 0, [ ] ], [ 0, [ ] ] ]
3962
 gap> ball.Facets;
3963
 [ [ [ 1, 1 ], [ 2, 1 ], [ 2, 2 ] ], [ [ 1, 1 ], [ 2, 1 ], [ 2, 3 ] ], 
3964
 [ [ 1, 1 ], [ 2, 2 ], [ 2, 3 ] ] ]
3965
 
3966

3967
3968
6.10-14 SCNeighbors
3969
3970
SCNeighbors( complex, face )  method
3971
Returns: a list of faces upon success, fail otherwise.
3972
3973
In a simplicial complex complex all neighbors of the k-face face, i. e. all
3974
k-faces distinct from face intersecting with face in a common (k-1)-face,
3975
are returned in the original labeling.
3976
3977
 Example 
3978
 gap> c:=SCFromFacets(Combinations(["a","b","c"],2));
3979
 [SimplicialComplex
3980
 
3981
 Properties known: Dim, FacetsEx, Name, Vertices.
3982
 
3983
 Name="unnamed complex 22"
3984
 Dim=1
3985
 
3986
 /SimplicialComplex]
3987
 gap> SCNeighbors(c,["a","d"]);
3988
 [ [ "a", "b" ], [ "a", "c" ] ]
3989
 
3990

3991
3992
6.10-15 SCNeighborsEx
3993
3994
SCNeighborsEx( complex, face )  method
3995
Returns: a list of faces upon success, fail otherwise.
3996
3997
In a simplicial complex complex all neighbors of the k-face face, i. e. all
3998
k-faces distinct from face intersecting with face in a common (k-1)-face,
3999
are returned in the standard labeling.
4000
4001
 Example 
4002
 gap> c:=SCFromFacets(Combinations(["a","b","c"],2));
4003
 [SimplicialComplex
4004
 
4005
 Properties known: Dim, FacetsEx, Name, Vertices.
4006
 
4007
 Name="unnamed complex 21"
4008
 Dim=1
4009
 
4010
 /SimplicialComplex]
4011
 gap> SCLabels(c);
4012
 [ "a", "b", "c" ]
4013
 gap> SCNeighborsEx(c,[1,2]);
4014
 [ [ 1, 3 ], [ 2, 3 ] ]
4015
 
4016

4017
4018
6.10-16 SCShelling
4019
4020
SCShelling( complex )  method
4021
Returns: a facet list or false upon success, fail otherwise.
4022
4023
The simplicial complex complex must be pure, strongly connected and must
4024
fulfill the weak pseudomanifold property with non-empty boundary (cf.
4025
SCBoundary (6.9-7)).
4026
4027
An ordering (F_1, F_2, ... , F_r) on the facet list of a simplicial complex
4028
is a shelling if and only if F_i ∩ (F_1 ∪ ... ∪ F_i-1) is a pure simplicial
4029
complex of dimension d-1 for all i = 1, ... , r.
4030
4031
The function checks whether complex is shellable or not. In the first case a
4032
permuted version of the facet list of complex is returned encoding a
4033
shelling of complex, otherwise false is returned.
4034
4035
Internally calls SCShellingExt (6.10-17)(complex,false,[]);. To learn more
4036
about shellings see [Zie95], [Pac87].
4037
4038
 Example 
4039
 gap> c:=SC([[1,2,3],[1,2,4],[1,3,4]]);;
4040
 gap> SCShelling(c);
4041
 [ [ [ 1, 2, 3 ], [ 1, 2, 4 ], [ 1, 3, 4 ] ] ]
4042
 
4043

4044
4045
6.10-17 SCShellingExt
4046
4047
SCShellingExt( complex, all, checkvector )  method
4048
Returns: a list of facet lists (if checkvector = []) or true or false (if
4049
checkvector is not empty), fail otherwise.
4050
4051
The simplicial complex complex must be pure of dimension d, strongly
4052
connected and must fulfill the weak pseudomanifold property with non-empty
4053
boundary (cf. SCBoundary (6.9-7)).
4054
4055
An ordering (F_1, F_2, ... , F_r) on the facet list of a simplicial complex
4056
is a shelling if and only if F_i ∩ (F_1 ∪ ... ∪ F_i-1) is a pure simplicial
4057
complex of dimension d-1 for all i = 1, ... , r.
4058
4059
If all is set to true all possible shellings of complex are computed. If all
4060
is set to false, at most one shelling is computed.
4061
4062
Every shelling is represented as a permuted version of the facet list of
4063
complex. The list checkvector encodes a shelling in a shorter form. It only
4064
contains the indices of the facets. If an order of indices is assigned to
4065
checkvector the function tests whether it is a valid shelling or not.
4066
4067
See [Zie95], [Pac87] to learn more about shellings.
4068
4069
 Example 
4070
 gap> c:=SCBdSimplex(4);;
4071
 gap> c:=SCDifference(c,SC([c.Facets[1]]));; # bounded version
4072
 gap> all:=SCShellingExt(c,true,[]);;
4073
 gap> Size(all); 
4074
 24
4075
 gap> all[1];
4076
 [ [ 1, 2, 3, 5 ], [ 1, 2, 4, 5 ], [ 1, 3, 4, 5 ], [ 2, 3, 4, 5 ] ]
4077
 gap> all:=SCShellingExt(c,false,[]);
4078
 [ [ [ 1, 2, 3, 5 ], [ 1, 2, 4, 5 ], [ 1, 3, 4, 5 ], [ 2, 3, 4, 5 ] ] ]
4079
 gap> all:=SCShellingExt(c,true,[1..4]);
4080
 true
4081
 
4082

4083
4084
6.10-18 SCShellings
4085
4086
SCShellings( complex )  method
4087
Returns: a list of facet lists upon success, fail otherwise.
4088
4089
The simplicial complex complex must be pure, strongly connected and must
4090
fulfill the weak pseudomanifold property with non-empty boundary (cf.
4091
SCBoundary (6.9-7)).
4092
4093
An ordering (F_1, F_2, ... , F_r) on the facet list of a simplicial complex
4094
is a shelling if and only if F_i ∩ (F_1 ∪ ... ∪ F_i-1) is a pure simplicial
4095
complex of dimension d-1 for all i = 1, ... , r.
4096
4097
The function checks whether complex is shellable or not. In the first case a
4098
list of permuted facet lists of complex is returned containing all possible
4099
shellings of complex, otherwise false is returned.
4100
4101
Internally calls SCShellingExt (6.10-17)(complex,true,[]);. To learn more
4102
about shellings see [Zie95], [Pac87].
4103
4104
 Example 
4105
 gap> c:=SC([[1,2,3],[1,2,4],[1,3,4]]);;
4106
 gap> SCShellings(c);
4107
 [ [ [ 1, 2, 3 ], [ 1, 2, 4 ], [ 1, 3, 4 ] ], 
4108
 [ [ 1, 2, 3 ], [ 1, 3, 4 ], [ 1, 2, 4 ] ], 
4109
 [ [ 1, 2, 4 ], [ 1, 2, 3 ], [ 1, 3, 4 ] ], 
4110
 [ [ 1, 3, 4 ], [ 1, 2, 3 ], [ 1, 2, 4 ] ], 
4111
 [ [ 1, 2, 4 ], [ 1, 3, 4 ], [ 1, 2, 3 ] ], 
4112
 [ [ 1, 3, 4 ], [ 1, 2, 4 ], [ 1, 2, 3 ] ] ]
4113
 
4114

4115
4116
6.10-19 SCSpan
4117
4118
SCSpan( complex, subset )  method
4119
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
4120
otherwise.
4121
4122
Computes the reduced face lattice of all faces of a simplicial complex
4123
complex that are spanned by subset, a subset of the set of vertices of
4124
complex.
4125
4126
 Example 
4127
 gap> c:=SCBdCrossPolytope(4);;
4128
 gap> SCVertices(c);
4129
 [ 1, 2, 3, 4, 5, 6, 7, 8 ]
4130
 gap> span:=SCSpan(c,[1,2,3,4]);
4131
 [SimplicialComplex
4132
 
4133
 Properties known: Dim, FacetsEx, Name, Vertices.
4134
 
4135
 Name="span([ 1, 2, 3, 4 ]) in Bd(\beta^4)"
4136
 Dim=1
4137
 
4138
 /SimplicialComplex]
4139
 gap> span.Facets;
4140
 [ [ 1, 3 ], [ 1, 4 ], [ 2, 3 ], [ 2, 4 ] ]
4141
 
4142

4143
4144
 Example 
4145
 gap> c:=SC([[1,2],[1,4,5],[2,3,4]]);;
4146
 gap> span:=SCSpan(c,[2,3,5]);
4147
 [SimplicialComplex
4148
 
4149
 Properties known: Dim, FacetsEx, Name, Vertices.
4150
 
4151
 Name="span([ 2, 3, 5 ]) in unnamed complex 121"
4152
 Dim=1
4153
 
4154
 /SimplicialComplex]
4155
 gap> SCFacets(span);
4156
 [ [ 2, 3 ], [ 5 ] ]
4157
 
4158

4159
4160
6.10-20 SCSuspension
4161
4162
SCSuspension( complex )  method
4163
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
4164
otherwise.
4165
4166
Calculates the simplicial suspension of the simplicial complex complex.
4167
Internally falls back to the homology package [DHSW11] (if available) if a
4168
facet list is passed as argument. Note that the vertex labelings of the
4169
complexes passed as arguments are not propagated to the new complex.
4170
4171
 Example 
4172
 gap> SCLib.SearchByName("Poincare");
4173
 [ [ 7469, "Poincare_sphere" ] ]
4174
 gap> phs:=SCLib.Load(last[1][1]);
4175
 [SimplicialComplex
4176
 
4177
 Properties known: AltshulerSteinberg, AutomorphismGroup, 
4178
 AutomorphismGroupSize, AutomorphismGroupStructure, 
4179
 AutomorphismGroupTransitivity, ConnectedComponents, 
4180
 Dim, DualGraph, EulerCharacteristic, FVector, 
4181
 FacetsEx, GVector, GeneratorsEx, HVector, 
4182
 HasBoundary, HasInterior, Homology, Interior, 
4183
 IsCentrallySymmetric, IsConnected, 
4184
 IsEulerianManifold, IsManifold, IsOrientable, 
4185
 IsPseudoManifold, IsPure, IsStronglyConnected, 
4186
 MinimalNonFacesEx, Name, Neighborliness, 
4187
 NumFaces[], Orientation, SkelExs[], Vertices.
4188
 
4189
 Name="Poincare_sphere"
4190
 Dim=3
4191
 AltshulerSteinberg=115400413872363901952
4192
 AutomorphismGroupSize=1
4193
 AutomorphismGroupStructure="1"
4194
 AutomorphismGroupTransitivity=0
4195
 EulerCharacteristic=0
4196
 FVector=[ 16, 106, 180, 90 ]
4197
 GVector=[ 11, 52 ]
4198
 HVector=[ 12, 64, 12, 1 ]
4199
 HasBoundary=false
4200
 HasInterior=true
4201
 Homology=[ [ 0, [ ] ], [ 0, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ]
4202
 IsCentrallySymmetric=false
4203
 IsConnected=true
4204
 IsEulerianManifold=true
4205
 IsOrientable=true
4206
 IsPseudoManifold=true
4207
 IsPure=true
4208
 IsStronglyConnected=true
4209
 Neighborliness=1
4210
 
4211
 /SimplicialComplex]
4212
 gap> susp:=SCSuspension(phs);;
4213
 gap> edwardsSphere:=SCSuspension(susp);
4214
 [SimplicialComplex
4215
 
4216
 Properties known: Dim, FacetsEx, Name, Vertices.
4217
 
4218
 Name="susp of susp of Poincare_sphere"
4219
 Dim=5
4220
 
4221
 /SimplicialComplex]
4222
 
4223

4224
4225
6.10-21 SCUnion
4226
4227
SCUnion( complex1, complex2 )  method
4228
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
4229
otherwise.
4230
4231
Forms the union of two simplicial complexes complex1 and complex2 as the
4232
simplicial complex formed by the union of their facets sets. The two
4233
arguments are not altered. Note: for the union process the vertex labelings
4234
of the complexes are taken into account, see also Operation Union
4235
(SCSimplicialComplex, SCSimplicialComplex) (5.3-1). Facets occurring in both
4236
arguments are treated as one facet in the new complex.
4237
4238
 Example 
4239
 gap> c:=SCUnion(SCBdSimplex(3),SCBdSimplex(3)+3); #a wedge of two 2-spheres
4240
 [SimplicialComplex
4241
 
4242
 Properties known: Dim, FacetsEx, Name, Vertices.
4243
 
4244
 Name="S^2_4 cup S^2_4"
4245
 Dim=2
4246
 
4247
 /SimplicialComplex]
4248
 
4249

4250
4251
6.10-22 SCVertexIdentification
4252
4253
SCVertexIdentification( complex, v1, v2 )  method
4254
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
4255
otherwise.
4256
4257
Identifies vertex v1 with vertex v2 in a simplicial complex complex and
4258
returns the result as a new object. A vertex identification of v1 and v2 is
4259
possible whenever d(v1,v2) ≥ 3. This is not checked by this algorithm.
4260
4261
 Example 
4262
 gap> c:=SC([[1,2],[2,3],[3,4]]);;
4263
 gap> circle:=SCVertexIdentification(c,[1],[4]);;
4264
 gap> circle.Facets;
4265
 [ [ 1, 2 ], [ 1, 3 ], [ 2, 3 ] ]
4266
 gap> circle.Homology;
4267
 [ [ 0, [ ] ], [ 1, [ ] ] ]
4268
 
4269

4270
4271
6.10-23 SCWedge
4272
4273
SCWedge( complex1, complex2 )  method
4274
Returns: simplicial complex of type SCSimplicialComplex upon success, fail
4275
otherwise.
4276
4277
Calculates the wedge product of the complexes supplied as arguments. Note
4278
that the vertex labelings of the complexes passed as arguments are not
4279
propagated to the new complex.
4280
4281
 Example 
4282
 gap> wedge:=SCWedge(SCBdSimplex(2),SCBdSimplex(2));
4283
 [SimplicialComplex
4284
 
4285
 Properties known: Dim, FacetsEx, Name, Vertices.
4286
 
4287
 Name="unnamed complex 17"
4288
 Dim=1
4289
 
4290
 /SimplicialComplex]
4291
 gap> wedge.Facets;
4292
 [ [ 1, [ 1, 2 ] ], [ 1, [ 1, 3 ] ], [ 1, [ 2, 2 ] ], [ 1, [ 2, 3 ] ], 
4293
 [ [ 1, 2 ], [ 1, 3 ] ], [ [ 2, 2 ], [ 2, 3 ] ] ]
4294
 
4295

4296
4297
4298