	<Chapter Label="chap:demo"> <Heading>A demo session with <Package>simpcomp</Package></Heading>
		This chapter contains the transcript of a demo session with <Package>simpcomp</Package> that is intended to give an insight into what things can be done with this package.<P/>
		
		Of course this only scratches the surface of the functions provided by <Package>simpcomp</Package>. See Chapters <Ref Chap="chap:polyhedralcomplex"/> through <Ref Chap="chap:misc"/> for further functions provided by <Package>simpcomp</Package>.
		
		<Section Label="sec:DemoCreatingCompl">
			<Heading>Creating a <C>SCSimplicialComplex</C> object</Heading>

Simplicial complex objects can either be created from a facet list (complex <C>c1</C> below), orbit representatives together with a permutation group (complex <C>c2</C>) or difference cycles (complex <C>c3</C>, see Section <Ref Chap="sec:FromScratch"/>), from a function generating triangulations of standard complexes (complex <C>c4</C>, see Section <Ref Chap="sec:Standard"/>) or from a function constructing infinite series for combinatorial (pseudo)manifolds (complexes <C>c5</C>, <C>c6</C>, <C>c7</C>, see Section <Ref Chap="sec:Series"/> and the function prefix <C>SCSeries...</C>). There are also functions creating new simplicial complexes from old, see Section <Ref Chap="sec:generateFromOld" />, which will be described in the next sections.
			
<Log>
gap> #first run functionality test on simpcomp
gap> SCRunTest();
+ test simpcomp package, version 0.0.0
true
gap> #all ok
gap> c1:=SCFromFacets([[1,2],[2,3],[3,1]]);
[SimplicialComplex

 Properties known: Dim, Facets, Name, VertexLabels.

 Name="unnamed complex 1"
 Dim=1

/SimplicialComplex]
gap> G:=Group([(2,12,11,6,8,3)(4,7,10)(5,9),(1,11,6,4,5,3,10,8,9,7,2,12)]);
Group([ (2,12,11,6,8,3)(4,7,10)(5,9), (1,11,6,4,5,3,10,8,9,7,2,12) ])
gap> StructureDescription(G);
"S4 x S3"
gap> Size(G);
144
gap> c2:=SCFromGenerators(G,[[1,2,3]]);;
gap> c2.IsManifold;                    
true
gap> SCLibDetermineTopologicalType(c2);
[SimplicialComplex

 Properties known: AutomorphismGroup, AutomorphismGroupSize, 
                   AutomorphismGroupStructure, AutomorphismGroupTransitivity,\
 
                   Boundary, Dim, Faces, Facets, Generators, HasBoundary, 
                   IsManifold, IsPM, Name, TopologicalType, VertexLabels, 
                   Vertices.

 Name="complex from generators under group S4 x S3"
 Dim=2
 AutomorphismGroupSize=144
 AutomorphismGroupStructure="S4 x S3"
 AutomorphismGroupTransitivity=1
 HasBoundary=false
 IsPM=true
 TopologicalType="T^2"

/SimplicialComplex]
gap> c3:=SCFromDifferenceCycles([[1,1,6],[3,3,2]]);
[SimplicialComplex

 Properties known: Dim, Facets, Name, VertexLabels.

 Name="complex from diffcycles [ [ 1, 1, 6 ], [ 3, 3, 2 ] ]"
 Dim=2

/SimplicialComplex]
gap> c4:=SCBdSimplex(2);
[SimplicialComplex

 Properties known: AutomorphismGroup, AutomorphismGroupOrder, 
                   AutomorphismGroupStructure, AutomorphismGroupTransitivity, 
                   Chi, Dim, F, Facets, Generators, HasBounday, Homology, 
                   IsConnected, IsStronglyConnected, Name, TopologicalType, 
                   VertexLabels.

 Name="S^1_3"
 Dim=1
 AutomorphismGroupStructure="S3"
 AutomorphismGroupTransitivity=3
 Chi=0
 F=[ 3, 3 ]
 Homology=[ [ 0, [ ] ], [ 1, [ ] ] ]
 IsConnected=true
 IsStronglyConnected=true
 TopologicalType="S^1"

/SimplicialComplex]
gap> c5:=SCSeriesCSTSurface(2,16);;    
gap> SCLibDetermineTopologicalType(c5);
[SimplicialComplex

 Properties known: Boundary, Dim, Faces, Facets, HasBoundary, IsPM, Name, 
                   TopologicalType, VertexLabels.

 Name="cst surface S_{(2,16)} = { (2:2:12),(6:6:4) }"
 Dim=2
 HasBoundary=false
 IsPM=true
 TopologicalType="T^2 U T^2"

/SimplicialComplex]
gap> c6:=SCSeriesD2n(22);;
gap> c6.Homology;
[ [ 0, [  ] ], [ 1, [  ] ], [ 0, [ 2 ] ], [ 0, [  ] ] ]
gap> c6.F;
[ 44, 264, 440, 220 ]
gap> SCSeriesAGL(17);
[ AGL(1,17), [ [ 1, 2, 4, 8, 16 ] ] ]
gap> c7:=SCFromGenerators(last[1],last[2]);;
gap> c7.AutomorphismGroupTransitivity;
2
</Log>
		</Section>
	
		<Section Label="sec:DemoWorkingCompl">
			<Heading>Working with a <C>SCSimplicialComplex</C> object</Heading>
As described in Section <Ref Sect="sec:AcessSC" /> there are two several ways of accessing an object of type <C>SCSimplicialComplex</C>. An example for the two equivalent ways is given below. The preference will be given to the object oriented notation in this demo session. 

The code listed below

<Log>
gap> c:=SCBdSimplex(3);; # create a simplicial complex object
gap> SCFVector(c);
[ 4, 6, 4 ]
gap> SCSkel(c,0);
[ [ 1 ], [ 2 ], [ 3 ], [ 4 ] ]
</Log>

is equivalent to

<Log>
gap> c:=SCBdSimplex(3);; # create a simplicial complex object
gap> c.F;
[ 4, 6, 4 ]
gap> c.Skel(0);
[ [ 1 ], [ 2 ], [ 3 ], [ 4 ] ]
</Log>

</Section>
			
		<Section Label="sec:DemoPropsCompl">
			<Heading>Calculating properties of a <C>SCSimplicialComplex</C> object</Heading>
			
			<Package>simpcomp</Package> provides a variety of functions for calculating properties of simplicial complexes, see Section <Ref Chap="sec:glprops" />. All these properties are only calculated once and stored in the <C>SCSimplicialComplex</C> object.
<Log>
gap> c1.F;     
[ 3, 3 ]
gap> c1.FaceLattice;
[ [ [ 1 ], [ 2 ], [ 3 ] ], [ [ 1, 2 ], [ 1, 3 ], [ 2, 3 ] ] ]
gap> c1.AutomorphismGroup;
S3
gap> c1.Generators;
[ [ [ 1, 2 ], 3 ] ]
gap> c3.Facets;
[ [ 1, 2, 3 ], [ 1, 2, 8 ], [ 1, 3, 6 ], [ 1, 4, 6 ], [ 1, 4, 7 ], 
  [ 1, 7, 8 ], [ 2, 3, 4 ], [ 2, 4, 7 ], [ 2, 5, 7 ], [ 2, 5, 8 ], 
  [ 3, 4, 5 ], [ 3, 5, 8 ], [ 3, 6, 8 ], [ 4, 5, 6 ], [ 5, 6, 7 ], 
  [ 6, 7, 8 ] ]
gap> c3.F;
[ 8, 24, 16 ]
gap> c3.G;
[ 4 ]
gap> c3.H;
[ 5, 11, -1 ]
gap> c3.ASDet;
186624
gap> c3.Chi;
0
gap> c3.Generators;
[ [ [ 1, 2, 3 ], 16 ] ]
gap> c3.HasBoundary;
false
gap> c3.IsConnected;
true
gap> c3.IsCentrallySymmetric;
true
gap> c3.Vertices;
[ 1, 2, 3, 4, 5, 6, 7, 8 ]
gap> c3.ConnectedComponents;
[ [SimplicialComplex
    
     Properties known: Dim, Facets, Name, VertexLabels.
    
     Name="Connected component #1 of complex from diffcycles [ [ 1, 1, 6 ], [ \
3, 3, 2 ] ]"
     Dim=2
    
    /SimplicialComplex] ]
gap> c3.UnknownProperty;
#I  SCPropertyObject: unhandled property 'UnknownProperty'. Handled properties\
 are [ "Equivalent", "IsKStackedSphere", "IsManifold", "IsMovable", "Move", 
  "Moves", "RMoves", "ReduceAsSubcomplex", "Reduce", "ReduceEx", "Copy", 
  "Recalc", "ASDet", "AutomorphismGroup", "AutomorphismGroupInternal", 
  "Boundary", "ConnectedComponents", "Dim", "DualGraph", "Chi", "F", 
  "FaceLattice", "FaceLatticeEx", "Faces", "FacesEx", "Facets", "FacetsEx", 
  "FpBetti", "FundamentalGroup", "G", "Generators", "GeneratorsEx", "H", 
  "HasBoundary", "HasInterior", "Homology", "Incidences", "IncidencesEx", 
  "Interior", "IsCentrallySymmetric", "IsConnected", "IsEmpty", 
  "IsEulerianManifold", "IsHomologySphere", "IsInKd", "IsKNeighborly", 
  "IsOrientable", "IsPM", "IsPure", "IsShellable", "IsStronglyConnected", 
  "MinimalNonFaces", "MinimalNonFacesEx", "Name", "Neighborliness", 
  "Orientation", "Skel", "SkelEx", "SpanningTree", 
  "StronglyConnectedComponents", "Vertices", "VerticesEx", 
  "BoundaryOperatorMatrix", "HomologyBasis", "HomologyBasisAsSimplices", 
  "HomologyInternal", "CoboundaryOperatorMatrix", "Cohomology", 
  "CohomologyBasis", "CohomologyBasisAsSimplices", "CupProduct", 
  "IntersectionForm", "IntersectionFormParity", 
  "IntersectionFormDimensionality", "Load", "Save", "ExportPolymake", 
  "ExportLatexTable", "ExportJavaView", "LabelMax", "LabelMin", "Labels", 
  "Relabel", "RelabelStandard", "RelabelTransposition", "Rename", 
  "SortComplex", "UnlabelFace", "AlexanderDual", "CollapseGreedy", "Cone", 
  "DeletedJoin", "Difference", "HandleAddition", "Intersection", 
  "IsIsomorphic", "IsSubcomplex", "Isomorphism", "IsomorphismEx", "Join", 
  "Link", "Links", "Neighbors", "NeighborsEx", "Shelling", "ShellingExt", 
  "Shellings", "Span", "Star", "Stars", "Suspension", "Union", 
  "VertexIdentification", "Wedge", "DetermineTopologicalType", "Dim", 
  "Facets", "VertexLabels", "Name", "Vertices", "IsConnected", 
  "ConnectedComponents" ].

fail
</Log>
			
		</Section>

		<Section Label="sec:DemoNewCompl">
			<Heading>Creating new complexes from a <C>SCSimplicialComplex</C> object</Heading>
			
			As already mentioned, there is the possibility to generate new objects of type <C>SCSimplicialComplex</C> from existing ones using standard constructions. The functions used in this section are described in more detail in Section <Ref Chap="sec:generateFromOld"/>.
<Log>
gap> d:=c3+c3;
[SimplicialComplex

 Properties known: Dim, Facets, Name, VertexLabels, Vertices.

 Name="complex from diffcycles [ [ 1, 1, 6 ], [ 3, 3, 2 ] ]#+-complex from dif\
fcycles [ [ 1, 1, 6 ], [ 3, 3, 2 ] ]"
 Dim=2

/SimplicialComplex]
gap> SCRename(d,"T^2#T^2");
true
gap> SCLink(d,1);
[SimplicialComplex

 Properties known: Dim, Facets, Name, VertexLabels.

 Name="lk(1) in T^2#T^2"
 Dim=1

/SimplicialComplex]
gap> SCStar(d,[1,2]);
[SimplicialComplex

 Properties known: Dim, Facets, Name, VertexLabels.

 Name="star([ 1, 2 ]) in T^2#T^2"
 Dim=2

/SimplicialComplex]
gap> SCRename(c3,"T^2");
true
gap> SCConnectedProduct(c3,4);
[SimplicialComplex

 Properties known: Dim, Facets, Name, VertexLabels, Vertices.

 Name="T^2#+-T^2#+-T^2#+-T^2"
 Dim=2

/SimplicialComplex]
gap> SCCartesianProduct(c4,c4);
[SimplicialComplex

 Properties known: Dim, Facets, Name, TopologicalType, VertexLabels.

 Name="S^1_3xS^1_3"
 Dim=2
 TopologicalType="S^1xS^1"

/SimplicialComplex]
gap> SCCartesianPower(c4,3);
[SimplicialComplex

 Properties known: Dim, Facets, Name, TopologicalType, VertexLabels.

 Name="(S^1_3)^3"
 Dim=3
 TopologicalType="(S^1)^3"

/SimplicialComplex]
</Log>
			
		</Section>

		<Section Label="sec:DemoHom">
			<Heading>Homology related calculations</Heading>

			<Package>simpcomp</Package> relies on the GAP package homology <Cite Key="Dumas04Homology" /> for its homology computations but provides further (co-)homology related functions, see Chapter <Ref Chap="chap:homology"/>.


			
<Log>
gap> s2s2:=SCCartesianProduct(SCBdSimplex(3),SCBdSimplex(3));
[SimplicialComplex

 Properties known: Dim, Facets, Name, TopologicalType, VertexLabels.

 Name="S^2_4xS^2_4"
 Dim=4
 TopologicalType="S^2xS^2"

/SimplicialComplex]
gap> SCHomology(s2s2);
[ [ 0, [  ] ], [ 0, [  ] ], [ 2, [  ] ], [ 0, [  ] ], [ 1, [  ] ] ]
gap> SCHomologyInternal(s2s2);
[ [ 0, [  ] ], [ 0, [  ] ], [ 2, [  ] ], [ 0, [  ] ], [ 1, [  ] ] ]
gap> SCHomologyBasis(s2s2,2);
[ [ 1, [ [ 1, 70 ], [ -1, 12 ], [ 1, 2 ], [ -1, 1 ] ] ], 
  [ 1, [ [ 1, 143 ], [ -1, 51 ], [ 1, 29 ], [ -1, 25 ] ] ] ]
gap> SCHomologyBasisAsSimplices(s2s2,2);
[ [ 1, 
      [ [ 1, [ 2, 3, 4 ] ], [ -1, [ 1, 3, 4 ] ], [ 1, [ 1, 2, 4 ] ], [ -1, [ 1
                    , 2, 3 ] ] ] ], 
  [ 1, [ [ 1, [ 5, 9, 13 ] ], [ -1, [ 1, 9, 13 ] ], [ 1, [ 1, 5, 13 ] ], 
          [ -1, [ 1, 5, 9 ] ] ] ] ]
gap> SCCohomologyBasis(s2s2,2);
[ [ 1, 
      [ [ 1, 122 ], [ 1, 115 ], [ 1, 112 ], [ 1, 111 ], [ 1, 93 ], [ 1, 90 ], 
          [ 1, 89 ], [ 1, 84 ], [ 1, 83 ], [ 1, 82 ], [ 1, 46 ], [ 1, 43 ], 
          [ 1, 42 ], [ 1, 37 ], [ 1, 36 ], [ 1, 35 ], [ 1, 28 ], [ 1, 27 ], 
          [ 1, 26 ], [ 1, 25 ] ] ], 
  [ 1, [ [ 1, 213 ], [ 1, 201 ], [ 1, 192 ], [ 1, 189 ], [ 1, 159 ], 
          [ 1, 150 ], [ 1, 147 ], [ 1, 131 ], [ 1, 128 ], [ 1, 125 ], 
          [ 1, 67 ], [ 1, 58 ], [ 1, 55 ], [ 1, 39 ], [ 1, 36 ], [ 1, 33 ], 
          [ 1, 10 ], [ 1, 7 ], [ 1, 4 ], [ 1, 1 ] ] ] ]
gap> SCCohomologyBasisAsSimplices(s2s2,2);
[ [ 1, [ [ 1, [ 4, 8, 12 ] ], [ 1, [ 3, 8, 12 ] ], [ 1, [ 3, 7, 12 ] ], 
          [ 1, [ 3, 7, 11 ] ], [ 1, [ 2, 8, 12 ] ], [ 1, [ 2, 7, 12 ] ], 
          [ 1, [ 2, 7, 11 ] ], [ 1, [ 2, 6, 12 ] ], [ 1, [ 2, 6, 11 ] ], 
          [ 1, [ 2, 6, 10 ] ], [ 1, [ 1, 8, 12 ] ], [ 1, [ 1, 7, 12 ] ], 
          [ 1, [ 1, 7, 11 ] ], [ 1, [ 1, 6, 12 ] ], [ 1, [ 1, 6, 11 ] ], 
          [ 1, [ 1, 6, 10 ] ], [ 1, [ 1, 5, 12 ] ], [ 1, [ 1, 5, 11 ] ], 
          [ 1, [ 1, 5, 10 ] ], [ 1, [ 1, 5, 9 ] ] ] ], 
  [ 1, [ [ 1, [ 13, 14, 15 ] ], [ 1, [ 9, 14, 15 ] ], [ 1, [ 9, 10, 15 ] ], 
          [ 1, [ 9, 10, 11 ] ], [ 1, [ 5, 14, 15 ] ], [ 1, [ 5, 10, 15 ] ], 
          [ 1, [ 5, 10, 11 ] ], [ 1, [ 5, 6, 15 ] ], [ 1, [ 5, 6, 11 ] ], 
          [ 1, [ 5, 6, 7 ] ], [ 1, [ 1, 14, 15 ] ], [ 1, [ 1, 10, 15 ] ], 
          [ 1, [ 1, 10, 11 ] ], [ 1, [ 1, 6, 15 ] ], [ 1, [ 1, 6, 11 ] ], 
          [ 1, [ 1, 6, 7 ] ], [ 1, [ 1, 2, 15 ] ], [ 1, [ 1, 2, 11 ] ], 
          [ 1, [ 1, 2, 7 ] ], [ 1, [ 1, 2, 3 ] ] ] ] ]
gap> PrintArray(SCIntersectionForm(s2s2));
[ [  0,  1 ],
  [  1,  0 ] ]
gap> c:=s2s2+s2s2;
[SimplicialComplex

 Properties known: Dim, Facets, Name, VertexLabels, Vertices.

 Name="S^2_4xS^2_4#+-S^2_4xS^2_4"
 Dim=4

/SimplicialComplex]
gap> PrintArray(SCIntersectionForm(c));
[ [   0,  -1,   0,   0 ],
  [  -1,   0,   0,   0 ],
  [   0,   0,   0,  -1 ],
  [   0,   0,  -1,   0 ] ]
</Log>
			
			</Section>

		<Section Label="sec:DemoBist">
			<Heading>Bistellar flips</Heading>
			
			For a more detailed description of functions related to bistellar flips as well as a very short introduction into the topic, see Chapter <Ref Chap="chap:bistellar"/>.
			<Log>
gap> beta4:=SCBdCrossPolytope(4);;    
gap> s3:=SCBdSimplex(4);;             
gap> SCEquivalent(beta4,s3);
#I  round 0, move: [ [ 2, 6, 7 ], [ 3, 4 ] ]
[ 8, 25, 34, 17 ]
#I  round 1, move: [ [ 2, 7 ], [ 3, 4, 5 ] ]
[ 8, 24, 32, 16 ]
#I  round 2, move: [ [ 2, 5 ], [ 3, 4, 8 ] ]
[ 8, 23, 30, 15 ]
#I  round 3, move: [ [ 2 ], [ 3, 4, 6, 8 ] ]
[ 7, 19, 24, 12 ]
#I  round 4, move: [ [ 6, 8 ], [ 1, 3, 4 ] ]
[ 7, 18, 22, 11 ]
#I  round 5, move: [ [ 8 ], [ 1, 3, 4, 5 ] ]
[ 6, 14, 16, 8 ]
#I  round 6, move: [ [ 5 ], [ 1, 3, 4, 7 ] ]
[ 5, 10, 10, 5 ]
#I  SCReduceComplexEx: complexes are bistellarly equivalent.
true
gap> SCBistellarOptions.WriteLevel;   
0
gap> SCBistellarOptions.WriteLevel:=1;
1
gap> SCEquivalent(beta4,s3);          
#I  SCLibInit: made directory "~/PATH" for user library.
#I  SCIntFunc.SCLibInit: index not found -- trying to reconstruct it.
#I  SCLibUpdate: rebuilding index for ~/PATH.
#I  SCLibUpdate: rebuilding index done.

#I  round 0, move: [ [ 2, 4, 6 ], [ 7, 8 ] ]
[ 8, 25, 34, 17 ]
#I  round 1, move: [ [ 2, 4 ], [ 5, 7, 8 ] ]
[ 8, 24, 32, 16 ]
#I  round 2, move: [ [ 4, 5 ], [ 1, 7, 8 ] ]
[ 8, 23, 30, 15 ]
#I  round 3, move: [ [ 4 ], [ 1, 6, 7, 8 ] ]
[ 7, 19, 24, 12 ]
#I  SCLibAdd: saving complex to file "complex_ReducedComplex_7_vertices_3_2009\
-10-27_11-40-00.sc".
#I  round 4, move: [ [ 2, 6 ], [ 3, 7, 8 ] ]
[ 7, 18, 22, 11 ]
#I  round 5, move: [ [ 2 ], [ 3, 5, 7, 8 ] ]
[ 6, 14, 16, 8 ]
#I  SCLibAdd: saving complex to file "complex_ReducedComplex_6_vertices_5_2009\
-10-27_11-40-00.sc".
#I  round 6, move: [ [ 5 ], [ 1, 3, 7, 8 ] ]
[ 5, 10, 10, 5 ]
#I  SCLibAdd: saving complex to file "complex_ReducedComplex_5_vertices_6_2009\
-10-27_11-40-00.sc".
#I  SCLibAdd: saving complex to file "complex_ReducedComplex_5_vertices_7_2009\
-10-27_11-40-00.sc".
#I  SCReduceComplexEx: complexes are bistellarly equivalent.
true
gap> myLib:=SCLibInit("~/PATH"); # copy path from above             
[Simplicial complex library. Properties:
CalculateIndexAttributes=true
Number of complexes in library=4
IndexAttributes=[ "Name", "Date", "Dim", "F", "G", "H", "Chi", "Homology" ]
Loaded=true
Path="/home/spreerjn/reducedComplexes/2009-10-27_11-40-00/"
]
gap> s3:=myLib.Load(3);
[SimplicialComplex

 Properties known: Chi, Date, Dim, F, Faces, Facets, G, H, Homology, 
                   IsConnected, Name, VertexLabels.

 Name="ReducedComplex_5_vertices_6"
 Dim=3
 Chi=0
 F=[ 5, 10, 10, 5 ]
 G=[ 0, 0 ]
 H=[ 1, 1, 1, 1 ]
 Homology=[ [ 0, [ ] ], [ 0, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ]
 IsConnected=true

/SimplicialComplex]
gap> s3:=myLib.Load(2);
[SimplicialComplex

 Properties known: Chi, Date, Dim, F, Faces, Facets, G, H, Homology, 
                   IsConnected, Name, VertexLabels.

 Name="ReducedComplex_6_vertices_5"
 Dim=3
 Chi=0
 F=[ 6, 14, 16, 8 ]
 G=[ 1, 0 ]
 H=[ 2, 2, 2, 1 ]
 Homology=[ [ 0, [ ] ], [ 0, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ]
 IsConnected=true

/SimplicialComplex]
gap> t2:=SCCartesianProduct(SCBdSimplex(2),SCBdSimplex(2));;
gap> t2.F;
[ 9, 27, 18 ]
gap> SCBistellarOptions.WriteLevel:=0;
0
gap> SCBistellarOptions.LogLevel:=0;  
0
gap> mint2:=SCReduceComplex(t2);    
[ true, [SimplicialComplex
    
     Properties known: Dim, Facets, Name, VertexLabels.
    
     Name="unnamed complex 85"
     Dim=2
    
    /SimplicialComplex], 32 ]
			</Log>
		</Section>
		
		<Section Label="sec:DemoBlowups">
			<Heading>Simplicial blowups</Heading>
			
			For a more detailed description of functions related to simplicial blowups see Chapter <Ref Chap="chap:blowups"/>.
			<Log>
gap> list:=SCLib.SearchByName("Kummer");
[ [ 7493, "4-dimensional Kummer variety (VT)" ] ]
gap> c:=SCLib.Load(7493);
[SimplicialComplex

 Properties known: AltshulerSteinberg, AutomorphismGroup, 
                   AutomorphismGroupSize, AutomorphismGroupStructure, 
                   AutomorphismGroupTransitivity, 
                   ConnectedComponents, Date, Dim, DualGraph, 
                   EulerCharacteristic, FacetsEx, GVector, 
                   GeneratorsEx, HVector, HasBoundary, HasInterior, 
                   Homology, Interior, IsCentrallySymmetric, 
                   IsConnected, IsEulerianManifold, IsManifold, 
                   IsOrientable, IsPseudoManifold, IsPure, 
                   IsStronglyConnected, MinimalNonFacesEx, Name, 
                   Neighborliness, NumFaces[], Orientation, 
                   SkelExs[], Vertices.

 Name="4-dimensional Kummer variety (VT)"
 Dim=4
 AltshulerSteinberg=45137758519296000000000000
 AutomorphismGroupSize=1920
 AutomorphismGroupStructure="((C2 x C2 x C2 x C2) : A5) : C2"
 AutomorphismGroupTransitivity=1
 EulerCharacteristic=8
 GVector=[ 10, 55, 60 ]
 HVector=[ 11, 66, 126, -19, 7 ]
 HasBoundary=false
 HasInterior=true
 Homology=[ [0, [ ] ], [0, [ ] ], [6, [2,2,2,2,2] ], [0, [ ] ], [1, [ ] ] ]
 IsCentrallySymmetric=false
 IsConnected=true
 IsEulerianManifold=true
 IsOrientable=true
 IsPseudoManifold=true
 IsPure=true
 IsStronglyConnected=true
 Neighborliness=2

/SimplicialComplex]
gap> lk:=SCLink(c,1);
[SimplicialComplex

 Properties known: Dim, FacetsEx, Name, Vertices.

 Name="lk([ 1 ]) in 4-dimensional Kummer variety (VT)"
 Dim=3

/SimplicialComplex]
gap> SCHomology(lk);
[ [ 0, [  ] ], [ 0, [ 2 ] ], [ 0, [  ] ], [ 1, [  ] ] ]
gap> SCLibDetermineTopologicalType(lk);
[ 45, 113, 2426, 2502, 7470 ]
gap> d:=SCLib.Load(45);;
gap> d.Name;
"RP^3"
gap> SCEquivalent(lk,d);
#I  SCReduceComplexEx: complexes are bistellarly equivalent.
true
gap> e:=SCBlowup(c,1);
#I  SCBlowup: checking if singularity is a combinatorial manifold...
#I  SCBlowup: ...true
#I  SCBlowup: checking type of singularity...
#I  SCReduceComplexEx: complexes are bistellarly equivalent.
#I  SCBlowup: ...ordinary double point (supported type).
#I  SCBlowup: starting blowup...
#I  SCBlowup: map boundaries...
#I  SCBlowup: boundaries not isomorphic, initializing bistellar moves...
#I  SCBlowup: found complex with smaller boundary: f = [ 15, 74, 118, 59 ].
#I  SCBlowup: found complex with smaller boundary: f = [ 14, 70, 112, 56 ].
#I  SCBlowup: found complex with smaller boundary: f = [ 14, 69, 110, 55 ].
#I  SCBlowup: found complex with smaller boundary: f = [ 14, 68, 108, 54 ].
#I  SCBlowup: found complex with smaller boundary: f = [ 13, 64, 102, 51 ].
#I  SCBlowup: found complex with smaller boundary: f = [ 13, 63, 100, 50 ].
#I  SCBlowup: found complex with smaller boundary: f = [ 13, 62, 98, 49 ].
#I  SCBlowup: found complex with smaller boundary: f = [ 12, 58, 92, 46 ].
#I  SCBlowup: found complex with smaller boundary: f = [ 12, 57, 90, 45 ].
#I  SCBlowup: found complex with smaller boundary: f = [ 12, 56, 88, 44 ].
#I  SCBlowup: found complex with smaller boundary: f = [ 11, 52, 82, 41 ].
#I  SCBlowup: found complex with smaller boundary: f = [ 11, 51, 80, 40 ].
#I  SCBlowup: found complex with isomorphic boundaries.
#I  SCBlowup: ...boundaries mapped succesfully.
#I  SCBlowup: build complex...
#I  SCBlowup: ...done.
#I  SCBlowup: ...blowup completed.
#I  SCBlowup: You may now want to reduce the complex via 'SCReduceComplex'.
[SimplicialComplex

 Properties known: Dim, FacetsEx, Name, Vertices.

 Name="unnamed complex 6315 \ star([ 1 ]) in unnamed complex 6315 cup unnamed\
 complex 6319 cup unnamed complex 6317"
 Dim=4

/SimplicialComplex]
gap> SCHomology(c);
[ [ 0, [  ] ], [ 0, [  ] ], [ 6, [ 2, 2, 2, 2, 2 ] ], [ 0, [  ] ], [ 1, [  ] ] ]
gap> SCHomology(e);
[ [ 0, [  ] ], [ 0, [  ] ], [ 7, [ 2, 2, 2, 2 ] ], [ 0, [  ] ], [ 1, [  ] ] ]
			</Log>
		</Section>
		
		
		<Section Label="sec:DemoDiscreteNormalSurface">
			<Heading>Discrete normal surfaces and slicings</Heading>
			
			For a more detailed description of functions related to discrete normal surfaces and slicings see the Sections <Ref Chap="sec:NormSurfTheory"/> and <Ref Chap="sec:MorseTheory"/>.
			<Log>		
		
gap> # the boundary of the cyclic 4-polytope with 6 vertices		
gap> c:=SCBdCyclicPolytope(4,6); 
[SimplicialComplex

 Properties known: Dim, EulerCharacteristic, FacetsEx, HasBoundary, Homology,\
 IsConnected, IsStronglyConnected, Name, NumFaces[], TopologicalType, Vertices.

 Name="Bd(C_4(6))"
 Dim=3
 EulerCharacteristic=0
 HasBoundary=false
 Homology=[ [ 0, [ ] ], [ 0, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ]
 IsConnected=true
 IsStronglyConnected=true
 TopologicalType="S^3"

/SimplicialComplex]
gap> # slicing in between the odd and the even vertex labels, a polyhedral torus
gap> sl:=SCSlicing(c,[[2,4,6],[1,3,5]]);   
[NormalSurface

 Properties known: ConnectedComponents, Dim, EulerCharacteristic, FVector,\
 FacetsEx, Genus, IsConnected, IsOrientable, NSTriangulation, Name,\
 TopologicalType, Vertices.

 Name="slicing [ [ 2, 4, 6 ], [ 1, 3, 5 ] ] of Bd(C_4(6))"
 Dim=2
 FVector=[ 9, 18, 0, 9 ]
 EulerCharacteristic=0
 IsOrientable=true
 TopologicalType="T^2"

/NormalSurface]
gap> sl.Homology;
[ [ 0, [  ] ], [ 2, [  ] ], [ 1, [  ] ] ]
gap> sl.Genus;
1
gap> sl.F; # the slicing constists of 9 quadrilaterals and 0 triangles
[ 9, 18, 0, 9 ]
gap> PrintArray(sl.Facets);
[ [  [ 2, 1 ],  [ 2, 3 ],  [ 4, 1 ],  [ 4, 3 ] ],
  [  [ 2, 1 ],  [ 2, 3 ],  [ 6, 1 ],  [ 6, 3 ] ],
  [  [ 2, 1 ],  [ 2, 5 ],  [ 4, 1 ],  [ 4, 5 ] ],
  [  [ 2, 1 ],  [ 2, 5 ],  [ 6, 1 ],  [ 6, 5 ] ],
  [  [ 2, 3 ],  [ 2, 5 ],  [ 4, 3 ],  [ 4, 5 ] ],
  [  [ 2, 3 ],  [ 2, 5 ],  [ 6, 3 ],  [ 6, 5 ] ],
  [  [ 4, 1 ],  [ 4, 3 ],  [ 6, 1 ],  [ 6, 3 ] ],
  [  [ 4, 1 ],  [ 4, 5 ],  [ 6, 1 ],  [ 6, 5 ] ],
  [  [ 4, 3 ],  [ 4, 5 ],  [ 6, 3 ],  [ 6, 5 ] ] ]
</Log></Section>

Further example computations can be found in the slides of various talks about <Package>simpcomp</Package>, available from the <Package>simpcomp</Package> homepage (<C>https://github.com/simpcomp-team/simpcomp</C>), and in Appendix A of <Cite Key="Spreer10Diss"/>. 
	</Chapter>

