diff --git a/examples/Chapter14.ipynb b/examples/Chapter14.ipynb index 08d336e..a287a2d 100644 --- a/examples/Chapter14.ipynb +++ b/examples/Chapter14.ipynb @@ -240,7 +240,7 @@ "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 44m 29s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 0) :\n", "* \n", "End of computing.\n", @@ -250,7 +250,7 @@ "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 44m 29s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 1) :\n", "D1 \n", "End of computing.\n", @@ -266,14 +266,14 @@ "\n", "---done---\n", "\n", - ";; Clock -> 2016-03-15, 11h 44m 29s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "\n", "\n", "Computing boundary-matrix in dimension 1.\n", "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 44m 29s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 1) :\n", "D1 \n", "End of computing.\n", @@ -293,7 +293,7 @@ "\n", "---done---\n", "\n", - ";; Clock -> 2016-03-15, 11h 44m 29s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "\n", "\n", "Computing boundary-matrix in dimension 2.\n", @@ -312,7 +312,7 @@ "\n", "---done---\n", "\n", - ";; Clock -> 2016-03-15, 11h 44m 29s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "\n" ] }, @@ -439,7 +439,7 @@ "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 47m 15s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 0) :\n", "* \n", "End of computing.\n", @@ -449,7 +449,7 @@ "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 47m 15s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 1) :\n", "D1 \n", "End of computing.\n", @@ -465,14 +465,14 @@ "\n", "---done---\n", "\n", - ";; Clock -> 2016-03-15, 11h 47m 15s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "\n", "\n", "Computing boundary-matrix in dimension 1.\n", "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 47m 15s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 1) :\n", "D1 \n", "End of computing.\n", @@ -482,7 +482,7 @@ "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 47m 15s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 2) :\n", "D2 \n", "End of computing.\n", @@ -498,14 +498,14 @@ "\n", "---done---\n", "\n", - ";; Clock -> 2016-03-15, 11h 47m 15s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "\n", "\n", "Computing boundary-matrix in dimension 2.\n", "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 47m 15s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 2) :\n", "D2 \n", "End of computing.\n", @@ -523,7 +523,7 @@ "\n", "---done---\n", "\n", - ";; Clock -> 2016-03-15, 11h 47m 15s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "\n" ] }, @@ -635,7 +635,7 @@ "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 3s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 0) :\n", "* \n", "End of computing.\n", @@ -645,7 +645,7 @@ "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 3s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 1) :\n", "D1 \n", "End of computing.\n", @@ -661,14 +661,14 @@ "\n", "---done---\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 3s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "\n", "\n", "Computing boundary-matrix in dimension 1.\n", "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 3s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 1) :\n", "D1 \n", "End of computing.\n", @@ -678,7 +678,7 @@ "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 3s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 2) :\n", "D2 \n", "End of computing.\n", @@ -694,14 +694,14 @@ "\n", "---done---\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 3s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "\n", "\n", "Computing boundary-matrix in dimension 2.\n", "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 3s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 2) :\n", "D2 \n", "End of computing.\n", @@ -711,7 +711,7 @@ "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 3s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 3) :\n", "D3 \n", "End of computing.\n", @@ -725,14 +725,14 @@ "\n", "---done---\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 3s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "\n", "\n", "Computing boundary-matrix in dimension 3.\n", "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 3s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 3) :\n", "D3 \n", "End of computing.\n", @@ -752,7 +752,7 @@ "\n", "---done---\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 3s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "\n" ] }, @@ -814,7 +814,7 @@ "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 48s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 0) :\n", "* \n", "End of computing.\n", @@ -824,7 +824,7 @@ "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 48s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 1) :\n", "D1 \n", "End of computing.\n", @@ -840,14 +840,14 @@ "\n", "---done---\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 48s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "\n", "\n", "Computing boundary-matrix in dimension 1.\n", "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 48s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 1) :\n", "D1 \n", "End of computing.\n", @@ -857,7 +857,7 @@ "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 48s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 2) :\n", "D2 \n", "End of computing.\n", @@ -873,14 +873,14 @@ "\n", "---done---\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 48s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "\n", "\n", "Computing boundary-matrix in dimension 2.\n", "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 48s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 2) :\n", "D2 \n", "End of computing.\n", @@ -890,7 +890,7 @@ "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 48s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 3) :\n", "D3 \n", "End of computing.\n", @@ -904,14 +904,14 @@ "\n", "---done---\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 48s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "\n", "\n", "Computing boundary-matrix in dimension 3.\n", "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 48s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 3) :\n", "D3 \n", "End of computing.\n", @@ -921,7 +921,7 @@ "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 48s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 4) :\n", "D4 \n", "End of computing.\n", @@ -937,14 +937,14 @@ "\n", "---done---\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 48s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "\n", "\n", "Computing boundary-matrix in dimension 4.\n", "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 48s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 4) :\n", "D4 \n", "End of computing.\n", @@ -962,7 +962,7 @@ "\n", "---done---\n", "\n", - ";; Clock -> 2016-03-15, 11h 48m 48s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "\n" ] }, @@ -1055,7 +1055,7 @@ "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 51m 43s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 0) :\n", ":Z-GNRT \n", "End of computing.\n", @@ -1065,7 +1065,7 @@ "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 51m 43s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 1) :\n", "GEN-1 \n", "End of computing.\n", @@ -1114,7 +1114,7 @@ "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 51m 58s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 1) :\n", "GEN-1 \n", "End of computing.\n", @@ -1155,7 +1155,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 19, "metadata": { "collapsed": false }, @@ -1163,10 +1163,10 @@ { "data": { "text/plain": [ - "[K91 Chain-Complex]" + "[K89 Chain-Complex]" ] }, - "execution_count": 20, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -1177,7 +1177,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 20, "metadata": { "collapsed": false }, @@ -1191,7 +1191,7 @@ "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 52m 59s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 0) :\n", ":Z-GNRT \n", "End of computing.\n", @@ -1201,7 +1201,7 @@ "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 52m 59s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 1) :\n", "GEN-1 \n", "End of computing.\n", @@ -1225,7 +1225,7 @@ ")" ] }, - "execution_count": 21, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -1243,7 +1243,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 21, "metadata": { "collapsed": false }, @@ -1251,10 +1251,10 @@ { "data": { "text/plain": [ - "[K93 Chain-Complex]" + "[K91 Chain-Complex]" ] }, - "execution_count": 22, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -1265,7 +1265,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 22, "metadata": { "collapsed": false }, @@ -1279,7 +1279,7 @@ "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 54m 35s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 0) :\n", ":Z-GNRT \n", "End of computing.\n", @@ -1289,13 +1289,13 @@ "Rank of the source-module : 2.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 54m 35s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/2 (dimension 1) :\n", "GEN-2 \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 54m 35s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 2/2 (dimension 1) :\n", "GEN-1 \n", "End of computing.\n", @@ -1314,7 +1314,7 @@ "NIL" ] }, - "execution_count": 23, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -1325,7 +1325,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 23, "metadata": { "collapsed": false }, @@ -1339,13 +1339,13 @@ "Rank of the source-module : 2.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 54m 50s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/2 (dimension 1) :\n", "GEN-2 \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 54m 50s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 2/2 (dimension 1) :\n", "GEN-1 \n", "End of computing.\n", @@ -1374,7 +1374,7 @@ ")" ] }, - "execution_count": 24, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -1392,7 +1392,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 24, "metadata": { "collapsed": false }, @@ -1400,10 +1400,10 @@ { "data": { "text/plain": [ - "[K95 Simplicial-Set]" + "[K93 Simplicial-Set]" ] }, - "execution_count": 25, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -1414,7 +1414,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 25, "metadata": { "collapsed": false }, @@ -1422,10 +1422,10 @@ { "data": { "text/plain": [ - "[K100 Simplicial-Group]" + "[K98 Simplicial-Group]" ] }, - "execution_count": 26, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -1443,7 +1443,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 26, "metadata": { "collapsed": false }, @@ -1454,7 +1454,7 @@ ">>" ] }, - "execution_count": 27, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -1472,7 +1472,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 27, "metadata": { "collapsed": false }, @@ -1483,7 +1483,7 @@ ">>" ] }, - "execution_count": 28, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } @@ -1501,7 +1501,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 28, "metadata": { "collapsed": false }, @@ -1509,10 +1509,10 @@ { "data": { "text/plain": [ - "[K112 Simplicial-Set]" + "[K110 Simplicial-Set]" ] }, - "execution_count": 29, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -1524,7 +1524,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 29, "metadata": { "collapsed": false }, @@ -1538,7 +1538,7 @@ "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 57m 56s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 2) :\n", "<> \n", "End of computing.\n", @@ -1548,7 +1548,7 @@ "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 57m 56s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 3) :\n", " \n", "End of computing.\n", @@ -1564,7 +1564,7 @@ "\n", "---done---\n", "\n", - ";; Clock -> 2016-03-15, 11h 57m 56s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "\n" ] }, @@ -1574,7 +1574,7 @@ "NIL" ] }, - "execution_count": 30, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } @@ -1585,7 +1585,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 30, "metadata": { "collapsed": false }, @@ -1599,7 +1599,7 @@ "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 58m 8s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 3) :\n", " \n", "End of computing.\n", @@ -1609,7 +1609,7 @@ "Rank of the source-module : 1.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 58m 8s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/1 (dimension 4) :\n", "<> \n", "End of computing.\n", @@ -1623,7 +1623,7 @@ "\n", "---done---\n", "\n", - ";; Clock -> 2016-03-15, 11h 58m 8s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "\n" ] }, @@ -1633,7 +1633,7 @@ "NIL" ] }, - "execution_count": 31, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -1651,7 +1651,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 31, "metadata": { "collapsed": false }, @@ -1659,10 +1659,10 @@ { "data": { "text/plain": [ - "[K231 Simplicial-Group]" + "[K229 Simplicial-Group]" ] }, - "execution_count": 32, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -1673,7 +1673,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 32, "metadata": { "collapsed": false }, @@ -1687,85 +1687,85 @@ "Rank of the source-module : 14.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/14 (dimension 5) :\n", "<>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 2/14 (dimension 5) :\n", "<][3 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 3/14 (dimension 5) :\n", "<>][2 ]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 4/14 (dimension 5) :\n", "<>][1 <>][3 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 5/14 (dimension 5) :\n", "<>][2 ][2 ]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 6/14 (dimension 5) :\n", "<>][3 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 7/14 (dimension 5) :\n", "<][1 <>][2 ]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 8/14 (dimension 5) :\n", "<][2 ][1 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 9/14 (dimension 5) :\n", "<>][1 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 10/14 (dimension 5) :\n", "<>][1 <>][1 <>][2 ]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 11/14 (dimension 5) :\n", "<>][1 <>][2 ][1 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 12/14 (dimension 5) :\n", "<>][2 ][1 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 13/14 (dimension 5) :\n", "<][1 <>][1 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 14/14 (dimension 5) :\n", "<>][1 <>][1 <>][1 <>][1 <>]>> \n", "End of computing.\n", @@ -1775,157 +1775,157 @@ "Rank of the source-module : 26.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 1/26 (dimension 6) :\n", "<>][5 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 2/26 (dimension 6) :\n", "<>][3 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 3/26 (dimension 6) :\n", "<>][1 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 4/26 (dimension 6) :\n", "<>][2 ][3 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 5/26 (dimension 6) :\n", "<>][3 <>][2 ]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 6/26 (dimension 6) :\n", "<][1 <>][3 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 7/26 (dimension 6) :\n", "<][2 ][2 ]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 8/26 (dimension 6) :\n", "<][3 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 9/26 (dimension 6) :\n", "<>][1 <>][2 ]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 10/26 (dimension 6) :\n", "<>][2 ][1 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 11/26 (dimension 6) :\n", "<>][1 <>][1 <>][3 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 12/26 (dimension 6) :\n", "<>][1 <>][2 ][2 ]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 13/26 (dimension 6) :\n", "<>][1 <>][3 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 14/26 (dimension 6) :\n", "<>][2 ][1 <>][2 ]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 15/26 (dimension 6) :\n", "<>][2 ][2 ][1 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 16/26 (dimension 6) :\n", "<>][3 <>][1 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 17/26 (dimension 6) :\n", "<][1 <>][1 <>][2 ]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 18/26 (dimension 6) :\n", "<][1 <>][2 ][1 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 19/26 (dimension 6) :\n", "<][2 ][1 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 20/26 (dimension 6) :\n", "<>][1 <>][1 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 21/26 (dimension 6) :\n", "<>][1 <>][1 <>][1 <>][2 ]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 22/26 (dimension 6) :\n", "<>][1 <>][1 <>][2 ][1 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 23/26 (dimension 6) :\n", "<>][1 <>][2 ][1 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 24/26 (dimension 6) :\n", "<>][2 ][1 <>][1 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 25/26 (dimension 6) :\n", "<][1 <>][1 <>][1 <>][1 <>]>> \n", "End of computing.\n", "\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "Computing the boundary of the generator 26/26 (dimension 6) :\n", "<>][1 <>][1 <>][1 <>][1 <>][1 <>]>> \n", "End of computing.\n", @@ -1953,7 +1953,7 @@ "\n", "---done---\n", "\n", - ";; Clock -> 2016-03-15, 11h 59m 11s.\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", "\n" ] }, @@ -1963,7 +1963,7 @@ "NIL" ] }, - "execution_count": 33, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } @@ -1983,7 +1983,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 33, "metadata": { "collapsed": false }, @@ -1995,7 +1995,7 @@ "\n", "The object is a STANDARD-OBJECT of type CAT::SIMPLICIAL-SET.\n", "0. CMPR: #\n", - "1. BASIS: #\n", + "1. BASIS: #\n", "2. BSGN: *\n", "3. DFFR: [K2 Morphism (degree -1): K1 -> K1]\n", "4. GRMD: [K1 Simplicial-Set]\n", @@ -2003,7 +2003,7 @@ "6. IDNM: 1\n", "7. ORGN: (BUILD-FINITE-SS (*))\n", "8. CPRD: [K5 Morphism (degree 0): K1 -> K3]\n", - "9. FACE: #\n", + "9. FACE: #\n", "\n", "> \n", "Checking the 0-simplices..." @@ -2015,7 +2015,7 @@ "[K1 Simplicial-Set]" ] }, - "execution_count": 34, + "execution_count": 33, "metadata": {}, "output_type": "execute_result" } @@ -2026,7 +2026,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 34, "metadata": { "collapsed": false }, @@ -2034,10 +2034,10 @@ { "data": { "text/plain": [ - "[K374 Simplicial-Set]" + "[K372 Simplicial-Set]" ] }, - "execution_count": 35, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -2051,7 +2051,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 35, "metadata": { "collapsed": false }, @@ -2062,7 +2062,7 @@ "(DISK-PASTING [K1 Simplicial-Set] 2 S2 ( ))" ] }, - "execution_count": 36, + "execution_count": 35, "metadata": {}, "output_type": "execute_result" } @@ -2093,7 +2093,1783 @@ " :new-lbcc smst))))\n", "```\n", "\n", - "## The functions for the suspension" + "## The functions for the suspension\n", + "\n", + "In **Kenzo** the suspension process is realized by the function `suspension`. This function has one argument, a reduced object (chain complex, simplicial set, etc.). **If the object is not reduced, the result is undefined**. The CLOS mechanism is used to apply an adequate method for building the suspension of the object. For a chain complex, a new base point is created with name `:s-bsgn` and the degree of the generators is increased by 1. If the suspension process is applied to a homotopy equivalence, then firstly, the left bottom chain complex is suspended and secondly, the modification is propagated along the whole homotopy equivalence.\n", + "\n", + "`suspension-cmpr` *cmpr* *[Function]*\n", + "> From the comparison function *cmpr*, build a comparison function to compare two generators of a suspension.\n", + "\n", + "`suspension-basis` *basis* *[Function]*\n", + "> From the function *basis* of a chain complex, build a basis function for the suspension of this chain complex. In degree 0, the only generator is `:s-bsgn`, in degree 1, the basis is void and in degree $k,\\,k\\ge 2$, the elements of the basis of the suspension are the elements of the initial chain complex in degree $k-1$.\n", + "\n", + "`suspension-intr-dffr` *dffr* *[Function]*\n", + "> From the lisp differential function *dffr* of a chain complex, build the lisp differential function for the suspension of this chain complex.\n", + "\n", + "`suspension-intr-cprd` *cmbn* *[Function]*\n", + "> Return the result of the application of the coproduct of a suspension (considered as a coalgebra) upon the combination *cmbn*. Note that this function does not need any other argument than the combination.\n", + "\n", + "`suspension-face` *face* *[Function]*\n", + "> From the function face of a simplicial set, build the face function for the suspension of this simplicial set.\n", + "\n", + "`suspension-intr` *mrph* *[Function]*\n", + "> From a **Kenzo** morphism *mrph*, build an internal function corresponding to the suspension of the initial morphism. This function will be applied to a combination assumed to belong to a suspension of a chain complex.\n", + "\n", + "`suspension` *obj* `&optional` *(n 1)* *[Function]*\n", + "> Construct a new object, the suspension of the **reduced** object *obj*. The (geometrical) base point of the suspension of a chain complex (or simplicial set) is named `:s-bsgn`. The optional parameter *n* (default: 1) allows to create in one instruction iterated suspensions. This function calls the adequate method (`suspension-1`) for the object *obj*.\n", + "\n", + "`suspension-1` *chcm* *[Method]*\n", + "> Build the chain complex suspension of the chain complex *chcm*, using the basic functions above, as shown in the following call to `build-chcm`:\n", + "```commonlisp\n", + " (build-chcm\n", + " :cmpr (suspension-cmpr cmpr)\n", + " :basis (suspension-basis basis)\n", + " :bsgn :s-bsgn\n", + " :intr-dffr (suspension-intr-dffr dffr)\n", + " :strt :cmbn\n", + " :orgn `(suspension ,chcm))\n", + "```\n", + "\n", + "`suspension-1` *clbg* *[Method]*\n", + "> Return the coalgebra associated to the suspension of the coalgebra *clbg*. This calls internally the method for the suspension of the chain complex *clbg* then assigns the function `suspension-intr-cprd` to the value of the slot `cprd`.\n", + "\n", + "`suspension-1` *smst* *[Method]*\n", + "> Return the simplicial set, suspension of the simplicial set *smst*. This function uses the previous basic function `suspension-face`. The resulting object is also a coalgebra with a coproduct defined by the function `suspension-intr-cprd`.\n", + "\n", + "`suspension-1` *mrph* *[Method]*\n", + "> Build the suspension of the morphism *mrph*. This is a morphism of the same degree as *mrph*. If *mrph* is the zero morphism, return the zero morphism between the suspensions of the source and target of *mrph*. If *mrph* is the identity morphim, return the identity morphism upon the suspension of the source of *mrph*. Otherwise, return the morphism built by the following call to `build-mrph`:\n", + "```commonlisp\n", + " (build-mrph\n", + " :sorc (suspension (sorc mrph))\n", + " :trgt (suspension (trgt mrph))\n", + " :degr (degr mrph)\n", + " :intr (suspension-intr mrph)\n", + " :strt :cmbn\n", + " :orgn `(suspension ,mrph))\n", + "```\n", + "\n", + "`suspension-1` *rdct* *[Method]*\n", + "> Build the suspension of the reduction *rdct*. If *rdct* is the trivial reduction upon a chain complex ${\\cal C}$, return the trivial reduction upon the suspension of ${\\cal C}$. Otherwise, return the reduction built by the following call to the function `build-rdct`:\n", + "```commonlisp\n", + " (build-rdct\n", + " :f (suspension (f rdct))\n", + " :g (suspension (g rdct))\n", + " :h (suspension (h rdct))\n", + " :orgn `(suspension ,rdct))\n", + "```\n", + "\n", + "`suspension-1` *hmeq* *[Method]*\n", + "> Build the suspension of the homotopy equivalence *hmeq*. If *hmeq* is the trivial \n", + "homotopy equivalence upon a chain complex ${\\cal C}$, return the trivial homotopy equivalence upon\n", + "the suspension of ${\\cal C}$. Otherwise, return the homotopy equivalence built by the following call to the function `build-hmeq`:\n", + "```commonlisp\n", + " (build-hmeq\n", + " :lrdct (suspension (lrdct hmeq))\n", + " :rrdct (suspension (rrdct hmeq))\n", + " :orgn `(suspension ,hmeq))\n", + "```\n", + "\n", + "### Examples\n", + "\n", + "Firstly we test the coproduct of the suspension of $\\bar\\Delta$. In the third statement, the generators 7 and 11 are the binary coded representation of the simplices `(0 1 2)` and `(0 1 3)` in dimension 3 of ${\\cal S}\\bar\\Delta$," + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "\n", + "----------------------------------------------------------------------{CMBN 0}\n", + "------------------------------------------------------------------------------\n" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(suspension-intr-cprd (cmbn 0))" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "\n", + "----------------------------------------------------------------------{CMBN 0}\n", + "<5 * >\n", + "------------------------------------------------------------------------------\n" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(suspension-intr-cprd (cmbn 0 5 :s-bsgn))" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "\n", + "----------------------------------------------------------------------{CMBN 3}\n", + "<4 * >\n", + "<5 * >\n", + "<4 * >\n", + "<5 * >\n", + "------------------------------------------------------------------------------\n" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(suspension-intr-cprd (cmbn 3 4 7 5 11))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us verify now the classical result ${\\cal S}(S^n)=S^{n+1}$." + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K377 Simplicial-Set]" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def s1 (sphere 1))" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K382 Simplicial-Set]" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def ss1 (suspension s1))" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(SUSPENSION [K377 Simplicial-Set])" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(orgn ss1)" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "Dimension = 0:\n", + "\n", + " Vertices : (S-BSGN)\n", + "\n", + "Dimension = 1:\n", + "\n", + "Dimension = 2:\n", + "\n", + " Simplex : S1\n", + "\n", + " Faces : ( )" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(show-structure ss1 2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For comparison, let us recall the simplicial set model of $S^2$:" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "Dimension = 0:\n", + "\n", + " Vertices : (*)\n", + "\n", + "Dimension = 1:\n", + "\n", + "Dimension = 2:\n", + "\n", + " Simplex : S2\n", + "\n", + " Faces : ( )" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(show-structure (sphere 2) 2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us iterate twice the operation of suspension on $S^2$:" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K397 Simplicial-Set]" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def ss22 (suspension (sphere 2) 2))" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "Dimension = 0:\n", + "\n", + " Vertices : (S-BSGN)\n", + "\n", + "Dimension = 1:\n", + "\n", + "Dimension = 2:\n", + "\n", + "Dimension = 3:\n", + "\n", + "Dimension = 4:\n", + "\n", + " Simplex : S2\n", + "\n", + " Faces : ( )" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(show-structure ss22 4)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To test the suspension of a less simple chain complex, let us take a Moore space that we have seen in the simplicial set chapter. We know that the corresponding chain complex is connected. Let us compare the basis elements, in various degrees, of this chain complex and its suspension:" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K402 Simplicial-Set]" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def m23 (moore 2 3))" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "(*) \n", + "NIL \n", + "NIL \n", + "(M3) \n", + "(N4) \n", + "NIL \n", + "NIL " + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(dotimes (i 7) (print (basis m23 i)))" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K407 Simplicial-Set]" + ] + }, + "execution_count": 48, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def sm23 (suspension m23))" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "(:S-BSGN) \n", + "NIL \n", + "NIL \n", + "NIL \n", + "(M3) \n", + "(N4) \n", + "NIL " + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(dotimes (i 7) (print (basis sm23 i)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us apply now the function `suspension` to objects built from $S^2$, namely $\\Omega^1(S^2)$ and $\\Omega^2(S^2)$ and let us have a look upon the homology groups. For $S^2$, we know that the only non-null homology groups are in dimension 0 and 2:" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "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-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 0) :\n", + "* \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 1.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 0 :\n", + "\n", + "\n", + "Component Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\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-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 2) :\n", + "S2 \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 1 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 2.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 2) :\n", + "S2 \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 3.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 2 :\n", + "\n", + "\n", + "Component Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 3.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 4.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 3 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\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-15, 22h 19m 56s.\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(homology (sphere 2) 0 5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For ${\\cal S}(S^2)$, the non--null homology groups are of course in dimension 0 and 3:" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K392 Simplicial-Set]" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def ss2 (suspension (sphere 2)))" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "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-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 0) :\n", + ":S-BSGN \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-15, 22h 19m 56s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 1.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 2.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 1 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 2.\n", + "Rank of the source-module : 0.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 3.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 3) :\n", + "S2 \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 2 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 3.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 3) :\n", + "S2 \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-15, 22h 19m 56s.\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-15, 22h 19m 56s.\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(homology ss2 0 5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us verify now that, for the space $\\Omega(S^2)$, the homology groups are organized as the tensor algebra over one generator in degree 1:" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K387 Simplicial-Set]" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def s2 (sphere 2))" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K420 Simplicial-Group]" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def os2 (loop-space s2))" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "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-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 0) :\n", + "<> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 1.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 1) :\n", + "<> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 0 :\n", + "\n", + "\n", + "Component Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 1.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 1) :\n", + "<> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 2.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 2) :\n", + "<> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 1 :\n", + "\n", + "\n", + "Component Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 2.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 2) :\n", + "<> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 3.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 3) :\n", + "<> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 2 :\n", + "\n", + "\n", + "Component Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 3.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 3) :\n", + "<> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 4.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 4) :\n", + "<> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 3 :\n", + "\n", + "\n", + "Component Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 4.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 4) :\n", + "<> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 5.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 5) :\n", + "<> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 4 :\n", + "\n", + "\n", + "Component Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(homology os2 0 5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And, in the suspension of the previous space, we verify that the homology groups are suspended (in particular, there is no homology in dimension 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K529 Simplicial-Set]" + ] + }, + "execution_count": 56, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def sos2 (suspension os2))" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "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-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 0) :\n", + ":S-BSGN \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-15, 22h 19m 56s.\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-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 2) :\n", + "<> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 1 :\n", + "\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 2.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 2) :\n", + "<> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 3.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 3) :\n", + "<> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 2 :\n", + "\n", + "\n", + "Component Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 3.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 3) :\n", + "<> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 4.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 4) :\n", + "<> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 3 :\n", + "\n", + "\n", + "Component Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 4.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 4) :\n", + "<> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 5.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 5) :\n", + "<> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 4 :\n", + "\n", + "\n", + "Component Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 57, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(homology sos2 0 5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "At last, taking the loop space of the previous suspension, we recognize the tensor algebra over the previous tensor algebra, ${\\cal H}_*\\Omega S^2$. In each dimension, the number of generators is $2^n$:" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[K547 Simplicial-Group]" + ] + }, + "execution_count": 58, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(def osos2 (loop-space sos2))" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "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-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 0) :\n", + "<> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 1.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 1) :\n", + "<>]>> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 0 :\n", + "\n", + "\n", + "Component Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 1.\n", + "Rank of the source-module : 1.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/1 (dimension 1) :\n", + "<>]>> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 2.\n", + "Rank of the source-module : 2.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/2 (dimension 2) :\n", + "<>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 2/2 (dimension 2) :\n", + "<>][1 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 1 :\n", + "\n", + "\n", + "Component Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 2.\n", + "Rank of the source-module : 2.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/2 (dimension 2) :\n", + "<>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 2/2 (dimension 2) :\n", + "<>][1 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 3.\n", + "Rank of the source-module : 4.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/4 (dimension 3) :\n", + "<>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 2/4 (dimension 3) :\n", + "<>][2 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 3/4 (dimension 3) :\n", + "<>][1 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 4/4 (dimension 3) :\n", + "<>][1 <>][1 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 2 :\n", + "\n", + "\n", + "Component Z\n", + "\n", + "Component Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 3.\n", + "Rank of the source-module : 4.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/4 (dimension 3) :\n", + "<>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 2/4 (dimension 3) :\n", + "<>][2 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 3/4 (dimension 3) :\n", + "<>][1 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 4/4 (dimension 3) :\n", + "<>][1 <>][1 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 4.\n", + "Rank of the source-module : 8.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/8 (dimension 4) :\n", + "<>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 2/8 (dimension 4) :\n", + "<>][3 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 3/8 (dimension 4) :\n", + "<>][2 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 4/8 (dimension 4) :\n", + "<>][1 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 5/8 (dimension 4) :\n", + "<>][1 <>][2 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 6/8 (dimension 4) :\n", + "<>][2 <>][1 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 7/8 (dimension 4) :\n", + "<>][1 <>][1 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 8/8 (dimension 4) :\n", + "<>][1 <>][1 <>][1 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 3 :\n", + "\n", + "\n", + "Component Z\n", + "\n", + "Component Z\n", + "\n", + "Component Z\n", + "\n", + "Component Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 4.\n", + "Rank of the source-module : 8.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/8 (dimension 4) :\n", + "<>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 2/8 (dimension 4) :\n", + "<>][3 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 3/8 (dimension 4) :\n", + "<>][2 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 4/8 (dimension 4) :\n", + "<>][1 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 5/8 (dimension 4) :\n", + "<>][1 <>][2 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 6/8 (dimension 4) :\n", + "<>][2 <>][1 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 7/8 (dimension 4) :\n", + "<>][1 <>][1 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 8/8 (dimension 4) :\n", + "<>][1 <>][1 <>][1 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + "Computing boundary-matrix in dimension 5.\n", + "Rank of the source-module : 16.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 1/16 (dimension 5) :\n", + "<>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 2/16 (dimension 5) :\n", + "<>][4 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 3/16 (dimension 5) :\n", + "<>][3 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 4/16 (dimension 5) :\n", + "<>][2 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 5/16 (dimension 5) :\n", + "<>][1 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 6/16 (dimension 5) :\n", + "<>][1 <>][3 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 7/16 (dimension 5) :\n", + "<>][2 <>][2 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 8/16 (dimension 5) :\n", + "<>][3 <>][1 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 9/16 (dimension 5) :\n", + "<>][1 <>][2 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 10/16 (dimension 5) :\n", + "<>][2 <>][1 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 11/16 (dimension 5) :\n", + "<>][1 <>][1 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 12/16 (dimension 5) :\n", + "<>][1 <>][1 <>][2 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 13/16 (dimension 5) :\n", + "<>][1 <>][2 <>][1 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 14/16 (dimension 5) :\n", + "<>][2 <>][1 <>][1 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 15/16 (dimension 5) :\n", + "<>][1 <>][1 <>][1 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "Computing the boundary of the generator 16/16 (dimension 5) :\n", + "<>][1 <>][1 <>][1 <>][1 <>]>> \n", + "End of computing.\n", + "\n", + "\n", + "\n", + "\n", + "Homology in dimension 4 :\n", + "\n", + "\n", + "Component Z\n", + "\n", + "Component Z\n", + "\n", + "Component Z\n", + "\n", + "Component Z\n", + "\n", + "Component Z\n", + "\n", + "Component Z\n", + "\n", + "Component Z\n", + "\n", + "Component Z\n", + "\n", + "\n", + "---done---\n", + "\n", + ";; Clock -> 2016-03-15, 22h 19m 56s.\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "NIL" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(homology osos2 0 5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Searching homology for suspensions\n", + "\n", + "The comment list of a suspension has the form `(SUSPENSION` *suspended-object*`)`. The `search-efhm` method applied to a suspension, looks for the value of the `efhm` slot of the *suspended-object*, (i.e. a homotopy equivalence), then builds the suspension of this homotopy equivalence (see the method `suspension` applied to a homotopy equivalence). Of course, this may imply a recursive process.\n", + "```commonlisp\n", + "(DEFMETHOD SEARCH-EFHM (suspension (orgn (eql 'suspension)))\n", + " (declare (type chain-complex suspension))\n", + " (suspension (efhm (second (orgn suspension)))))\n", + "```\n", + "\n", + "### Lisp files concerned in this chapter\n", + "\n", + "`disk-pasting.lisp`, `suspensions.lisp`, `searching-homology.lisp`" ] } ],