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

1814 lines
49 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Serre spectral sequence\n",
"\n",
"## Introduction\n",
"\n",
"This chapter is devoted to the `Kenzo` implementation of the Serre spectral sequence with the aim to compute the homology groups of the total space of a fibration. From the programming point of view, this method will be used according to our general scheme of searching homology (generic function `search-efhm`) applied to an object of type `fibration-total`.\n",
"\n",
"## The topological problem\n",
"\n",
"Let ${\\cal G}$ be a simplicial group (the fiber space), $B$, a 1-reduced simplicial set (the base space) and $\\tau$ (the fibration), a simplicial morphism of degree $-1$, $\\tau: B \\longrightarrow {\\cal G}$. We know, from a previous chapter (fibrations) that the software `Kenzo` knows how to build the total space of the fibration: $B \\times_\\tau {\\cal G}$, which has the same simplices as $B \\times {\\cal G}$ and the same face operators except the last one, given by:\n",
"$$\n",
"\\partial_n(b,g) = (\\partial_n b, \\tau(b).\\partial_n g), \\quad b\\in B, g \\in {\\cal G},\n",
"$$\n",
"where the '`.`' denotes the group operation in ${\\cal G}$. This discrepancy between the respective face operators $\\partial_n$ induces a discrepancy between the differential operators. We suppose now, that the base and fiber spaces are objects of effective homology type, i.e. there exists homotopy equivalences\n",
"$$\n",
"\\begin{aligned}\n",
" & \\qquad\\widehat{B} & & & & \\qquad\\widehat{\\cal G} & & \\cr\n",
" \\rho_1 \\swarrow\\nearrow & & \\searrow\\nwarrow \\rho_2 &\\quad & \\rho'_1\\swarrow\\nearrow & & \\searrow\\nwarrow\\rho'_2 & \\cr\n",
"B & & EB & & {\\cal G} & & EG \\cr\n",
"\\end{aligned}\n",
"$$\n",
"where the chain complexes $EB$ and $EG$ are effective. The problem consists in finding a homotopy equivalence between $B \\times_\\tau {\\cal G}$ and an effective chain complex noted $EB \\widetilde{\\otimes} EG$; the underlying graded module of $EB \\widetilde{\\otimes} EG$ is $EB \\otimes EG$ but the differential is twisted in a rather complicated way. In fact, the chain complex $EB \\widetilde{\\otimes} EG$ is nothing but the Hirsh complex (**Guy Hirsh.** `Sur les groupes d'homologie des espaces fibres`, Bulletin de la Societe Mathematique de Belgique, 1954, vol. 6, pp. 79-96.).\n",
"\n",
"### The Ronald Brown reduction\n",
"\n",
"We start from the Eilenberg-Zilber reduction (built in `Kenzo` by the function `ez`).\n",
"$$\n",
"\\begin{aligned}\n",
"{{\\cal C}_*(B \\times {\\cal G})} & \\qquad\\stackrel{h}{\\longrightarrow} & {}^s{{\\cal C}_*(B \\times {\\cal G})} \\cr\n",
" {\\scriptstyle f} \\downarrow \\uparrow {\\scriptstyle g} & & \\cr\n",
" {{\\cal C}_*(B) \\otimes {\\cal C}_*({\\cal G})} & &\\cr\n",
"\\end{aligned}\n",
"$$\n",
"But, in fact we are interested in the following one (the Ronald Brown reduction):\n",
"$$\n",
"\\begin{aligned}\n",
"{{\\cal C}_*(B \\times_\\tau {\\cal G})} & \\qquad\\stackrel{h}{\\longrightarrow} & {}^s{{\\cal C}_*(B \\times_\\tau {\\cal G})} \\cr\n",
" {\\scriptstyle f} \\downarrow \\uparrow {\\scriptstyle g} & & \\cr\n",
" {{\\cal C}_*(B) \\otimes_t {\\cal C}_*({\\cal G})} & &\\cr\n",
"\\end{aligned}\n",
"$$\n",
"where the symbol $\\otimes_t$ represents a *twisted tensor product*, induced by the twisting operator $\\tau$; this twisting operator is nothing but the Shih twisting cochain (**Gugenheim.**, *On the chain complex of a fibration*. Illinois Journal of Mathematics, 1972, vol. 16, pp. 398-414.) determined by Szczarba (**R. H. Szczarba.** *The homology of twisted cartesian products*. Transactions of the American Mathematical Society, 1961, vol. 100, pp. 197-216.). Here, to obtain the Szczarba cochain, we apply the perturbation lemma (Ronnie Brown). In effect, writing \n",
"$$ d_\\tau = d + (d_\\tau -d),$$\n",
"one may consider that the differential $d_\\tau$ of $B \\times_\\tau {\\cal G}$ is the differential $d$ of $B \\times {\\cal G}$ modified by the perturbation $d_\\tau - d$. The perturbation morphism $d_\\tau -d$ is deduced from the difference between both $\\partial_n$ face operators. This being done, a perturbation may possibly be propagated along the Eilenberg-Zilber reduction (see the method `add` applied to a reduction) and the perturbation lemma gives also, as a bonus, the perturbation to be applied to the differential of $B \\otimes {\\cal G}$ to obtain the differential of $B \\otimes_t {\\cal G}$.\n",
"\n",
"### The Gugenheim algorithm\n",
"\n",
"On the other hand, from the homotopy equivalences\n",
"$$\n",
"\\begin{aligned}\n",
" & \\qquad\\widehat{B} & & & & \\qquad\\widehat{\\cal G} & & \\cr\n",
" \\rho_1 \\swarrow\\nearrow & & \\searrow\\nwarrow \\rho_2 &\\quad & \\rho'_1\\swarrow\\nearrow & & \\searrow\\nwarrow\\rho'_2 & \\cr\n",
"B & & EB & & {\\cal G} & & EG \\cr\n",
"\\end{aligned}\n",
"$$\n",
"it is possible to build their tensor product, i.e. the homotopy equivalence:\n",
"$$\n",
"\\begin{aligned}\n",
" & \\qquad\\widehat{B}\\otimes \\widehat{\\cal G} & \\cr\n",
" \\swarrow\\nearrow & & \\searrow\\nwarrow \\qquad\\cr\n",
"B\\otimes {\\cal G} & & EB \\otimes EG \\cr\n",
"\\end{aligned}\n",
"$$\n",
"This is done in `Kenzo` by the method `tnsr-prdc`.\n",
"In fact, we are interested in the following one:\n",
"$$\n",
"\\begin{aligned}\n",
" & \\qquad\\widehat{B}\\widetilde{\\otimes}\\widehat{\\cal G} & \\cr\n",
" \\swarrow\\nearrow & & \\searrow\\nwarrow \\qquad\\cr\n",
"B\\otimes_t {\\cal G} & & EB \\widetilde{\\otimes} EG \\cr\n",
"\\end{aligned}\n",
"$$\n",
"where $\\widehat{B}\\widetilde{\\otimes}\\widehat{\\cal G}$ and $EB \\widetilde{\\otimes} EG$ are appropriate strongly twisted tensor products determined by the perturbation lemma: this last homotopy equivalence is obtained by propagating over the previous one, the perturbation to be applied to the differential of $B \\otimes {\\cal G}$ to obtain the differential of $B \\otimes_t {\\cal G}$. The homotopy equivalence so obtained is called in `Kenzo` the *right Serre homotopy equivalence*.\n",
"\n",
"### Assembling the puzzle\n",
"\n",
"Let us build now the so-called *left Serre homotopy equivalence*, \n",
"$$\n",
"\\begin{aligned}\n",
" & \\qquad B\\times_\\tau{\\cal G} & \\cr\n",
" \\swarrow\\nearrow & & \\searrow\\nwarrow \\qquad\\cr\n",
"B\\times_\\tau {\\cal G} & & B\\otimes_t {\\cal G} \\cr\n",
"\\end{aligned}\n",
"$$\n",
"where the left reduction is the trivial one and the right reduction is the Brown reduction. We may then compose both Serre homotopy equivalences to obtain what we were looking for: \n",
"$$\n",
"\\begin{aligned}\n",
" & \\qquad B\\times_\\tau {\\cal G} & & &\\widehat{B}\\otimes_t\\widehat{\\cal G} \\qquad& & \\cr\n",
" \\rho_1 \\swarrow\\nearrow & & \\searrow\\nwarrow \\rho_2\\qquad &\\qquad\\rho'_1\\swarrow\\nearrow & & \\searrow\\nwarrow\\rho'_2 & \\cr\n",
"B\\times_\\tau {\\cal G} & &B\\otimes_t {\\cal G}\\quad &\\quad B\\otimes_t {\\cal G} & &EB \\otimes_t EG \\cr\n",
"\\end{aligned}\n",
"$$\n",
"\n",
"## The functions for the Serre spectral sequence\n",
"\n",
"The following functions are given for information purpose.\n",
"\n",
"`fibration-dtau-d-intr` *fibration* *[Function]*\n",
"> Build the lisp function corresponding to the difference $d_\\tau - d$, where $d$ is the differential in $B \\times {\\cal G}$ and $d_\\tau$ the differential in $B \\times_\\tau {\\cal G}$. This is an internal function and is used in the following one.\n",
"\n",
"`fibration-dtau-d` *fibration* *[Function]*\n",
"> Build the morphism $d_\\tau-d$, which is the perturbation morphism to be added to the differential $d$ of $B \\times {\\cal G}$ to obtain $d_\\tau$, the differential in $B \\times_\\tau {\\cal G}$. We recall that both simplicial sets have the same simplices. The source and the target of this morphism is the total space $B \\times_\\tau {\\cal G}$ and the degree is $-1$.\n",
"\n",
"`Brown-reduction` *fibration* *[Function]*\n",
"> Return two values: a) the Brown reduction and b) the perturbation to be applied to the differential of the tensor product $B \\otimes {\\cal G}$ to obtain the differential of the twisted tensor product $B \\otimes_t {\\cal G}$.\n",
"\n",
"`left-Serre-efhm` *fibration* *[Function]*\n",
"> Build the left Serre homotopy equivalence from the argument *fibration*.\n",
"\n",
"`right-Serre-efhm` *fibration* *[Function]*\n",
"> Build the right Serre homotopy equivalence from the argument *fibration*.\n",
"\n",
"## Searching homology for fibration total spaces\n",
"\n",
"The comment list of a `Kenzo` object which is the total space of a fibration has the form `(fibration-total` *fibration*`)`. The `search-efhm` method applied to a simplicial set having this kind of comment list, builds the composition of the left and right Serre homotopy equivalences. The right one needs the homotopy equivalences attached respectively to the base and fiber spaces. This may involve a recursive call of `search-efhm`. If the base space or the fiber space are locally effective, the total space is locally effective and the method cannot compute the homology.\n",
"```commonlisp\n",
"(defmethod SEARCH-EFHM (smst (orgn (eql 'fibration-total)))\n",
" (declare\n",
" (type simplicial-set smst))\n",
" (the homotopy-equivalence\n",
" (fibration-total-efhm (second (orgn smst)))))\n",
"\n",
"(defun FIBRATION-TOTAL-EFHM (fibration)\n",
" (declare (type fibration fibration))\n",
" (the homotopy-equivalence\n",
" (cmps (left-serre-efhm fibration)\n",
" (right-serre-efhm fibration))))\n",
"```\n",
"\n",
"### Examples\n",
"\n",
"We begin by some examples similar to examples that we have seen in the fibrations chapter. For the user, the delicate point is to write in Lisp a correct twisting operator. There is no check in this version of `Kenzo` for the coherency of the twisting operator. In the first example we define a fibration $\\tau: S^2 \\rightarrow K(\\mathbb{Z},1)$ with $\\tau(s2)= (2)$, then we build the total space of the fibration, namely $P^3\\mathbb{R}$, and we compute some known homology groups."
]
},
{
"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 sph2 (sphere 2))"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[K6 Abelian-Simplicial-Group]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def kz1 (k-z-1)) "
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"SIMPLE-STYLE-WARNING: \n",
" #<SB-INT:SIMPLE-STYLE-WARNING \"undefined ~(~A~): ~S\" {100548A733}>\n"
]
},
{
"data": {
"text/plain": [
"[K18 Fibration K1 -> K6]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def tw2 (build-smmr\n",
" :sorc sph2\n",
" :trgt kz1\n",
" :degr -1\n",
" :sintr #'(lambda (dmns gmsm)\n",
" (declare (ignore gmsm))\n",
" (unless (= dmns 2)\n",
" (error \"Dimension error for \n",
" the twisting operator S2-->KZ1\"))\n",
" (absm 0 (list 2)))\n",
" :orgn '(s2-tw-kz1)))"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<AbSm - (2)>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(? tw2 2 's2)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"SIMPLE-ERROR: \n",
"Dimension error for \n",
" the twisting operator S2-->KZ1\n"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(? tw2 0 '*)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[K24 Simplicial-Set]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def p3r (fibration-total tw2))"
]
},
{
"cell_type": "code",
"execution_count": 7,
"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-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 0) :\n",
"<TnPr * *> \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-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 1) :\n",
"<TnPr * 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 -> 2016-03-19, 23h 21m 7s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 1.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 1) :\n",
"<TnPr * S1> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 2.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 2) :\n",
"<TnPr S2 *> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 1 :\n",
"\n",
"\n",
"Component Z/2Z\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 2.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 2) :\n",
"<TnPr S2 *> \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-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 3) :\n",
"<TnPr S2 S1> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 2 :\n",
"\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 3.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 3) :\n",
"<TnPr S2 S1> \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-19, 23h 21m 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 -> 2016-03-19, 23h 21m 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 -> 2016-03-19, 23h 21m 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 -> 2016-03-19, 23h 21m 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 -> 2016-03-19, 23h 21m 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 -> 2016-03-19, 23h 21m 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 -> 2016-03-19, 23h 21m 7s.\n",
"\n"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(homology p3r 0 10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let us do the same kind of computations with $\\tau(s2)= (5)$ and $\\tau(s2)= (17)$."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"SIMPLE-STYLE-WARNING: \n",
" #<SB-INT:SIMPLE-STYLE-WARNING \"undefined ~(~A~): ~S\" {10062D7453}>\n"
]
},
{
"data": {
"text/plain": [
"[K110 Fibration K1 -> K6]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def tw5 (build-smmr\n",
" :sorc sph2\n",
" :trgt kz1\n",
" :degr -1\n",
" :sintr #'(lambda (dmns gmsm)\n",
" (declare (ignore dmns gmsm))\n",
" (absm 0 (list 5)))\n",
" :orgn '(s2-tw-kz1-5))) "
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[K111 Simplicial-Set]"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def total-5 (fibration-total tw5))"
]
},
{
"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-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 0) :\n",
"<TnPr * *> \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-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 1) :\n",
"<TnPr * 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 -> 2016-03-19, 23h 21m 7s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 1.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 1) :\n",
"<TnPr * S1> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 2.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 2) :\n",
"<TnPr S2 *> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 1 :\n",
"\n",
"\n",
"Component Z/5Z\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 2.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 2) :\n",
"<TnPr S2 *> \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-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 3) :\n",
"<TnPr S2 S1> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 2 :\n",
"\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 3.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 3) :\n",
"<TnPr S2 S1> \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-19, 23h 21m 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 -> 2016-03-19, 23h 21m 7s.\n",
"\n"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(homology total-5 0 5)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"SIMPLE-STYLE-WARNING: \n",
" #<SB-INT:SIMPLE-STYLE-WARNING \"undefined ~(~A~): ~S\" {10064D3923}>\n"
]
},
{
"data": {
"text/plain": [
"[K165 Fibration K1 -> K6]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def tw17 (build-smmr\n",
" :sorc sph2\n",
" :trgt kz1\n",
" :degr -1\n",
" :sintr #'(lambda (dmns gmsm)\n",
" (declare (ignore dmns gmsm))\n",
" (absm 0 (list 17)))\n",
" :orgn '(s2-tw-kz1-17)))"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[K166 Simplicial-Set]"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def total-17 (fibration-total tw17)) "
]
},
{
"cell_type": "code",
"execution_count": 13,
"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-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 0) :\n",
"<TnPr * *> \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-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 1) :\n",
"<TnPr * 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 -> 2016-03-19, 23h 21m 7s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 1.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 1) :\n",
"<TnPr * S1> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 2.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 2) :\n",
"<TnPr S2 *> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 1 :\n",
"\n",
"\n",
"Component Z/17Z\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 2.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 2) :\n",
"<TnPr S2 *> \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-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 3) :\n",
"<TnPr S2 S1> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 2 :\n",
"\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 3.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 3) :\n",
"<TnPr S2 S1> \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-19, 23h 21m 7s.\n",
"\n"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(homology total-17 0 4)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Using the last total space (`total-17`), it is instructive to enter in the details of the resulting homotopy equivalence that the system builds to compute the homology groups. First, the function `echcm` selects the **effective** chain complex of the homotopy equivalence, value of the slot `efhm` of the simplicial set `total-17`, and we may print some basis of this chain complex. In fact, all basis in dimension above 3 are null. The presence of the symbol `S1` is due to the fact that the effective chain complex used for the homology of $K(\\mathbb{Z},1)$ is the circle (see the classifying spaces chapter)."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[K205 Chain-Complex]"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def echcm (echcm total-17))"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"(<TnPr * *>) \n",
"(<TnPr * S1>) \n",
"(<TnPr S2 *>) \n",
"(<TnPr S2 S1>) \n",
"NIL \n",
"NIL "
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(dotimes (i 6) (print (basis echcm i)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The resulting homotopy equivalence built by the system, may be summarized by the diagram:\n",
"$$\n",
"\\begin{aligned}\n",
" &\\qquad\\qquad \\widehat{S^2\\times_\\tau K(\\mathbb{Z},1)} & \\cr\n",
" f\\swarrow\\nearrow & & \\searrow\\nwarrow g \\qquad\\qquad \\cr\n",
"S^2\\times_\\tau K(\\mathbb{Z},1) & & [K205\\, Chain\\, Complex] \\cr\n",
"\\end{aligned}\n",
"$$\n",
"where *f* and *g* are respectively the *descending* and *ascending* morphisms of the left and right reductions of the homotopy equivalence. We recall that these morphisms are obtained respectively by the functions `lf` and `rg`. We may\n",
"compose these morphisms to create a morphism `fg` from $[K205]$ to $S^2\\times_\\tau K(\\mathbb{Z},1)$ and see how it acts on the basis elements in dimension 1 and 2:"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[K220 Morphism (degree 0): K205 -> K166]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def fg (cmps (lf (efhm total-17)) (rg (efhm total-17))))"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<TnPr * S1>"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def gen1 (first (basis echcm 1)))"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 1}\n",
"<-1 * <CrPr 0 * - (1)>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(? fg 1 gen1)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<TnPr S2 *>"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def gen2 (first (basis echcm 2)))"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 2}\n",
"<-1 * <CrPr - S2 1-0 NIL>>\n",
"<-1 * <CrPr 1-0 * - (1 1)>>\n",
"<-1 * <CrPr 1-0 * - (1 2)>>\n",
"<-1 * <CrPr 1-0 * - (1 3)>>\n",
"<-1 * <CrPr 1-0 * - (1 4)>>\n",
"<-1 * <CrPr 1-0 * - (1 5)>>\n",
"<-1 * <CrPr 1-0 * - (1 6)>>\n",
"<-1 * <CrPr 1-0 * - (1 7)>>\n",
"<-1 * <CrPr 1-0 * - (1 8)>>\n",
"<-1 * <CrPr 1-0 * - (1 9)>>\n",
"... ...\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def fg-gen2 (? fg 2 gen2))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The boundary of this combination in $S^2\\times_\\tau K(\\mathbb{Z},1)$ is"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 1}\n",
"<-17 * <CrPr 0 * - (1)>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(? total-17 *)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"to which corresponds in the effective chain complex, the boundary of the basis element in dimension 2, $gen2=s2 \\otimes *$:"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 1}\n",
"<17 * <TnPr * S1>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(? echcm 2 gen2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The printing of the 3 faces of the 17 simplices of the combination `fg-gen2` shows the geometrical organisation of the twisted product:"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"<AbSm 0 <CrPr - * - NIL>> \n",
"<AbSm 0 <CrPr - * - NIL>> \n",
"<AbSm - <CrPr 0 * - (17)>> \n",
"\n",
"<AbSm - <CrPr 0 * - (1)>> \n",
"<AbSm - <CrPr 0 * - (2)>> \n",
"<AbSm - <CrPr 0 * - (1)>> \n",
"\n",
"<AbSm - <CrPr 0 * - (2)>> \n",
"<AbSm - <CrPr 0 * - (3)>> \n",
"<AbSm - <CrPr 0 * - (1)>> \n",
"\n",
"<AbSm - <CrPr 0 * - (3)>> \n",
"<AbSm - <CrPr 0 * - (4)>> \n",
"<AbSm - <CrPr 0 * - (1)>> \n",
"\n",
"<AbSm - <CrPr 0 * - (4)>> \n",
"<AbSm - <CrPr 0 * - (5)>> \n",
"<AbSm - <CrPr 0 * - (1)>> \n",
"\n",
"<AbSm - <CrPr 0 * - (5)>> \n",
"<AbSm - <CrPr 0 * - (6)>> \n",
"<AbSm - <CrPr 0 * - (1)>> \n",
"\n",
"<AbSm - <CrPr 0 * - (6)>> \n",
"<AbSm - <CrPr 0 * - (7)>> \n",
"<AbSm - <CrPr 0 * - (1)>> \n",
"\n",
"<AbSm - <CrPr 0 * - (7)>> \n",
"<AbSm - <CrPr 0 * - (8)>> \n",
"<AbSm - <CrPr 0 * - (1)>> \n",
"\n",
"<AbSm - <CrPr 0 * - (8)>> \n",
"<AbSm - <CrPr 0 * - (9)>> \n",
"<AbSm - <CrPr 0 * - (1)>> \n",
"\n",
"<AbSm - <CrPr 0 * - (9)>> \n",
"<AbSm - <CrPr 0 * - (10)>> \n",
"<AbSm - <CrPr 0 * - (1)>> \n",
"\n",
"<AbSm - <CrPr 0 * - (10)>> \n",
"<AbSm - <CrPr 0 * - (11)>> \n",
"<AbSm - <CrPr 0 * - (1)>> \n",
"\n",
"<AbSm - <CrPr 0 * - (11)>> \n",
"<AbSm - <CrPr 0 * - (12)>> \n",
"<AbSm - <CrPr 0 * - (1)>> \n",
"\n",
"<AbSm - <CrPr 0 * - (12)>> \n",
"<AbSm - <CrPr 0 * - (13)>> \n",
"<AbSm - <CrPr 0 * - (1)>> \n",
"\n",
"<AbSm - <CrPr 0 * - (13)>> \n",
"<AbSm - <CrPr 0 * - (14)>> \n",
"<AbSm - <CrPr 0 * - (1)>> \n",
"\n",
"<AbSm - <CrPr 0 * - (14)>> \n",
"<AbSm - <CrPr 0 * - (15)>> \n",
"<AbSm - <CrPr 0 * - (1)>> \n",
"\n",
"<AbSm - <CrPr 0 * - (15)>> \n",
"<AbSm - <CrPr 0 * - (16)>> \n",
"<AbSm - <CrPr 0 * - (1)>> \n",
"\n",
"<AbSm - <CrPr 0 * - (16)>> \n",
"<AbSm - <CrPr 0 * - (17)>> \n",
"<AbSm - <CrPr 0 * - (1)>> \n"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(dolist(iterm (cmbn-list fg-gen2))\n",
" (dotimes (i 3)(print (face total-17 i 2 (gnrt iterm)))) \n",
" (terpri))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We have seen that for the special case of loop spaces, there is a canonical fibration and that the function `twisted-crts-prdc` builds the total space $X \\times_\\tau \\Omega X$."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[K221 Simplicial-Set]"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def sph3 (sphere 3))"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[K243 Simplicial-Set]"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def tw3 (twisted-crts-prdc sph3))"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<AbSm - <CrPr 1-0 * - <<Loop[S3]>>>>"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(face tw3 3 3 (crpr 0 's3 7 +null-loop+))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It is of course possible to study, any other fibration, provided one defines a correct fibration $\\tau$. In the following example the fibration $\\tau: S^3 \\longrightarrow \\Omega S^3$, is defined by $\\tau(s3)= s3^{-2},$ where $s3^{-2}$ is a word in the Kan simplicial version of the first loop space of $S^3$. In Kenzo, this object is created by the statement:"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<AbSm - <<Loop[S3\\-2]>>>"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(absm 0 (loop3 0 's3 -2))"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"SIMPLE-STYLE-WARNING: \n",
" #<SB-INT:SIMPLE-STYLE-WARNING \"undefined ~(~A~): ~S\" {1006CF0713}>\n"
]
},
{
"data": {
"text/plain": [
"[K248 Fibration K221 -> K226]"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def tws3 (build-smmr :sorc sph3\n",
" :trgt (loop-space sph3)\n",
" :degr -1\n",
" :sintr #'(lambda (dmns gmsm) (declare (ignore dmns gmsm)) (absm 0 (loop3 0 's3 -2)))\n",
" :orgn '(s3-tw-lps3)))"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[K249 Simplicial-Set]"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def total (fibration-total tws3))"
]
},
{
"cell_type": "code",
"execution_count": 30,
"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-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 0) :\n",
"<TnPr * <<AlLp>>> \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-19, 23h 21m 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 -> 2016-03-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 2) :\n",
"<TnPr * <<AlLp[2 S3]>>> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 1 :\n",
"\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 2.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 2) :\n",
"<TnPr * <<AlLp[2 S3]>>> \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-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 3) :\n",
"<TnPr S3 <<AlLp>>> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 2 :\n",
"\n",
"\n",
"Component Z/2Z\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 3.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 3) :\n",
"<TnPr S3 <<AlLp>>> \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-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 4) :\n",
"<TnPr * <<AlLp[2 S3][2 S3]>>> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 3 :\n",
"\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 4.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 4) :\n",
"<TnPr * <<AlLp[2 S3][2 S3]>>> \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-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 5) :\n",
"<TnPr S3 <<AlLp[2 S3]>>> \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-19, 23h 21m 7s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 5.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 5) :\n",
"<TnPr S3 <<AlLp[2 S3]>>> \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-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 6) :\n",
"<TnPr * <<AlLp[2 S3][2 S3][2 S3]>>> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 5 :\n",
"\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 6.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 6) :\n",
"<TnPr * <<AlLp[2 S3][2 S3][2 S3]>>> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 7.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"Computing the boundary of the generator 1/1 (dimension 7) :\n",
"<TnPr S3 <<AlLp[2 S3][2 S3]>>> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 6 :\n",
"\n",
"\n",
"Component Z/2Z\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2016-03-19, 23h 21m 7s.\n",
"\n"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(homology total 0 7)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Lisp files concerned in this chapter\n",
"\n",
"`serre.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": 0
}