Examples of simplicial complexes¶
AUTHORS:
- John H. Palmieri (2009-04)
This file constructs some examples of simplicial complexes. There are two main types: manifolds and examples related to graph theory.
For manifolds, there are functions defining the -sphere for any
, the torus,
-dimensional real projective space for any
, the
complex projective plane, surfaces of arbitrary genus, and some other
manifolds, all as simplicial complexes.
Aside from surfaces, this file also provides some functions for
constructing some other simplicial complexes: the simplicial complex
of not--connected graphs on
vertices, the matching complex on n
vertices, and the chessboard complex for an
by
chessboard.
These provide examples of large simplicial complexes; for example,
simplicial_complexes.NotIConnectedGraphs(7,2)
has over a million
simplices.
All of these examples are accessible by typing
simplicial_complexes.NAME
, where NAME
is the name of the example.
You can get a list by typing simplicial_complexes.
and hitting the
TAB key:
simplicial_complexes.BarnetteSphere
simplicial_complexes.BrucknerGrunbaumSphere
simplicial_complexes.ChessboardComplex
simplicial_complexes.ComplexProjectivePlane
simplicial_complexes.K3Surface
simplicial_complexes.KleinBottle
simplicial_complexes.MatchingComplex
simplicial_complexes.MooreSpace
simplicial_complexes.NotIConnectedGraphs
simplicial_complexes.PoincareHomologyThreeSphere
simplicial_complexes.PseudoQuaternionicProjectivePlane
simplicial_complexes.RandomComplex
simplicial_complexes.RealProjectivePlane
simplicial_complexes.RealProjectiveSpace
simplicial_complexes.Simplex
simplicial_complexes.Sphere
simplicial_complexes.SumComplex
simplicial_complexes.SurfaceOfGenus
simplicial_complexes.Torus
See the documentation for simplicial_complexes
and for each
particular type of example for full details.
-
class
sage.homology.examples.
SimplicialComplexExamples
¶ Some examples of simplicial complexes.
Here are the available examples; you can also type
simplicial_complexes.
and hit tab to get a list:BarnetteSphere()
BrucknerGrunbaumSphere()
ChessboardComplex()
ComplexProjectivePlane()
K3Surface()
KleinBottle()
MatchingComplex()
MooreSpace()
NotIConnectedGraphs()
PoincareHomologyThreeSphere()
PseudoQuaternionicProjectivePlane()
RandomComplex()
RealProjectivePlane()
RealProjectiveSpace()
Simplex()
Sphere()
SumComplex()
SurfaceOfGenus()
Torus()
EXAMPLES:
sage: S = simplicial_complexes.Sphere(2) # the 2-sphere sage: S.homology() {0: 0, 1: 0, 2: Z} sage: simplicial_complexes.SurfaceOfGenus(3) Simplicial complex with 15 vertices and 38 facets sage: M4 = simplicial_complexes.MooreSpace(4) sage: M4.homology() {0: 0, 1: C4, 2: 0} sage: simplicial_complexes.MatchingComplex(6).homology() {0: 0, 1: Z^16, 2: 0}
-
BarnetteSphere
()¶ Returns Barnette’s triangulation of the 3-sphere.
This is a pure simplicial complex of dimension 3 with 8 vertices and 19 facets, which is a non-polytopal triangulation of the 3-sphere. It was constructed by Barnette in [B1970]. The construction here uses the labeling from De Loera, Rambau and Santos [DLRS2010]. Another reference is chapter III.4 of Ewald [E1996].
EXAMPLES:
sage: BS = simplicial_complexes.BarnetteSphere() ; BS Simplicial complex with vertex set (1, 2, 3, 4, 5, 6, 7, 8) and 19 facets sage: BS.f_vector() [1, 8, 27, 38, 19]
TESTS:
Checks that this is indeed the same Barnette Sphere as the one given on page 87 of [E1996].:
sage: BS2 = SimplicialComplex([[1,2,3,4],[3,4,5,6],[1,2,5,6], ... [1,2,4,7],[1,3,4,7],[3,4,6,7], ... [3,5,6,7],[1,2,5,7],[2,5,6,7], ... [2,4,6,7],[1,2,3,8],[2,3,4,8], ... [3,4,5,8],[4,5,6,8],[1,2,6,8], ... [1,5,6,8],[1,3,5,8],[2,4,6,8], ... [1,3,5,7]]) sage: BS.is_isomorphic(BS2) True
REFERENCES:
[B1970] Barnette, “Diagrams and Schlegel diagrams”, in Combinatorial Structures and Their Applications, Proc. Calgary Internat. Conference 1969, New York, 1970, Gordon and Breach. [DLRS2010] De Loera, Rambau and Santos, “Triangulations: Structures for Algorithms and Applications”, Algorithms and Computation in Mathematics, Volume 25, Springer, 2011. [E1996] (1, 2) Ewald, “Combinatorial Convexity and Algebraic Geometry”, vol. 168 of Graduate Texts in Mathematics, Springer, 1996
-
BrucknerGrunbaumSphere
()¶ Returns Bruckner and Grunbaum’s triangulation of the 3-sphere.
This is a pure simplicial complex of dimension 3 with 8 vertices and 20 facets, which is a non-polytopal triangulation of the 3-sphere. It appeared first in [Br1910] and was studied in [GrS1967].
It is defined here as the link of any vertex in the unique minimal triangulation of the complex projective plane, see chapter 4 of [Ku1995].
EXAMPLES:
sage: BGS = simplicial_complexes.BrucknerGrunbaumSphere() ; BGS Simplicial complex with vertex set (1, 2, 3, 4, 5, 6, 7, 8) and 20 facets sage: BGS.f_vector() [1, 8, 28, 40, 20]
REFERENCES:
[Br1910] Bruckner, “Uber die Ableitung der allgemeinen Polytope und die nach Isomorphismus verschiedenen Typen der allgemeinen Achtzelle (Oktatope)”, Verhand. Konik. Akad. Wetenschap, Erste Sectie, 10 (1910) [GrS1967] Grunbaum and Sreedharan, “An enumeration of simplicial 4-polytopes with 8 vertices”, J. Comb. Th. 2, 437-465 (1967) [Ku1995] Kuhnel, “Tight Polyhedral Submanifolds and Tight Triangulations” Lecture Notes in Mathematics Volume 1612, 1995
-
ChessboardComplex
(n, i)¶ The chessboard complex for an
chessboard.
Fix integers
and consider sets
of
vertices and
of
vertices. A ‘partial matching’ between
and
is a graph formed by edges
with
and
so that each vertex is in at most one edge. If
is a partial matching, then so is any graph obtained by deleting edges from
. Thus the set of all partial matchings on
and
, viewed as a set of subsets of the
choose 2 possible edges, is closed under taking subsets, and thus forms a simplicial complex called the ‘chessboard complex’. This function produces that simplicial complex. (It is called the chessboard complex because such graphs also correspond to ways of placing rooks on an
by
chessboard so that none of them are attacking each other.)
INPUT:
n, i
– positive integers.
See Dumas et al. [DHSW2003] for information on computing its homology by computer, and see Wachs [Wa2003] for an expository article about the theory.
EXAMPLES:
sage: C = simplicial_complexes.ChessboardComplex(5,5) sage: C.f_vector() [1, 25, 200, 600, 600, 120] sage: simplicial_complexes.ChessboardComplex(3,3).homology() {0: 0, 1: Z x Z x Z x Z, 2: 0}
-
ComplexProjectivePlane
()¶ A minimal triangulation of the complex projective plane.
This was constructed by Kühnel and Banchoff [KB1983].
REFERENCES:
[KB1983] W. Kühnel and T. F. Banchoff, “The 9-vertex complex projective plane”, Math. Intelligencer 5 (1983), no. 3, 11-22. EXAMPLES:
sage: C = simplicial_complexes.ComplexProjectivePlane() sage: C.f_vector() [1, 9, 36, 84, 90, 36] sage: C.homology(2) Z sage: C.homology(4) Z
-
K3Surface
()¶ Returns a minimal triangulation of the K3 surface.
This is a pure simplicial complex of dimension 4 with 16 vertices and 288 facets. It was constructed by Casella and Kühnel in [CK2001]. The construction here uses the labeling from Spreer and Kühnel [SK2011].
REFERENCES:
[CK2001] (1, 2) M. Casella and W. Kühnel, “A triangulated K3 surface with the minimum number of vertices”, Topology 40 (2001), 753–772. [SK2011] (1, 2) J. Spreer and W. Kühnel, “Combinatorial properties of the K3 surface: Simplicial blowups and slicings”, Experimental Mathematics, Volume 20, Issue 2, 2011. EXAMPLES:
sage: K3=simplicial_complexes.K3Surface() ; K3 Simplicial complex with 16 vertices and 288 facets sage: K3.f_vector() [1, 16, 120, 560, 720, 288]
This simplicial complex is implemented just by listing all 288 facets. The list of facets can be computed by the function
facets_for_K3()
, but running the function takes a few seconds.
-
KleinBottle
()¶ A minimal triangulation of the Klein bottle, as presented for example in Davide Cervone’s thesis [Ce1994].
EXAMPLES:
sage: simplicial_complexes.KleinBottle() Simplicial complex with vertex set (0, 1, 2, 3, 4, 5, 6, 7) and 16 facets
REFERENCES:
[Ce1994] D. P. Cervone, “Vertex-minimal simplicial immersions of the Klein bottle in three-space”, Geom. Ded. 50 (1994) 117-141, http://www.math.union.edu/~dpvc/papers/1993-03.kb/vmkb.pdf.
-
MatchingComplex
(n)¶ The matching complex of graphs on
vertices.
Fix an integer
and consider a set
of
vertices. A ‘partial matching’ on
is a graph formed by edges so that each vertex is in at most one edge. If
is a partial matching, then so is any graph obtained by deleting edges from
. Thus the set of all partial matchings on
vertices, viewed as a set of subsets of the
choose 2 possible edges, is closed under taking subsets, and thus forms a simplicial complex called the ‘matching complex’. This function produces that simplicial complex.
INPUT:
n
– positive integer.
See Dumas et al. [DHSW2003] for information on computing its homology by computer, and see Wachs [Wa2003] for an expository article about the theory. For example, the homology of these complexes seems to have only mod 3 torsion, and this has been proved for the bottom non-vanishing homology group for the matching complex
.
EXAMPLES:
sage: M = simplicial_complexes.MatchingComplex(7) sage: H = M.homology() sage: H {0: 0, 1: C3, 2: Z^20} sage: H[2].ngens() 20 sage: simplicial_complexes.MatchingComplex(8).homology(2) # long time (6s on sage.math, 2012) Z^132
REFERENCES:
[Wa2003] (1, 2) Wachs, “Topology of Matching, Chessboard and General Bounded Degree Graph Complexes” (Algebra Universalis Special Issue in Memory of Gian-Carlo Rota, Algebra Universalis, 49 (2003) 345-385)
-
MooreSpace
(q)¶ Triangulation of the mod
Moore space.
INPUT:
q
-0 integer, at least 2
This is a simplicial complex with simplices of dimension 0, 1, and 2, such that its reduced homology is isomorphic to
in dimension 1, zero otherwise.
If
, this is the real projective plane. If
, then construct it as follows: start with a triangle with vertices 1, 2, 3. We take a
-gon forming a
-fold cover of the triangle, and we form the resulting complex as an identification space of the
-gon. To triangulate this identification space, put
vertices
, ...,
, in the interior, each of which is connected to 1, 2, 3 (two facets each:
,
). Put
more vertices in the interior:
, ...,
, with facets
,
,
,
. Then triangulate the interior polygon with vertices
,
, ...,
.
EXAMPLES:
sage: simplicial_complexes.MooreSpace(2) Simplicial complex with vertex set (0, 1, 2, 3, 4, 5) and 10 facets sage: simplicial_complexes.MooreSpace(3).homology()[1] C3 sage: simplicial_complexes.MooreSpace(4).suspension().homology()[2] C4 sage: simplicial_complexes.MooreSpace(8) Simplicial complex with 19 vertices and 54 facets
-
NotIConnectedGraphs
(n, i)¶ The simplicial complex of all graphs on
vertices which are not
-connected.
Fix an integer
and consider the set of graphs on
vertices. View each graph as its set of edges, so it is a subset of a set of size
choose 2. A graph is
-connected if, for any
, if any
vertices are removed along with the edges emanating from them, then the graph remains connected. Now fix
: it is clear that if
is not
-connected, then the same is true for any graph obtained from
by deleting edges. Thus the set of all graphs which are not
-connected, viewed as a set of subsets of the
choose 2 possible edges, is closed under taking subsets, and thus forms a simplicial complex. This function produces that simplicial complex.
INPUT:
n
,i
– non-negative integers withat most
See Dumas et al. [DHSW2003] for information on computing its homology by computer, and see Babson et al. [BBLSW1999] for theory. For example, Babson et al. show that when
, the reduced homology of this complex is nonzero only in dimension
, where it is free abelian of rank
.
EXAMPLES:
sage: simplicial_complexes.NotIConnectedGraphs(5,2).f_vector() [1, 10, 45, 120, 210, 240, 140, 20] sage: simplicial_complexes.NotIConnectedGraphs(5,2).homology(5).ngens() 6
REFERENCES:
[BBLSW1999] Babson, Bjorner, Linusson, Shareshian, and Welker, “Complexes of not i-connected graphs,” Topology 38 (1999), 271-299 [DHSW2003] (1, 2, 3) Dumas, Heckenbach, Saunders, Welker, “Computing simplicial homology based on efficient Smith normal form algorithms,” in “Algebra, geometry, and software systems” (2003), 177-206.
-
PoincareHomologyThreeSphere
()¶ A triangulation of the Poincare homology 3-sphere.
This is a manifold whose integral homology is identical to the ordinary 3-sphere, but it is not simply connected. In particular, its fundamental group is the binary icosahedral group, which has order 120. The triangulation given here has 16 vertices and is due to Björner and Lutz [BL2000].
REFERENCES:
[BL2000] Anders Björner and Frank H. Lutz, “Simplicial manifolds, bistellar flips and a 16-vertex triangulation of the Poincaré homology 3-sphere”, Experiment. Math. 9 (2000), no. 2, 275-289. EXAMPLES:
sage: S3 = simplicial_complexes.Sphere(3) sage: Sigma3 = simplicial_complexes.PoincareHomologyThreeSphere() sage: S3.homology() == Sigma3.homology() True sage: Sigma3.fundamental_group().cardinality() # long time 120
-
ProjectivePlane
()¶ A minimal triangulation of the real projective plane.
EXAMPLES:
sage: P = simplicial_complexes.RealProjectivePlane() sage: Q = simplicial_complexes.ProjectivePlane() sage: P == Q True sage: P.cohomology(1) 0 sage: P.cohomology(2) C2 sage: P.cohomology(1, base_ring=GF(2)) Vector space of dimension 1 over Finite Field of size 2 sage: P.cohomology(2, base_ring=GF(2)) Vector space of dimension 1 over Finite Field of size 2
-
PseudoQuaternionicProjectivePlane
()¶ Returns a pure simplicial complex of dimension 8 with 490 facets.
Warning
This is expected to be a triangulation of the projective plane
over the ring of quaternions, but this has not been proved yet.
This simplicial complex has the same homology as
. Its automorphism group is isomorphic to the alternating group
and acts transitively on vertices.
This is defined here using the description in [BrK92]. This article deals with three different triangulations. This procedure returns the only one which has a transitive group of automorphisms.
EXAMPLES:
sage: HP2 = simplicial_complexes.PseudoQuaternionicProjectivePlane() ; HP2 Simplicial complex with 15 vertices and 490 facets sage: HP2.f_vector() [1, 15, 105, 455, 1365, 3003, 4515, 4230, 2205, 490]
Checking its automorphism group:
sage: HP2.automorphism_group().is_isomorphic(AlternatingGroup(5)) True
REFERENCES:
[BrK92] Brehm U., Kuhnel W., “15-vertex triangulations of an 8-manifold”, Math. Annalen 294 (1992), no. 1, 167-193.
-
RandomComplex
(n, d, p=0.5)¶ A random
d
-dimensional simplicial complex onn
vertices.INPUT:
n
– number of verticesd
– dimension of the complexp
– floating point number between 0 and 1 (optional, default 0.5)
A random
-dimensional simplicial complex on
vertices, as defined for example by Meshulam and Wallach [MW2009], is constructed as follows: take
vertices and include all of the simplices of dimension strictly less than
, and then for each possible simplex of dimension
, include it with probability
.
EXAMPLES:
sage: X = simplicial_complexes.RandomComplex(6, 2); X Simplicial complex with vertex set (0, 1, 2, 3, 4, 5) and 10 facets sage: len(list(X.vertices())) 6
If
is too large (if
, so that there are no
-dimensional simplices), then return the simplicial complex with a single
-dimensional simplex:
sage: simplicial_complexes.RandomComplex(6, 12) Simplicial complex with vertex set (0, 1, 2, 3, 4, 5) and facets {(0, 1, 2, 3, 4, 5)}
REFERENCES:
[MW2009] Meshulam and Wallach, “Homological connectivity of random -dimensional complexes”, preprint, math.CO/0609773.
-
RealProjectivePlane
()¶ A minimal triangulation of the real projective plane.
EXAMPLES:
sage: P = simplicial_complexes.RealProjectivePlane() sage: Q = simplicial_complexes.ProjectivePlane() sage: P == Q True sage: P.cohomology(1) 0 sage: P.cohomology(2) C2 sage: P.cohomology(1, base_ring=GF(2)) Vector space of dimension 1 over Finite Field of size 2 sage: P.cohomology(2, base_ring=GF(2)) Vector space of dimension 1 over Finite Field of size 2
-
RealProjectiveSpace
(n)¶ A triangulation of
for any
.
INPUT:
n
– integer, the dimension of the real projective space to construct
The first few cases are pretty trivial:
is a point.
is a circle, triangulated as the boundary of a single 2-simplex.
is the real projective plane, here given its minimal triangulation with 6 vertices, 15 edges, and 10 triangles.
: any triangulation has at least 11 vertices by a result of Walkup [Wa1970]; this function returns a triangulation with 11 vertices, as given by Lutz [Lu2005].
: any triangulation has at least 16 vertices by a result of Walkup; this function returns a triangulation with 16 vertices as given by Lutz; see also Datta [Da2007], Example 3.12.
: Lutz has found a triangulation of
with 24 vertices, but it does not seem to have been published. Kühnel [Ku1987] has described a triangulation of
, in general, with
vertices; see also Datta, Example 3.21. This triangulation is presumably not minimal, but it seems to be the best in the published literature as of this writing. So this function returns it when
.
ALGORITHM: For
, these are constructed explicitly by listing the facets. For
, this is constructed by specifying 16 vertices, two facets, and a certain subgroup
of the symmetric group
. Then the set of all facets is the
-orbit of the two given facets. This is implemented here by explicitly listing all of the facets; the facets can be computed by the function
facets_for_RP4()
, but running the function takes a few seconds.For
, the construction is as follows: let
denote the simplicial complex structure on the
-sphere given by the first barycentric subdivision of the boundary of an
-simplex. This has a simplicial antipodal action: if
denotes the vertices in the boundary of the simplex, then the vertices in its barycentric subdivision
correspond to nonempty proper subsets
of
, and the antipodal action sends any subset
to its complement. One can show that modding out by this action results in a triangulation for
. To find the facets in this triangulation, find the facets in
. These are indentified in pairs to form
, so choose a representative from each pair: for each facet in
, replace any vertex in
containing 0 with its complement.
Of course these complexes increase in size pretty quickly as
increases.
REFERENCES:
[Da2007] (1, 2) Basudeb Datta, “Minimal triangulations of manifolds”, J. Indian Inst. Sci. 87 (2007), no. 4, 429-449. [Ku1987] W. Kühnel, “Minimal triangulations of Kummer varieties”, Abh. Math. Sem. Univ. Hamburg 57 (1987), 7-20. [Lu2005] Frank H. Lutz, “Triangulated Manifolds with Few Vertices: Combinatorial Manifolds”, preprint (2005), arXiv:math/0506372. [Wa1970] David W. Walkup, “The lower bound conjecture for 3- and 4-manifolds”, Acta Math. 125 (1970), 75-107. EXAMPLES:
sage: P3 = simplicial_complexes.RealProjectiveSpace(3) sage: P3.f_vector() [1, 11, 51, 80, 40] sage: P3.homology() {0: 0, 1: C2, 2: 0, 3: Z} sage: P4 = simplicial_complexes.RealProjectiveSpace(4) sage: P4.f_vector() [1, 16, 120, 330, 375, 150] sage: P4.homology() # long time {0: 0, 1: C2, 2: 0, 3: C2, 4: 0} sage: P5 = simplicial_complexes.RealProjectiveSpace(5) # long time (44s on sage.math, 2012) sage: P5.f_vector() # long time [1, 63, 903, 4200, 8400, 7560, 2520]
The following computation can take a long time – over half an hour – with Sage’s default computation of homology groups, but if you have CHomP installed, Sage will use that and the computation should only take a second or two. (You can download CHomP from http://chomp.rutgers.edu/, or you can install it as a Sage package using
sage -i chomp
).sage: P5.homology() # long time # optional - CHomP {0: 0, 1: C2, 2: 0, 3: C2, 4: 0, 5: Z} sage: simplicial_complexes.RealProjectiveSpace(2).dimension() 2 sage: P3.dimension() 3 sage: P4.dimension() # long time 4 sage: P5.dimension() # long time 5
-
Simplex
(n)¶ An
-dimensional simplex, as a simplicial complex.
INPUT:
n
– a non-negative integer
OUTPUT: the simplicial complex consisting of the
-simplex on vertices
and all of its faces.
EXAMPLES:
sage: simplicial_complexes.Simplex(3) Simplicial complex with vertex set (0, 1, 2, 3) and facets {(0, 1, 2, 3)} sage: simplicial_complexes.Simplex(5).euler_characteristic() 1
-
Sphere
(n)¶ A minimal triangulation of the
-dimensional sphere.
INPUT:
n
– positive integer
EXAMPLES:
sage: simplicial_complexes.Sphere(2) Simplicial complex with vertex set (0, 1, 2, 3) and facets {(0, 2, 3), (0, 1, 2), (1, 2, 3), (0, 1, 3)} sage: simplicial_complexes.Sphere(5).homology() {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: Z} sage: [simplicial_complexes.Sphere(n).euler_characteristic() for n in range(6)] [2, 0, 2, 0, 2, 0] sage: [simplicial_complexes.Sphere(n).f_vector() for n in range(6)] [[1, 2], [1, 3, 3], [1, 4, 6, 4], [1, 5, 10, 10, 5], [1, 6, 15, 20, 15, 6], [1, 7, 21, 35, 35, 21, 7]]
-
SumComplex
(n, A)¶ The sum complexes of Linial, Meshulam, and Rosenthal [LMR2010].
If
is the cardinality of
, then this returns a
-dimensional simplicial complex
with vertices
, and facets given by all
-tuples
such that the sum
is in
. See the paper by Linial, Meshulam, and Rosenthal [LMR2010], in which they prove various results about these complexes; for example, if
is prime, then
is rationally acyclic, and if in addition
forms an arithmetic progression in
, then
is
-acyclic. Throughout their paper, they assume that
and
are relatively prime, but the construction makes sense in general.
In addition to the results from the cited paper, these complexes can have large torsion, given the number of vertices; for example, if
, and
, then
is cyclic of order 2728, and there is a 4-dimensional complex on 13 vertices with
having a cyclic summand of order
See the examples.
INPUT:
n
– a positive integerA
– a subset of
REFERENCES:
[LMR2010] (1, 2) N. Linial, R. Meshulam and M. Rosenthal, “Sum complexes – a new family of hypertrees”, Discrete & Computational Geometry, 2010, Volume 44, Number 3, Pages 622-636 EXAMPLES:
sage: S = simplicial_complexes.SumComplex(10, [0,1,2,3,6]); S Simplicial complex with 10 vertices and 126 facets sage: S.homology() {0: 0, 1: 0, 2: 0, 3: C2728, 4: 0} sage: factor(2728) 2^3 * 11 * 31 sage: S = simplicial_complexes.SumComplex(11, [0, 1, 3]); S Simplicial complex with 11 vertices and 45 facets sage: S.homology(1) C23 sage: S = simplicial_complexes.SumComplex(11, [0,1,2,3,4,7]); S Simplicial complex with 11 vertices and 252 facets sage: S.homology() # long time {0: 0, 1: 0, 2: 0, 3: 0, 4: C645679, 5: 0} sage: factor(645679) 23 * 67 * 419 sage: S = simplicial_complexes.SumComplex(13, [0, 1, 3]); S Simplicial complex with 13 vertices and 66 facets sage: S.homology(1) C159 sage: factor(159) 3 * 53 sage: S = simplicial_complexes.SumComplex(13, [0,1,2,5]); S Simplicial complex with 13 vertices and 220 facets sage: S.homology() # long time {0: 0, 1: 0, 2: C146989209, 3: 0} sage: factor(1648910295) 3^2 * 5 * 53 * 521 * 1327 sage: S = simplicial_complexes.SumComplex(13, [0,1,2,3,5]); S Simplicial complex with 13 vertices and 495 facets sage: S.homology() # long time {0: 0, 1: 0, 2: 0, 3: C3 x C237 x C706565607945, 4: 0} sage: factor(706565607945) 3 * 5 * 53 * 79 * 131 * 157 * 547 sage: S = simplicial_complexes.SumComplex(17, [0, 1, 4]); S Simplicial complex with 17 vertices and 120 facets sage: S.homology(1) C140183 sage: factor(140183) 103 * 1361 sage: S = simplicial_complexes.SumComplex(19, [0, 1, 4]); S Simplicial complex with 19 vertices and 153 facets sage: S.homology(1) C5670599 sage: factor(5670599) 11 * 191 * 2699 sage: S = simplicial_complexes.SumComplex(31, [0, 1, 4]); S Simplicial complex with 31 vertices and 435 facets sage: S.homology(1) # long time C5 x C5 x C5 x C5 x C26951480558170926865 sage: factor(26951480558170926865) 5 * 311 * 683 * 1117 * 11657 * 1948909
-
SurfaceOfGenus
(g, orientable=True)¶ A surface of genus
.
INPUT:
g
– a non-negative integer. The desired genusorientable
– boolean (optional, defaultTrue
). IfTrue
, return an orientable surface, and ifFalse
, return a non-orientable surface.
In the orientable case, return a sphere if
is zero, and otherwise return a
-fold connected sum of a torus with itself.
In the non-orientable case, raise an error if
is zero. If
is positive, return a
-fold connected sum of a real projective plane with itself.
EXAMPLES:
sage: simplicial_complexes.SurfaceOfGenus(2) Simplicial complex with 11 vertices and 26 facets sage: simplicial_complexes.SurfaceOfGenus(1, orientable=False) Simplicial complex with vertex set (0, 1, 2, 3, 4, 5) and 10 facets
-
Torus
()¶ A minimal triangulation of the torus.
This is a simplicial complex with 7 vertices, 21 edges and 14 faces. It is the unique triangulation of the torus with 7 vertices, and has been found by Möbius in 1861.
This is also the combinatorial structure of the Császár polyhedron (see Wikipedia article Császár_polyhedron).
EXAMPLES:
sage: T = simplicial_complexes.Torus(); T.homology(1) Z x Z sage: T.f_vector() [1, 7, 21, 14]
TESTS:
sage: T.flip_graph().is_isomorphic(graphs.HeawoodGraph()) True
REFERENCES:
[LutzCsas] Császár’s Torus
-
sage.homology.examples.
facets_for_K3
()¶ Returns the facets for a minimal triangulation of the K3 surface.
This is a pure simplicial complex of dimension 4 with 16 vertices and 288 facets. The facets are obtained by constructing a few facets and a permutation group
, and then computing the
-orbit of those facets.
See Casella and Kühnel in [CK2001] and Spreer and Kühnel [SK2011]; the construction here uses the labeling from Spreer and Kühnel.
EXAMPLES:
sage: from sage.homology.examples import facets_for_K3 sage: A = facets_for_K3() # long time (a few seconds) sage: SimplicialComplex(A) == simplicial_complexes.K3Surface() # long time True
-
sage.homology.examples.
facets_for_RP4
()¶ Return the list of facets for a minimal triangulation of 4-dimensional real projective space.
We use vertices numbered 1 through 16, define two facets, and define a certain subgroup
of the symmetric group
. Then the set of all facets is the
-orbit of the two given facets.
See the description in Example 3.12 in Datta [Da2007].
EXAMPLES:
sage: from sage.homology.examples import facets_for_RP4 sage: A = facets_for_RP4() # long time (1 or 2 seconds) sage: SimplicialComplex(A) == simplicial_complexes.RealProjectiveSpace(4) # long time True
-
sage.homology.examples.
matching
(A, B)¶ List of maximal matchings between the sets
A
andB
.A matching is a set of pairs
where each
and
appears in at most one pair. A maximal matching is one which is maximal with respect to inclusion of subsets of
.
INPUT:
A
,B
– list, tuple, or indeed anything which can be converted to a set.
EXAMPLES:
sage: from sage.homology.examples import matching sage: matching([1,2], [3,4]) [{(1, 3), (2, 4)}, {(1, 4), (2, 3)}] sage: matching([0,2], [0]) [{(0, 0)}, {(2, 0)}]