kenzo/examples/21_Computing_homotopy_groups.ipynb
2017-10-08 20:11:31 -05:00

3180 lines
90 KiB
Plaintext

{
"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": [
"#<PACKAGE \"CAT\">"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(ql:quickload \"kenzo\")\n",
"(in-package :cat)"
]
},
{
"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<r<n$, then $\\pi_n(X)\\simeq H_n(X)$.*\n",
"\n",
"### 2) The properties of the classifying spaces.\n",
"\n",
"Let $X$ such that $\\pi_r(X)=0$ for $0<r<n$. From now on, we shall denote $\\pi_n(X)$ simply by $\\pi$.\n",
"Let us consider the universal coefficients exact sequence:\n",
"$$ 0 \\longrightarrow Ext(H_{n-1}(X), \\pi) \\longrightarrow H^n(X,\\pi) \\longrightarrow Hom(H_n(X),\\pi) \\longrightarrow 0.$$\n",
"Here $H_{n-1}(X)=0$, so that a canonical isomorphism is given:\n",
"$$H^n(X,\\pi) \\buildrel {\\simeq} \\over \\longrightarrow Hom(H_n(X),\\pi),$$\n",
"but $H_n(X) \\simeq \\pi$ and this gives us a canonical element $h \\in H^n(X, \\pi)$ which is the fundamental $n$-th cohomology class in this context. A cocycle $\\chi$ representing $h$ is constructed as follows. In the chain complex\n",
"$$ \\cdots \\rightarrow C_{n+1} \\buildrel {d_{n+1}} \\over \\longrightarrow C_n\n",
" \\buildrel {d_n} \\over \\longrightarrow C_{n-1} \\longrightarrow \\cdots,$$\n",
"the kernel $Z_n$ of $d_n$ is a summand of $C_n(X)$:\n",
"$$ C_n = Z_n \\oplus S$$\n",
"and such a decomposition induces a projection $p:C_n(X) \\longrightarrow Z_n$. Finally, we have also the canonical projection $p':Z_n \\longrightarrow H_n=\\pi$. Then, $\\chi$ can be defined by $\\chi = p' \\circ p$ and $\\chi$ *is a cocycle*. If another $p$ is chosen, another $\\chi$ is obtained but the cohomology class is the same.\n",
"\n",
"Let us fix now a choice for the cocycle $\\chi: C_n(X) \\longrightarrow \\pi$. This cocycle induces in turn a simplicial map:\n",
"$$ \\varphi_\\chi: C_n(X) \\longrightarrow K(\\pi,n), $$\n",
"where $K(\\pi,n)$ is the classifying group $K(\\pi_n(X),n)$ of the group $\\pi_n(X)=\\pi$. If $\\chi'$ is another choice for the cocycle then $\\varphi_{\\chi'}$ is homotopic to $\\varphi_\\chi$. We recall that the space $K(\\pi,n)$ has the following properties:\n",
"\n",
"1. $H_r(K(\\pi,n))=0$ for $0 < r < n$,\n",
"2. $\\pi_r(K(\\pi,n))=0$ for $r \\not= n$,\n",
"3. $\\pi_n(K(\\pi,n))=H_n(K(\\pi,n)= \\pi$.\n",
"\n",
"On the other hand, a canonical fibration of base space $K(\\pi, n)$ and fibre space $K(\\pi, n-1)$ is deduced from a canonical twisting operator $$\\tau: K(\\pi, n) \\longrightarrow K(\\pi, n-1)$$\n",
"\n",
"$$\n",
"\\begin{gathered}\n",
"K(\\pi, n-1)\\cr\n",
"\\downarrow \\cr\n",
"K(\\pi, n) \\times_\\tau K(\\pi, n-1) \\cr\n",
"\\downarrow \\cr\n",
"K(\\pi,n)\n",
"\\end{gathered}\n",
"$$\n",
"\n",
"So, if a simplicial map $\\varphi_\\chi: X \\longrightarrow K(\\pi,n)$ is given, it is then possible to construct a fibration of base space $X$ and fibre space $K(\\pi, n-1)$, the twisting operator being then defined by: $\\tau_\\chi = \\tau \\circ \\varphi_\\chi $, according to the diagram:\n",
"$$\\begin{aligned}\n",
"K(\\pi, n-1)\\qquad &\\qquad \\buildrel {=} \\over \\longrightarrow & K(\\pi, n-1)\\qquad \\cr\n",
"\\downarrow\\qquad\\qquad & & \\downarrow\\qquad\\qquad \\cr\n",
"X'=X \\times_{\\tau_\\chi} K(\\pi, n-1) & \\qquad \\buildrel {\\psi_\\chi} \\over \\longrightarrow & K(\\pi,n) \\times_\\tau K(\\pi, n-1) \\cr\n",
"\\downarrow\\qquad\\qquad & & \\downarrow\\qquad\\qquad \\cr\n",
" X \\qquad\\qquad & \\qquad\\buildrel \\varphi_\\chi \\over \\longrightarrow & K(\\pi,n)\\qquad\\quad\n",
"\\end{aligned}$$\n",
"\n",
"### 3) The Serre exact sequence of the homotopy groups of fibrations.\n",
"\n",
"Let us consider the fibration\n",
"$$F \\quad \\hookrightarrow\\quad T=X \\otimes_\\tau F \\hskip 1.2em \\longrightarrow \\hskip -1.2em \\longrightarrow \\quad X,$$\n",
"The Serre exact sequence establishes a connection between the homotopy groups of the 3 spaces, in any dimension:\n",
"$$\\cdots \\longrightarrow \\pi_{n+1}(F) \\longrightarrow \\pi_{n+1}(T) \\longrightarrow \\pi_{n+1}(X) \\longrightarrow \\pi_n(F) \\longrightarrow$$\n",
"$$\\longrightarrow \\pi_n(T) \\longrightarrow \\pi_n(X) \\longrightarrow \\pi_{n-1}(F) \\longrightarrow \\cdots $$\n",
"In our special case, where the fibration is:\n",
"$$K(\\pi, n-1) \\quad \\hookrightarrow\\quad X' \\hskip 1.2em \\longrightarrow \\hskip -1.2em\\longrightarrow \\quad X,$$\n",
"the Serre sequence may be written:\n",
"$$\\cdots \\longrightarrow \\pi_{n+1}(K(\\pi, n-1)) \\longrightarrow \\pi_{n+1}(X') \\longrightarrow \\pi_{n+1}(X) \\longrightarrow $$\n",
"$$\\longrightarrow \\pi_n(K(\\pi, n-1))\\longrightarrow\\pi_n(X')\\longrightarrow \\pi_n(X)\\longrightarrow \\pi_{n-1}(K(\\pi, n-1)) \\longrightarrow 0.$$\n",
"But we know that $\\pi_i(K(\\pi,n))=0$ for $i \\not= n$ and that $\\pi_n(K(\\pi, n))=\\pi,$\n",
"so the exact sequence may be re-written:\n",
"$$0 \\rightarrow \\pi_{n+1}(X') \\rightarrow \\pi_{n+1}(X) \\rightarrow 0 \\rightarrow \\pi_n(X') \\rightarrow \\pi_n(X) \\rightarrow \\pi \\rightarrow 0.$$\n",
"The subsequence:\n",
"$$0 \\longrightarrow \\pi_n(X') \\longrightarrow \\pi_n(X)\\longrightarrow \\pi \\longrightarrow 0.$$\n",
"is exact; furthermore, the cocycle $\\chi$ is such that the connection morphism\n",
"$\\partial: \\pi_n(X) \\rightarrow \\pi$ is the identity; so that we deduce that $\\pi_n (X')=0$.\n",
"\n",
"On the other hand, from the exactness of the subsequence\n",
"$$0 \\longrightarrow \\pi_{n+1}(X') \\longrightarrow \\pi_{n+1}(X) \\longrightarrow 0$$\n",
"we deduce that $\\pi_{n+1}(X') \\simeq \\pi_{n+1}(X)$ and more generally $\\pi_r(X') \\simeq \\pi_r(X)$ for $r \\not= n.$ In particular, $\\pi_r(X')=0$ for $r \\leq n+1$ and the Hurewicz theorem gives again:\n",
"$$H_{n+1}(X') \\simeq \\pi_{n+1}(X') \\simeq \\pi_{n+1}(X).$$\n",
"So, if we know how to compute $H_{n+1}(X')$ then we have obtained $\\pi_{n+1}(X).$\n",
"\n",
"### 4) The Whitehead tower\n",
"\n",
"Let us denote for a reason which will be clear in a moment the space $X'$ by $X^{(n+1)}$. Due to the properties of $X^{(n+1)}$, we may iterate the process, namely, build the following fibrations, where $\\pi_{n+1}(X^{(n+1)})$ is denoted simply by $\\pi'$:\n",
"\n",
"$$\\begin{aligned}\n",
"K(\\pi', n)\\qquad\\quad &\\qquad\\buildrel {=} \\over \\longrightarrow & K(\\pi', n)\\qquad\\quad \\cr\n",
"\\downarrow\\qquad\\qquad & & \\downarrow\\qquad\\qquad \\cr\n",
"X^{(n+2)}=X^{(n+1)} \\times_{\\tau_\\chi} K(\\pi', n) &\\qquad\\buildrel {\\psi_\\chi} \\over \\longrightarrow & \n",
"K(\\pi',n+1) \\times_\\tau K(\\pi', n) \\cr\n",
"\\downarrow \\qquad\\qquad & & \\downarrow\\qquad\\qquad \\cr\n",
" X^{(n+1)}\\qquad\\quad & \\qquad\\buildrel \\varphi_\\chi \\over \\longrightarrow & K(\\pi',n+1)\\qquad\n",
"\\end{aligned}$$\n",
"\n",
"where $X^{(n+2)}= X^{(n+1)} \\times_{\\tau_\\chi} K(\\pi', n)$ has the property\n",
"$$H_{n+2}(X^{(n+2)}) \\simeq \\pi_{n+2}(X^{(n+2)}) \\simeq \\pi_{n+2}(X^{(n+1)}) \\simeq \\pi_{n+2}(X). $$\n",
"This construction is known as the Whitehead tower.\n",
"\n",
"## The functions for computing homotopy groups\n",
"\n",
"### An important remark\n",
"\n",
"In this version of Kenzo, only the case where the first non-null homology group (in non-null dimension) is $\\mathbb{Z}$ or $\\mathbb{Z}/{2 \\mathbb{Z}}$ can be processed; however if this homology group is a direct sum of several copies of $\\mathbb{Z}$ or $\\mathbb{Z}/{2 \\mathbb{Z}}$, then the corresponding stage of the Whitehead tower may also be constructed step by step.\n",
"\n",
"`chml-clss` *chcm first* *[Function]*\n",
"> 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": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K1 Simplicial-Set]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def s3 (sphere 3))"
]
},
{
"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 34m 10s.\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 34m 10s.\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 -> 2017-10-08, 12h 34m 10s.\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 -> 2017-10-08, 12h 34m 10s.\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 -> 2017-10-08, 12h 34m 10s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 3.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\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 -> 2017-10-08, 12h 34m 10s.\n",
"\n"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(homology s3 0 4)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K12 Cohomology-Class on K1 of degree 3]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def s3-chml-clss (chml-clss s3 3))"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K37 Fibration K1 -> K25]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def s3-fibr (z-whitehead s3 s3-chml-clss))"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K43 Simplicial-Set]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def s3-total (fibration-total s3-fibr))"
]
},
{
"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 34m 10s.\n",
"Computing the boundary of the generator 1/1 (dimension 0) :\n",
"<TnPr * <<Abar>>> \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 34m 10s.\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 34m 10s.\n",
"Computing the boundary of the generator 1/1 (dimension 2) :\n",
"<TnPr * <<Abar[2 S1]>>> \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 34m 10s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 2.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/1 (dimension 2) :\n",
"<TnPr * <<Abar[2 S1]>>> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 3.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/1 (dimension 3) :\n",
"<TnPr S3 <<Abar>>> \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 34m 10s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 3.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/1 (dimension 3) :\n",
"<TnPr S3 <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 4.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/1 (dimension 4) :\n",
"<TnPr * <<Abar[2 S1][2 S1]>>> \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 34m 10s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 4.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/1 (dimension 4) :\n",
"<TnPr * <<Abar[2 S1][2 S1]>>> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 5.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/1 (dimension 5) :\n",
"<TnPr S3 <<Abar[2 S1]>>> \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 -> 2017-10-08, 12h 34m 10s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 5.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/1 (dimension 5) :\n",
"<TnPr S3 <<Abar[2 S1]>>> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 6.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/1 (dimension 6) :\n",
"<TnPr * <<Abar[2 S1][2 S1][2 S1]>>> \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 34m 10s.\n",
"\n"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 7,
"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": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"---done---"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(cat-init)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K1 Simplicial-Set]"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def m24 (moore 2 4))"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"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 : (<AbSm 2-1-0 *> <AbSm 2-1-0 *> <AbSm 2-1-0 *> <AbSm 2-1-0 *> <AbSm 2-1-0 *>)\n",
"\n",
"Dimension = 5:\n",
"\n",
" Simplex : N5\n",
"\n",
" Faces : (<AbSm - M4> <AbSm 3-2-1-0 *> <AbSm - M4> <AbSm 3-2-1-0 *> <AbSm 3-2-1-0 *> <AbSm 3-2-1-0 *>)\n",
"\n",
"Dimension = 6:"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(show-structure m24 6)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"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 34m 10s.\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 34m 10s.\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 -> 2017-10-08, 12h 34m 10s.\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 34m 10s.\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 34m 10s.\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 -> 2017-10-08, 12h 34m 10s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 4.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\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 -> 2017-10-08, 12h 34m 10s.\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 -> 2017-10-08, 12h 34m 10s.\n",
"\n"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(homology m24 0 5)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K12 Cohomology-Class on K1 of degree 4]"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def m24-chml-clss (chml-clss m24 4))"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K49 Fibration K1 -> K37]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def m24-fibr (z2-whitehead m24 m24-chml-clss))"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K55 Simplicial-Set]"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def m24-total (fibration-total m24-fibr))"
]
},
{
"cell_type": "code",
"execution_count": 15,
"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 34m 10s.\n",
"Computing the boundary of the generator 1/1 (dimension 0) :\n",
"<TnPr * <<Abar>>> \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 34m 10s.\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 -> 2017-10-08, 12h 34m 10s.\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 -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/1 (dimension 3) :\n",
"<TnPr * <<Abar[3 <<Abar[2 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 34m 10s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 3.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/1 (dimension 3) :\n",
"<TnPr * <<Abar[3 <<Abar[2 1]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 4.\n",
"Rank of the source-module : 2.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/2 (dimension 4) :\n",
"<TnPr * <<Abar[4 <<Abar[3 2]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 2/2 (dimension 4) :\n",
"<TnPr M4 <<Abar>>> \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 34m 10s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 4.\n",
"Rank of the source-module : 2.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/2 (dimension 4) :\n",
"<TnPr * <<Abar[4 <<Abar[3 2]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 2/2 (dimension 4) :\n",
"<TnPr M4 <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 5.\n",
"Rank of the source-module : 3.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/3 (dimension 5) :\n",
"<TnPr * <<Abar[5 <<Abar[4 3]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 2/3 (dimension 5) :\n",
"<TnPr * <<Abar[5 <<Abar[2 1][2 1]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 3/3 (dimension 5) :\n",
"<TnPr N5 <<Abar>>> \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 34m 10s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 5.\n",
"Rank of the source-module : 3.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/3 (dimension 5) :\n",
"<TnPr * <<Abar[5 <<Abar[4 3]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 2/3 (dimension 5) :\n",
"<TnPr * <<Abar[5 <<Abar[2 1][2 1]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 3/3 (dimension 5) :\n",
"<TnPr N5 <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 6.\n",
"Rank of the source-module : 4.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/4 (dimension 6) :\n",
"<TnPr * <<Abar[6 <<Abar[5 4]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 2/4 (dimension 6) :\n",
"<TnPr * <<Abar[6 <<Abar[2 1][3 2]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 3/4 (dimension 6) :\n",
"<TnPr * <<Abar[6 <<Abar[3 2][2 1]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 4/4 (dimension 6) :\n",
"<TnPr * <<Abar[3 <<Abar[2 1]>>][3 <<Abar[2 1]>>]>>> \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 -> 2017-10-08, 12h 34m 10s.\n",
"\n"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 15,
"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": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K410 Abelian-Simplicial-Group]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def k5 (k-z 5))"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K935 Cohomology-Class on K920 of degree 5]"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def k5-chml-clss (chml-clss k5 5))"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K938 Fibration K410 -> K398]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def k5-fibr (z-whitehead k5 k5-chml-clss)) "
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K939 Kan-Simplicial-Set]"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def k5-total (fibration-total k5-fibr))"
]
},
{
"cell_type": "code",
"execution_count": 20,
"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 34m 10s.\n",
"Computing the boundary of the generator 1/1 (dimension 0) :\n",
"<TnPr <<Abar>> <<Abar>>> \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 34m 10s.\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 -> 2017-10-08, 12h 34m 10s.\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 34m 10s.\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 34m 10s.\n",
"Computing the boundary of the generator 1/1 (dimension 4) :\n",
"<TnPr <<Abar>> <<Abar[4 <<Abar[3 <<Abar[2 S1]>>]>>]>>> \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 34m 10s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 4.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/1 (dimension 4) :\n",
"<TnPr <<Abar>> <<Abar[4 <<Abar[3 <<Abar[2 S1]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 5.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/1 (dimension 5) :\n",
"<TnPr <<Abar[5 <<Abar[4 <<Abar[3 <<Abar[2 S1]>>]>>]>>]>> <<Abar>>> \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 34m 10s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 5.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/1 (dimension 5) :\n",
"<TnPr <<Abar[5 <<Abar[4 <<Abar[3 <<Abar[2 S1]>>]>>]>>]>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 6.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/1 (dimension 6) :\n",
"<TnPr <<Abar>> <<Abar[6 <<Abar[5 <<Abar[2 S1][2 S1]>>]>>]>>> \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 34m 10s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 6.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/1 (dimension 6) :\n",
"<TnPr <<Abar>> <<Abar[6 <<Abar[5 <<Abar[2 S1][2 S1]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 7.\n",
"Rank of the source-module : 2.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/2 (dimension 7) :\n",
"<TnPr <<Abar>> <<Abar[7 <<Abar[3 <<Abar[2 S1]>>][3 <<Abar[2 S1]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 2/2 (dimension 7) :\n",
"<TnPr <<Abar[7 <<Abar[6 <<Abar[5 <<Abar[2 S1][2 S1]>>]>>]>>]>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 6 :\n",
"\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 7.\n",
"Rank of the source-module : 2.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/2 (dimension 7) :\n",
"<TnPr <<Abar>> <<Abar[7 <<Abar[3 <<Abar[2 S1]>>][3 <<Abar[2 S1]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 2/2 (dimension 7) :\n",
"<TnPr <<Abar[7 <<Abar[6 <<Abar[5 <<Abar[2 S1][2 S1]>>]>>]>>]>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 8.\n",
"Rank of the source-module : 3.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/3 (dimension 8) :\n",
"<TnPr <<Abar>> <<Abar[8 <<Abar[7 <<Abar[2 S1][2 S1][2 S1]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 2/3 (dimension 8) :\n",
"<TnPr <<Abar>> <<Abar[4 <<Abar[3 <<Abar[2 S1]>>]>>][4 <<Abar[3 <<Abar[2 S1]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 3/3 (dimension 8) :\n",
"<TnPr <<Abar[8 <<Abar[7 <<Abar[3 <<Abar[2 S1]>>][3 <<Abar[2 S1]>>]>>]>>]>> <<Abar>>> \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 34m 10s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 8.\n",
"Rank of the source-module : 3.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/3 (dimension 8) :\n",
"<TnPr <<Abar>> <<Abar[8 <<Abar[7 <<Abar[2 S1][2 S1][2 S1]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 2/3 (dimension 8) :\n",
"<TnPr <<Abar>> <<Abar[4 <<Abar[3 <<Abar[2 S1]>>]>>][4 <<Abar[3 <<Abar[2 S1]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 3/3 (dimension 8) :\n",
"<TnPr <<Abar[8 <<Abar[7 <<Abar[3 <<Abar[2 S1]>>][3 <<Abar[2 S1]>>]>>]>>]>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 9.\n",
"Rank of the source-module : 5.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/5 (dimension 9) :\n",
"<TnPr <<Abar>> <<Abar[9 <<Abar[3 <<Abar[2 S1]>>][5 <<Abar[2 S1][2 S1]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 2/5 (dimension 9) :\n",
"<TnPr <<Abar>> <<Abar[9 <<Abar[5 <<Abar[2 S1][2 S1]>>][3 <<Abar[2 S1]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 3/5 (dimension 9) :\n",
"<TnPr <<Abar[5 <<Abar[4 <<Abar[3 <<Abar[2 S1]>>]>>]>>]>> <<Abar[4 <<Abar[3 <<Abar[2 S1]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 4/5 (dimension 9) :\n",
"<TnPr <<Abar[9 <<Abar[8 <<Abar[7 <<Abar[2 S1][2 S1][2 S1]>>]>>]>>]>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 5/5 (dimension 9) :\n",
"<TnPr <<Abar[9 <<Abar[4 <<Abar[3 <<Abar[2 S1]>>]>>][4 <<Abar[3 <<Abar[2 S1]>>]>>]>>]>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 8 :\n",
"\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 9.\n",
"Rank of the source-module : 5.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/5 (dimension 9) :\n",
"<TnPr <<Abar>> <<Abar[9 <<Abar[3 <<Abar[2 S1]>>][5 <<Abar[2 S1][2 S1]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 2/5 (dimension 9) :\n",
"<TnPr <<Abar>> <<Abar[9 <<Abar[5 <<Abar[2 S1][2 S1]>>][3 <<Abar[2 S1]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 3/5 (dimension 9) :\n",
"<TnPr <<Abar[5 <<Abar[4 <<Abar[3 <<Abar[2 S1]>>]>>]>>]>> <<Abar[4 <<Abar[3 <<Abar[2 S1]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 4/5 (dimension 9) :\n",
"<TnPr <<Abar[9 <<Abar[8 <<Abar[7 <<Abar[2 S1][2 S1][2 S1]>>]>>]>>]>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 5/5 (dimension 9) :\n",
"<TnPr <<Abar[9 <<Abar[4 <<Abar[3 <<Abar[2 S1]>>]>>][4 <<Abar[3 <<Abar[2 S1]>>]>>]>>]>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 10.\n",
"Rank of the source-module : 7.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 1/7 (dimension 10) :\n",
"<TnPr <<Abar>> <<Abar[10 <<Abar[9 <<Abar[2 S1][2 S1][2 S1][2 S1]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 2/7 (dimension 10) :\n",
"<TnPr <<Abar>> <<Abar[10 <<Abar[3 <<Abar[2 S1]>>][3 <<Abar[2 S1]>>][3 <<Abar[2 S1]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 10s.\n",
"Computing the boundary of the generator 3/7 (dimension 10) :\n",
"<TnPr <<Abar>> <<Abar[4 <<Abar[3 <<Abar[2 S1]>>]>>][6 <<Abar[5 <<Abar[2 S1][2 S1]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 11s.\n",
"Computing the boundary of the generator 4/7 (dimension 10) :\n",
"<TnPr <<Abar>> <<Abar[6 <<Abar[5 <<Abar[2 S1][2 S1]>>]>>][4 <<Abar[3 <<Abar[2 S1]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 11s.\n",
"Computing the boundary of the generator 5/7 (dimension 10) :\n",
"<TnPr <<Abar[10 <<Abar[9 <<Abar[3 <<Abar[2 S1]>>][5 <<Abar[2 S1][2 S1]>>]>>]>>]>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 11s.\n",
"Computing the boundary of the generator 6/7 (dimension 10) :\n",
"<TnPr <<Abar[10 <<Abar[9 <<Abar[5 <<Abar[2 S1][2 S1]>>][3 <<Abar[2 S1]>>]>>]>>]>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 11s.\n",
"Computing the boundary of the generator 7/7 (dimension 10) :\n",
"<TnPr <<Abar[5 <<Abar[4 <<Abar[3 <<Abar[2 S1]>>]>>]>>][5 <<Abar[4 <<Abar[3 <<Abar[2 S1]>>]>>]>>]>> <<Abar>>> \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 34m 12s.\n",
"\n"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 20,
"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": 21,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"---done---"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(cat-init)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K1 Simplicial-Set]"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def s3 (sphere 3))"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K12 Cohomology-Class on K1 of degree 3]"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def s3-chml-clss (chml-clss s3 3))"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K37 Fibration K1 -> K25]"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def s3-fibration (z-whitehead s3 s3-chml-clss))"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K43 Simplicial-Set]"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def s3-4 (fibration-total s3-fibration))"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"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 -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 1/1 (dimension 4) :\n",
"<TnPr * <<Abar[2 S1][2 S1]>>> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 5.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 1/1 (dimension 5) :\n",
"<TnPr S3 <<Abar[2 S1]>>> \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 -> 2017-10-08, 12h 34m 12s.\n",
"\n"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(homology s3-4 4)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K253 Cohomology-Class on K238 of degree 4]"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def s3-4-chml-clss (chml-clss s3-4 4))"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K292 Fibration K43 -> K278]"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def s3-4-fibration (z2-whitehead s3-4 s3-4-chml-clss))"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K298 Simplicial-Set]"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def s3-5 (fibration-total s3-4-fibration))"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"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 -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 1/4 (dimension 5) :\n",
"<TnPr <TnPr * <<Abar>>> <<Abar[5 <<Abar[4 3]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 2/4 (dimension 5) :\n",
"<TnPr <TnPr * <<Abar>>> <<Abar[5 <<Abar[2 1][2 1]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 3/4 (dimension 5) :\n",
"<TnPr <TnPr * <<Abar[2 S1]>>> <<Abar[3 <<Abar[2 1]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 4/4 (dimension 5) :\n",
"<TnPr <TnPr S3 <<Abar[2 S1]>>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 6.\n",
"Rank of the source-module : 7.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 1/7 (dimension 6) :\n",
"<TnPr <TnPr * <<Abar>>> <<Abar[6 <<Abar[5 4]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 2/7 (dimension 6) :\n",
"<TnPr <TnPr * <<Abar>>> <<Abar[6 <<Abar[2 1][3 2]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 3/7 (dimension 6) :\n",
"<TnPr <TnPr * <<Abar>>> <<Abar[6 <<Abar[3 2][2 1]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 4/7 (dimension 6) :\n",
"<TnPr <TnPr * <<Abar>>> <<Abar[3 <<Abar[2 1]>>][3 <<Abar[2 1]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 5/7 (dimension 6) :\n",
"<TnPr <TnPr * <<Abar[2 S1]>>> <<Abar[4 <<Abar[3 2]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 6/7 (dimension 6) :\n",
"<TnPr <TnPr S3 <<Abar>>> <<Abar[3 <<Abar[2 1]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 7/7 (dimension 6) :\n",
"<TnPr <TnPr * <<Abar[2 S1][2 S1][2 S1]>>> <<Abar>>> \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 -> 2017-10-08, 12h 34m 12s.\n",
"\n"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(homology s3-5 5)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K609 Cohomology-Class on K594 of degree 5]"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def s3-5-chml-clss (chml-clss s3-5 5))"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K624 Fibration K298 -> K610]"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def s3-5-fibration (z2-whitehead s3-5 s3-5-chml-clss))"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K630 Simplicial-Set]"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def s3-6 (fibration-total s3-5-fibration))"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"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 -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 1/10 (dimension 6) :\n",
"<TnPr <TnPr <TnPr * <<Abar>>> <<Abar>>> <<Abar[6 <<Abar[5 <<Abar[4 3]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 2/10 (dimension 6) :\n",
"<TnPr <TnPr <TnPr * <<Abar>>> <<Abar>>> <<Abar[6 <<Abar[5 <<Abar[2 1][2 1]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 3/10 (dimension 6) :\n",
"<TnPr <TnPr <TnPr * <<Abar[2 S1]>>> <<Abar>>> <<Abar[4 <<Abar[3 <<Abar[2 1]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 4/10 (dimension 6) :\n",
"<TnPr <TnPr <TnPr * <<Abar>>> <<Abar[6 <<Abar[5 4]>>]>>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 5/10 (dimension 6) :\n",
"<TnPr <TnPr <TnPr * <<Abar>>> <<Abar[6 <<Abar[2 1][3 2]>>]>>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 6/10 (dimension 6) :\n",
"<TnPr <TnPr <TnPr * <<Abar>>> <<Abar[6 <<Abar[3 2][2 1]>>]>>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 7/10 (dimension 6) :\n",
"<TnPr <TnPr <TnPr * <<Abar>>> <<Abar[3 <<Abar[2 1]>>][3 <<Abar[2 1]>>]>>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 8/10 (dimension 6) :\n",
"<TnPr <TnPr <TnPr * <<Abar[2 S1]>>> <<Abar[4 <<Abar[3 2]>>]>>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 9/10 (dimension 6) :\n",
"<TnPr <TnPr <TnPr S3 <<Abar>>> <<Abar[3 <<Abar[2 1]>>]>>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 10/10 (dimension 6) :\n",
"<TnPr <TnPr <TnPr * <<Abar[2 S1][2 S1][2 S1]>>> <<Abar>>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 7.\n",
"Rank of the source-module : 19.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 1/19 (dimension 7) :\n",
"<TnPr <TnPr <TnPr * <<Abar>>> <<Abar>>> <<Abar[7 <<Abar[6 <<Abar[5 4]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 2/19 (dimension 7) :\n",
"<TnPr <TnPr <TnPr * <<Abar>>> <<Abar>>> <<Abar[7 <<Abar[6 <<Abar[2 1][3 2]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 3/19 (dimension 7) :\n",
"<TnPr <TnPr <TnPr * <<Abar>>> <<Abar>>> <<Abar[7 <<Abar[6 <<Abar[3 2][2 1]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 4/19 (dimension 7) :\n",
"<TnPr <TnPr <TnPr * <<Abar>>> <<Abar>>> <<Abar[7 <<Abar[3 <<Abar[2 1]>>][3 <<Abar[2 1]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 5/19 (dimension 7) :\n",
"<TnPr <TnPr <TnPr * <<Abar[2 S1]>>> <<Abar>>> <<Abar[5 <<Abar[4 <<Abar[3 2]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 6/19 (dimension 7) :\n",
"<TnPr <TnPr <TnPr * <<Abar>>> <<Abar[3 <<Abar[2 1]>>]>>> <<Abar[4 <<Abar[3 <<Abar[2 1]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 7/19 (dimension 7) :\n",
"<TnPr <TnPr <TnPr S3 <<Abar>>> <<Abar>>> <<Abar[4 <<Abar[3 <<Abar[2 1]>>]>>]>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 8/19 (dimension 7) :\n",
"<TnPr <TnPr <TnPr * <<Abar>>> <<Abar[7 <<Abar[6 5]>>]>>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 9/19 (dimension 7) :\n",
"<TnPr <TnPr <TnPr * <<Abar>>> <<Abar[7 <<Abar[2 1][4 3]>>]>>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 10/19 (dimension 7) :\n",
"<TnPr <TnPr <TnPr * <<Abar>>> <<Abar[7 <<Abar[3 2][3 2]>>]>>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 11/19 (dimension 7) :\n",
"<TnPr <TnPr <TnPr * <<Abar>>> <<Abar[7 <<Abar[4 3][2 1]>>]>>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 12/19 (dimension 7) :\n",
"<TnPr <TnPr <TnPr * <<Abar>>> <<Abar[7 <<Abar[2 1][2 1][2 1]>>]>>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 13/19 (dimension 7) :\n",
"<TnPr <TnPr <TnPr * <<Abar>>> <<Abar[3 <<Abar[2 1]>>][4 <<Abar[3 2]>>]>>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 14/19 (dimension 7) :\n",
"<TnPr <TnPr <TnPr * <<Abar>>> <<Abar[4 <<Abar[3 2]>>][3 <<Abar[2 1]>>]>>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 15/19 (dimension 7) :\n",
"<TnPr <TnPr <TnPr * <<Abar[2 S1]>>> <<Abar[5 <<Abar[4 3]>>]>>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 16/19 (dimension 7) :\n",
"<TnPr <TnPr <TnPr * <<Abar[2 S1]>>> <<Abar[5 <<Abar[2 1][2 1]>>]>>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 17/19 (dimension 7) :\n",
"<TnPr <TnPr <TnPr S3 <<Abar>>> <<Abar[4 <<Abar[3 2]>>]>>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 18/19 (dimension 7) :\n",
"<TnPr <TnPr <TnPr * <<Abar[2 S1][2 S1]>>> <<Abar[3 <<Abar[2 1]>>]>>> <<Abar>>> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 12s.\n",
"Computing the boundary of the generator 19/19 (dimension 7) :\n",
"<TnPr <TnPr <TnPr S3 <<Abar[2 S1][2 S1]>>> <<Abar>>> <<Abar>>> \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 -> 2017-10-08, 12h 34m 15s.\n",
"\n"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 34,
"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": 35,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"---done---"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(cat-init)"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K1 Simplicial-Set]"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def x (r-proj-space 2))"
]
},
{
"cell_type": "code",
"execution_count": 37,
"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 34m 15s.\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 : 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 34m 15s.\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 34m 15s.\n",
"Computing the boundary of the generator 1/1 (dimension 2) :\n",
"2 \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 34m 15s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 2.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/1 (dimension 2) :\n",
"2 \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 3.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/1 (dimension 3) :\n",
"3 \n",
"End of computing.\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 34m 15s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 3.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/1 (dimension 3) :\n",
"3 \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 4.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/1 (dimension 4) :\n",
"4 \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 3 :\n",
"\n",
"\n",
"Component Z/2Z\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 4.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/1 (dimension 4) :\n",
"4 \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 5.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/1 (dimension 5) :\n",
"5 \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 34m 15s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 5.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/1 (dimension 5) :\n",
"5 \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 6.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/1 (dimension 6) :\n",
"6 \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 -> 2017-10-08, 12h 34m 15s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 6.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/1 (dimension 6) :\n",
"6 \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 7.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/1 (dimension 7) :\n",
"7 \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 6 :\n",
"\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 7.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/1 (dimension 7) :\n",
"7 \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 8.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/1 (dimension 8) :\n",
"8 \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 7 :\n",
"\n",
"\n",
"Component Z/2Z\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 8.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/1 (dimension 8) :\n",
"8 \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 9.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/1 (dimension 9) :\n",
"9 \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 8 :\n",
"\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 9.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/1 (dimension 9) :\n",
"9 \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 10.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/1 (dimension 10) :\n",
"10 \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 9 :\n",
"\n",
"\n",
"Component Z/2Z\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"\n"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 37,
"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": 38,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K12 Cohomology-Class on K1 of degree 2]"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def ch (chml-clss x 2))"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K25 Fibration K1 -> K13]"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def f2 (z-whitehead x ch))"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K31 Simplicial-Set]"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def x3 (fibration-total f2))"
]
},
{
"cell_type": "code",
"execution_count": 41,
"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 34m 15s.\n",
"Computing the boundary of the generator 1/1 (dimension 0) :\n",
"<TnPr 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 -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/1 (dimension 1) :\n",
"<TnPr 0 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 34m 15s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 1.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/1 (dimension 1) :\n",
"<TnPr 0 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 -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/1 (dimension 2) :\n",
"<TnPr 2 *> \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 34m 15s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 2.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/1 (dimension 2) :\n",
"<TnPr 2 *> \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 34m 15s.\n",
"Computing the boundary of the generator 1/2 (dimension 3) :\n",
"<TnPr 2 S1> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 2/2 (dimension 3) :\n",
"<TnPr 3 *> \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 34m 15s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 3.\n",
"Rank of the source-module : 2.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/2 (dimension 3) :\n",
"<TnPr 2 S1> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 2/2 (dimension 3) :\n",
"<TnPr 3 *> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 4.\n",
"Rank of the source-module : 2.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/2 (dimension 4) :\n",
"<TnPr 3 S1> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 2/2 (dimension 4) :\n",
"<TnPr 4 *> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 3 :\n",
"\n",
"\n",
"Component Z\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 4.\n",
"Rank of the source-module : 2.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/2 (dimension 4) :\n",
"<TnPr 3 S1> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 2/2 (dimension 4) :\n",
"<TnPr 4 *> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 5.\n",
"Rank of the source-module : 2.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/2 (dimension 5) :\n",
"<TnPr 4 S1> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 2/2 (dimension 5) :\n",
"<TnPr 5 *> \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 34m 15s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 5.\n",
"Rank of the source-module : 2.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/2 (dimension 5) :\n",
"<TnPr 4 S1> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 2/2 (dimension 5) :\n",
"<TnPr 5 *> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 6.\n",
"Rank of the source-module : 2.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/2 (dimension 6) :\n",
"<TnPr 5 S1> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 2/2 (dimension 6) :\n",
"<TnPr 6 *> \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 34m 15s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 6.\n",
"Rank of the source-module : 2.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/2 (dimension 6) :\n",
"<TnPr 5 S1> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 2/2 (dimension 6) :\n",
"<TnPr 6 *> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 7.\n",
"Rank of the source-module : 2.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/2 (dimension 7) :\n",
"<TnPr 6 S1> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 2/2 (dimension 7) :\n",
"<TnPr 7 *> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 6 :\n",
"\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 7.\n",
"Rank of the source-module : 2.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/2 (dimension 7) :\n",
"<TnPr 6 S1> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 2/2 (dimension 7) :\n",
"<TnPr 7 *> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 8.\n",
"Rank of the source-module : 2.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/2 (dimension 8) :\n",
"<TnPr 7 S1> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 2/2 (dimension 8) :\n",
"<TnPr 8 *> \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 34m 15s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 8.\n",
"Rank of the source-module : 2.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/2 (dimension 8) :\n",
"<TnPr 7 S1> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 2/2 (dimension 8) :\n",
"<TnPr 8 *> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 9.\n",
"Rank of the source-module : 2.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 15s.\n",
"Computing the boundary of the generator 1/2 (dimension 9) :\n",
"<TnPr 8 S1> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 16s.\n",
"Computing the boundary of the generator 2/2 (dimension 9) :\n",
"<TnPr 9 *> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 8 :\n",
"\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 16s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 9.\n",
"Rank of the source-module : 2.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 16s.\n",
"Computing the boundary of the generator 1/2 (dimension 9) :\n",
"<TnPr 8 S1> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 16s.\n",
"Computing the boundary of the generator 2/2 (dimension 9) :\n",
"<TnPr 9 *> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 10.\n",
"Rank of the source-module : 2.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 16s.\n",
"Computing the boundary of the generator 1/2 (dimension 10) :\n",
"<TnPr 9 S1> \n",
"End of computing.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 34m 21s.\n",
"Computing the boundary of the generator 2/2 (dimension 10) :\n",
"<TnPr 10 *> \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 34m 25s.\n",
"\n"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 41,
"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": 1
}