#+BEGIN_SRC lisp :session 00 :exports none :results silent (ql:quickload "kenzo") (use-package :cat) #+END_SRC * Overview Let us begin by the space $\mathrm{Moore}(\mathbb{Z}/2\mathbb{Z}, 3)$ described as a simplicial set having only three non-degenerate simplices, namely in dimension $0$, $3$ and $4$. In the representation created by the software, the 0-simplex (base point), the 3-simplex and the 4-simplex are respectively labelled =*=, =M3= and =N4=. The faces 0 and 2 of the 4-simplex =N4= are identified with (pasted to) the 3-simplex =M3=, the others being contracted on the base point. To create the simplicial set one types simply: #+BEGIN_SRC lisp :session 00 :exports none (defvar m23) #+END_SRC #+BEGIN_SRC lisp :session 00 :exports both (setf m23 (moore 2 3)) #+END_SRC #+RESULTS: : [K1 Simplicial-Set] The system answers that a Kenzo object has been created, with number 1 and type =SIMPLICIAL SET=. This object may be referenced by the symbol =m23=. #+BEGIN_SRC lisp :session 00 m23 #+END_SRC #+RESULTS: : [K1 Simplicial-Set] We may compute the homology groups of this space, using the underlying chain complex induced by the simplicial set description. Here we compute the $H_i$ from 0 to 4 included. When in the answer the component part is void, it means that the corresponding homology group is null. #+BEGIN_SRC lisp :session 00 :results output (homology m23 0 5) #+END_SRC #+RESULTS: #+begin_example Computing boundary-matrix in dimension 0. Rank of the source-module : 1. ;; Clock -> 2017-12-28, 0h 13m 32s. 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 -> 2017-12-28, 0h 13m 32s. 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 -> 2017-12-28, 0h 13m 32s. 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 -> 2017-12-28, 0h 13m 32s. Computing the boundary of the generator 1/1 (dimension 3) : M3 End of computing. Homology in dimension 2 : ---done--- ;; Clock -> 2017-12-28, 0h 13m 32s. Computing boundary-matrix in dimension 3. Rank of the source-module : 1. ;; Clock -> 2017-12-28, 0h 13m 32s. Computing the boundary of the generator 1/1 (dimension 3) : M3 End of computing. Computing boundary-matrix in dimension 4. Rank of the source-module : 1. ;; Clock -> 2017-12-28, 0h 13m 32s. Computing the boundary of the generator 1/1 (dimension 4) : N4 End of computing. Homology in dimension 3 : Component Z/2Z ---done--- ;; Clock -> 2017-12-28, 0h 13m 32s. Computing boundary-matrix in dimension 4. Rank of the source-module : 1. ;; Clock -> 2017-12-28, 0h 13m 32s. Computing the boundary of the generator 1/1 (dimension 4) : N4 End of computing. Computing boundary-matrix in dimension 5. Rank of the source-module : 0. Homology in dimension 4 : ---done--- ;; Clock -> 2017-12-28, 0h 13m 32s. #+end_example The homology of =m23= is $(\mathbb{Z},0,0,\mathbb{Z}/2,0,\ldots)$; the reduced homology is only $\mathbb{Z}/2$ in dimension 3, defining the Moore space up to homotopy. As =m23= is a simplicial set, it is possible to create the cartesian product =m23xm23= by the function =crts-prdc= (= CaRTeSian PRoDuCt). This is a new simplicial set. #+BEGIN_SRC lisp :session 00 :exports none (defvar m23xm23) #+END_SRC #+BEGIN_SRC lisp :session 00 :exports both (setf m23xm23 (crts-prdc m23 m23)) #+END_SRC #+RESULTS: : [K10 Simplicial-Set] Being a simplicial set, =m23xm23= is also a chain complex object and we may for instance ask for the basis in dimension 6. #+BEGIN_SRC lisp :session 00 :exports both :results verbatim (basis m23xm23 6) #+END_SRC #+RESULTS: : ( ...) #+BEGIN_SRC lisp :session 00 :exports both (length (basis m23xm23 6)) #+END_SRC #+RESULTS: : 230 As shown by the last command, the number of elements of the basis is quite large (230). The user will note that the basis elements are in this particular case formed by cartesian products of /degenerated simplices/. In the list, an element like == means $\eta_1\eta_0\mathrm{N4}\times\eta_5\eta_3\eta_2\mathrm{M3}$. We may construct also the tensor product $\mathrm{m23}\otimes\mathrm{m23}$ from the underlying chain complex of the simplicial set =m23=. The tensor product of two simplicial sets do not make sense, and Kenzo understands to work on the underlying chain complex =m23=. This tensor product is a new chain complex and we see that the basis in dimension 6 has only one element: #+BEGIN_SRC lisp :session 00 :exports none (defvar t2m23) #+END_SRC #+BEGIN_SRC lisp :session 00 :exports both (setf t2m23 (tnsr-prdc m23 m23)) #+END_SRC #+RESULTS: : [K3 Chain-Complex] #+BEGIN_SRC lisp :session 00 :exports both :results verbatim (basis t2m23 6) #+END_SRC #+RESULTS: : () The Eilenberg-Zilber theorem is used to compute the homology groups of the cartesian product space: as chain complexes, =m23xm23= and =t2m23= have the same homology groups, but the computations using the tensor product are considerably faster. The user can check Künneth's theorem. #+BEGIN_SRC lisp :session 00 :exports both :results output (homology m23xm23 0 8) #+END_SRC #+RESULTS: #+begin_example Computing boundary-matrix in dimension 0. Rank of the source-module : 1. ;; Clock -> 2017-12-27, 14h 20m 39s. 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 -> 2017-12-27, 14h 20m 39s. 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 -> 2017-12-27, 14h 20m 39s. Computing boundary-matrix in dimension 2. Rank of the source-module : 0. Computing boundary-matrix in dimension 3. Rank of the source-module : 2. ;; Clock -> 2017-12-27, 14h 20m 39s. Computing the boundary of the generator 1/2 (dimension 3) : End of computing. ;; Clock -> 2017-12-27, 14h 20m 39s. Computing the boundary of the generator 2/2 (dimension 3) : End of computing. Homology in dimension 2 : ---done--- ;; Clock -> 2017-12-27, 14h 20m 39s. Computing boundary-matrix in dimension 3. Rank of the source-module : 2. ;; Clock -> 2017-12-27, 14h 20m 39s. Computing the boundary of the generator 1/2 (dimension 3) : End of computing. ;; Clock -> 2017-12-27, 14h 20m 39s. Computing the boundary of the generator 2/2 (dimension 3) : End of computing. Computing boundary-matrix in dimension 4. Rank of the source-module : 2. ;; Clock -> 2017-12-27, 14h 20m 39s. Computing the boundary of the generator 1/2 (dimension 4) : End of computing. ;; Clock -> 2017-12-27, 14h 20m 39s. Computing the boundary of the generator 2/2 (dimension 4) : End of computing. Homology in dimension 3 : Component Z/2Z Component Z/2Z ---done--- ;; Clock -> 2017-12-27, 14h 20m 39s. Computing boundary-matrix in dimension 4. Rank of the source-module : 2. ;; Clock -> 2017-12-27, 14h 20m 39s. Computing the boundary of the generator 1/2 (dimension 4) : End of computing. ;; Clock -> 2017-12-27, 14h 20m 39s. Computing the boundary of the generator 2/2 (dimension 4) : End of computing. Computing boundary-matrix in dimension 5. Rank of the source-module : 0. Homology in dimension 4 : ---done--- ;; Clock -> 2017-12-27, 14h 20m 39s. Computing boundary-matrix in dimension 5. Rank of the source-module : 0. Computing boundary-matrix in dimension 6. Rank of the source-module : 1. ;; Clock -> 2017-12-27, 14h 20m 39s. Computing the boundary of the generator 1/1 (dimension 6) : End of computing. Homology in dimension 5 : ---done--- ;; Clock -> 2017-12-27, 14h 20m 39s. Computing boundary-matrix in dimension 6. Rank of the source-module : 1. ;; Clock -> 2017-12-27, 14h 20m 39s. Computing the boundary of the generator 1/1 (dimension 6) : End of computing. Computing boundary-matrix in dimension 7. Rank of the source-module : 2. ;; Clock -> 2017-12-27, 14h 20m 39s. Computing the boundary of the generator 1/2 (dimension 7) : End of computing. ;; Clock -> 2017-12-27, 14h 20m 39s. Computing the boundary of the generator 2/2 (dimension 7) : End of computing. Homology in dimension 6 : Component Z/2Z ---done--- ;; Clock -> 2017-12-27, 14h 20m 39s. Computing boundary-matrix in dimension 7. Rank of the source-module : 2. ;; Clock -> 2017-12-27, 14h 20m 39s. Computing the boundary of the generator 1/2 (dimension 7) : End of computing. ;; Clock -> 2017-12-27, 14h 20m 39s. Computing the boundary of the generator 2/2 (dimension 7) : End of computing. Computing boundary-matrix in dimension 8. Rank of the source-module : 1. ;; Clock -> 2017-12-27, 14h 20m 39s. Computing the boundary of the generator 1/1 (dimension 8) : End of computing. Homology in dimension 7 : Component Z/2Z ---done--- ;; Clock -> 2017-12-27, 14h 20m 39s. #+end_example Let us consider now the space $\mathrm{K}(\mathbb{Z}, 1)$. This is an Abelian simplicial group created in `Kenzo` by the function =k-z=. In this simplicial group, a simplex in dimension $n$ is mathematically represented by a sequence of integers, known as a /bar/ object: $$ [a_1 \mid a_2 \mid \ldots \mid a_n].$$ In =Kenzo=, a non-degenerate simplex of $\mathrm{K}(\mathbb{Z}, 1)$ in dimension $n$ will be simply a list of $n$ non-null integers, for instance: =(2 3 4 5)=. In dimension 0, the only simplex is =NIL= (the base point). #+BEGIN_SRC lisp :session 00 :exports none (defvar kz1) #+END_SRC #+BEGIN_SRC lisp :session 00 :exports both (setf kz1 (k-z 1)) #+END_SRC #+RESULTS: : [K38 Abelian-Simplicial-Group] But this object is also a /coalgebra/ and an /algebra/, and we may see the effect of the respective induced /coproduct/ and /product/: #+BEGIN_SRC lisp :session 00 :exports both :results output (princ (cprd kz1 4 '(2 3 4 5))) #+END_SRC #+RESULTS: : : ----------------------------------------------------------------------{CMBN 4} : <1 * > : <1 * > : <1 * > : <1 * > : <1 * > : ------------------------------------------------------------------------------ #+BEGIN_SRC lisp :session 00 :exports both :results output (princ (aprd kz1 6 (tnpr 2 '(1 2) 4 '(3 4 5 6)))) #+END_SRC #+RESULTS: #+begin_example ----------------------------------------------------------------------{CMBN 6} <1 * (1 2 3 4 5 6)> <-1 * (1 3 2 4 5 6)> <1 * (1 3 4 2 5 6)> <-1 * (1 3 4 5 2 6)> <1 * (1 3 4 5 6 2)> <1 * (3 1 2 4 5 6)> <-1 * (3 1 4 2 5 6)> <1 * (3 1 4 5 2 6)> <-1 * (3 1 4 5 6 2)> <1 * (3 4 1 2 5 6)> ... ... ------------------------------------------------------------------------------ #+end_example The printed results are the printed representation of /combinations/, i.e., integer linear combinations of generators resulting from the application of the morphisms. The degree of the combination is indicated by the information: =CMBN n=. In the same way, we may create the Abelian simplicial groups $\mathrm{K}(\mathbb{Z}/2\mathbb{Z}, n)$: #+BEGIN_SRC lisp :session 00 :exports none (defvar k-z2-2) #+END_SRC #+BEGIN_SRC lisp :session 00 :exports both (setf k-z2-2 (k-z2 2)) #+END_SRC #+RESULTS: : [K64 Abelian-Simplicial-Group] #+BEGIN_SRC lisp :exports both :results output (homology k-z2-2 4) #+END_SRC #+RESULTS: #+begin_example Computing boundary-matrix in dimension 4. Rank of the source-module : 2. ;; Clock -> 2017-12-27, 14h 34m 52s. Computing the boundary of the generator 1/2 (dimension 4) : <> End of computing. ;; Clock -> 2017-12-27, 14h 34m 52s. Computing the boundary of the generator 2/2 (dimension 4) : <> End of computing. Computing boundary-matrix in dimension 5. Rank of the source-module : 3. ;; Clock -> 2017-12-27, 14h 34m 52s. Computing the boundary of the generator 1/3 (dimension 5) : <> End of computing. ;; Clock -> 2017-12-27, 14h 34m 52s. Computing the boundary of the generator 2/3 (dimension 5) : <> End of computing. ;; Clock -> 2017-12-27, 14h 34m 52s. Computing the boundary of the generator 3/3 (dimension 5) : <> End of computing. Homology in dimension 4 : Component Z/4Z ---done--- ;; Clock -> 2017-12-27, 14h 34m 52s. #+end_example Let us play now with the sphere $S^3$ and its loop spaces. $S^3$ and $\Omega^2 S^3$ are created by respective calls to the functions =sphere= and =loop-space=. Then we compute the $H_4$ and $H_5$ of $\Omega^2 S^3$: #+BEGIN_SRC lisp :session 00 :exports none (defvar s3) #+END_SRC #+BEGIN_SRC lisp :ession cat :exports both (setf s3 (sphere 3)) #+END_SRC #+RESULTS: : [K174 Simplicial-Set] #+BEGIN_SRC lisp :session 00 :exports none (defvar o2s3) #+END_SRC #+BEGIN_SRC lisp :session 00 :exports both (setf o2s3 (loop-space s3 2)) #+END_SRC #+RESULTS: : [K191 Simplicial-Group] #+BEGIN_SRC lisp :session 00 :exports both :results output (homology o2s3 4 6) #+END_SRC #+RESULTS: #+begin_example Computing boundary-matrix in dimension 4. Rank of the source-module : 3. ;; Clock -> 2017-12-27, 14h 40m 26s. Computing the boundary of the generator 1/3 (dimension 4) : <>][3 <>]>> End of computing. ;; Clock -> 2017-12-27, 14h 40m 26s. Computing the boundary of the generator 2/3 (dimension 4) : <>][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 14h 40m 26s. Computing the boundary of the generator 3/3 (dimension 4) : <>][1 <>][1 <>][1 <>]>> End of computing. Computing boundary-matrix in dimension 5. Rank of the source-module : 5. ;; Clock -> 2017-12-27, 14h 40m 26s. Computing the boundary of the generator 1/5 (dimension 5) : <>]>> End of computing. ;; Clock -> 2017-12-27, 14h 40m 26s. Computing the boundary of the generator 2/5 (dimension 5) : <>][1 <>][3 <>]>> End of computing. ;; Clock -> 2017-12-27, 14h 40m 26s. Computing the boundary of the generator 3/5 (dimension 5) : <>][3 <>][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 14h 40m 26s. Computing the boundary of the generator 4/5 (dimension 5) : <>][1 <>][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 14h 40m 26s. Computing the boundary of the generator 5/5 (dimension 5) : <>][1 <>][1 <>][1 <>][1 <>]>> End of computing. Homology in dimension 4 : Component Z/3Z Component Z/2Z ---done--- ;; Clock -> 2017-12-27, 14h 40m 26s. Computing boundary-matrix in dimension 5. Rank of the source-module : 5. ;; Clock -> 2017-12-27, 14h 40m 26s. Computing the boundary of the generator 1/5 (dimension 5) : <>]>> End of computing. ;; Clock -> 2017-12-27, 14h 40m 26s. Computing the boundary of the generator 2/5 (dimension 5) : <>][1 <>][3 <>]>> End of computing. ;; Clock -> 2017-12-27, 14h 40m 26s. Computing the boundary of the generator 3/5 (dimension 5) : <>][3 <>][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 14h 40m 26s. Computing the boundary of the generator 4/5 (dimension 5) : <>][1 <>][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 14h 40m 26s. Computing the boundary of the generator 5/5 (dimension 5) : <>][1 <>][1 <>][1 <>][1 <>]>> End of computing. Computing boundary-matrix in dimension 6. Rank of the source-module : 8. ;; Clock -> 2017-12-27, 14h 40m 26s. Computing the boundary of the generator 1/8 (dimension 6) : <>][5 <>]>> End of computing. ;; Clock -> 2017-12-27, 14h 40m 26s. Computing the boundary of the generator 2/8 (dimension 6) : <>][3 <>]>> End of computing. ;; Clock -> 2017-12-27, 14h 40m 26s. Computing the boundary of the generator 3/8 (dimension 6) : <>][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 14h 40m 26s. Computing the boundary of the generator 4/8 (dimension 6) : <>][1 <>][1 <>][3 <>]>> End of computing. ;; Clock -> 2017-12-27, 14h 40m 26s. Computing the boundary of the generator 5/8 (dimension 6) : <>][1 <>][3 <>][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 14h 40m 26s. Computing the boundary of the generator 6/8 (dimension 6) : <>][3 <>][1 <>][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 14h 40m 26s. Computing the boundary of the generator 7/8 (dimension 6) : <>][1 <>][1 <>][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 14h 40m 26s. Computing the boundary of the generator 8/8 (dimension 6) : <>][1 <>][1 <>][1 <>][1 <>][1 <>]>> End of computing. Homology in dimension 5 : Component Z/3Z Component Z/2Z ---done--- ;; Clock -> 2017-12-27, 14h 40m 26s. #+end_example Let us take now the first loop space $\Omega^1 S^3$ #+BEGIN_SRC lisp :session 00 :exports none (defvar os3) #+END_SRC #+BEGIN_SRC lisp :session 00 :exports both (setf os3 (loop-space s3)) #+END_SRC #+RESULTS: : [K179 Simplicial-Group] In the following instruction, we locate in the symbol =L1= the canonical generator of $\pi_2 (\Omega^1S^3)$, that is the 2-simplex coming from the original sphere. In fact, the object created by the command $\texttt{(loop3 0 's3 1)}$ is the "word" $S3^1$ belonging to the Kan simplicial version $G(S^3)$ (a simplicial group) of the loop space $\Omega S^3$. #+BEGIN_SRC lisp :session 00 :exports none (defvar L1) #+END_SRC #+BEGIN_SRC lisp :session 00 :exports both :results output (princ (setf L1 (loop3 0 's3 1))) #+END_SRC #+RESULTS: : <> Let us consider also the 2-degeneracy of the base point of the loop space. In the printed result, the user will recognize the degeneracy $\eta_1\eta_0$ of the null loop, base point of $\Omega^1 S^3$: #+BEGIN_SRC lisp :session 00 :exports none (defvar null-simp) #+END_SRC #+BEGIN_SRC lisp :session 00 :exports both :results output (princ (setf null-simp (absm 3 +null-loop+))) #+END_SRC #+RESULTS: : : >> We may build now a new space by pasting a disk $D3$ as indicated by the following call. It means that we "paste" to the space =os3= a 3-simplex named =D3=, the attaching map being described by the list of its faces in dimension 2. The faces 0 and 2 of =D3= are pasted to =L1=, the faces 1 and 3 are collapsed on the base point; in this way the attaching map $(S^2 \rightarrow \Omega S^3)$ has degree 2. #+BEGIN_SRC lisp :session 00 :exports none (defvar dos3) #+END_SRC #+BEGIN_SRC lisp :session 00 :exports both (setf dos3 (disk-pasting os3 3 ' (list L1 null-simp L1 null-simp))) #+END_SRC #+RESULTS: : [K435 Simplicial-Set] Let us compute a few homology groups of the new space =dos3=: #+BEGIN_SRC lisp :session 00 :exports both :results output (homology dos3 2 4) #+END_SRC #+RESULTS: #+begin_example Computing boundary-matrix in dimension 2. Rank of the source-module : 1. ;; Clock -> 2017-12-27, 14h 50m 23s. Computing the boundary of the generator 1/1 (dimension 2) : <> End of computing. Computing boundary-matrix in dimension 3. Rank of the source-module : 1. ;; Clock -> 2017-12-27, 14h 50m 23s. Computing the boundary of the generator 1/1 (dimension 3) : End of computing. Homology in dimension 2 : Component Z/2Z ---done--- ;; Clock -> 2017-12-27, 14h 50m 23s. Computing boundary-matrix in dimension 3. Rank of the source-module : 1. ;; Clock -> 2017-12-27, 14h 50m 23s. Computing the boundary of the generator 1/1 (dimension 3) : End of computing. Computing boundary-matrix in dimension 4. Rank of the source-module : 1. ;; Clock -> 2017-12-27, 14h 50m 23s. Computing the boundary of the generator 1/1 (dimension 4) : <> End of computing. Homology in dimension 3 : ---done--- ;; Clock -> 2017-12-27, 14h 50m 23s. #+end_example But more interesting, let us build the loop space of the object =dos3= and let us compute the homology in dimension 5: #+BEGIN_SRC lisp :session 00 :exports none (defvar odos3) #+END_SRC #+BEGIN_SRC lisp :session 00 :exports both (setf odos3 (loop-space dos3)) #+END_SRC #+RESULTS: : [K471 Simplicial-Group] #+BEGIN_SRC lisp :session 00 :exports both :results output (homology odos3 5) #+END_SRC #+RESULTS: #+begin_example Computing boundary-matrix in dimension 5. Rank of the source-module : 14. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 1/14 (dimension 5) : <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 2/14 (dimension 5) : <][3 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 3/14 (dimension 5) : <>][2 ]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 4/14 (dimension 5) : <>][1 <>][3 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 5/14 (dimension 5) : <>][2 ][2 ]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 6/14 (dimension 5) : <>][3 <>][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 7/14 (dimension 5) : <][1 <>][2 ]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 8/14 (dimension 5) : <][2 ][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 9/14 (dimension 5) : <>][1 <>][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 10/14 (dimension 5) : <>][1 <>][1 <>][2 ]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 11/14 (dimension 5) : <>][1 <>][2 ][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 12/14 (dimension 5) : <>][2 ][1 <>][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 13/14 (dimension 5) : <][1 <>][1 <>][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 14/14 (dimension 5) : <>][1 <>][1 <>][1 <>][1 <>]>> End of computing. Computing boundary-matrix in dimension 6. Rank of the source-module : 26. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 1/26 (dimension 6) : <>][5 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 2/26 (dimension 6) : <>][3 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 3/26 (dimension 6) : <>][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 4/26 (dimension 6) : <>][2 ][3 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 5/26 (dimension 6) : <>][3 <>][2 ]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 6/26 (dimension 6) : <][1 <>][3 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 7/26 (dimension 6) : <][2 ][2 ]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 8/26 (dimension 6) : <][3 <>][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 9/26 (dimension 6) : <>][1 <>][2 ]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 10/26 (dimension 6) : <>][2 ][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 11/26 (dimension 6) : <>][1 <>][1 <>][3 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 12/26 (dimension 6) : <>][1 <>][2 ][2 ]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 14s. Computing the boundary of the generator 13/26 (dimension 6) : <>][1 <>][3 <>][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 15s. Computing the boundary of the generator 14/26 (dimension 6) : <>][2 ][1 <>][2 ]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 15s. Computing the boundary of the generator 15/26 (dimension 6) : <>][2 ][2 ][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 15s. Computing the boundary of the generator 16/26 (dimension 6) : <>][3 <>][1 <>][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 15s. Computing the boundary of the generator 17/26 (dimension 6) : <][1 <>][1 <>][2 ]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 15s. Computing the boundary of the generator 18/26 (dimension 6) : <][1 <>][2 ][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 15s. Computing the boundary of the generator 19/26 (dimension 6) : <][2 ][1 <>][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 15s. Computing the boundary of the generator 20/26 (dimension 6) : <>][1 <>][1 <>][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 15s. Computing the boundary of the generator 21/26 (dimension 6) : <>][1 <>][1 <>][1 <>][2 ]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 15s. Computing the boundary of the generator 22/26 (dimension 6) : <>][1 <>][1 <>][2 ][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 15s. Computing the boundary of the generator 23/26 (dimension 6) : <>][1 <>][2 ][1 <>][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 15s. Computing the boundary of the generator 24/26 (dimension 6) : <>][2 ][1 <>][1 <>][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 15s. Computing the boundary of the generator 25/26 (dimension 6) : <][1 <>][1 <>][1 <>][1 <>]>> End of computing. ;; Clock -> 2017-12-27, 15h 2m 15s. Computing the boundary of the generator 26/26 (dimension 6) : <>][1 <>][1 <>][1 <>][1 <>][1 <>]>> 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 -> 2017-12-27, 15h 2m 15s. #+end_example Let us continue with the Kan theory. First, we check that $S^3$ is not of type Kan and that $\Omega S^3$ is indeed of type Kan and a non-Abelian simplicial group. #+BEGIN_SRC lisp :session 00 :exports both (typep s3 'kan) #+END_SRC #+RESULTS: : NIL #+BEGIN_SRC lisp :session 00 :exports both (typep os3 'kan) #+END_SRC #+RESULTS: : T #+BEGIN_SRC lisp :session 00 :exports both (typep os3 'simplicial-group) #+END_SRC #+RESULTS: : T #+BEGIN_SRC lisp :ession cat exports both (typep os3 'ab-simplicial-group) #+END_SRC #+RESULTS: : NIL Let us create the word $L2=(S3)^2$, i.e an object belonging to $\Omega S^3$ and let us apply the product of the underlying algebra upon $L2 \otimes L2$: #+BEGIN_SRC lisp :session 00 :exports none (defvar L2) #+END_SRC #+BEGIN_SRC lisp :session 00 :exports both :results output (princ (setf L2 (loop3 0 's3 2))) #+END_SRC #+RESULTS: : <> #+BEGIN_SRC lisp :session 00 :exports none (defvar square) #+END_SRC #+BEGIN_SRC lisp :session 00 :exports both :results output (princ (setf square (aprd os3 4 (tnpr 2 L2 2 L2)))) #+END_SRC #+RESULTS: : : ----------------------------------------------------------------------{CMBN 4} : <1 * <>> : <-1 * <>> : <1 * <>> : <1 * <>> : <-1 * <>> : <1 * <>> : ------------------------------------------------------------------------------ We see that the result is a linear combination of words composed from degeneracies of =L2=. The following instruction selects the generator part of the second element of the previous combination. #+BEGIN_SRC lisp :session 00 :exports none (defvar L4) #+END_SRC #+BEGIN_SRC lisp :session 00 :exports both :results output (princ (setf L4 (gnrt (second (cmbn-list square))))) #+END_SRC #+RESULTS: : : <> Let us use the lisp function =mapcar= (one among the various iteration functions of Lisp) to create the list of the faces 1, 2, 3 and 4 of the object =L4=, this list is a "Kan horn". #+BEGIN_SRC lisp :session 00 :exports none (defvar horn) #+END_SRC #+BEGIN_SRC lisp :session 00 :exports both :results output (princ (setf horn (mapcar #'(lambda (i) (face os3 i 4 l4)) '(1 2 3 4)))) #+END_SRC #+RESULTS: : : (>> >> >> >>) The function =kfll= tries to find a filling of this "Kan horn", and we see that the face 2 of the resulting simplex (which is very different from =L4=) is the same as the face 2 of =L4=. #+BEGIN_SRC lisp :session 00 :exports none (defvar kan-simplex) #+END_SRC #+BEGIN_SRC lisp :session 00 :exports both :results output (princ (setf kan-simplex (kfll os3 0 4 horn))) #+END_SRC #+RESULTS: : : >> #+BEGIN_SRC lisp :session 00 :exports both :results output (princ (face os3 2 4 kan-simplex)) #+END_SRC #+RESULTS: : : >> #+BEGIN_SRC lisp :session 00 :exports both :results output (princ (second horn)) #+END_SRC #+RESULTS: : : >> Let ${\cal G}$ be a simplicial group 0-reduced. $\Omega S^3$ is such a group. The program =Kenzo= allows the construction of the universal bundle $\mathcal{WG}$ and in particular of its base space $\overline{\mathcal{W}} \mathcal{G}$, i.e. the classifying space of ${\cal G}$. In our case, as $\Omega S^3$ in non-Abelian, the result is not a simplicial group but only a simplicial set. We verify that the $H_4$, which in principle should be isomorphic to $H_4 S^3 = 0$, is really null. #+BEGIN_SRC lisp :session 00 :exports none (defvar cls-os3) #+END_SRC #+BEGIN_SRC lisp :session 00 :exports both (setf cls-os3 (classifying-space os3)) #+END_SRC #+RESULTS: : [K938 Simplicial-Set] #+BEGIN_SRC lisp :session 00 :exports both (typep cls-os3 'simplicial-group) #+END_SRC #+RESULTS: : NIL #+BEGIN_SRC lisp :session 00 :exports both :results output (homology cls-os3 4) #+END_SRC #+RESULTS: #+begin_example Computing boundary-matrix in dimension 4. Rank of the source-module : 0. Computing boundary-matrix in dimension 5. Rank of the source-module : 1. ;; Clock -> 2017-12-27, 15h 17m 56s. Computing the boundary of the generator 1/1 (dimension 5) : <>]>> End of computing. Homology in dimension 4 : ---done--- ;; Clock -> 2017-12-27, 15h 17m 56s. #+end_example Let us end this short overview with an example of computation of homotopy groups. The method used in =Kenzo= is the Whitehead tower. An extended version of the Kenzo program due to Ana Romero is more general, but in this present version only the case where the first non-null homology group (in non-null dimension) is $\mathbb{Z}$ or $\mathbb{Z}/{2\mathbb{Z}}$ can be processed; however if this homology group is a direct sum of several copies of $\mathbb{Z}$ or $\mathbb{Z}/{2 \mathbb{Z}}$, then the corresponding stage of the Whitehead tower may also be constructed step by step. We take again $\mathrm{Moore}(\mathbb{Z}/2\mathbb{Z}, 3)$ whose $H_3$ is $\mathbb{Z}/2\mathbb{Z}$. First the fundamental cohomology class is constructed: #+BEGIN_SRC lisp :session 00 :exports none (defvar ch3) #+END_SRC #+BEGIN_SRC lisp :session 00 :exports both (setf ch3 (chml-clss m23 3)) #+END_SRC #+RESULTS: : [K1230 Cohomology-Class on K1 of degree 3] Then the function =z2-whitehead= is called to build a fibration over the simplicial set =m23= canonically associated to the cohomology class =ch3=. #+BEGIN_SRC lisp :session 00 :exports none (defvar f3) #+END_SRC #+BEGIN_SRC lisp :session 00 :exports both (setf f3 (z2-whitehead m23 ch3)) #+END_SRC #+RESULTS: : [K1231 Fibration K1 -> K64] Then the total space of the fibration is built: #+BEGIN_SRC lisp :session 00 :exports none (defvar x4) #+END_SRC #+BEGIN_SRC lisp :session 00 :exports both (setf x4 (fibration-total f3)) #+END_SRC #+RESULTS: : [K1237 Simplicial-Set] The $H_4$ of this total space is the $\pi_4$ of $\mathrm{Moore}(\mathbb{Z}/2\mathbb{Z})$: #+BEGIN_SRC lisp :session 00 :exports both :results output (homology x4 3 5) #+END_SRC #+RESULTS: #+begin_example Computing boundary-matrix in dimension 3. Rank of the source-module : 2. ;; Clock -> 2017-12-27, 15h 22m 48s. Computing the boundary of the generator 1/2 (dimension 3) : >> End of computing. ;; Clock -> 2017-12-27, 15h 22m 48s. Computing the boundary of the generator 2/2 (dimension 3) : >> End of computing. Computing boundary-matrix in dimension 4. Rank of the source-module : 3. ;; Clock -> 2017-12-27, 15h 22m 48s. Computing the boundary of the generator 1/3 (dimension 4) : >> End of computing. ;; Clock -> 2017-12-27, 15h 22m 48s. Computing the boundary of the generator 2/3 (dimension 4) : >> End of computing. ;; Clock -> 2017-12-27, 15h 22m 48s. Computing the boundary of the generator 3/3 (dimension 4) : >> End of computing. Homology in dimension 3 : ---done--- ;; Clock -> 2017-12-27, 15h 22m 48s. Computing boundary-matrix in dimension 4. Rank of the source-module : 3. ;; Clock -> 2017-12-27, 15h 22m 48s. Computing the boundary of the generator 1/3 (dimension 4) : >> End of computing. ;; Clock -> 2017-12-27, 15h 22m 48s. Computing the boundary of the generator 2/3 (dimension 4) : >> End of computing. ;; Clock -> 2017-12-27, 15h 22m 48s. Computing the boundary of the generator 3/3 (dimension 4) : >> End of computing. Computing boundary-matrix in dimension 5. Rank of the source-module : 4. ;; Clock -> 2017-12-27, 15h 22m 48s. Computing the boundary of the generator 1/4 (dimension 5) : >> End of computing. ;; Clock -> 2017-12-27, 15h 22m 48s. Computing the boundary of the generator 2/4 (dimension 5) : >> End of computing. ;; Clock -> 2017-12-27, 15h 22m 48s. Computing the boundary of the generator 3/4 (dimension 5) : >> End of computing. ;; Clock -> 2017-12-27, 15h 22m 48s. Computing the boundary of the generator 4/4 (dimension 5) : >> End of computing. Homology in dimension 4 : Component Z/2Z ---done--- ;; Clock -> 2017-12-27, 15h 22m 48s. #+end_example We may now iterate the process, to compute the $\pi_5$ of $\mathrm{Moore}(\mathbb{Z}/2\mathbb{Z})$: #+BEGIN_SRC lisp :session 00 :exports none (defvar ch4) #+END_SRC #+BEGIN_SRC lisp :session 00 :exports both (setf ch4 (chml-clss x4 4)) #+END_SRC #+RESULTS: : [K1318 Cohomology-Class on K1303 of degree 4] #+BEGIN_SRC lisp :session 00 :exports none (defvar f4) #+END_SRC #+BEGIN_SRC lisp :session 00 :exports both (setf f4 (z2-whitehead x4 ch4)) #+END_SRC #+RESULTS: : [K1333 Fibration K1237 -> K1319] #+BEGIN_SRC lisp :session 00 :exports none (defvar x5) #+END_SRC #+BEGIN_SRC lisp :session lisp :exports both (setf x5 (fibration-total f4)) #+END_SRC #+RESULTS: : [K1339 Simplicial-Set] #+BEGIN_SRC lisp :exports both :results output (homology x5 4 6) #+END_SRC #+RESULTS: #+begin_example Computing boundary-matrix in dimension 4. Rank of the source-module : 4. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 1/4 (dimension 4) : >> <>]>>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 2/4 (dimension 4) : >> <>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 3/4 (dimension 4) : >> <>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 4/4 (dimension 4) : >> <>> End of computing. Computing boundary-matrix in dimension 5. Rank of the source-module : 7. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 1/7 (dimension 5) : >> <>]>>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 2/7 (dimension 5) : >> <>]>>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 3/7 (dimension 5) : >> <>]>>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 4/7 (dimension 5) : >> <>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 5/7 (dimension 5) : >> <>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 6/7 (dimension 5) : >> <>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 7/7 (dimension 5) : >> <>> End of computing. Homology in dimension 4 : ---done--- ;; Clock -> 2017-12-27, 15h 25m 8s. Computing boundary-matrix in dimension 5. Rank of the source-module : 7. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 1/7 (dimension 5) : >> <>]>>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 2/7 (dimension 5) : >> <>]>>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 3/7 (dimension 5) : >> <>]>>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 4/7 (dimension 5) : >> <>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 5/7 (dimension 5) : >> <>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 6/7 (dimension 5) : >> <>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 7/7 (dimension 5) : >> <>> End of computing. Computing boundary-matrix in dimension 6. Rank of the source-module : 14. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 1/14 (dimension 6) : >> <>]>>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 2/14 (dimension 6) : >> <>]>>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 3/14 (dimension 6) : >> <>]>>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 4/14 (dimension 6) : >> <>][3 <>]>>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 5/14 (dimension 6) : >> <>]>>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 6/14 (dimension 6) : >> <>]>>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 7/14 (dimension 6) : >> <>]>>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 8/14 (dimension 6) : >> <>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 9/14 (dimension 6) : >> <>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 10/14 (dimension 6) : >> <>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 11/14 (dimension 6) : >> <>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 12/14 (dimension 6) : >> <>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 13/14 (dimension 6) : >> <>> End of computing. ;; Clock -> 2017-12-27, 15h 25m 8s. Computing the boundary of the generator 14/14 (dimension 6) : >> <>> End of computing. Homology in dimension 5 : Component Z/4Z ---done--- ;; Clock -> 2017-12-27, 15h 25m 8s. #+end_example So $\pi_5(\mathrm{Moore}(\mathbb{Z}/2\mathbb{Z}))$ is $\mathbb{Z}/4\mathbb{Z}$.