kenzo/examples/Chapter14.ipynb
2016-03-15 07:15:45 -05:00

55 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, 11h 44m 29s.
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, 11h 44m 29s.
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, 11h 44m 29s.


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


;; Clock -> 2016-03-15, 11h 44m 29s.
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, 11h 44m 29s.


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, 11h 44m 29s.

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, 11h 47m 15s.
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, 11h 47m 15s.
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, 11h 47m 15s.


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


;; Clock -> 2016-03-15, 11h 47m 15s.
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, 11h 47m 15s.
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, 11h 47m 15s.


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


;; Clock -> 2016-03-15, 11h 47m 15s.
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, 11h 47m 15s.

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, 11h 48m 3s.
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, 11h 48m 3s.
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, 11h 48m 3s.


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


;; Clock -> 2016-03-15, 11h 48m 3s.
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, 11h 48m 3s.
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, 11h 48m 3s.


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


;; Clock -> 2016-03-15, 11h 48m 3s.
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, 11h 48m 3s.
Computing the boundary of the generator 1/1 (dimension 3) :
D3 
End of computing.




Homology in dimension 2 :



---done---

;; Clock -> 2016-03-15, 11h 48m 3s.


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


;; Clock -> 2016-03-15, 11h 48m 3s.
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, 11h 48m 3s.

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, 11h 48m 48s.
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, 11h 48m 48s.
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, 11h 48m 48s.


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


;; Clock -> 2016-03-15, 11h 48m 48s.
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, 11h 48m 48s.
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, 11h 48m 48s.


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


;; Clock -> 2016-03-15, 11h 48m 48s.
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, 11h 48m 48s.
Computing the boundary of the generator 1/1 (dimension 3) :
D3 
End of computing.




Homology in dimension 2 :



---done---

;; Clock -> 2016-03-15, 11h 48m 48s.


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


;; Clock -> 2016-03-15, 11h 48m 48s.
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, 11h 48m 48s.
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, 11h 48m 48s.


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


;; Clock -> 2016-03-15, 11h 48m 48s.
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, 11h 48m 48s.

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, 11h 51m 43s.
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, 11h 51m 43s.
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, 11h 51m 58s.
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 [20]:
(def newcc-1 (chcm-disk-pasting *ccz* 1 'gen-1 (cmbn 0 165 :Z-gnrt)))
Out[20]:
[K91 Chain-Complex]
In [21]:
(chcm-homology-gen newcc-1 0)
Computing boundary-matrix in dimension 0.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 11h 52m 59s.
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, 11h 52m 59s.
Computing the boundary of the generator 1/1 (dimension 1) :
GEN-1 
End of computing.




Homology in dimension 0 :

Component Z/165Z

Out[21]:
(
----------------------------------------------------------------------{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 [22]:
(def newcc-2 (chcm-disk-pasting newcc-1 1 'gen-2 (cmbn 0 182 :Z-gnrt)))
Out[22]:
[K93 Chain-Complex]
In [23]:
(chcm-homology-gen newcc-2 0)
Computing boundary-matrix in dimension 0.
Rank of the source-module : 1.


;; Clock -> 2016-03-15, 11h 54m 35s.
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, 11h 54m 35s.
Computing the boundary of the generator 1/2 (dimension 1) :
GEN-2 
End of computing.


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




Homology in dimension 0 :


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


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


;; Clock -> 2016-03-15, 11h 54m 50s.
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[24]:
(
----------------------------------------------------------------------{CMBN 1}
<-165 * GEN-2>
<182 * GEN-1>
------------------------------------------------------------------------------
)

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

In [25]:
(def s3 (sphere 3))
Out[25]:
[K95 Simplicial-Set]
In [26]:
(def os3 (loop-space s3))
Out[26]:
[K100 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 [27]:
(def fund-simp (absm 0 (loop3 0 's3 1)))
Out[27]:
<AbSm - <<Loop[S3]>>>

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

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

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

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


;; Clock -> 2016-03-15, 11h 57m 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, 11h 57m 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, 11h 57m 56s.

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


;; Clock -> 2016-03-15, 11h 58m 8s.
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, 11h 58m 8s.
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, 11h 58m 8s.

Out[31]:
NIL

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

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


;; Clock -> 2016-03-15, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
Computing the boundary of the generator 7/26 (dimension 6) :
<<AlLp[2 <D3>][2 <D3>][2 <D3>]>> 
End of computing.


;; Clock -> 2016-03-15, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.
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, 11h 59m 11s.

Out[33]:
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 [34]:
(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) {1007875F3B}>
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) {1007875F7B}>

> 
Checking the 0-simplices...
Out[34]:
[K1 Simplicial-Set]
In [35]:
(def s2 (disk-pasting s0 
                        2 
                       's2 
                       (list (absm 1 '*) (absm 1 '*) (absm 1 '*))  ))
Out[35]:
[K374 Simplicial-Set]
In [36]:
(orgn s2)
Out[36]:
(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