kenzo/examples/14_Disk_pasting_and_suspension.ipynb
2016-03-21 18:52:25 -05:00

102 KiB

Disk pasting and suspension

Introduction

Let us recall the technique of space construction by attaching maps (Marvin Greenberg in Lectures on Algebraic Topology. Benjamin Inc, 1967.). Let $A$ be a subspace of a space $X$ and a map $f$ of $A$ into a space $Y$. In the space $X \coprod Y$, let us identify each $x$ in $A$ with its image $f(x)$ in $Y$. The quotient space $Z=X\bigcup_f Y$ of the space $X\coprod Y$ by the equivalence relation that the identification above determines, is called the adjunction space of the system $(X \supset A), (Y\supset f(A))$. The quotient map $g: X\coprod Y \rightarrow Z$ sends $Y$ onto a subspace of $Z$.

In this section, we shall take as pair $(X,A)$ the pair $(D^n, S^{n-1})$, where $D^n$ is the unit disc of $\mathbb{R}^n$ and $S^{n-1}$ is the sphere of dimension ${n-1}$, boundary of $D^n$. In this case, the space $Z=D^n\bigcup_f Y$ is said to be obtained from $Y$ by attaching an n-disc via $f$, or disk pasting.

The functions for disk pasting

The Kenzo program implements the previous technique of space construction, via simplicial sets. We know that $D^n$ is homeomorphic to the standard simplex $\Delta^n$. The method used by the implementor is the following:

Starting from a simplicial set ss representing $Y$, build a new one having the same simplices as ss and in dimension $n$, a new added simplex described by the user. This description consists of:

  • a name (a symbol) for this new generator,
  • the list of all its $n+1$ faces.

disk-pasting smst dmns new faces [Function]

Construct, from the simplicial set smst, a new simplicial set by attaching the unit disc of dimension dmns. The argument faces is the list of $dmn+1$ simplices corresponding to the faces of the new simplex attached to smst. These simplices are, in principle, written as abstract simplices (absm), nevertheless it is possible to write them as geometric simplices (gmsm). In this case, the corresponding geometric simplices must have the correct dimension. The program will transform the list of gmsm's into a list of absm's. The argument new allows the user to name this new added simplex. The program verifies the coherence of the addition of the new simplex by calling internally the function check-faces.

chcm-disk-pasting chcm dmns new bndr [Function]

Construct, from the chain complex chcm (chain groups ${\cal C}_*$), a new chain complex (chain groups ${\cal C}_*'$), where: $$C'_p=C_p,\quad \forall p \not= dmn,$$ $$C'_{dmn}= C_{dmn} \oplus \mathbb{Z}\, new.$$ The symbol new is the name given by the user to a new generator in dimension $dmns$ and bndr is a combination of degree $dmns-1$ representing the boundary of the generator new. Of course, one must have $d_{dmns-1}(bndr)=0.$

hmeq-disk-pasting hmeq dmns new bndr &key new-lbcc [Function]

Construct a homotopy equivalence by attaching the generator new of dimension dmns with boundary bndr to the left bottom chain complex of the homotopy equivalence hmeq. This modification of the left bottom chain complex is propagated along the whole new homotopy equivalence. The key parameter new-lbcc is for internal use.

Example

Let us begin by a trivial example corresponding to the well known following result: if $f$ maps $S^{n-1}$ onto a point $Y$, then by disk pasting we obtain a space homeomorphic to $S^n$. Here, the point $Y$ will be represented by the trivial simplicial set:

In [1]:
(def s0 (build-finite-ss '(*)))
The object is a STANDARD-OBJECT of type CAT::SIMPLICIAL-SET.
0. CMPR: #<FUNCTION S-CMPR>
1. BASIS: #<CLOSURE (FLET CAT::RSLT :IN CAT::FINITE-SS-BASIS) {100507BF4B}>
2. BSGN: *
3. DFFR: [K2 Morphism (degree -1): K1 -> K1]
4. GRMD: [K1 Simplicial-Set]
5. EFHM: "unbound"
6. IDNM: 1
7. ORGN: (BUILD-FINITE-SS (*))
8. CPRD: [K5 Morphism (degree 0): K1 -> K3]
9. FACE: #<CLOSURE (FLET CAT::RSLT :IN CAT::FINITE-SS-FACE) {100507BF6B}>

> 
Checking the 0-simplices...
Out[1]:
[K1 Simplicial-Set]

In the identification process, the 1-simplices boundaries of the 2-simplex $\Delta^2$ are applied on the 0--degeneracy of the base point $*$.

In [2]:
(def s2 (disk-pasting s0 
                        2 
                       's2 
                       (list (absm 1 '*) (absm 1 '*) (absm 1 '*))  ))
Out[2]:
[K6 Simplicial-Set]
In [3]:
(show-structure s2 2)

Dimension = 0:

       Vertices :  (*)

Dimension = 1:

Dimension = 2:

       Simplex : S2

               Faces : (<AbSm 0 *> <AbSm 0 *> <AbSm 0 *>)
Out[3]:
NIL

More interesting is the construction of the successive projectives spaces $P^i\mathbb{R}$. Let us begin by $P^1\mathbb{R}$. We start from a point (the simplicial set s0) and we identify the two boundary points of $\Delta^1$ to the base point of s0. The new simplex to be added to s0 is of dimension 1 and its 2 faces are the base point itself. It is well known that the resulting corresponding space is homeomorphic to the circle $S^1$.

In [4]:
(def p1r (disk-pasting s0 1 'd1 (list (absm 0 '*)(absm 0 '*))))
Out[4]:
[K11 Simplicial-Set]
In [5]:
(show-structure p1r 1)

Dimension = 0:

       Vertices :  (*)

Dimension = 1:

       Simplex : D1

               Faces : (<AbSm - *> <AbSm - *>)
Out[5]:
NIL
In [6]:
(dotimes (i 3) (homology p1r i))
Computing boundary-matrix in dimension 0.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 0) :
* 
End of computing.


Computing boundary-matrix in dimension 1.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 1) :
D1 
End of computing.




Homology in dimension 0 :


Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 1.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 1) :
D1 
End of computing.


Computing boundary-matrix in dimension 2.
Rank of the source-module : 0.




Homology in dimension 1 :


Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 2.
Rank of the source-module : 0.


Computing boundary-matrix in dimension 3.
Rank of the source-module : 0.




Homology in dimension 2 :



---done---

;; Clock -> 2016-03-15, 22h 19m 56s.

Out[6]:
NIL

The projective spaces $P^n\mathbb{R}$ of higher degree may be constructed by the following iterative rule. Suppose we have built a simplicial set corresponding to $P^{n-1}\mathbb{R}$ and that we have named the additional simplex $d_{n-1}$. Suppose also that $d_{n-2}$ has been previously defined ($d_0$ is the base point). Then the simplicial set corresponding to $P^n\mathbb{R}$ is obtained by pasting $\Delta^n$ with the following description of the additional simplex:

  • the name of the new simplex is $d_n$,
  • the faces of $d_n$ are: $$ \begin{aligned} \partial_0 d_n & = & d_{n-1},\\ \partial_1 d_n & = & \eta_0 d_{n-2},\\ \partial_2 d_n & = & \eta_1 d_{n-2},\\ \cdots & = & \cdots , \\ \partial_{n-1} d_n & = & \eta_{n-2} d_{n-2},\\ \partial_n d_n & = & d_{n-1}. \end{aligned} $$

So, applying this rule, we may construct a model for $P^i\mathbb{R},\, i=2,3,4$ and verify the well known results about their respective homology groups.

In [7]:
(def p2r (disk-pasting p1r 2 'd2
                        (list (absm 0 'd1)
                              (absm 1 '*)
                              (absm 0 'd1)) ))
Out[7]:
[K31 Simplicial-Set]
In [8]:
(show-structure p2r 2)

Dimension = 0:

       Vertices :  (*)

Dimension = 1:

       Simplex : D1

               Faces : (<AbSm - *> <AbSm - *>)

Dimension = 2:

       Simplex : D2

               Faces : (<AbSm - D1> <AbSm 0 *> <AbSm - D1>)
Out[8]:
NIL
In [9]:
(dotimes (i 3) (homology p2r i))
Computing boundary-matrix in dimension 0.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 0) :
* 
End of computing.


Computing boundary-matrix in dimension 1.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 1) :
D1 
End of computing.




Homology in dimension 0 :


Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 1.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 1) :
D1 
End of computing.


Computing boundary-matrix in dimension 2.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 2) :
D2 
End of computing.




Homology in dimension 1 :


Component Z/2Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 2.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 2) :
D2 
End of computing.


Computing boundary-matrix in dimension 3.
Rank of the source-module : 0.




Homology in dimension 2 :



---done---

;; Clock -> 2016-03-15, 22h 19m 56s.

Out[9]:
NIL
In [10]:
(def p3r (disk-pasting p2r 3 'd3
                        (list (absm 0 'd2) 
                              (absm 1 'd1)
                              (absm 2 'd1)
                              (absm 0 'd2))))
Out[10]:
[K49 Simplicial-Set]
In [11]:
(show-structure p3r 3)

Dimension = 0:

       Vertices :  (*)

Dimension = 1:

       Simplex : D1

               Faces : (<AbSm - *> <AbSm - *>)

Dimension = 2:

       Simplex : D2

               Faces : (<AbSm - D1> <AbSm 0 *> <AbSm - D1>)

Dimension = 3:

       Simplex : D3

               Faces : (<AbSm - D2> <AbSm 0 D1> <AbSm 1 D1> <AbSm - D2>)
Out[11]:
NIL
In [12]:
(dotimes (i 4)(homology p3r i))
Computing boundary-matrix in dimension 0.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 0) :
* 
End of computing.


Computing boundary-matrix in dimension 1.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 1) :
D1 
End of computing.




Homology in dimension 0 :


Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 1.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 1) :
D1 
End of computing.


Computing boundary-matrix in dimension 2.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 2) :
D2 
End of computing.




Homology in dimension 1 :


Component Z/2Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 2.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 2) :
D2 
End of computing.


Computing boundary-matrix in dimension 3.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 3) :
D3 
End of computing.




Homology in dimension 2 :



---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 3.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 3) :
D3 
End of computing.


Computing boundary-matrix in dimension 4.
Rank of the source-module : 0.




Homology in dimension 3 :


Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.

Out[12]:
NIL
In [13]:
(def p4r (disk-pasting p3r 4 'd4 
                        (list (absm 0 'd3)
                              (absm 1 'd2)
                              (absm 2 'd2) 
                              (absm 4 'd2)
                              (absm 0 'd3))))
Out[13]:
[K67 Simplicial-Set]
In [14]:
(dotimes (i 5) (homology p4r i))
Computing boundary-matrix in dimension 0.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 0) :
* 
End of computing.


Computing boundary-matrix in dimension 1.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 1) :
D1 
End of computing.




Homology in dimension 0 :


Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 1.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 1) :
D1 
End of computing.


Computing boundary-matrix in dimension 2.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 2) :
D2 
End of computing.




Homology in dimension 1 :


Component Z/2Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 2.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 2) :
D2 
End of computing.


Computing boundary-matrix in dimension 3.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 3) :
D3 
End of computing.




Homology in dimension 2 :



---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 3.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 3) :
D3 
End of computing.


Computing boundary-matrix in dimension 4.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 4) :
D4 
End of computing.




Homology in dimension 3 :


Component Z/2Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 4.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 4) :
D4 
End of computing.


Computing boundary-matrix in dimension 5.
Rank of the source-module : 0.




Homology in dimension 4 :



---done---

;; Clock -> 2016-03-15, 22h 19m 56s.

Out[14]:
NIL

Let us give now some examples with the function chcm-disk-pasting. We are going to work with the unit chain complex (obtained by the function z-chcm, see chapter 1), having a unique non null component, namely a $\mathbb{Z}$-module of degree 0 generated by the unique generator :Z-gnrt.

In [15]:
(def *ccz* (z-chcm))
Out[15]:
[K85 Chain-Complex]

Using the function chcm-disk-pasting, let us construct from *ccz* a new chain complex having in dimension 1 a unique new generator gen-1 whose boundary is 5 times the unique generator in dimension 0. In this new chain complex the homology group in dimension 0 is $\mathbb{Z}/5\,\mathbb{Z}$.

In [16]:
(def newcc-0 (chcm-disk-pasting *ccz* 1 'gen-1 (cmbn 0 5 :Z-gnrt)))
Out[16]:
[K87 Chain-Complex]
In [17]:
(chcm-homology-gen newcc-0 0)
Computing boundary-matrix in dimension 0.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 0) :
:Z-GNRT 
End of computing.


Computing boundary-matrix in dimension 1.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 1) :
GEN-1 
End of computing.




Homology in dimension 0 :

Component Z/5Z

Out[17]:
(
----------------------------------------------------------------------{CMBN 0}
<1 * Z-GNRT>
------------------------------------------------------------------------------
)
In [18]:
(chcm-homology-gen newcc-0 1)
Computing boundary-matrix in dimension 1.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 1) :
GEN-1 
End of computing.


Computing boundary-matrix in dimension 2.
Rank of the source-module : 0.




Homology in dimension 1 :


Out[18]:
NIL

Let us do the same with a generator whose boundary is 165 times the generator :Z-gnrt:

In [19]:
(def newcc-1 (chcm-disk-pasting *ccz* 1 'gen-1 (cmbn 0 165 :Z-gnrt)))
Out[19]:
[K89 Chain-Complex]
In [20]:
(chcm-homology-gen newcc-1 0)
Computing boundary-matrix in dimension 0.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 0) :
:Z-GNRT 
End of computing.


Computing boundary-matrix in dimension 1.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 1) :
GEN-1 
End of computing.




Homology in dimension 0 :

Component Z/165Z

Out[20]:
(
----------------------------------------------------------------------{CMBN 0}
<1 * Z-GNRT>
------------------------------------------------------------------------------
)

Now from the chain complex newcc-1, let us build a new one, newcc-2, by adding in dimension 1 a second generator whose boundary is 182 times the generator :Z-gnrt. The homology group in dimension 0 of this new chain complex is the null group, since 165 and 182 are relatively prime integers.

In [21]:
(def newcc-2 (chcm-disk-pasting newcc-1 1 'gen-2 (cmbn 0 182 :Z-gnrt)))
Out[21]:
[K91 Chain-Complex]
In [22]:
(chcm-homology-gen newcc-2 0)
Computing boundary-matrix in dimension 0.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 0) :
:Z-GNRT 
End of computing.


Computing boundary-matrix in dimension 1.
Rank of the source-module : 2.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/2 (dimension 1) :
GEN-2 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 2/2 (dimension 1) :
GEN-1 
End of computing.




Homology in dimension 0 :


Out[22]:
NIL
In [23]:
(chcm-homology-gen newcc-2 1)
Computing boundary-matrix in dimension 1.
Rank of the source-module : 2.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/2 (dimension 1) :
GEN-2 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 2/2 (dimension 1) :
GEN-1 
End of computing.


Computing boundary-matrix in dimension 2.
Rank of the source-module : 0.




Homology in dimension 1 :

Component Z

Out[23]:
(
----------------------------------------------------------------------{CMBN 1}
<-165 * GEN-2>
<182 * GEN-1>
------------------------------------------------------------------------------
)

As a second example, let us start from $\Omega^1(S^3)$.

In [24]:
(def s3 (sphere 3))
Out[24]:
[K93 Simplicial-Set]
In [25]:
(def os3 (loop-space s3))
Out[25]:
[K98 Simplicial-Group]

In the following instruction, we locate in the symbol fund-simp the canonical generator of $\pi_2 (\Omega^1S^3)$, that is the 2-simplex coming from the original sphere:

In [26]:
(def fund-simp (absm 0 (loop3 0 's3 1)))
Out[26]:
<AbSm - <<Loop[S3]>>>

We need also the 2-degeneracy of the base point of the loop space:

In [27]:
(def null-simp (absm 3 +null-loop+))
Out[27]:
<AbSm 1-0 <<Loop>>>

We may build now a new object by pasting a disk $D^3$ as indicated by the following call:

In [28]:
(def dos3 (disk-pasting os3 3 '<D3> 
                        (list fund-simp null-simp fund-simp null-simp)))
Out[28]:
[K110 Simplicial-Set]
In [29]:
(homology dos3 2)
Computing boundary-matrix in dimension 2.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 2) :
<<AlLp[2 S3]>> 
End of computing.


Computing boundary-matrix in dimension 3.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 3) :
<D3> 
End of computing.




Homology in dimension 2 :


Component Z/2Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.

Out[29]:
NIL
In [30]:
(homology dos3 3)
Computing boundary-matrix in dimension 3.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 3) :
<D3> 
End of computing.


Computing boundary-matrix in dimension 4.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 4) :
<<AlLp[2 S3][2 S3]>> 
End of computing.




Homology in dimension 3 :



---done---

;; Clock -> 2016-03-15, 22h 19m 56s.

Out[30]:
NIL

Then, let us build the loop space of the object dos3 and show the homology in dimension 5:

In [31]:
(def odos3 (loop-space dos3))
Out[31]:
[K229 Simplicial-Group]
In [32]:
(homology odos3 5)
Computing boundary-matrix in dimension 5.
Rank of the source-module : 14.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/14 (dimension 5) :
<<AlLp[5 <<AlLp[2 S3][2 S3][2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 2/14 (dimension 5) :
<<AlLp[2 <D3>][3 <<AlLp[2 S3][2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 3/14 (dimension 5) :
<<AlLp[3 <<AlLp[2 S3][2 S3]>>][2 <D3>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 4/14 (dimension 5) :
<<AlLp[1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][3 <<AlLp[2 S3][2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 5/14 (dimension 5) :
<<AlLp[1 <<AlLp[2 S3]>>][2 <D3>][2 <D3>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 6/14 (dimension 5) :
<<AlLp[1 <<AlLp[2 S3]>>][3 <<AlLp[2 S3][2 S3]>>][1 <<AlLp[2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 7/14 (dimension 5) :
<<AlLp[2 <D3>][1 <<AlLp[2 S3]>>][2 <D3>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 8/14 (dimension 5) :
<<AlLp[2 <D3>][2 <D3>][1 <<AlLp[2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 9/14 (dimension 5) :
<<AlLp[3 <<AlLp[2 S3][2 S3]>>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 10/14 (dimension 5) :
<<AlLp[1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][2 <D3>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 11/14 (dimension 5) :
<<AlLp[1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][2 <D3>][1 <<AlLp[2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 12/14 (dimension 5) :
<<AlLp[1 <<AlLp[2 S3]>>][2 <D3>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 13/14 (dimension 5) :
<<AlLp[2 <D3>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 14/14 (dimension 5) :
<<AlLp[1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>]>> 
End of computing.


Computing boundary-matrix in dimension 6.
Rank of the source-module : 26.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/26 (dimension 6) :
<<AlLp[1 <<AlLp[2 S3]>>][5 <<AlLp[2 S3][2 S3][2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 2/26 (dimension 6) :
<<AlLp[3 <<AlLp[2 S3][2 S3]>>][3 <<AlLp[2 S3][2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 3/26 (dimension 6) :
<<AlLp[5 <<AlLp[2 S3][2 S3][2 S3]>>][1 <<AlLp[2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 4/26 (dimension 6) :
<<AlLp[1 <<AlLp[2 S3]>>][2 <D3>][3 <<AlLp[2 S3][2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 5/26 (dimension 6) :
<<AlLp[1 <<AlLp[2 S3]>>][3 <<AlLp[2 S3][2 S3]>>][2 <D3>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 6/26 (dimension 6) :
<<AlLp[2 <D3>][1 <<AlLp[2 S3]>>][3 <<AlLp[2 S3][2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 7/26 (dimension 6) :
<<AlLp[2 <D3>][2 <D3>][2 <D3>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 8/26 (dimension 6) :
<<AlLp[2 <D3>][3 <<AlLp[2 S3][2 S3]>>][1 <<AlLp[2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 9/26 (dimension 6) :
<<AlLp[3 <<AlLp[2 S3][2 S3]>>][1 <<AlLp[2 S3]>>][2 <D3>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 10/26 (dimension 6) :
<<AlLp[3 <<AlLp[2 S3][2 S3]>>][2 <D3>][1 <<AlLp[2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 11/26 (dimension 6) :
<<AlLp[1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][3 <<AlLp[2 S3][2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 12/26 (dimension 6) :
<<AlLp[1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][2 <D3>][2 <D3>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 13/26 (dimension 6) :
<<AlLp[1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][3 <<AlLp[2 S3][2 S3]>>][1 <<AlLp[2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 14/26 (dimension 6) :
<<AlLp[1 <<AlLp[2 S3]>>][2 <D3>][1 <<AlLp[2 S3]>>][2 <D3>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 15/26 (dimension 6) :
<<AlLp[1 <<AlLp[2 S3]>>][2 <D3>][2 <D3>][1 <<AlLp[2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 16/26 (dimension 6) :
<<AlLp[1 <<AlLp[2 S3]>>][3 <<AlLp[2 S3][2 S3]>>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 17/26 (dimension 6) :
<<AlLp[2 <D3>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][2 <D3>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 18/26 (dimension 6) :
<<AlLp[2 <D3>][1 <<AlLp[2 S3]>>][2 <D3>][1 <<AlLp[2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 19/26 (dimension 6) :
<<AlLp[2 <D3>][2 <D3>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 20/26 (dimension 6) :
<<AlLp[3 <<AlLp[2 S3][2 S3]>>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 21/26 (dimension 6) :
<<AlLp[1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][2 <D3>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 22/26 (dimension 6) :
<<AlLp[1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][2 <D3>][1 <<AlLp[2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 23/26 (dimension 6) :
<<AlLp[1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][2 <D3>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 24/26 (dimension 6) :
<<AlLp[1 <<AlLp[2 S3]>>][2 <D3>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 25/26 (dimension 6) :
<<AlLp[2 <D3>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 26/26 (dimension 6) :
<<AlLp[1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>][1 <<AlLp[2 S3]>>]>> 
End of computing.




Homology in dimension 5 :


Component Z/2Z

Component Z/2Z

Component Z/2Z

Component Z/2Z

Component Z/2Z

Component Z/2Z

Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.

Out[32]:
NIL

Searching Homology for objects created by disk pasting

The comment list of an object created by disk pasting contains various informations as shown by the simple following example

In [33]:
(def s0 (build-finite-ss '(*)))
The object is a STANDARD-OBJECT of type CAT::SIMPLICIAL-SET.
0. CMPR: #<FUNCTION S-CMPR>
1. BASIS: #<CLOSURE (FLET CAT::RSLT :IN CAT::FINITE-SS-BASIS) {1007856CAB}>
2. BSGN: *
3. DFFR: [K2 Morphism (degree -1): K1 -> K1]
4. GRMD: [K1 Simplicial-Set]
5. EFHM: [K19 Homotopy-Equivalence K1 <= K1 => K1]
6. IDNM: 1
7. ORGN: (BUILD-FINITE-SS (*))
8. CPRD: [K5 Morphism (degree 0): K1 -> K3]
9. FACE: #<CLOSURE (FLET CAT::RSLT :IN CAT::FINITE-SS-FACE) {1007856CEB}>

> 
Checking the 0-simplices...
Out[33]:
[K1 Simplicial-Set]
In [34]:
(def s2 (disk-pasting s0 
                        2 
                       's2 
                       (list (absm 1 '*) (absm 1 '*) (absm 1 '*))  ))
Out[34]:
[K372 Simplicial-Set]
In [35]:
(orgn s2)
Out[35]:
(DISK-PASTING [K1 Simplicial-Set] 2 S2 (<AbSm 0 *> <AbSm 0 *> <AbSm 0 *>))

In fact, the comment list contains the very arguments used to realize the attaching. The method retrieves those arguments, gets the homotopy equivalence value of the efhm slot of the old object -creating it if necessary - then build a new homotopy equivalence, by calling the function hmeq-disk-pasting hmeq which takes into account the attaching.

commonlisp
(DEFMETHOD SEARCH-EFHM (smst (orgn (eql 'disk-pasting)))
  (declare (type simplicial-set smst))
  (the homotopy-equivalence
   (destructuring-bind (old-smst dmns new faces) (rest (orgn smst))
       (declare
          (type simplicial-set old-smst)
          (fixnum dmns)
          (symbol new)
          (ignore faces))
       (hmeq-disk-pasting 
               (efhm old-smst)
               dmns new (? smst dmns new)
               :new-lbcc smst))))

The functions for the suspension

In Kenzo the suspension process is realized by the function suspension. This function has one argument, a reduced object (chain complex, simplicial set, etc.). If the object is not reduced, the result is undefined. The CLOS mechanism is used to apply an adequate method for building the suspension of the object. For a chain complex, a new base point is created with name :s-bsgn and the degree of the generators is increased by 1. If the suspension process is applied to a homotopy equivalence, then firstly, the left bottom chain complex is suspended and secondly, the modification is propagated along the whole homotopy equivalence.

suspension-cmpr cmpr [Function]

From the comparison function cmpr, build a comparison function to compare two generators of a suspension.

suspension-basis basis [Function]

From the function basis of a chain complex, build a basis function for the suspension of this chain complex. In degree 0, the only generator is :s-bsgn, in degree 1, the basis is void and in degree $k,\,k\ge 2$, the elements of the basis of the suspension are the elements of the initial chain complex in degree $k-1$.

suspension-intr-dffr dffr [Function]

From the lisp differential function dffr of a chain complex, build the lisp differential function for the suspension of this chain complex.

suspension-intr-cprd cmbn [Function]

Return the result of the application of the coproduct of a suspension (considered as a coalgebra) upon the combination cmbn. Note that this function does not need any other argument than the combination.

suspension-face face [Function]

From the function face of a simplicial set, build the face function for the suspension of this simplicial set.

suspension-intr mrph [Function]

From a Kenzo morphism mrph, build an internal function corresponding to the suspension of the initial morphism. This function will be applied to a combination assumed to belong to a suspension of a chain complex.

suspension obj &optional (n 1) [Function]

Construct a new object, the suspension of the reduced object obj. The (geometrical) base point of the suspension of a chain complex (or simplicial set) is named :s-bsgn. The optional parameter n (default: 1) allows to create in one instruction iterated suspensions. This function calls the adequate method (suspension-1) for the object obj.

suspension-1 chcm [Method]

Build the chain complex suspension of the chain complex chcm, using the basic functions above, as shown in the following call to build-chcm:

commonlisp
           (build-chcm
             :cmpr (suspension-cmpr cmpr)
             :basis (suspension-basis basis)
             :bsgn :s-bsgn
             :intr-dffr (suspension-intr-dffr dffr)
             :strt :cmbn
             :orgn `(suspension ,chcm))

suspension-1 clbg [Method]

Return the coalgebra associated to the suspension of the coalgebra clbg. This calls internally the method for the suspension of the chain complex clbg then assigns the function suspension-intr-cprd to the value of the slot cprd.

suspension-1 smst [Method]

Return the simplicial set, suspension of the simplicial set smst. This function uses the previous basic function suspension-face. The resulting object is also a coalgebra with a coproduct defined by the function suspension-intr-cprd.

suspension-1 mrph [Method]

Build the suspension of the morphism mrph. This is a morphism of the same degree as mrph. If mrph is the zero morphism, return the zero morphism between the suspensions of the source and target of mrph. If mrph is the identity morphim, return the identity morphism upon the suspension of the source of mrph. Otherwise, return the morphism built by the following call to build-mrph:

commonlisp
              (build-mrph
                 :sorc (suspension (sorc mrph))
                 :trgt (suspension (trgt mrph))
                 :degr (degr mrph)
                 :intr (suspension-intr mrph)
                 :strt :cmbn
                 :orgn `(suspension ,mrph))

suspension-1 rdct [Method]

Build the suspension of the reduction rdct. If rdct is the trivial reduction upon a chain complex ${\cal C}$, return the trivial reduction upon the suspension of ${\cal C}$. Otherwise, return the reduction built by the following call to the function build-rdct:

commonlisp
              (build-rdct
                 :f (suspension (f rdct))
                 :g (suspension (g rdct))
                 :h (suspension (h rdct))
                 :orgn `(suspension ,rdct))

Build the suspension of the homotopy equivalence hmeq. If hmeq is the trivial homotopy equivalence upon a chain complex ${\cal C}$, return the trivial homotopy equivalence upon

suspension-1 hmeq [Method] the suspension of ${\cal C}$. Otherwise, return the homotopy equivalence built by the following call to the function build-hmeq:

commonlisp
              (build-hmeq
                 :lrdct (suspension (lrdct hmeq))
                 :rrdct (suspension (rrdct hmeq))
                 :orgn `(suspension ,hmeq))

Examples

Firstly we test the coproduct of the suspension of $\bar\Delta$. In the third statement, the generators 7 and 11 are the binary coded representation of the simplices (0 1 2) and (0 1 3) in dimension 3 of ${\cal S}\bar\Delta$,

In [36]:
(suspension-intr-cprd (cmbn 0))
Out[36]:
----------------------------------------------------------------------{CMBN 0}
------------------------------------------------------------------------------
In [37]:
(suspension-intr-cprd (cmbn 0 5 :s-bsgn))
Out[37]:
----------------------------------------------------------------------{CMBN 0}
<5 * <TnPr S-BSGN S-BSGN>>
------------------------------------------------------------------------------
In [38]:
(suspension-intr-cprd (cmbn 3 4 7 5 11))
Out[38]:
----------------------------------------------------------------------{CMBN 3}
<4 * <TnPr S-BSGN 7>>
<5 * <TnPr S-BSGN 11>>
<4 * <TnPr 7 S-BSGN>>
<5 * <TnPr 11 S-BSGN>>
------------------------------------------------------------------------------

Let us verify now the classical result ${\cal S}(S^n)=S^{n+1}$.

In [39]:
(def s1 (sphere 1))
Out[39]:
[K377 Simplicial-Set]
In [40]:
(def ss1 (suspension s1))
Out[40]:
[K382 Simplicial-Set]
In [41]:
(orgn ss1)
Out[41]:
(SUSPENSION [K377 Simplicial-Set])
In [42]:
(show-structure ss1 2)

Dimension = 0:

       Vertices :  (S-BSGN)

Dimension = 1:

Dimension = 2:

       Simplex : S1

               Faces : (<AbSm 0 S-BSGN> <AbSm 0 S-BSGN> <AbSm 0 S-BSGN>)
Out[42]:
NIL

For comparison, let us recall the simplicial set model of $S^2$:

In [43]:
(show-structure (sphere 2) 2)

Dimension = 0:

       Vertices :  (*)

Dimension = 1:

Dimension = 2:

       Simplex : S2

               Faces : (<AbSm 0 *> <AbSm 0 *> <AbSm 0 *>)
Out[43]:
NIL

Let us iterate twice the operation of suspension on $S^2$:

In [44]:
(def ss22 (suspension (sphere 2) 2))
Out[44]:
[K397 Simplicial-Set]
In [45]:
(show-structure ss22 4)

Dimension = 0:

       Vertices :  (S-BSGN)

Dimension = 1:

Dimension = 2:

Dimension = 3:

Dimension = 4:

       Simplex : S2

               Faces : (<AbSm 2-1-0 S-BSGN> <AbSm 2-1-0 S-BSGN> <AbSm 2-1-0 S-BSGN> <AbSm 2-1-0 S-BSGN> <AbSm 2-1-0 S-BSGN>)
Out[45]:
NIL

To test the suspension of a less simple chain complex, let us take a Moore space that we have seen in the simplicial set chapter. We know that the corresponding chain complex is connected. Let us compare the basis elements, in various degrees, of this chain complex and its suspension:

In [46]:
(def m23 (moore 2 3))
Out[46]:
[K402 Simplicial-Set]
In [47]:
(dotimes (i 7) (print (basis m23 i)))
(*) 
NIL 
NIL 
(M3) 
(N4) 
NIL 
NIL 
Out[47]:
NIL
In [48]:
(def sm23 (suspension m23))
Out[48]:
[K407 Simplicial-Set]
In [49]:
(dotimes (i 7) (print (basis sm23 i)))
(:S-BSGN) 
NIL 
NIL 
NIL 
(M3) 
(N4) 
NIL 
Out[49]:
NIL

Let us apply now the function suspension to objects built from $S^2$, namely $\Omega^1(S^2)$ and $\Omega^2(S^2)$ and let us have a look upon the homology groups. For $S^2$, we know that the only non-null homology groups are in dimension 0 and 2:

In [50]:
(homology (sphere 2) 0 5)
Computing boundary-matrix in dimension 0.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 0) :
* 
End of computing.


Computing boundary-matrix in dimension 1.
Rank of the source-module : 0.




Homology in dimension 0 :


Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 1.
Rank of the source-module : 0.


Computing boundary-matrix in dimension 2.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 2) :
S2 
End of computing.




Homology in dimension 1 :



---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 2.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 2) :
S2 
End of computing.


Computing boundary-matrix in dimension 3.
Rank of the source-module : 0.




Homology in dimension 2 :


Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 3.
Rank of the source-module : 0.


Computing boundary-matrix in dimension 4.
Rank of the source-module : 0.




Homology in dimension 3 :



---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 4.
Rank of the source-module : 0.


Computing boundary-matrix in dimension 5.
Rank of the source-module : 0.




Homology in dimension 4 :



---done---

;; Clock -> 2016-03-15, 22h 19m 56s.

Out[50]:
NIL

For ${\cal S}(S^2)$, the non--null homology groups are of course in dimension 0 and 3:

In [51]:
(def ss2 (suspension (sphere 2)))
Out[51]:
[K392 Simplicial-Set]
In [52]:
(homology ss2 0 5)
Computing boundary-matrix in dimension 0.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 0) :
:S-BSGN 
End of computing.


Computing boundary-matrix in dimension 1.
Rank of the source-module : 0.




Homology in dimension 0 :


Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 1.
Rank of the source-module : 0.


Computing boundary-matrix in dimension 2.
Rank of the source-module : 0.




Homology in dimension 1 :



---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 2.
Rank of the source-module : 0.


Computing boundary-matrix in dimension 3.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 3) :
S2 
End of computing.




Homology in dimension 2 :



---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 3.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 3) :
S2 
End of computing.


Computing boundary-matrix in dimension 4.
Rank of the source-module : 0.




Homology in dimension 3 :


Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 4.
Rank of the source-module : 0.


Computing boundary-matrix in dimension 5.
Rank of the source-module : 0.




Homology in dimension 4 :



---done---

;; Clock -> 2016-03-15, 22h 19m 56s.

Out[52]:
NIL

Let us verify now that, for the space $\Omega(S^2)$, the homology groups are organized as the tensor algebra over one generator in degree 1:

In [53]:
(def s2 (sphere 2))
Out[53]:
[K387 Simplicial-Set]
In [54]:
(def os2 (loop-space s2))
Out[54]:
[K420 Simplicial-Group]
In [55]:
(homology os2 0 5)
Computing boundary-matrix in dimension 0.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 0) :
<<AlLp>> 
End of computing.


Computing boundary-matrix in dimension 1.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 1) :
<<AlLp[1 S2]>> 
End of computing.




Homology in dimension 0 :


Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 1.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 1) :
<<AlLp[1 S2]>> 
End of computing.


Computing boundary-matrix in dimension 2.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 2) :
<<AlLp[1 S2][1 S2]>> 
End of computing.




Homology in dimension 1 :


Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 2.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 2) :
<<AlLp[1 S2][1 S2]>> 
End of computing.


Computing boundary-matrix in dimension 3.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 3) :
<<AlLp[1 S2][1 S2][1 S2]>> 
End of computing.




Homology in dimension 2 :


Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 3.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 3) :
<<AlLp[1 S2][1 S2][1 S2]>> 
End of computing.


Computing boundary-matrix in dimension 4.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 4) :
<<AlLp[1 S2][1 S2][1 S2][1 S2]>> 
End of computing.




Homology in dimension 3 :


Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 4.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 4) :
<<AlLp[1 S2][1 S2][1 S2][1 S2]>> 
End of computing.


Computing boundary-matrix in dimension 5.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 5) :
<<AlLp[1 S2][1 S2][1 S2][1 S2][1 S2]>> 
End of computing.




Homology in dimension 4 :


Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.

Out[55]:
NIL

And, in the suspension of the previous space, we verify that the homology groups are suspended (in particular, there is no homology in dimension 1)

In [56]:
(def sos2 (suspension os2))
Out[56]:
[K529 Simplicial-Set]
In [57]:
(homology sos2 0 5)
Computing boundary-matrix in dimension 0.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 0) :
:S-BSGN 
End of computing.


Computing boundary-matrix in dimension 1.
Rank of the source-module : 0.




Homology in dimension 0 :


Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 1.
Rank of the source-module : 0.


Computing boundary-matrix in dimension 2.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 2) :
<<AlLp[1 S2]>> 
End of computing.




Homology in dimension 1 :



---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 2.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 2) :
<<AlLp[1 S2]>> 
End of computing.


Computing boundary-matrix in dimension 3.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 3) :
<<AlLp[1 S2][1 S2]>> 
End of computing.




Homology in dimension 2 :


Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 3.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 3) :
<<AlLp[1 S2][1 S2]>> 
End of computing.


Computing boundary-matrix in dimension 4.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 4) :
<<AlLp[1 S2][1 S2][1 S2]>> 
End of computing.




Homology in dimension 3 :


Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 4.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 4) :
<<AlLp[1 S2][1 S2][1 S2]>> 
End of computing.


Computing boundary-matrix in dimension 5.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 5) :
<<AlLp[1 S2][1 S2][1 S2][1 S2]>> 
End of computing.




Homology in dimension 4 :


Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.

Out[57]:
NIL

At last, taking the loop space of the previous suspension, we recognize the tensor algebra over the previous tensor algebra, ${\cal H}_*\Omega S^2$. In each dimension, the number of generators is $2^n$:

In [58]:
(def osos2 (loop-space sos2))
Out[58]:
[K547 Simplicial-Group]
In [59]:
(homology osos2 0 5)
Computing boundary-matrix in dimension 0.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 0) :
<<AlLp>> 
End of computing.


Computing boundary-matrix in dimension 1.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 1) :
<<AlLp[1 <<AlLp[1 S2]>>]>> 
End of computing.




Homology in dimension 0 :


Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 1.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/1 (dimension 1) :
<<AlLp[1 <<AlLp[1 S2]>>]>> 
End of computing.


Computing boundary-matrix in dimension 2.
Rank of the source-module : 2.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/2 (dimension 2) :
<<AlLp[2 <<AlLp[1 S2][1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 2/2 (dimension 2) :
<<AlLp[1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>]>> 
End of computing.




Homology in dimension 1 :


Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 2.
Rank of the source-module : 2.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/2 (dimension 2) :
<<AlLp[2 <<AlLp[1 S2][1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 2/2 (dimension 2) :
<<AlLp[1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>]>> 
End of computing.


Computing boundary-matrix in dimension 3.
Rank of the source-module : 4.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/4 (dimension 3) :
<<AlLp[3 <<AlLp[1 S2][1 S2][1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 2/4 (dimension 3) :
<<AlLp[1 <<AlLp[1 S2]>>][2 <<AlLp[1 S2][1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 3/4 (dimension 3) :
<<AlLp[2 <<AlLp[1 S2][1 S2]>>][1 <<AlLp[1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 4/4 (dimension 3) :
<<AlLp[1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>]>> 
End of computing.




Homology in dimension 2 :


Component Z

Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 3.
Rank of the source-module : 4.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/4 (dimension 3) :
<<AlLp[3 <<AlLp[1 S2][1 S2][1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 2/4 (dimension 3) :
<<AlLp[1 <<AlLp[1 S2]>>][2 <<AlLp[1 S2][1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 3/4 (dimension 3) :
<<AlLp[2 <<AlLp[1 S2][1 S2]>>][1 <<AlLp[1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 4/4 (dimension 3) :
<<AlLp[1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>]>> 
End of computing.


Computing boundary-matrix in dimension 4.
Rank of the source-module : 8.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/8 (dimension 4) :
<<AlLp[4 <<AlLp[1 S2][1 S2][1 S2][1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 2/8 (dimension 4) :
<<AlLp[1 <<AlLp[1 S2]>>][3 <<AlLp[1 S2][1 S2][1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 3/8 (dimension 4) :
<<AlLp[2 <<AlLp[1 S2][1 S2]>>][2 <<AlLp[1 S2][1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 4/8 (dimension 4) :
<<AlLp[3 <<AlLp[1 S2][1 S2][1 S2]>>][1 <<AlLp[1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 5/8 (dimension 4) :
<<AlLp[1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>][2 <<AlLp[1 S2][1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 6/8 (dimension 4) :
<<AlLp[1 <<AlLp[1 S2]>>][2 <<AlLp[1 S2][1 S2]>>][1 <<AlLp[1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 7/8 (dimension 4) :
<<AlLp[2 <<AlLp[1 S2][1 S2]>>][1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 8/8 (dimension 4) :
<<AlLp[1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>]>> 
End of computing.




Homology in dimension 3 :


Component Z

Component Z

Component Z

Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.


Computing boundary-matrix in dimension 4.
Rank of the source-module : 8.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/8 (dimension 4) :
<<AlLp[4 <<AlLp[1 S2][1 S2][1 S2][1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 2/8 (dimension 4) :
<<AlLp[1 <<AlLp[1 S2]>>][3 <<AlLp[1 S2][1 S2][1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 3/8 (dimension 4) :
<<AlLp[2 <<AlLp[1 S2][1 S2]>>][2 <<AlLp[1 S2][1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 4/8 (dimension 4) :
<<AlLp[3 <<AlLp[1 S2][1 S2][1 S2]>>][1 <<AlLp[1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 5/8 (dimension 4) :
<<AlLp[1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>][2 <<AlLp[1 S2][1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 6/8 (dimension 4) :
<<AlLp[1 <<AlLp[1 S2]>>][2 <<AlLp[1 S2][1 S2]>>][1 <<AlLp[1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 7/8 (dimension 4) :
<<AlLp[2 <<AlLp[1 S2][1 S2]>>][1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 8/8 (dimension 4) :
<<AlLp[1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>]>> 
End of computing.


Computing boundary-matrix in dimension 5.
Rank of the source-module : 16.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 1/16 (dimension 5) :
<<AlLp[5 <<AlLp[1 S2][1 S2][1 S2][1 S2][1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 2/16 (dimension 5) :
<<AlLp[1 <<AlLp[1 S2]>>][4 <<AlLp[1 S2][1 S2][1 S2][1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 3/16 (dimension 5) :
<<AlLp[2 <<AlLp[1 S2][1 S2]>>][3 <<AlLp[1 S2][1 S2][1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 4/16 (dimension 5) :
<<AlLp[3 <<AlLp[1 S2][1 S2][1 S2]>>][2 <<AlLp[1 S2][1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 5/16 (dimension 5) :
<<AlLp[4 <<AlLp[1 S2][1 S2][1 S2][1 S2]>>][1 <<AlLp[1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 6/16 (dimension 5) :
<<AlLp[1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>][3 <<AlLp[1 S2][1 S2][1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 7/16 (dimension 5) :
<<AlLp[1 <<AlLp[1 S2]>>][2 <<AlLp[1 S2][1 S2]>>][2 <<AlLp[1 S2][1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 8/16 (dimension 5) :
<<AlLp[1 <<AlLp[1 S2]>>][3 <<AlLp[1 S2][1 S2][1 S2]>>][1 <<AlLp[1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 9/16 (dimension 5) :
<<AlLp[2 <<AlLp[1 S2][1 S2]>>][1 <<AlLp[1 S2]>>][2 <<AlLp[1 S2][1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 10/16 (dimension 5) :
<<AlLp[2 <<AlLp[1 S2][1 S2]>>][2 <<AlLp[1 S2][1 S2]>>][1 <<AlLp[1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 11/16 (dimension 5) :
<<AlLp[3 <<AlLp[1 S2][1 S2][1 S2]>>][1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 12/16 (dimension 5) :
<<AlLp[1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>][2 <<AlLp[1 S2][1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 13/16 (dimension 5) :
<<AlLp[1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>][2 <<AlLp[1 S2][1 S2]>>][1 <<AlLp[1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 14/16 (dimension 5) :
<<AlLp[1 <<AlLp[1 S2]>>][2 <<AlLp[1 S2][1 S2]>>][1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 15/16 (dimension 5) :
<<AlLp[2 <<AlLp[1 S2][1 S2]>>][1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>]>> 
End of computing.


;; Clock -> 2016-03-15, 22h 19m 56s.
Computing the boundary of the generator 16/16 (dimension 5) :
<<AlLp[1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>][1 <<AlLp[1 S2]>>]>> 
End of computing.




Homology in dimension 4 :


Component Z

Component Z

Component Z

Component Z

Component Z

Component Z

Component Z

Component Z


---done---

;; Clock -> 2016-03-15, 22h 19m 56s.

Out[59]:
NIL

Searching homology for suspensions

The comment list of a suspension has the form (SUSPENSION suspended-object). The search-efhm method applied to a suspension, looks for the value of the efhm slot of the suspended-object, (i.e. a homotopy equivalence), then builds the suspension of this homotopy equivalence (see the method suspension applied to a homotopy equivalence). Of course, this may imply a recursive process.

commonlisp
(DEFMETHOD SEARCH-EFHM (suspension (orgn (eql 'suspension)))
  (declare (type chain-complex suspension))
  (suspension (efhm (second (orgn suspension)))))

Lisp files concerned in this chapter

disk-pasting.lisp, suspensions.lisp, searching-homology.lisp