{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "To load \"kenzo\":\n", " Load 1 ASDF system:\n", " kenzo\n", "; Loading \"kenzo\"\n", "\n" ] }, { "data": { "text/plain": [ "#" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(ql:quickload \"kenzo\")\n", "(in-package :cat)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Eilenberg-Moore spectral sequence II\n", "\n", "## Introduction\n", "\n", "This chapter is devoted to the effective homology version of the spectral sequence of Eilenberg-Moore, in the particular case of classifying spaces. More precisely, let ${\\cal G}$ be a simplicial group; then its classifying space $\\bar{\\cal W}{\\cal G}$ is a simplicial set canonically defined (**J. Peter May**. *Simplicial objects in algebraic topology*, Van Nostrand, 1967.). Furthermore, if ${\\cal G}$ is an Abelian simplicial group, then $\\bar{\\cal W}{\\cal G}$ is again an Abelian simplicial group with natural structure, so that the $\\bar{\\cal W}$ construction can be iterated. The $\\bar{\\cal W}$ construction is implemented in `Kenzo` only if ${\\cal G}$ is reduced (${\\cal G}_0$ has only one element). In particular if ${\\cal G}$ is a simplicial group with effective homology, then `Kenzo` constructs a version of $\\bar{\\cal W}{\\cal G}$ also with effective homology.\n", "\n", "## The detailed construction\n", "\n", "Let ${\\cal G}$ be a simplicial group with effective homology. This means that a homotopy equivalence:\n", "$$\\begin{aligned}\n", " & \\qquad\\hat{C}_* \\cr\n", " \\swarrow\\nearrow & & \\searrow\\nwarrow\\qquad \\cr\n", "{\\cal C}_*({\\cal G}) & & EG_* \\cr\n", "\\end{aligned}$$ \n", "is provided, where the chain complex $EG_*$ is effective and must be considered as describing the homology of ${\\cal C}_*({\\cal G})$. This scheme includes the case where ${\\cal C}_*({\\cal G})$ itself is effective; without any other information, the program constructs automatically a trivial homotopy equivalence.\n", "\n", "Now, if we apply the *Bar* functor to this homotopy equivalence we obtain the homotopy equivalence $H_R$:\n", "$$\\begin{aligned}\n", " &\\qquad{\\widetilde{Bar}}^{\\hat{ C}_*} \\cr\n", " \\swarrow\\nearrow & & \\searrow\\nwarrow\\qquad \\cr\n", "Bar^{{\\cal C}_*({\\cal G})}(\\mathbb{Z}, \\mathbb{Z}) & & {\\widetilde{Bar}}^{EG_*}(\\mathbb{Z}, \\mathbb{Z}) \\cr\n", "\\end{aligned}$$\n", "in which the $\\widetilde{Bar}$'s are Bars constructions with respect to the $A_\\infty$ structure on $\\hat{C}_*$ and $EG_*$ defined by the initial homotopy equivalence.\n", "\n", "By analogy with the result of Julio Rubio (**J.J. Rubio-Garcia**. *Homologie effective des espaces de lacets iteres: un logiciel*, These, Institut Fourier, 1991.) one may show that it is possible to construct another homotopy equivalence, $H_L$:\n", "$$\\begin{aligned}\n", " & \\qquad Bar^{{\\cal C}_*({\\cal G})}({\\cal C}_*(\\bar{\\cal W}{\\cal G})\\otimes_t {\\cal C}_*({\\cal G}),\\mathbb{Z}) \\cr\n", " \\swarrow\\nearrow & & \\searrow\\nwarrow\\qquad \\cr\n", " {\\cal C}_*(\\bar{\\cal W}{\\cal G}) & & Bar^{{\\cal C}_*({\\cal G})}(\\mathbb{Z}, \\mathbb{Z}) \\cr\n", "\\end{aligned}$$\n", "Both reductions of $H_L$ are obtained by the basic perturbation lemma, as explained in the following section. The composition of both homotopy equivalences, $H_L$ and $H_R$, makes the link between $\\bar{\\cal W}{\\cal G}$, the classifying space of the simplicial group ${\\cal G}$ and the effective right bottom chain complex of $H_R$.\n", "\n", "## Obtaining the left reduction $H_L$\n", "\n", "The homotopy equivalence $H_L$ is obtained by a sequence of intermediate constructions based mainly upon two applications of the basic perturbation lemma. We are led to consider the two following modules:\n", "- ${\\cal C}_*({\\cal G})$ module on itself, with the canonical product.\n", "$${\\cal C}_*({\\cal G})\\otimes {\\cal C}_*({\\cal G})\\stackrel {\\Pi}{\\longrightarrow} {\\cal C}_*({\\cal G}).$$\n", "- ${\\check{\\cal C}}_*({\\cal G})$, module on ${\\cal C}_*({\\cal G})$, with a \"trivial\" product $${\\check{\\cal C}}_*({\\cal G})\\otimes{\\cal C}_*({\\cal G}) \\stackrel {\\check{\\Pi}}{\\longrightarrow} {\\check{\\cal C}}_*({\\cal G})$$ defined by $$\\sigma \\otimes \\tau \\longmapsto \\sigma . \\varepsilon(\\tau),$$ where $\\varepsilon$ is the traditional augmentation of ${\\cal C}_*({\\cal G})$.\n", "\n", "Now, we consider the set of the followings Bars (where $u$ means *\"untwisted\"* and $t$ *\"twisted\"*):\n", "$$\\begin{aligned}\n", "{\\rm Hat}_{uu} &=& Bar^{{\\cal C}_*({\\cal G})}({\\cal C}_*(\\bar{\\cal W}{\\cal G})\\otimes {\\check{\\cal C}}_*({\\cal G}),\\mathbb{Z}),\\\\\n", "{\\rm Hat}_{ut} &=& Bar^{{\\cal C}_*({\\cal G})}({\\cal C}_*(\\bar{\\cal W}{\\cal G})\\otimes {\\cal C}_*({\\cal G}),\\mathbb{Z}),\\\\\n", "{\\rm Hat}_{tu} &=& Bar^{{\\cal C}_*({\\cal G})}({\\cal C}_*(\\bar{\\cal W}{\\cal G})\\otimes_t{\\check{\\cal C}}_*({\\cal G}),\\mathbb{Z}),\\\\\n", "{\\rm Hat}_{tt} &=& Bar^{{\\cal C}_*({\\cal G})}({\\cal C}_*(\\bar{\\cal W}{\\cal G})\\otimes_t {\\cal C}_*({\\cal G}),\\mathbb{Z}).\n", "\\end{aligned}$$\n", "\n", "One may always say that ${\\rm Hat}_{ut}$ is obtained from ${\\rm Hat}_{uu}$ by a perturbation $\\delta_r$ ($r$: right) induced by the discrepancy between the products in ${\\check{\\cal C}}_*({\\cal G})$ and ${\\cal C}_*({\\cal G})$ and that ${\\rm Hat}_{tu}$ is obtained from ${\\rm Hat}_{uu}$ by a perturbation $\\delta_l$ ($l$: left) induced by the twisted tensor product $\\otimes_t$. After that,\n", "${\\rm Hat}_{tt}$ is obtained from ${\\rm Hat}_{tu}$ by the perturbation $\\delta_r$ as well as, by commutativity, from ${\\rm Hat}_{ut}$ by the perturbation $\\delta_l$.\n", "\n", "This is shown in the following diagram (here, the arrows are not reductions, but denote the perturbations between the differential morphisms):\n", "$$\\begin{aligned} \n", " & \\qquad{\\rm Hat}_{uu} \\cr\n", " \\delta_l \\swarrow & & \\searrow \\delta_r \\cr\n", "{\\rm Hat}_{tu} & & {\\rm Hat}_{ut} \\cr\n", " \\delta_r \\searrow & & \\swarrow \\delta_l \\cr\n", " & \\qquad{\\rm Hat}_{tt} \\cr\n", "\\end{aligned}$$\n", "\n", "The underlying graded modules ${\\rm Hat}_{uu}$, ${\\rm Hat}_{ut}$, ${\\rm Hat}_{tu}$ and ${\\rm Hat}_{tt}$ are the same and the program keeps ${\\rm Hat}_{uu}$ as the underlying graded module for all the chain complexes. The differential perturbations are given by the formulas:\n", "$$\\begin{aligned}\n", "\\delta_l[(w\\otimes {\\check g}_0)\\otimes (g_1 \\otimes\\cdots\\otimes g_n)] &=&\n", "[d_{\\otimes t}(w\\otimes {\\check g}_0) - d_\\otimes (w\\otimes {\\check g}_0)] \\otimes (g_1 \\otimes\\cdots\\otimes g_n), \\\\\n", "\\delta_r[(w\\otimes {\\check g}_0)\\otimes (g_1 \\otimes\\cdots\\otimes g_n)] &=& \n", "w \\otimes(g_0 . g_1) \\otimes g_2 \\otimes\\cdots\\otimes g_n,\n", "\\end{aligned}$$\n", "where ${\\check g}_0 \\in {\\check {\\cal G}}_0,\\, g_i \\in {\\cal G},\\, w \\in \\bar{\\cal W}{\\cal G}.$\n", "\n", "Now, on the other hand, we know that there exists a reduction \n", "$${\\rm Hat}_{ut} = Bar^{{\\cal C}_*({\\cal G})}({\\cal C}_*(\\bar{\\cal W}{\\cal G})\\otimes \n", "{\\cal C}_*({\\cal G}),\\mathbb{Z}) \\Longrightarrow {\\cal C}_*(\\bar{\\cal W}{\\cal G}),$$ \n", "so, perturbing this reduction by $\\delta_l$, one obtains the Rubio reduction\n", "$${\\rm Hat}_{tt}=Bar^{{\\cal C}_*({\\cal G})}({\\cal C}_*(\\bar{\\cal W}{\\cal G})\\otimes_t \n", "{\\cal C}_*({\\cal G}),\\mathbb{Z}) \\Longrightarrow {\\cal C}_*(\\bar{\\cal W}{\\cal G}).$$\n", "On the other hand, we know also that there exists a reduction \n", "$${\\rm Hat}_{tu} = Bar^{{\\cal C}_*({\\cal G})}({\\cal C}_*(\\bar{\\cal W}{\\cal G})\\otimes_t \n", "{\\check{\\cal C}}_*({\\cal G}),\\mathbb{Z}) \\Longrightarrow\n", "Bar^{{\\cal C}_*({\\cal G})}(\\mathbb{Z}, \\mathbb{Z}),$$ \n", "so, perturbing this reduction by $\\delta_r$, one obtains the reduction \n", "$${\\rm Hat}_{tt}=Bar^{{\\cal C}_*({\\cal G})}({\\cal C}_*(\\bar{\\cal W}{\\cal G})\\otimes_t \n", "{\\cal C}_*({\\cal G}),\\mathbb{Z}) \\Longrightarrow Bar^{{\\cal C}_*({\\cal G})}(\\mathbb{Z}, \\mathbb{Z}).$$\n", "Finally, we have obtained the wished left homotopy equivalence $H_L$:\n", "$$\\begin{aligned}\n", " & \\qquad Bar^{{\\cal C}_*({\\cal G})}({\\cal C}_*(\\bar{\\cal W}{\\cal G})\\otimes_t {\\cal C}_*({\\cal G}),\\mathbb{Z}) \\cr\n", " \\swarrow\\nearrow & & \\searrow\\nwarrow \\qquad\\cr\n", " {\\cal C}_*(\\bar{\\cal W}{\\cal G}) & & Bar^{{\\cal C}_*({\\cal G})}(\\mathbb{Z}, \\mathbb{Z}) \\cr\n", "\\end{aligned}$$\n", "\n", "### The useful functions\n", "\n", "For the applications, the only function that the user must know is the function `classifying-space-efhm` which builds the final homotopy equivalence. But for the interested user, we give nevertheless a short description of all the functions involved in the described process.\n", "\n", "`classifying-space-efhm` *smgr* *[Function]*\n", "> From the simplicial group ${\\cal G}$ (0-reduced) with effective homology (here the argument *smgr*), build a homotopy equivalence giving an effective homology version of the classifying space $\\bar{\\cal W}{\\cal G}$ of ${\\cal G}$. This homotopy equivalence will be used by the homology function to compute the homology groups. In fact, due to the slot-unbound mechanism of CLOS, this function will be automatically called, as soon as the user requires a homology group for a classifying space.\n", "\n", "`cs-hat-u-u` *smgr* *[Function]*\n", "> Return the chain complex $Bar^{{\\cal C}_*({\\cal G})}({\\cal C}_*(\\bar{\\cal W}{\\cal G})\\otimes {\\check{\\cal C}}_*({\\cal G}),\\mathbb{Z})$. Because of the particular structure of ${\\check{\\cal C}}_*({\\cal G})$, this chain complex is nothing but $[{\\cal C}_*(\\bar{\\cal W}{\\cal G})\\otimes {\\check{\\cal C}}_*({\\cal G})]\\otimes Bar^{{\\cal C}_*({\\cal G})}(\\mathbb{Z},\\mathbb{Z}).$\n", "\n", "`cs-hat-right-perturbation` *smgr* *[Function]*\n", "> Return the morphism corresponding to the differential perturbation $\\delta_r$, induced by the discrepancy between the respective products in ${\\check{\\cal C}}_*({\\cal G})$ and in ${\\cal C}_*({\\cal G})$.\n", "\n", "`cs-hat-u-t` *smgr* *[Function]*\n", "> Return the chain complex $Bar^{{\\cal C}_*({\\cal G})}({\\cal C}_*(\\bar{\\cal W}{\\cal G})\\otimes {\\cal C}_*({\\cal G}),\\mathbb{Z})$ by applying the differential perturbation `hat-right-perturbation` upon the chain complex `hat-u-u` *smgr*. This is realized by the method `add`.\n", "\n", "`cs-hat-t-u` *smgr* *[Function]*\n", "> Return the chain complex $Bar^{{\\cal C}_*({\\cal G})}({\\cal C}_*(\\bar{\\cal W}{\\cal G})\\otimes_t {\\check{\\cal C}}_*({\\cal G}),\\mathbb{Z})$. Because of the particular structure of ${\\check{\\cal C}}_*({\\cal G})$, this chain complex is nothing but $[{\\cal C}_*(\\bar{\\cal W}{\\cal G})\\otimes_t {\\check{\\cal C}}_*({\\cal G})]\\otimes Bar^{{\\cal C}_*({\\cal G})}(\\mathbb{Z},\\mathbb{Z}),$ where the twisted tensor product is the botton chain complex of the Brown reduction of the fibration of the simplicial group.\n", "\n", "`cs-hat-left-perturbation` *smgr* *[Function]*\n", "> Return the morphism corresponding to the differential perturbation $\\delta_l$ induced by the twisted tensor product. This morphism is nothing but the tensor product of two morphisms: the perturbation morphism by-product of the Brown reduction of the fibration of the simplicial group and the identity morphism on $Bar^{{\\cal C}_*({\\cal G})}(\\mathbb{Z},\\mathbb{Z})$.\n", "\n", "`cs-left-hmeq-hat` *smgr* *[Function]*\n", "> Return the chain complex ${\\rm Hat}_{tt}=Bar^{{\\cal C}_*({\\cal G})}({\\cal C}_*(\\bar{\\cal W}{\\cal G})\\otimes_t {\\cal C}_*({\\cal G}),\\mathbb{Z})$ by perturbing the chain complex ${\\rm Hat}_{ut}$ by the perturbation $\\delta_l$.\n", "\n", "`cs-pre-left-hmeq-left-reduction` *smgr* *[Function]*\n", ">Build the reduction $${\\rm Hat}_{tu}=Bar^{{\\cal C}_*({\\cal G})}({\\cal C}_*(\\bar{\\cal W}{\\cal G})\\otimes {\\cal C}_*({\\cal G}),\\mathbb{Z}) \\Longrightarrow {\\cal C}_*(\\bar{\\cal W}{\\cal G}).$$ \n", "\n", "`cs-pre-left-hmeq-right-reduction` *smgr* *[Function]*\n", "> Build the reduction $${\\rm Hat}_{ut}=Bar^{{\\cal C}_*({\\cal G})}({\\check{\\cal C}}_*({\\cal G})\\otimes_t {\\cal C}_*(\\bar{\\cal W}{\\cal G}),\\mathbb{Z}) \\Longrightarrow Bar^{{\\cal C}_*({\\cal G})}(\\mathbb{Z}, \\mathbb{Z}).$$\n", "\n", "`cs-left-hmeq-left-reduction` *smgr* *[Function]*\n", "> Build the Rubio reduction $$Bar^{{\\cal C}_*({\\cal G})}({\\cal C}_*(\\bar{\\cal W}{\\cal G})\\otimes_t {\\cal C}_*({\\cal G}),\\mathbb{Z}) \\Longrightarrow{\\cal C}_*(\\bar{\\cal W}{\\cal G})$$ by perturbing by the perturbation $\\delta_r$ the reduction $${\\rm Hat}_{tu} \\Longrightarrow {\\cal C}_*(\\bar{\\cal W}{\\cal G})$$ obtained by the function {\\tt pre-left-hmeq-left-reduction}.\n", "\n", "`cs-left-hmeq-right-reduction` *smgr* *[Function]*\n", "> Build the reduction $$Bar^{{\\cal C}_*({\\cal G})}({\\cal C}_*(\\bar{\\cal W}{\\cal G})\\otimes_t {\\cal C}_*({\\cal G}),\\mathbb{Z}) \\Longrightarrow Bar^{{\\cal C}_*({\\cal G})}(\\mathbb{Z}, \\mathbb{Z})$$\n", "by perturbing by the perturbation $\\delta_l$ the reduction $${\\rm Hat}_{ut} \\Longrightarrow Bar^{{\\cal C}_*({\\cal G})}(\\mathbb{Z}, \\mathbb{Z})$$ obtained by the function `cs-pre-left-hmeq-right-reduction`.\n", "\n", "`cs-left-hmeq` *smgr* *[Function]*\n", "> Build the homotopy equivalence\n", "$$\\begin{aligned}\n", " &\\qquad Bar^{{\\cal C}_*({\\cal G})}({\\cal C}_*(\\bar{\\cal W}{\\cal G})\\otimes_t {\\cal C}_*({\\cal G}),\\mathbb{Z}) \\cr\n", " \\swarrow\\nearrow & & \\searrow\\nwarrow\\qquad \\cr\n", " {\\cal C}_*(\\bar{\\cal W}{\\cal G}) & & Bar^{{\\cal C}_*({\\cal G})}(\\mathbb{Z}, \\mathbb{Z}) \\cr\n", "\\end{aligned}$$\n", "from the above reductions. The function `classifying-space-efhm` composes this left homotopy equivalence $H_L$ with the homotopy equivalence $H_R$ which is the Bar of a pre-existing homotopy equivalence (possibly the trivial one) between the module ${\\cal G}$ and an effective version of it, as described at the beginning of this chapter.\n", "\n", "### Searching homology for classifying spaces\n", "\n", "The origin list of a classifying space object has the form `(CLASSIFYING-SPACE` *smgr*`)`. The `search-efhm` method applied to a classifying space object consists essentially in a call to the function `classifying-space-efhm` described just above.\n", "```commonlisp\n", "(defmethod SEARCH-EFHM (classifying-space (orgn (eql 'classifying-space)))\n", " (declare (type simplicial-set classifying-space))\n", " (classifying-space-efhm (second (orgn classifying-space))))\n", "```\n", "The following Lisp definition of the function `classifying-space-efhm` shows that the process may be recursive if it happens that *smrg* is itself a classifying space:\n", "```commonlisp\n", "(defun CLASSIFYING-SPACE-EFHM (smgr)\n", " (declare (type simplicial-group smgr))\n", " (let ((left-hmeq (cs-left-hmeq smgr))\n", " (right-hmeq (bar (efhm smgr))))\n", " (declare (type homotopy-equivalence left-hmeq right-hmeq))\n", " (cmps left-hmeq right-hmeq)))\n", "```\n", "\n", "### Examples" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[K1 Abelian-Simplicial-Group]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(def kz1 (k-z-1))" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "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 -> 2017-10-08, 12h 33m 7s.\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 : 1.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 1/1 (dimension 1) :\n", "S1 \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 -> 2017-10-08, 12h 33m 7s.\n", "\n", "\n", "Computing boundary-matrix in dimension 1.\n", "Rank of the source-module : 1.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 1/1 (dimension 1) :\n", "S1 \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 -> 2017-10-08, 12h 33m 7s.\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 -> 2017-10-08, 12h 33m 7s.\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 -> 2017-10-08, 12h 33m 7s.\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 -> 2017-10-08, 12h 33m 7s.\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 -> 2017-10-08, 12h 33m 7s.\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 -> 2017-10-08, 12h 33m 7s.\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 -> 2017-10-08, 12h 33m 7s.\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 -> 2017-10-08, 12h 33m 7s.\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 -> 2017-10-08, 12h 33m 7s.\n", "\n" ] }, { "data": { "text/plain": [ "NIL" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(homology kz1 0 10)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[K23 Abelian-Simplicial-Group]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(def bkz1 (classifying-space kz1))" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "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 -> 2017-10-08, 12h 33m 7s.\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 -> 2017-10-08, 12h 33m 7s.\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 -> 2017-10-08, 12h 33m 7s.\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 -> 2017-10-08, 12h 33m 7s.\n", "\n", "\n", "Computing boundary-matrix in dimension 2.\n", "Rank of the source-module : 1.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\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 : 0.\n", "\n", "\n", "\n", "\n", "Homology in dimension 2 :\n", "\n", "\n", "Component Z\n", "\n", "\n", "---done---\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\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 -> 2017-10-08, 12h 33m 7s.\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 -> 2017-10-08, 12h 33m 7s.\n", "\n", "\n", "Computing boundary-matrix in dimension 4.\n", "Rank of the source-module : 1.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\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 : 0.\n", "\n", "\n", "\n", "\n", "Homology in dimension 4 :\n", "\n", "\n", "Component Z\n", "\n", "\n", "---done---\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\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 : 1.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\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 -> 2017-10-08, 12h 33m 7s.\n", "\n", "\n", "Computing boundary-matrix in dimension 6.\n", "Rank of the source-module : 1.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\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 : 0.\n", "\n", "\n", "\n", "\n", "Homology in dimension 6 :\n", "\n", "\n", "Component Z\n", "\n", "\n", "---done---\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\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 : 1.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 1/1 (dimension 8) :\n", "<> \n", "End of computing.\n", "\n", "\n", "\n", "\n", "Homology in dimension 7 :\n", "\n", "\n", "\n", "---done---\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "\n", "\n", "Computing boundary-matrix in dimension 8.\n", "Rank of the source-module : 1.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 1/1 (dimension 8) :\n", "<> \n", "End of computing.\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", "Component Z\n", "\n", "\n", "---done---\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\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 : 1.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 1/1 (dimension 10) :\n", "<> \n", "End of computing.\n", "\n", "\n", "\n", "\n", "Homology in dimension 9 :\n", "\n", "\n", "\n", "---done---\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "\n" ] }, { "data": { "text/plain": [ "NIL" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(homology bkz1 0 10)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[K154 Simplicial-Group]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(def obkz1 (loop-space bkz1))" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "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 -> 2017-10-08, 12h 33m 7s.\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 : 1.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 1/1 (dimension 1) :\n", "<>]>> \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 -> 2017-10-08, 12h 33m 7s.\n", "\n", "\n", "Computing boundary-matrix in dimension 1.\n", "Rank of the source-module : 1.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 1/1 (dimension 1) :\n", "<>]>> \n", "End of computing.\n", "\n", "\n", "Computing boundary-matrix in dimension 2.\n", "Rank of the source-module : 1.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 1/1 (dimension 2) :\n", "<>][1 <>]>> \n", "End of computing.\n", "\n", "\n", "\n", "\n", "Homology in dimension 1 :\n", "\n", "\n", "Component Z\n", "\n", "\n", "---done---\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "\n", "\n", "Computing boundary-matrix in dimension 2.\n", "Rank of the source-module : 1.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 1/1 (dimension 2) :\n", "<>][1 <>]>> \n", "End of computing.\n", "\n", "\n", "Computing boundary-matrix in dimension 3.\n", "Rank of the source-module : 2.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 1/2 (dimension 3) :\n", "<>]>> \n", "End of computing.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 2/2 (dimension 3) :\n", "<>][1 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", "\n", "\n", "Homology in dimension 2 :\n", "\n", "\n", "\n", "---done---\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "\n", "\n", "Computing boundary-matrix in dimension 3.\n", "Rank of the source-module : 2.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 1/2 (dimension 3) :\n", "<>]>> \n", "End of computing.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 2/2 (dimension 3) :\n", "<>][1 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", "Computing boundary-matrix in dimension 4.\n", "Rank of the source-module : 3.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 1/3 (dimension 4) :\n", "<>][3 <>]>> \n", "End of computing.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 2/3 (dimension 4) :\n", "<>][1 <>]>> \n", "End of computing.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 3/3 (dimension 4) :\n", "<>][1 <>][1 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", "\n", "\n", "Homology in dimension 3 :\n", "\n", "\n", "\n", "---done---\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "\n", "\n", "Computing boundary-matrix in dimension 4.\n", "Rank of the source-module : 3.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 1/3 (dimension 4) :\n", "<>][3 <>]>> \n", "End of computing.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 2/3 (dimension 4) :\n", "<>][1 <>]>> \n", "End of computing.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 3/3 (dimension 4) :\n", "<>][1 <>][1 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", "Computing boundary-matrix in dimension 5.\n", "Rank of the source-module : 5.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 1/5 (dimension 5) :\n", "<>]>> \n", "End of computing.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 2/5 (dimension 5) :\n", "<>][1 <>][3 <>]>> \n", "End of computing.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 3/5 (dimension 5) :\n", "<>][3 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 4/5 (dimension 5) :\n", "<>][1 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 5/5 (dimension 5) :\n", "<>][1 <>][1 <>][1 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", "\n", "\n", "Homology in dimension 4 :\n", "\n", "\n", "\n", "---done---\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "\n", "\n", "Computing boundary-matrix in dimension 5.\n", "Rank of the source-module : 5.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 1/5 (dimension 5) :\n", "<>]>> \n", "End of computing.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 2/5 (dimension 5) :\n", "<>][1 <>][3 <>]>> \n", "End of computing.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 3/5 (dimension 5) :\n", "<>][3 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 4/5 (dimension 5) :\n", "<>][1 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 5/5 (dimension 5) :\n", "<>][1 <>][1 <>][1 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", "Computing boundary-matrix in dimension 6.\n", "Rank of the source-module : 8.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 1/8 (dimension 6) :\n", "<>][5 <>]>> \n", "End of computing.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 2/8 (dimension 6) :\n", "<>][3 <>]>> \n", "End of computing.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 3/8 (dimension 6) :\n", "<>][1 <>]>> \n", "End of computing.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 4/8 (dimension 6) :\n", "<>][1 <>][1 <>][3 <>]>> \n", "End of computing.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 5/8 (dimension 6) :\n", "<>][1 <>][3 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 6/8 (dimension 6) :\n", "<>][3 <>][1 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 7/8 (dimension 6) :\n", "<>][1 <>][1 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 7s.\n", "Computing the boundary of the generator 8/8 (dimension 6) :\n", "<>][1 <>][1 <>][1 <>][1 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", "\n", "\n", "Homology in dimension 5 :\n", "\n", "\n", "\n", "---done---\n", "\n", ";; Clock -> 2017-10-08, 12h 33m 8s.\n", "\n" ] }, { "data": { "text/plain": [ "NIL" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(homology obkz1 0 6)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Lisp files concerned in this chapter\n", "\n", "`cs-space-efhm.lisp`, `searching-homology.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": 1 }