From cd33f791ee7e5939cdfe375c37106e9551fa9ce4 Mon Sep 17 00:00:00 2001 From: gheber Date: Fri, 25 Mar 2016 15:17:48 -0500 Subject: [PATCH] First draft of Chapter 21. --- examples/21_Computing_homotopy_groups.ipynb | 2752 +++++++++++++++++++ 1 file changed, 2752 insertions(+) create mode 100644 examples/21_Computing_homotopy_groups.ipynb diff --git a/examples/21_Computing_homotopy_groups.ipynb b/examples/21_Computing_homotopy_groups.ipynb new file mode 100644 index 0000000..8c0a294 --- /dev/null +++ b/examples/21_Computing_homotopy_groups.ipynb @@ -0,0 +1,2752 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Computing homotopy groups\n", + "\n", + "## Mathematical aspects\n", + "\n", + "The method used here to compute the homotopy groups is known as the **Whitehead tower**. We recall some mathematical points:\n", + "\n", + "### 1) The Hurewicz theorem.\n", + "\n", + "**Theorem.** *Let X be a 1-connected space such that all its homology groups $H_r(X)$ are null\n", + "for $0 Return a \"fundamental\" cohomology class, more precisely a cocycle $\\chi$ defining it. The first argument *chcm* must be a chain complex $C_*$ with effective homology; in particular, an effective chain complex $EC_*$ is a by-product of the machine object $C_*$. The second argument \"*first*\" is an integer $n$, namely the first non-null dimension from which the chain complex *chcm* has a non-null homology group, which {\\bf must be isomorphic to $\\mathbb{Z}$} or $\\mathbb{Z}/{2 \\mathbb{Z}}$. The reader may be amazed that this argument \"*first*\" must be provided, since it is a consequence of the given $C_*$. But in fact, the same function `chml-class` may also be used in different contexts, for example, the Postnikov tower; in such a case, the argument *first* is not redundant. The returned cocycle $\\chi$ is in any case a chain complex morphism $\\chi: EC_* \\longrightarrow \\mathbb{Z}$, where $\\mathbb{Z}$ is the unit chain complex created by the function `z-chcm`. The degree of the morphism is $-n$. It is important to note that the chain complex involved in the source of the morphism is the **effective** chain complex of the homotopy equivalence value of the slot `efhm` of the object *chcm*. See the section *The general method for computing homology* in the Homology chapter. Finally, if $H_n(C_*)=\\mathbb{Z}/{2 \\mathbb{Z}}$, the actual cohomology class hoped by the user is the composition $p \\circ \\chi$, where $p$ is the canonical projection $\\mathbb{Z}\\longrightarrow\\mathbb{Z}/{2\\mathbb{Z}}$. But nevertheless, the `chml-clss` lisp function returns $\\chi$ and not $p \\circ \\chi$.\n", + "\n", + "`z-whitehead` *smst chml-clss* *[Function]*\n", + "> Return a fibration over the simplicial set *smst* (the first argument), canonically associated to the \"cohomology class\" *chml-clss* (the second argument). The simplicial set $X$, i.e. *smst*, is reduced; its homotopy groups $\\pi_r(X)$ are null for $0 \\leq r \\leq n-1$. The first non null homotopy group $\\pi_n(X)$ is assumed to be $\\mathbb{Z}$, i.e. $\\pi_n(X)= H_n(X)= \\mathbb{Z}$. The previous function `chml-clss`, in this situation, returns a cocycle $\\chi$, which may be used as the second argument *chml-clss* of the function `z-whitehead`. The integer $n$ is determined by the absolute value of the degree of the cohomology class *chcm-clss*. As explained in the previous section, a canonical fibration is induced by $\\chi$ and it is this fibration which is returned by `z-whitehead`. The slot `sintr` of the fibration is set by the internal function `z-whitehead-sintr` which builds in an efficient way the lisp function implementing the twisting operator $\\tau \\circ \\varphi_\\chi$.\n", + "\n", + "`z2-whitehead` *smst chcm-clss* *[Function]*\n", + "> Return a fibration over the simplicial set *smst* (the first argument), canonically associated to the \"cohomology class\" *chml-clss* (the second argument). The simplicial set $X$, i.e. *smst*, is reduced; its homotopy groups $\\pi_r(X)$ are null for $0 \\leq r \\leq n-1$. The first non null homotopy group $\\pi_n(X)$ is assumed to be $\\mathbb{Z}/2\\mathbb{Z}$, i.e. $\\pi_n(X)= H_n(X)= \\mathbb{Z}/2\\mathbb{Z}$. The previous function `chml-clss`, in this situation, returns a \"cocycle\" $\\chi$, which may be used as the second argument *chml-clss* of the function `z2-whitehead`. The integer $n$ is determined by the absolute value of the degree of the cohomology class *chcm-clss*. In this $\\mathbb{Z}/2\\mathbb{Z}$ case, $\\chi$ is even not a cocycle. The actual cocycle is obtained by the composition $p \\circ \\chi$, $p$ being the canonical projection $\\mathbb{Z} \\longrightarrow \\mathbb{Z}/{2 \\mathbb{Z}}$. But the user is not concerned by these technicalities, because the function `z2-whitehead` makes itself the necessary conversion. The slot `sintr` of the fibration is set by the internal function `z2-whitehead-sintr` which builds in an efficient way the lisp function implementing the twisting operator $\\tau \\circ \\varphi_\\chi$.\n", + "\n", + "### Examples\n", + "\n", + "Let us retrieve some known facts about $S^3$, in particular $\\pi_4(S^3) \\simeq \\mathbb{Z}/{2 \\mathbb{Z}}$. We follow the theoritical method exposed above, namely build the fibration\n", + "$$K(\\mathbb{Z},2) \\quad \\hookrightarrow\\quad S^3 \\times_{\\tau_\\chi} K(\\mathbb{Z},2) \\hskip 1.2em \\longrightarrow \\hskip -1.2em \\longrightarrow\\quad S^3,$$\n", + "and get the homology group in dimension 4 of the total space." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K1 Simplicial-Set]" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def s3 (sphere 3))" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Computing boundary-matrix in dimension 0.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 0) :\n", + "* \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 1.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 0 :\n", + "\n", + "\n", + "Component Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 1.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 2.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 1 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 2.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 3.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 3) :\n", + "S3 \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 2 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 3.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 3) :\n", + "S3 \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 4.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 3 :\n", + "\n", + "\n", + "Component Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(homology s3 0 4)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K12 Cohomology-Class on K1 of degree 3]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def s3-chml-clss (chml-clss s3 3))" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K37 Fibration K1 -> K25]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def s3-fibr (z-whitehead s3 s3-chml-clss))" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K43 Simplicial-Set]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def s3-total (fibration-total s3-fibr))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Computing boundary-matrix in dimension 0.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 0) :\n", + ">> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 1.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 0 :\n", + "\n", + "\n", + "Component Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 1.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 2.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 2) :\n", + ">> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 1 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 2.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 2) :\n", + ">> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 3.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 3) :\n", + ">> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 2 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 3.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 3) :\n", + ">> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 4.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 4) :\n", + ">> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 3 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 4.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 4) :\n", + ">> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 5.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 5) :\n", + ">> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 4 :\n", + "\n", + "\n", + "Component Z/2Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 5.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 5) :\n", + ">> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 6.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 6) :\n", + ">> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 5 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(homology s3-total 0 6)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us show a similar example with the space $Moore(2,4)$. As $H_4 \\simeq \\mathbb{Z}/{2 \\mathbb{Z}}$, the function for building the fibration is `z2-whitehead`. We verify that $\\pi_5(Moore(2,4))\\simeq \\mathbb{Z}/{2 \\mathbb{Z}}$" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "---done---" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(cat-init)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K1 Simplicial-Set]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def m24 (moore 2 4))" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "Dimension = 0:\n", + "\n", + " Vertices : (*)\n", + "\n", + "Dimension = 1:\n", + "\n", + "Dimension = 2:\n", + "\n", + "Dimension = 3:\n", + "\n", + "Dimension = 4:\n", + "\n", + " Simplex : M4\n", + "\n", + " Faces : ( )\n", + "\n", + "Dimension = 5:\n", + "\n", + " Simplex : N5\n", + "\n", + " Faces : ( )\n", + "\n", + "Dimension = 6:" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(show-structure m24 6)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Computing boundary-matrix in dimension 0.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 0) :\n", + "* \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 1.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 0 :\n", + "\n", + "\n", + "Component Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 1.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 2.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 1 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 2.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 3.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 2 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 3.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 4.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 4) :\n", + "M4 \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 3 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 4.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 4) :\n", + "M4 \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 5.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 5) :\n", + "N5 \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 4 :\n", + "\n", + "\n", + "Component Z/2Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(homology m24 0 5)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K12 Cohomology-Class on K1 of degree 4]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def m24-chml-clss (chml-clss m24 4))" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K49 Fibration K1 -> K37]" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def m24-fibr (z2-whitehead m24 m24-chml-clss))" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K55 Simplicial-Set]" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def m24-total (fibration-total m24-fibr))" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Computing boundary-matrix in dimension 0.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 0) :\n", + ">> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 1.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 0 :\n", + "\n", + "\n", + "Component Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 1.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 2.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 1 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 2.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 3.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 3) :\n", + ">]>>> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 2 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 3.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 3) :\n", + ">]>>> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 4.\n", + "Rank of the source-module : 2.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/2 (dimension 4) :\n", + ">]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 2/2 (dimension 4) :\n", + ">> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 3 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 4.\n", + "Rank of the source-module : 2.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/2 (dimension 4) :\n", + ">]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 2/2 (dimension 4) :\n", + ">> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 5.\n", + "Rank of the source-module : 3.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/3 (dimension 5) :\n", + ">]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 2/3 (dimension 5) :\n", + ">]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 3/3 (dimension 5) :\n", + ">> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 4 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 5.\n", + "Rank of the source-module : 3.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/3 (dimension 5) :\n", + ">]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 2/3 (dimension 5) :\n", + ">]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 3/3 (dimension 5) :\n", + ">> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 6.\n", + "Rank of the source-module : 4.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/4 (dimension 6) :\n", + ">]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 2/4 (dimension 6) :\n", + ">]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 3/4 (dimension 6) :\n", + ">]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 4/4 (dimension 6) :\n", + ">][3 <>]>>> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 5 :\n", + "\n", + "\n", + "Component Z/2Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(homology m24-total 0 6)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We may even verify that, up to 9, the homotopy groups of the classifying group $K(\\mathbb{Z},5)$, for instance, are null except $\\pi_5$. This is a far-fetched method to verify this well known result, but\n", + "it proves that the software is coherent." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K410 Abelian-Simplicial-Group]" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def k5 (k-z 5))" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K935 Cohomology-Class on K920 of degree 5]" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def k5-chml-clss (chml-clss k5 5))" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K938 Fibration K410 -> K398]" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def k5-fibr (z-whitehead k5 k5-chml-clss)) " + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K939 Kan-Simplicial-Set]" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def k5-total (fibration-total k5-fibr))" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Computing boundary-matrix in dimension 0.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 0) :\n", + "> <>> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 1.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 0 :\n", + "\n", + "\n", + "Component Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 1.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 2.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 1 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 2.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 3.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 2 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 3.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 4.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 4) :\n", + "> <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 3 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 4.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 4) :\n", + "> <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 5.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 5) :\n", + ">]>>]>>]>> <>> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 4 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 5.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 5) :\n", + ">]>>]>>]>> <>> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 6.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 6) :\n", + "> <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 5 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 6.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/1 (dimension 6) :\n", + "> <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 7.\n", + "Rank of the source-module : 2.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/2 (dimension 7) :\n", + "> <>][3 <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 2/2 (dimension 7) :\n", + ">]>>]>>]>> <>> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 6 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 7.\n", + "Rank of the source-module : 2.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/2 (dimension 7) :\n", + "> <>][3 <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 2/2 (dimension 7) :\n", + ">]>>]>>]>> <>> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 8.\n", + "Rank of the source-module : 3.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/3 (dimension 8) :\n", + "> <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 2/3 (dimension 8) :\n", + "> <>]>>][4 <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 3/3 (dimension 8) :\n", + ">][3 <>]>>]>>]>> <>> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 7 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 8.\n", + "Rank of the source-module : 3.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/3 (dimension 8) :\n", + "> <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 2/3 (dimension 8) :\n", + "> <>]>>][4 <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 3/3 (dimension 8) :\n", + ">][3 <>]>>]>>]>> <>> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 9.\n", + "Rank of the source-module : 5.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 1/5 (dimension 9) :\n", + "> <>][5 <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 21s.\n", + "Computing the boundary of the generator 2/5 (dimension 9) :\n", + "> <>][3 <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 22s.\n", + "Computing the boundary of the generator 3/5 (dimension 9) :\n", + ">]>>]>>]>> <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 22s.\n", + "Computing the boundary of the generator 4/5 (dimension 9) :\n", + ">]>>]>>]>> <>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 22s.\n", + "Computing the boundary of the generator 5/5 (dimension 9) :\n", + ">]>>][4 <>]>>]>>]>> <>> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 8 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 22s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 9.\n", + "Rank of the source-module : 5.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 22s.\n", + "Computing the boundary of the generator 1/5 (dimension 9) :\n", + "> <>][5 <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 22s.\n", + "Computing the boundary of the generator 2/5 (dimension 9) :\n", + "> <>][3 <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 22s.\n", + "Computing the boundary of the generator 3/5 (dimension 9) :\n", + ">]>>]>>]>> <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 22s.\n", + "Computing the boundary of the generator 4/5 (dimension 9) :\n", + ">]>>]>>]>> <>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 22s.\n", + "Computing the boundary of the generator 5/5 (dimension 9) :\n", + ">]>>][4 <>]>>]>>]>> <>> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 10.\n", + "Rank of the source-module : 7.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 22s.\n", + "Computing the boundary of the generator 1/7 (dimension 10) :\n", + "> <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 22s.\n", + "Computing the boundary of the generator 2/7 (dimension 10) :\n", + "> <>][3 <>][3 <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 22s.\n", + "Computing the boundary of the generator 3/7 (dimension 10) :\n", + "> <>]>>][6 <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 22s.\n", + "Computing the boundary of the generator 4/7 (dimension 10) :\n", + "> <>]>>][4 <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 22s.\n", + "Computing the boundary of the generator 5/7 (dimension 10) :\n", + ">][5 <>]>>]>>]>> <>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 23s.\n", + "Computing the boundary of the generator 6/7 (dimension 10) :\n", + ">][3 <>]>>]>>]>> <>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 23s.\n", + "Computing the boundary of the generator 7/7 (dimension 10) :\n", + ">]>>]>>][5 <>]>>]>>]>> <>> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 9 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 23s.\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(homology k5-total 0 10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us show now the iteration of the process, to get for instance $\\pi_5(S^3)$ and $\\pi_6(S^3)$:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "---done---" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(cat-init)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K1 Simplicial-Set]" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def s3 (sphere 3))" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K12 Cohomology-Class on K1 of degree 3]" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def s3-chml-clss (chml-clss s3 3))" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K37 Fibration K1 -> K25]" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def s3-fibration (z-whitehead s3 s3-chml-clss))" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K43 Simplicial-Set]" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def s3-4 (fibration-total s3-fibration))" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Computing boundary-matrix in dimension 4.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 23s.\n", + "Computing the boundary of the generator 1/1 (dimension 4) :\n", + ">> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 5.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 23s.\n", + "Computing the boundary of the generator 1/1 (dimension 5) :\n", + ">> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 4 :\n", + "\n", + "\n", + "Component Z/2Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 23s.\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(homology s3-4 4)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K253 Cohomology-Class on K238 of degree 4]" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def s3-4-chml-clss (chml-clss s3-4 4))" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K292 Fibration K43 -> K278]" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def s3-4-fibration (z2-whitehead s3-4 s3-4-chml-clss))" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K298 Simplicial-Set]" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def s3-5 (fibration-total s3-4-fibration))" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Computing boundary-matrix in dimension 5.\n", + "Rank of the source-module : 4.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 1/4 (dimension 5) :\n", + ">> <>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 2/4 (dimension 5) :\n", + ">> <>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 3/4 (dimension 5) :\n", + ">> <>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 4/4 (dimension 5) :\n", + ">> <>> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 6.\n", + "Rank of the source-module : 7.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 1/7 (dimension 6) :\n", + ">> <>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 2/7 (dimension 6) :\n", + ">> <>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 3/7 (dimension 6) :\n", + ">> <>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 4/7 (dimension 6) :\n", + ">> <>][3 <>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 5/7 (dimension 6) :\n", + ">> <>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 6/7 (dimension 6) :\n", + ">> <>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 7/7 (dimension 6) :\n", + ">> <>> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 5 :\n", + "\n", + "\n", + "Component Z/2Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(homology s3-5 5)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K609 Cohomology-Class on K594 of degree 5]" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def s3-5-chml-clss (chml-clss s3-5 5))" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K624 Fibration K298 -> K610]" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def s3-5-fibration (z2-whitehead s3-5 s3-5-chml-clss))" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K630 Simplicial-Set]" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def s3-6 (fibration-total s3-5-fibration))" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Computing boundary-matrix in dimension 6.\n", + "Rank of the source-module : 10.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 1/10 (dimension 6) :\n", + ">> <>> <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 2/10 (dimension 6) :\n", + ">> <>> <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 3/10 (dimension 6) :\n", + ">> <>> <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 4/10 (dimension 6) :\n", + ">> <>]>>> <>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 5/10 (dimension 6) :\n", + ">> <>]>>> <>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 6/10 (dimension 6) :\n", + ">> <>]>>> <>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 7/10 (dimension 6) :\n", + ">> <>][3 <>]>>> <>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 8/10 (dimension 6) :\n", + ">> <>]>>> <>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 9/10 (dimension 6) :\n", + ">> <>]>>> <>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 10/10 (dimension 6) :\n", + ">> <>> <>> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 7.\n", + "Rank of the source-module : 19.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 1/19 (dimension 7) :\n", + ">> <>> <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 2/19 (dimension 7) :\n", + ">> <>> <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 3/19 (dimension 7) :\n", + ">> <>> <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 4/19 (dimension 7) :\n", + ">> <>> <>][3 <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 5/19 (dimension 7) :\n", + ">> <>> <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 6/19 (dimension 7) :\n", + ">> <>]>>> <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 7/19 (dimension 7) :\n", + ">> <>> <>]>>]>>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 8/19 (dimension 7) :\n", + ">> <>]>>> <>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 9/19 (dimension 7) :\n", + ">> <>]>>> <>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 10/19 (dimension 7) :\n", + ">> <>]>>> <>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 11/19 (dimension 7) :\n", + ">> <>]>>> <>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 12/19 (dimension 7) :\n", + ">> <>]>>> <>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 13/19 (dimension 7) :\n", + ">> <>][4 <>]>>> <>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 14/19 (dimension 7) :\n", + ">> <>][3 <>]>>> <>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 15/19 (dimension 7) :\n", + ">> <>]>>> <>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 16/19 (dimension 7) :\n", + ">> <>]>>> <>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 17/19 (dimension 7) :\n", + ">> <>]>>> <>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 24s.\n", + "Computing the boundary of the generator 18/19 (dimension 7) :\n", + ">> <>]>>> <>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 25s.\n", + "Computing the boundary of the generator 19/19 (dimension 7) :\n", + ">> <>> <>> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 6 :\n", + "\n", + "\n", + "Component Z/12Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 29s.\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(homology s3-6 6)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "An interesting example is given by the real projective space $P^\\infty\\mathbb{R}/P^1\\mathbb{R}$ which may be built in `Kenzo` by the function `r-proj-space`. We list its first homotopy groups." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "---done---" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(cat-init)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K1 Simplicial-Set]" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def x (r-proj-space 2))" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Computing boundary-matrix in dimension 0.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 29s.\n", + "Computing the boundary of the generator 1/1 (dimension 0) :\n", + "0 \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 1.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 29s.\n", + "Computing the boundary of the generator 1/1 (dimension 1) :\n", + "1 \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 0 :\n", + "\n", + "\n", + "Component Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 29s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 1.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 29s.\n", + "Computing the boundary of the generator 1/1 (dimension 1) :\n", + "1 \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 2.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 1 :\n", + "\n", + "\n", + "Component Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 29s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 2.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 3.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 2 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 29s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 3.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 4.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 3 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 29s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 4.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 5.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 4 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 29s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 5.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 6.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 5 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 29s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 6.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 7.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 6 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 29s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 7.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 8.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 7 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 29s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 8.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 9.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 8 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 29s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 9.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 10.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 9 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-25, 20h 16m 29s.\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(homology x 0 10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using the machinery described in this chapter, we find that the total space of the fibration has the same homology groups as $S^3$. It has been effectively proved that this space is homotopic to $S^3$." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "SIMPLE-ERROR: \n", + "In CHML-CLSS, the cohomology-ring \n", + "is null.\n" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def ch (chml-clss x 2))" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "TYPE-ERROR: \n", + " #\n" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def f2 (z-whitehead x ch))" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "TYPE-ERROR: \n", + " #\n" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def x3 (fibration-total f2))" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "SIMPLE-ERROR: \n", + "There is no applicable method for the generic function #when called with arguments (NIL 0 10).\n" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(homology x3 0 10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Lisp files concerned in this chapter\n", + "\n", + "`whitehead.lisp`, `smith.lisp`." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "SBCL Lisp", + "language": "lisp", + "name": "lisp" + }, + "language_info": { + "codemirror_mode": "text/x-common-lisp", + "mimetype": "text/x-common-lisp", + "name": "common-lisp", + "pygments_lexer": "common-lisp", + "version": "X3J13" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +}