# Identifying anti-podal points of the two sphere

In this example we compute the spectral sequence arising from the quotient map S2 →ℝ ℙ2, given by indentifying anti-podal points. This map can be realized by a simplicial map along the lines of Exercise 27, Section 6.5 of Armstrong’s book Basic Topology. In order to give a combinatorial picture of the quotient map S2 →ℝ ℙ2, given by indentifying anti-podal points, we first make an appropriate simplicial realization of S2. Note that we have added a few barycentric coordinates.

 `i1 : S = ZZ[v1,v2,v3,v4,v5,v6,v15,v12,v36,v34,v46,v25];` `i2 : twoSphere = simplicialComplex {v3*v4*v5, v5*v4*v15, v15*v34*v4, v15*v34*v1, v34*v1*v6, v34*v46*v6, v36*v46*v6, v3*v4*v46, v4*v46*v34, v3*v46*v36, v1*v6*v2, v6*v2*v36, v2*v36*v12,v36*v12*v3, v12*v3*v5, v12*v5*v25, v25*v5*v15, v2*v12*v25, v1*v2*v25, v1*v25*v15};`

We can check that the homology of the simplicial complex twoSphere agrees with that of S2.

 ```i3 : C = truncate(chainComplex twoSphere,1) 12 30 20 o3 = image 0 <-- ZZ <-- ZZ <-- ZZ -1 0 1 2 o3 : ChainComplex``` ```i4 : prune HH C o4 = -1 : 0 1 0 : ZZ 1 : 0 1 2 : ZZ o4 : GradedModule```

We now write down our simplicial complex whose topological realization is ℝ ℙ2.

 `i5 : R = ZZ[a,b,c,d,e,f];` `i6 : realProjectivePlane = simplicialComplex {a*b*c, b*c*d, c*d*e, a*e*d, e*b*a, e*f*b, d*f*b, a*f*d, c*f*e,a*f*c};`

Again we can check that we’ve entered a simplical complex whose homology agrees with that of the real projective plane.

 ```i7 : B = truncate(chainComplex realProjectivePlane,1) 6 15 10 o7 = image 0 <-- ZZ <-- ZZ <-- ZZ -1 0 1 2 o7 : ChainComplex``` ```i8 : prune HH B o8 = -1 : 0 1 0 : ZZ 1 : cokernel | 2 | 2 : 0 o8 : GradedModule```

We now compute the fibers of the anti-podal quoitent map S2 →ℝ ℙ2. The way this works for example is: a = v3 ~ v1, b = v6 ~ v5, d = v36 ~ v15, c = v4 ~ v2, e = v34 ~ v12, f = v46 ~ v25

The fibers over the vertices of ℝ ℙ2 are:

 ```i9 : F0twoSphere = simplicialComplex {v1,v3,v5,v6, v4,v2, v36,v15, v34,v12, v46,v25} o9 = | v25 v46 v34 v36 v12 v15 v6 v5 v4 v3 v2 v1 | o9 : SimplicialComplex```

The fibers over the edges of ℝℙ2 are:

 ```i10 : F1twoSphere = simplicialComplex {v3*v4, v1*v2,v3*v5, v1*v6,v4*v5, v2*v6, v5*v15, v6*v36, v4*v34, v2*v12, v15*v34, v36*v12, v1*v15, v3*v36, v46*v34, v25*v12, v6*v34, v5*v12, v6*v46, v5*v25, v36*v46, v15*v25, v3*v46, v1*v25, v4*v15, v2*v36, v1*v34, v3*v12, v4*v46, v25*v2} o10 = | v12v25 v15v25 v5v25 v2v25 v1v25 v34v46 v36v46 v6v46 v4v46 v3v46 v15v34 v6v34 v4v34 v1v34 v12v36 v6v36 v3v36 v2v36 v5v12 v3v12 v2v12 v5v15 v4v15 v1v15 v2v6 v1v6 v4v5 v3v5 v3v4 v1v2 | o10 : SimplicialComplex```

The fibers over the faces is all of S2.

 ```i11 : F2twoSphere = twoSphere o11 = | v5v12v25 v2v12v25 v5v15v25 v1v15v25 v1v2v25 v6v34v46 v4v34v46 v6v36v46 v3v36v46 v3v4v46 v4v15v34 v1v15v34 v1v6v34 v3v12v36 v2v12v36 v2v6v36 v3v5v12 v4v5v15 v1v2v6 v3v4v5 | o11 : SimplicialComplex```

The resulting filtered complex is:

 ```i12 : K = filteredComplex({F2twoSphere, F1twoSphere, F0twoSphere}, ReducedHomology => false) o12 = -1 : image 0 <-- image 0 <-- image 0 <-- image 0 -1 0 1 2 0 : image 0 <-- image | 1 0 0 0 0 0 0 0 0 0 0 0 | <-- image 0 <-- image 0 | 0 1 0 0 0 0 0 0 0 0 0 0 | -1 | 0 0 1 0 0 0 0 0 0 0 0 0 | 1 2 | 0 0 0 1 0 0 0 0 0 0 0 0 | | 0 0 0 0 1 0 0 0 0 0 0 0 | | 0 0 0 0 0 1 0 0 0 0 0 0 | | 0 0 0 0 0 0 1 0 0 0 0 0 | | 0 0 0 0 0 0 0 1 0 0 0 0 | | 0 0 0 0 0 0 0 0 1 0 0 0 | | 0 0 0 0 0 0 0 0 0 1 0 0 | | 0 0 0 0 0 0 0 0 0 0 1 0 | | 0 0 0 0 0 0 0 0 0 0 0 1 | 0 1 : image 0 <-- image | 1 0 0 0 0 0 0 0 0 0 0 0 | <-- image | 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | <-- image 0 | 0 1 0 0 0 0 0 0 0 0 0 0 | | 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | -1 | 0 0 1 0 0 0 0 0 0 0 0 0 | | 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 2 | 0 0 0 1 0 0 0 0 0 0 0 0 | | 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 1 0 0 0 0 0 0 0 | | 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 1 0 0 0 0 0 0 | | 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 1 0 0 0 0 0 | | 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 1 0 0 0 0 | | 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 1 0 0 0 | | 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 1 0 0 | | 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 1 0 | | 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 1 | | 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 | 1 12 30 20 2 : image 0 <-- ZZ <-- ZZ <-- ZZ -1 0 1 2 o12 : FilteredComplex```

We now compute the resulting spectral sequence.

 ```i13 : E = prune spectralSequence K o13 = E o13 : SpectralSequence``` ```i14 : E^0 +------+------+------+ | 12 | 30 | 20 | o14 = |ZZ |ZZ |ZZ | | | | | |{0, 0}|{1, 0}|{2, 0}| +------+------+------+ o14 : SpectralSequencePage``` ```i15 : E^1 +------+------+------+ | 12 | 30 | 20 | o15 = |ZZ |ZZ |ZZ | | | | | |{0, 0}|{1, 0}|{2, 0}| +------+------+------+ o15 : SpectralSequencePage``` ```i16 : E^0 .dd o16 = {-1, 0} : 0 <----- 0 : {-1, 1} 0 {-1, 1} : 0 <----- 0 : {-1, 2} 0 {-1, 2} : 0 <----- 0 : {-1, 3} 0 {2, -4} : 0 <----- 0 : {2, -3} 0 {2, -3} : 0 <----- 0 : {2, -2} 0 {2, -2} : 0 <----- 0 : {2, -1} 0 20 {2, -1} : 0 <----- ZZ : {2, 0} 0 {1, -3} : 0 <----- 0 : {1, -2} 0 {1, -2} : 0 <----- 0 : {1, -1} 0 30 {1, -1} : 0 <----- ZZ : {1, 0} 0 30 {1, 0} : ZZ <----- 0 : {1, 1} 0 {0, -2} : 0 <----- 0 : {0, -1} 0 12 {0, -1} : 0 <----- ZZ : {0, 0} 0 12 {0, 0} : ZZ <----- 0 : {0, 1} 0 {0, 1} : 0 <----- 0 : {0, 2} 0 {-1, -1} : 0 <----- 0 : {-1, 0} 0 o16 : SpectralSequencePageMap``` ```i17 : E^1 .dd o17 = {-2, 1} : 0 <----- 0 : {-1, 1} 0 {-2, 2} : 0 <----- 0 : {-1, 2} 0 {-2, 3} : 0 <----- 0 : {-1, 3} 0 {1, -3} : 0 <----- 0 : {2, -3} 0 {1, -2} : 0 <----- 0 : {2, -2} 0 {1, -1} : 0 <----- 0 : {2, -1} 0 30 20 {1, 0} : ZZ <------------------------------------------------------------------- ZZ : {2, 0} | -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 1 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | -1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 1 0 -1 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 1 -1 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 -1 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 1 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 -1 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 -1 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 | | 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 | | 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 | | 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 | | 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 | | 0 0 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 -1 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 -1 | {0, -2} : 0 <----- 0 : {1, -2} 0 {0, -1} : 0 <----- 0 : {1, -1} 0 12 30 {0, 0} : ZZ <------------------------------------------------------------------------------------------------- ZZ : {1, 0} | 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | -1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 -1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 | | 0 -1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 | | 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 -1 0 0 0 0 0 1 1 0 0 0 0 | | 0 0 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 1 1 0 0 | | 0 0 0 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 0 0 0 0 -1 0 0 0 0 -1 0 1 0 | | 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 -1 0 -1 0 0 0 0 1 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 -1 0 0 0 0 0 -1 0 0 0 0 -1 -1 | | 0 0 0 0 -1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 -1 0 -1 0 0 | {0, 1} : 0 <----- 0 : {1, 1} 0 {-1, -1} : 0 <----- 0 : {0, -1} 0 12 {-1, 0} : 0 <----- ZZ : {0, 0} 0 {-1, 1} : 0 <----- 0 : {0, 1} 0 {-1, 2} : 0 <----- 0 : {0, 2} 0 {-2, 0} : 0 <----- 0 : {-1, 0} 0 o17 : SpectralSequencePageMap``` ```i18 : E^2 +------+------+------+ | 1 | | 1 | o18 = |ZZ |0 |ZZ | | | | | |{0, 0}|{1, 0}|{2, 0}| +------+------+------+ o18 : SpectralSequencePage``` ```i19 : E^2 .dd o19 = {-3, 2} : 0 <----- 0 : {-1, 1} 0 {-3, 3} : 0 <----- 0 : {-1, 2} 0 {-3, 4} : 0 <----- 0 : {-1, 3} 0 {0, -2} : 0 <----- 0 : {2, -3} 0 {0, -1} : 0 <----- 0 : {2, -2} 0 1 {0, 0} : ZZ <----- 0 : {2, -1} 0 1 {0, 1} : 0 <----- ZZ : {2, 0} 0 {-1, -1} : 0 <----- 0 : {1, -2} 0 {-1, 0} : 0 <----- 0 : {1, -1} 0 {-1, 1} : 0 <----- 0 : {1, 0} 0 {-1, 2} : 0 <----- 0 : {1, 1} 0 {-2, 0} : 0 <----- 0 : {0, -1} 0 1 {-2, 1} : 0 <----- ZZ : {0, 0} 0 {-2, 2} : 0 <----- 0 : {0, 1} 0 {-2, 3} : 0 <----- 0 : {0, 2} 0 {-3, 1} : 0 <----- 0 : {-1, 0} 0 o19 : SpectralSequencePageMap```