4038 lines
106 KiB
Plaintext
4038 lines
106 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": [
|
|
"# Loop spaces fibrations\n",
|
|
"\n",
|
|
"## The canonical loop space fibration\n",
|
|
"\n",
|
|
"Let $X$ be a simplicial set. The program `Kenzo` implements the *canonical* twisted cartesian product of $X$ by its loop space $GX$, denoted $X \\times_\\tau GX$, giving the Kan (**Daniel M. Kan**. *A combinatorial definition of homotopy groups*, Ann. of Math., 1958, vol. 67, pp 282-312.) model of the contractible path space of $X$. The *canonical fibration*\n",
|
|
"$$ GX\\quad \\hookrightarrow\\quad X \\times_\\tau GX \\hskip 1.2em \\longrightarrow \\hskip -1.2em \\longrightarrow \n",
|
|
" \\quad X,$$\n",
|
|
"is defined by the application $\\tau$, where $\\tau(x)$ is the *letter* $x$ in $GX$. This twisted cartesian product has the same simplices as the non-twisted one. So both associated chain complexes are equal as graded modules. The essential difference resides in the differential morphism. More precisely, the face operator $\\partial_n$ behaves differently in the twisted cartesian product. Let $(x,g) \\in (X \\times_\\tau GX)_n$, then the rules for the face operators are:\n",
|
|
"$$\n",
|
|
"\\begin{aligned}\n",
|
|
"\\partial_i(x,g) & = & (\\partial_i x, \\partial_i g), \\qquad i<n, \\\\\n",
|
|
"\\partial_n(x,g) & = & (\\partial_n x, \\tau(x).\\partial_n g), \\qquad i=n,\n",
|
|
"\\end{aligned}\n",
|
|
"$$\n",
|
|
"where $\\tau(x)$ is the *letter* $x$ in $GX$ and '**.**' is the group product in $GX$. Let us recall that, from the mathematical definition of $GX$, if $x \\in X_{n+1}$ is $n$-degenerate, for instance $x=\\eta_n x'$, then $\\tau(x)$ is the neutral element of $GX_n$.\n",
|
|
"The behaviour of $\\partial_n$ induces a change in the differential morphism of the chain complex associated to the twisted cartesian product.\n",
|
|
"\n",
|
|
"## The associated tensor twisted product\n",
|
|
"\n",
|
|
"We recall that about the cartesian product $X \\times GX$, the Eilenberg-Zilber theorem allows to build the reduction (see the function `ez`):\n",
|
|
"$$\n",
|
|
"\\begin{aligned}\n",
|
|
"{{\\cal C}_*(X \\times GX)} \\quad& \\stackrel{h}{\\longrightarrow} & {}^s{{\\cal C}_*(X \\times GX)} \\cr\n",
|
|
" {\\scriptstyle f} \\downarrow \\uparrow {\\scriptstyle g} \\qquad& & \\cr\n",
|
|
" \\qquad{{\\cal C}_*(X) \\otimes {\\cal C}_*(GX)} & &\\cr\n",
|
|
"\\end{aligned}\n",
|
|
"$$\n",
|
|
"On the other hand, the differential morphism $d_\\tau$ of the chain complex ${\\cal C}_*(X \\times_\\tau GX)$ may be considered as a perturbed differential morphism $d$ of the chain complex ${\\cal C}_*(X \\times GX)$, the perturbation $\\delta$ being: $\\delta= d_\\tau - d$. Using the basic perturbation lemma, we may construct a new reduction:\n",
|
|
"$$\n",
|
|
"\\begin{aligned}\n",
|
|
"{{\\cal C}_*(X \\times_\\tau GX)} \\quad& \\stackrel{h}{\\longrightarrow} & {}^s{{\\cal C}_*(X \\times_\\tau GX)} \\cr\n",
|
|
" {\\scriptstyle f} \\downarrow \\uparrow {\\scriptstyle g} \\qquad& & \\cr\n",
|
|
" \\qquad{{\\cal C}_*(X) \\otimes_t {\\cal C}_*(GX)} & & \\cr\n",
|
|
"\\end{aligned}\n",
|
|
"$$\n",
|
|
"In fact, the interesting object produced by this machinery is the bottom chain complex ${\\cal C}_*(X) \\otimes_t {\\cal C}_*(GX)$, the (algebraic) twisted tensor-product of the \"base space\" $C_\\ast(X)$ by the \"fibre space\" $C_\\ast(GX)$, the twist being defined by a *canonical* twisting cochain $t \\in C^1(X ; C_\\ast(GX))$ (**Edgar H. Brown Jr.** *Twisted tensor products, I*,\n",
|
|
"Ann. of Math., 1959, vol. 69, pp. 223-246.).\n",
|
|
"\n",
|
|
"## Main functions for the twisted products\n",
|
|
"\n",
|
|
"`twisted-crts-prdc` *space* *[Function]*\n",
|
|
"> From the simplicial set $X$, here the argument *space*, return the twisted cartesian product $X \\times_\\tau GX$ (a simplicial set). This function calls internally the functions `loop-space` and `crts-prdc` described in preceding chapters. The slot `grmd` of the resulting instance is set with the ordinary cartesian product $X \\times GX$.\n",
|
|
"\n",
|
|
"`dtau-d` *space* *[Function]*\n",
|
|
"> From the simplicial set $X$, here the argument *space*, build the morphism perturbation (degree -1)\n",
|
|
"$$d_\\tau - d : C_\\ast(X \\times GX) \\longrightarrow C_\\ast(X \\times GX).$$\n",
|
|
"The work is essentialy done by the lisp function `dtau-d-intr` which computes the difference between the differential morphisms taking in account the discrepancy between the last face operator ($\\partial_n$) in both chain complexes, $C_\\ast(X \\times_\\tau GX)$ and $C_\\ast(X \\times GX)$.\n",
|
|
"\n",
|
|
"`szczarba` *space* *[Function]*\n",
|
|
"> Starting from the simplicial set $X$, (the argument *space*), return two values: \n",
|
|
"1- The reduction\n",
|
|
"$$\n",
|
|
"\\begin{aligned}\n",
|
|
"{{\\cal C}_*(X \\times_\\tau GX)}\\quad & \\stackrel{h}{\\longrightarrow} & {}^s{{\\cal C}_*(X \\times_\\tau GX)} \\cr\n",
|
|
" {\\scriptstyle f} \\downarrow \\uparrow {\\scriptstyle g}\\qquad \\cr\n",
|
|
" \\quad{{\\cal C}_*(X) \\otimes_t {\\cal C}_*(GX)} \\cr\n",
|
|
"\\end{aligned}\n",
|
|
"$$\n",
|
|
"obtained by perturbing by $d_\\tau-d$ the top chain complex of the reduction \n",
|
|
"$$\n",
|
|
"\\begin{aligned}\n",
|
|
"{{\\cal C}_*(X \\times GX)}\\quad & \\stackrel{h}{\\longrightarrow} & {}^s{{\\cal C}_*(X \\times GX)} \\cr\n",
|
|
" {\\scriptstyle f} \\downarrow \\uparrow {\\scriptstyle g}\\qquad \\cr\n",
|
|
" \\quad{{\\cal C}_*(X) \\otimes {\\cal C}_*(GX)} \\cr\n",
|
|
"\\end{aligned}\n",
|
|
"$$\n",
|
|
"2- The morphism corresponding to the perturbation of the bottom chain complex induced by the perturbation $d_\\tau-d$ upon the top chain complex of the above reduction.\n",
|
|
"\n",
|
|
"This algorithm implements in particular in a very efficient way the formulas of Szczarba (**R.H. Szczarba.** *The homology of twisted cartesian products.* Transactions of the American Math. Society, 1961, vol. 100, pp. 197-216).\n",
|
|
"\n",
|
|
"`twisted-tnsr-prdc` *space* *[Function]*\n",
|
|
"> Return the twisted tensor product (a chain complex) $C_\\ast(X) \\otimes_t C_\\ast(GX)$. This is done simply by extraction of the bottom chain complex from the reduction `(szczarba` *space*`)`.\n",
|
|
"\n",
|
|
"### Examples\n",
|
|
"\n",
|
|
"For testing the functions above, we shall use a \"soft\" version of $\\bar{\\Delta}$ analogous to `soft-delta` or `soft-delta-infinity`. The input of the simplices will be done in clear with the help of the macro `code`. As this version does not exist in `Kenzo`, we have modified some functions of `soft-delta`, as indicated."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"SOFT-DELTAB-CMPR"
|
|
]
|
|
},
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(DEFUN SOFT-DELTAB-CMPR (gmsm1 gmsm2)\n",
|
|
" (if (= 1 (logcount (cdr gmsm1))) \n",
|
|
" :EQUAL\n",
|
|
" (f-cmpr (cdr gmsm1)(cdr gmsm2)) ))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"SOFT-DELTAB-BNDR"
|
|
]
|
|
},
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(DEFUN SOFT-DELTAB-BNDR (dmns gmsm)\n",
|
|
" (declare\n",
|
|
" (fixnum dmns)\n",
|
|
" (type soft-dlop gmsm))\n",
|
|
" (the cmbn\n",
|
|
" (if (< dmns 2)\n",
|
|
" (zero-cmbn (1- dmns))\n",
|
|
" (make-cmbn\n",
|
|
" :degr (1- dmns)\n",
|
|
" :list (mapcar #'(lambda (term)\n",
|
|
" (with-term (cffc gmsm) term\n",
|
|
" (term cffc (d gmsm))))\n",
|
|
" (cmbn-list (delta-bndr dmns (cdr gmsm))))))))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"SOFT-DELTAB"
|
|
]
|
|
},
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(DEFUN SOFT-DELTAB ()\n",
|
|
" (the simplicial-set\n",
|
|
" (build-smst\n",
|
|
" :cmpr #'soft-deltab-cmpr\n",
|
|
" :basis :locally-effective\n",
|
|
" :bspn (d 1)\n",
|
|
" :face #'soft-delta-face\n",
|
|
";;; :intr-dgnl #'soft-delta-dgnl :dgnl-strt :gnrt\n",
|
|
" :intr-bndr #'soft-deltab-bndr :bndr-strt :gnrt\n",
|
|
" :orgn `(soft-deltab))))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"CODE"
|
|
]
|
|
},
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(defmacro code (arg) `(d (dlop-ext-int ,arg)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K1 Simplicial-Set]"
|
|
]
|
|
},
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def db (soft-deltab))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K6 Simplicial-Group]"
|
|
]
|
|
},
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def gdb (loop-space db))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Let us compare the faces of a cartesian product in $\\bar{\\Delta} \\times \\Omega(\\bar{\\Delta})$ and the faces of the same object in $\\bar{\\Delta} \\times_\\tau \\Omega(\\bar{\\Delta})$:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K18 Simplicial-Set]"
|
|
]
|
|
},
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def crts-pr (crts-prdc db gdb))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K23 Simplicial-Set]"
|
|
]
|
|
},
|
|
"execution_count": 9,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def tw-crts-pr (twisted-crts-prdc db))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<CrPr - (DELT . 31) - <<Loop[(DELT . 63)]>>>"
|
|
]
|
|
},
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def smpx (crpr 0 (code '(0 1 2 3 4)) \n",
|
|
" 0 (loop3 0 (code '(0 1 2 3 4 5)) 1)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"<AbSm - <CrPr - (DELT . 30) - <<Loop[(DELT . 62)]>>>> \n",
|
|
"<AbSm - <CrPr - (DELT . 29) - <<Loop[(DELT . 61)]>>>> \n",
|
|
"<AbSm - <CrPr - (DELT . 27) - <<Loop[(DELT . 59)]>>>> \n",
|
|
"<AbSm - <CrPr - (DELT . 23) - <<Loop[(DELT . 55)]>>>> \n",
|
|
"<AbSm - <CrPr - (DELT . 15) - <<Loop[(DELT . 31)\\-1][(DELT . 47)]>>>> "
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"NIL"
|
|
]
|
|
},
|
|
"execution_count": 11,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(dotimes (j 5)\n",
|
|
" (print (face crts-pr j 4 smpx)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"<AbSm - <CrPr - (DELT . 30) - <<Loop[(DELT . 62)]>>>> \n",
|
|
"<AbSm - <CrPr - (DELT . 29) - <<Loop[(DELT . 61)]>>>> \n",
|
|
"<AbSm - <CrPr - (DELT . 27) - <<Loop[(DELT . 59)]>>>> \n",
|
|
"<AbSm - <CrPr - (DELT . 23) - <<Loop[(DELT . 55)]>>>> \n",
|
|
"<AbSm - <CrPr - (DELT . 15) - <<Loop[(DELT . 47)]>>>> "
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"NIL"
|
|
]
|
|
},
|
|
"execution_count": 12,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(dotimes (j 5)\n",
|
|
" (print (face tw-crts-pr j 4 smpx)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<CrPr - (DELT . 62) - <<Loop[(DELT . 2016)]>>>"
|
|
]
|
|
},
|
|
"execution_count": 13,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def smpx2 (crpr 0 (code '(1 2 3 4 5)) \n",
|
|
" 0 (loop3 0 (code '(5 6 7 8 9 10)) 1)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 14,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"<AbSm - <CrPr - (DELT . 60) - <<Loop[(DELT . 1984)]>>>> \n",
|
|
"<AbSm - <CrPr - (DELT . 58) - <<Loop[(DELT . 1952)]>>>> \n",
|
|
"<AbSm - <CrPr - (DELT . 54) - <<Loop[(DELT . 1888)]>>>> \n",
|
|
"<AbSm - <CrPr - (DELT . 46) - <<Loop[(DELT . 1760)]>>>> \n",
|
|
"<AbSm - <CrPr - (DELT . 30) - <<Loop[(DELT . 992)\\-1][(DELT . 1504)]>>>> "
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"NIL"
|
|
]
|
|
},
|
|
"execution_count": 14,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(dotimes (j 5)\n",
|
|
" (print (face crts-pr j 4 smpx2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 15,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"<AbSm - <CrPr - (DELT . 60) - <<Loop[(DELT . 1984)]>>>> \n",
|
|
"<AbSm - <CrPr - (DELT . 58) - <<Loop[(DELT . 1952)]>>>> \n",
|
|
"<AbSm - <CrPr - (DELT . 54) - <<Loop[(DELT . 1888)]>>>> \n",
|
|
"<AbSm - <CrPr - (DELT . 46) - <<Loop[(DELT . 1760)]>>>> \n",
|
|
"<AbSm - <CrPr - (DELT . 30) - <<Loop[(DELT . 62)][(DELT . 992)\\-1][(DELT . 1504)]>>>> "
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"NIL"
|
|
]
|
|
},
|
|
"execution_count": 15,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(dotimes (j 5)\n",
|
|
" (print (face tw-crts-pr j 4 smpx2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The user will have noted that we may obtain the same twisted cartesian product by the fibration theory. Let us define a general function `loop-fbr` with a reduced simplicial set, *space*, as argument. This function uses the function `fibration-total` that we have seen in the chapter about fibrations. Here, we see that the lisp function for the simplicial morphism, (keyword `:sintr`), implements straightforwardly the canonical twisting operator which applies a simplex of $X$ to the corresponding 1-letter word of $GX$."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"LOOP-FBR"
|
|
]
|
|
},
|
|
"execution_count": 16,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(defun loop-fbr (space)\n",
|
|
" (fibration-total\n",
|
|
" (build-smmr\n",
|
|
" :sorc space \n",
|
|
" :trgt (loop-space space) \n",
|
|
" :degr -1\n",
|
|
" :sintr #'(lambda (dmns gmsm) (declare (ignore dmns))\n",
|
|
" (absm 0 (loop3 0 gmsm 1)))\n",
|
|
" :orgn `(total-fibration ,space))))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 17,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K29 Simplicial-Set]"
|
|
]
|
|
},
|
|
"execution_count": 17,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def fb-tt-db (loop-fbr db))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 18,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"<AbSm - <CrPr - (DELT . 60) - <<Loop[(DELT . 1984)]>>>> \n",
|
|
"<AbSm - <CrPr - (DELT . 58) - <<Loop[(DELT . 1952)]>>>> \n",
|
|
"<AbSm - <CrPr - (DELT . 54) - <<Loop[(DELT . 1888)]>>>> \n",
|
|
"<AbSm - <CrPr - (DELT . 46) - <<Loop[(DELT . 1760)]>>>> \n",
|
|
"<AbSm - <CrPr - (DELT . 30) - <<Loop[(DELT . 62)][(DELT . 992)\\-1][(DELT . 1504)]>>>> "
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"NIL"
|
|
]
|
|
},
|
|
"execution_count": 18,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(dotimes (j 5)\n",
|
|
" (print(face fb-tt-db j 4 smpx2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The four following statements show the relationship between the differentials:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 19,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K34 Morphism (degree -1): K18 -> K18]"
|
|
]
|
|
},
|
|
"execution_count": 19,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def perturb (dtau-d db))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 20,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<1 * <CrPr - (DELT . 30) - <<Loop[(DELT . 62)][(DELT . 992)\\-1][(DELT . 1504)]>>>>\n",
|
|
"<-1 * <CrPr - (DELT . 30) - <<Loop[(DELT . 992)\\-1][(DELT . 1504)]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 20,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? perturb 4 smpx2)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 21,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<1 * <CrPr - (DELT . 30) - <<Loop[(DELT . 992)\\-1][(DELT . 1504)]>>>>\n",
|
|
"<-1 * <CrPr - (DELT . 46) - <<Loop[(DELT . 1760)]>>>>\n",
|
|
"<1 * <CrPr - (DELT . 54) - <<Loop[(DELT . 1888)]>>>>\n",
|
|
"<-1 * <CrPr - (DELT . 58) - <<Loop[(DELT . 1952)]>>>>\n",
|
|
"<1 * <CrPr - (DELT . 60) - <<Loop[(DELT . 1984)]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 21,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? crts-pr 4 smpx2)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 22,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<1 * <CrPr - (DELT . 30) - <<Loop[(DELT . 62)][(DELT . 992)\\-1][(DELT . 1504)]>>>>\n",
|
|
"<-1 * <CrPr - (DELT . 46) - <<Loop[(DELT . 1760)]>>>>\n",
|
|
"<1 * <CrPr - (DELT . 54) - <<Loop[(DELT . 1888)]>>>>\n",
|
|
"<-1 * <CrPr - (DELT . 58) - <<Loop[(DELT . 1952)]>>>>\n",
|
|
"<1 * <CrPr - (DELT . 60) - <<Loop[(DELT . 1984)]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 22,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? tw-crts-pr 4 smpx2)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The same type of tests may be done with another reduced simplicial set, namely $P^3\\mathbb{R}$."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 23,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K35 Simplicial-Set]"
|
|
]
|
|
},
|
|
"execution_count": 23,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def pri3 (R-proj-space 3))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 24,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K57 Simplicial-Set]"
|
|
]
|
|
},
|
|
"execution_count": 24,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def tw-pri3 (twisted-crts-prdc pri3))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 25,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
":LOCALLY-EFFECTIVE"
|
|
]
|
|
},
|
|
"execution_count": 25,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(basis tw-pri3)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 26,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K52 Simplicial-Set]"
|
|
]
|
|
},
|
|
"execution_count": 26,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def crt-pri3 (crts-prdc pri3 (loop-space pri3)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 27,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<CrPr - 4 - <<Loop[5]>>>"
|
|
]
|
|
},
|
|
"execution_count": 27,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def s (crpr 0 4 0 (loop3 0 5 1)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 28,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"<AbSm - <CrPr - 3 - <<Loop[4]>>>> \n",
|
|
"<AbSm 0 <CrPr 1-0 0 - <<Loop[3]>>>> \n",
|
|
"<AbSm 1 <CrPr 1-0 0 - <<Loop[3]>>>> \n",
|
|
"<AbSm 2 <CrPr 1-0 0 - <<Loop[3]>>>> \n",
|
|
"<AbSm - <CrPr - 3 - <<Loop[4\\-1]>>>> "
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"NIL"
|
|
]
|
|
},
|
|
"execution_count": 28,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(dotimes (i 5) (print (face crt-pri3 i 4 s)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 29,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"<AbSm - <CrPr - 3 - <<Loop[4]>>>> \n",
|
|
"<AbSm 0 <CrPr 1-0 0 - <<Loop[3]>>>> \n",
|
|
"<AbSm 1 <CrPr 1-0 0 - <<Loop[3]>>>> \n",
|
|
"<AbSm 2 <CrPr 1-0 0 - <<Loop[3]>>>> \n",
|
|
"<AbSm - <CrPr - 3 2-1-0 <<Loop>>>> "
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"NIL"
|
|
]
|
|
},
|
|
"execution_count": 29,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(dotimes (i 5) (print (face tw-pri3 i 4 s)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 30,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K63 Simplicial-Set]"
|
|
]
|
|
},
|
|
"execution_count": 30,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def fb-tt-pri3 (loop-fbr pri3))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 31,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"<AbSm - <CrPr - 3 - <<Loop[4]>>>> \n",
|
|
"<AbSm 0 <CrPr 1-0 0 - <<Loop[3]>>>> \n",
|
|
"<AbSm 1 <CrPr 1-0 0 - <<Loop[3]>>>> \n",
|
|
"<AbSm 2 <CrPr 1-0 0 - <<Loop[3]>>>> \n",
|
|
"<AbSm - <CrPr - 3 2-1-0 <<Loop>>>> "
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"NIL"
|
|
]
|
|
},
|
|
"execution_count": 31,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(dotimes (j 5) (print (face fb-tt-pri3 j 4 s)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Let us check now the Szczarba reduction, with the simplicial set $\\bar{\\Delta}$."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 32,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K90 Reduction K23 => K88]"
|
|
]
|
|
},
|
|
"execution_count": 32,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def szc-reduc (szczarba db))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 33,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"---done---"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"NIL"
|
|
]
|
|
},
|
|
"execution_count": 33,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(pre-check-rdct szc-reduc)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 34,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 2}\n",
|
|
"<1 * <CrPr - (DELT . 7) - <<Loop[(DELT . 480)]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 34,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(setf *tc* (cmbn 2 1 (crpr 0 (code '(0 1 2)) \n",
|
|
" 0 (loop3 0 (code '(5 6 7 8)) 1))))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 35,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 2}\n",
|
|
"<1 * <TnPr (DELT . 1) <<Loop[(DELT . 480)]>>>>\n",
|
|
"<10 * <TnPr (DELT . 3072) <<Loop[(DELT . 7)]>>>>\n",
|
|
"<100 * <TnPr (DELT . 7) <<Loop[(DELT . 3072)]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 35,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(setf *bc* (cmbn 2 1 (tnpr 0 (code '(0)) 2 (loop3 0 (code '(5 6 7 8)) 1))\n",
|
|
" 10 (tnpr 1 (code '(10 11)) 1 (loop3 0 (code '(0 1 2)) 1))\n",
|
|
" 100 (tnpr 2 (code '(0 1 2)) 0 (loop3 0 (code '(10 11)) 1))))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 36,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"---done---"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"NIL"
|
|
]
|
|
},
|
|
"execution_count": 36,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(pre-check-rdct szc-reduc)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 37,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"*TC* => \n",
|
|
"----------------------------------------------------------------------{CMBN 2}\n",
|
|
"<1 * <CrPr - (DELT . 7) - <<Loop[(DELT . 480)]>>>>\n",
|
|
"------------------------------------------------------------------------------\n",
|
|
"\n",
|
|
"*BC* => \n",
|
|
"----------------------------------------------------------------------{CMBN 2}\n",
|
|
"<1 * <TnPr (DELT . 1) <<Loop[(DELT . 480)]>>>>\n",
|
|
"<10 * <TnPr (DELT . 3072) <<Loop[(DELT . 7)]>>>>\n",
|
|
"<100 * <TnPr (DELT . 7) <<Loop[(DELT . 3072)]>>>>\n",
|
|
"------------------------------------------------------------------------------\n",
|
|
"\n",
|
|
"Checking *TDD* = 0\n",
|
|
"Result: \n",
|
|
"----------------------------------------------------------------------{CMBN 0}\n",
|
|
"------------------------------------------------------------------------------\n",
|
|
"\n",
|
|
"Checking *BDD* = 0\n",
|
|
"Result: \n",
|
|
"----------------------------------------------------------------------{CMBN 0}\n",
|
|
"------------------------------------------------------------------------------\n",
|
|
"\n",
|
|
"Checking *DF-FD* = 0\n",
|
|
"Result: \n",
|
|
"----------------------------------------------------------------------{CMBN 1}\n",
|
|
"------------------------------------------------------------------------------\n",
|
|
"\n",
|
|
"Checking *DG-GD* = 0\n",
|
|
"Result: \n",
|
|
"----------------------------------------------------------------------{CMBN 1}\n",
|
|
"------------------------------------------------------------------------------\n",
|
|
"\n",
|
|
"Checking *ID-FG* = 0\n",
|
|
"Result: \n",
|
|
"----------------------------------------------------------------------{CMBN 2}\n",
|
|
"------------------------------------------------------------------------------\n",
|
|
"\n",
|
|
"Checking *ID-GF-DH-HD* = 0\n",
|
|
"Result: \n",
|
|
"----------------------------------------------------------------------{CMBN 2}\n",
|
|
"------------------------------------------------------------------------------\n",
|
|
"\n",
|
|
"Checking *HH* = 0\n",
|
|
"Result: \n",
|
|
"----------------------------------------------------------------------{CMBN 4}\n",
|
|
"------------------------------------------------------------------------------\n",
|
|
"\n",
|
|
"Checking *FH* = 0\n",
|
|
"Result: \n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"------------------------------------------------------------------------------\n",
|
|
"\n",
|
|
"Checking *HG* = 0\n",
|
|
"Result: \n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"------------------------------------------------------------------------------\n",
|
|
"\n",
|
|
"---done---"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"NIL"
|
|
]
|
|
},
|
|
"execution_count": 37,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(check-rdct-no-wait)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Exercice with the twisting cochain.\n",
|
|
"\n",
|
|
"Let $B$ be a reduced simplicial set and its loop space $GB$ (a simplicial group). In the following examples, we shall use the efficient `Kenzo` version of the simplicial set $\\bar{\\Delta}$, i.e. the simplices are input and printed under their binary form coding.\n",
|
|
"\n",
|
|
"### The twisting cochain.\n",
|
|
"\n",
|
|
"The twisting cochain $t$ is the morphism\n",
|
|
"$$t: aug \\circ d_{\\otimes t} \\circ coaug$$\n",
|
|
"where,\n",
|
|
"- $coaug$ is the morphism \n",
|
|
"$$ coaug: B \\rightarrow B \\otimes GB,$$\n",
|
|
"$$ coaug(b) = b \\otimes 1_{GB}. $$\n",
|
|
"- $d_{\\otimes t}$ is the differential morphism of the twisted tensor product $B \\otimes_t GB$.\n",
|
|
"- $aug$ is the morphism\n",
|
|
"$$aug: B \\otimes GB \\longrightarrow GB , $$\n",
|
|
"$$\n",
|
|
"\\begin{aligned}\n",
|
|
"aug(b_i \\otimes g_j)& = g_j, & b_i \\in B_0, \\\\\n",
|
|
"aug(b_i \\otimes g_j)& = 0, & b_i \\in B_k,\\, k\\not=0.\n",
|
|
"\\end{aligned}\n",
|
|
"$$\n",
|
|
"We recall that, as graded modules, $B\\otimes GB$ and $B \\otimes_t GB$ are identical.\n",
|
|
"\n",
|
|
"First, we create $\\bar{\\Delta}$ and $G\\bar{\\Delta}$. The function `twisted-tnsr-prdc` extracts the twisted tensor product $\\bar{\\Delta} \\otimes_t G\\bar{\\Delta}$ from the reduction obtained by a call to the function `szczarba`."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 38,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K112 Simplicial-Set]"
|
|
]
|
|
},
|
|
"execution_count": 38,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def d (deltab))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 39,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K117 Simplicial-Group]"
|
|
]
|
|
},
|
|
"execution_count": 39,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def gd (loop-space d))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 40,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K160 Chain-Complex]"
|
|
]
|
|
},
|
|
"execution_count": 40,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def d-twtp-gd (twisted-tnsr-prdc d))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Let us define the coaugmentation and augmentation morphisms. As usual, it is sufficient to define the algorithm on a generator."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 41,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K163 Morphism (degree 0): K112 -> K160]"
|
|
]
|
|
},
|
|
"execution_count": 41,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def coaug (build-mrph \n",
|
|
" :sorc d \n",
|
|
" :trgt d-twtp-gd \n",
|
|
" :degr 0\n",
|
|
" :intr #'(lambda (degr gnrt)\n",
|
|
" (term-cmbn degr 1 (tnpr degr gnrt 0 +null-loop+)))\n",
|
|
" :strt :gnrt \n",
|
|
" :orgn '(coaug. d --> d-twtp-gd)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 42,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<1 * <TnPr 15 <<Loop>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 42,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? coaug 3 15)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 43,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 4}\n",
|
|
"<1 * <TnPr 31 <<Loop>>>>\n",
|
|
"<1 * <TnPr 62 <<Loop>>>>\n",
|
|
"<1 * <TnPr 124 <<Loop>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 43,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? coaug (cmbn 4 1 31 1 62 1 124))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 44,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K164 Morphism (degree 0): K160 -> K117]"
|
|
]
|
|
},
|
|
"execution_count": 44,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def aug (build-mrph\n",
|
|
" :sorc d-twtp-gd\n",
|
|
" :trgt gd\n",
|
|
" :degr 0\n",
|
|
" :intr #'(lambda (degr tnpr)\n",
|
|
" (with-tnpr (degr1 gmsm1 degr2 loop2) tnpr\n",
|
|
" (declare (ignore gmsm1 degr2))\n",
|
|
" (if (zerop degr1)\n",
|
|
" (term-cmbn degr 1 loop2)\n",
|
|
" (zero-cmbn degr))))\n",
|
|
" :strt :gnrt\n",
|
|
" :orgn '(aug. of d-twtp-gd)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 45,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 2}\n",
|
|
"<9 * <<Loop[15]>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 45,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? aug (cmbn 2 9 (tnpr 0 1 2 (loop3 0 15 1))\n",
|
|
" 3 (tnpr 1 3 1 (loop3 0 7 1))))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The morphism `cochain` is simply a composition of morphisms. We apply it upon the simplices `(0)`, `(0 1 2)`, `(0 1 2 3)`, ..., coded as the integers $1,7,15,\\ldots$."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 46,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K166 Morphism (degree -1): K112 -> K117]"
|
|
]
|
|
},
|
|
"execution_count": 46,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def cochain (i-cmps aug (dffr d-twtp-gd) coaug))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 47,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN -1}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 47,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? cochain 0 1)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 48,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 1}\n",
|
|
"<1 * <<Loop[0 3][7]>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 48,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? cochain 2 7)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 49,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 2}\n",
|
|
"<1 * <<Loop[1-0 3][0 7][1 13]>>>\n",
|
|
"<-1 * <<Loop[1-0 3][1 7][15]>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 49,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? cochain 3 15)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 50,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<-1 * <<Loop[2-1-0 3][1-0 7][2-0 13][2-1 25]>>>\n",
|
|
"<1 * <<Loop[2-1-0 3][1-0 7][2-1 13][2 29]>>>\n",
|
|
"<1 * <<Loop[2-1-0 3][2-0 7][0 15][2-1 25]>>>\n",
|
|
"<-1 * <<Loop[2-1-0 3][2-0 7][2-1 13][1 29]>>>\n",
|
|
"<-1 * <<Loop[2-1-0 3][2-1 7][1 15][2 27]>>>\n",
|
|
"<1 * <<Loop[2-1-0 3][2-1 7][2 15][31]>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 50,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? cochain 4 31)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 51,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 4}\n",
|
|
"<-1 * <<Loop[3-2-1-0 3][2-1-0 7][3-1-0 13][3-2-0 25][3-2-1 49]>>>\n",
|
|
"<1 * <<Loop[3-2-1-0 3][2-1-0 7][3-1-0 13][3-2-1 25][3-2 57]>>>\n",
|
|
"<1 * <<Loop[3-2-1-0 3][2-1-0 7][3-2-0 13][3-0 29][3-2-1 49]>>>\n",
|
|
"<-1 * <<Loop[3-2-1-0 3][2-1-0 7][3-2-0 13][3-2-1 25][3-1 57]>>>\n",
|
|
"<-1 * <<Loop[3-2-1-0 3][2-1-0 7][3-2-1 13][3-1 29][3-2 53]>>>\n",
|
|
"<1 * <<Loop[3-2-1-0 3][2-1-0 7][3-2-1 13][3-2 29][3 61]>>>\n",
|
|
"<1 * <<Loop[3-2-1-0 3][3-1-0 7][1-0 15][3-2-0 25][3-2-1 49]>>>\n",
|
|
"<-1 * <<Loop[3-2-1-0 3][3-1-0 7][1-0 15][3-2-1 25][3-2 57]>>>\n",
|
|
"<-1 * <<Loop[3-2-1-0 3][3-1-0 7][3-2-0 13][2-0 29][3-2-1 49]>>>\n",
|
|
"<1 * <<Loop[3-2-1-0 3][3-1-0 7][3-2-0 13][3-2-1 25][2-1 57]>>>\n",
|
|
"... ...\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 51,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? cochain 5 63)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"We verify, that for a simplex in dimension $n$, the length of the resulting combination is $(n-1)!$."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 52,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"24"
|
|
]
|
|
},
|
|
"execution_count": 52,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(length(cmbn-list *))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 53,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 5}\n",
|
|
"<1 * <<Loop[4-3-2-1-0 3][3-2-1-0 7][4-2-1-0 13][4-3-1-0 25][4-3-2-0 49][4-3-2-1 97]>>>\n",
|
|
"<-1 * <<Loop[4-3-2-1-0 3][3-2-1-0 7][4-2-1-0 13][4-3-1-0 25][4-3-2-1 49][4-3-2 113]>>>\n",
|
|
"<-1 * <<Loop[4-3-2-1-0 3][3-2-1-0 7][4-2-1-0 13][4-3-2-0 25][4-3-0 57][4-3-2-1 97]>>>\n",
|
|
"<1 * <<Loop[4-3-2-1-0 3][3-2-1-0 7][4-2-1-0 13][4-3-2-0 25][4-3-2-1 49][4-3-1 113]>>>\n",
|
|
"<1 * <<Loop[4-3-2-1-0 3][3-2-1-0 7][4-2-1-0 13][4-3-2-1 25][4-3-1 57][4-3-2 105]>>>\n",
|
|
"<-1 * <<Loop[4-3-2-1-0 3][3-2-1-0 7][4-2-1-0 13][4-3-2-1 25][4-3-2 57][4-3 121]>>>\n",
|
|
"<-1 * <<Loop[4-3-2-1-0 3][3-2-1-0 7][4-3-1-0 13][4-1-0 29][4-3-2-0 49][4-3-2-1 97]>>>\n",
|
|
"<1 * <<Loop[4-3-2-1-0 3][3-2-1-0 7][4-3-1-0 13][4-1-0 29][4-3-2-1 49][4-3-2 113]>>>\n",
|
|
"<1 * <<Loop[4-3-2-1-0 3][3-2-1-0 7][4-3-1-0 13][4-3-2-0 25][4-2-0 57][4-3-2-1 97]>>>\n",
|
|
"<-1 * <<Loop[4-3-2-1-0 3][3-2-1-0 7][4-3-1-0 13][4-3-2-0 25][4-3-2-1 49][4-2-1 113]>>>\n",
|
|
"... ...\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 53,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? cochain 6 127)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 54,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"120"
|
|
]
|
|
},
|
|
"execution_count": 54,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(length(cmbn-list *))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Expression of the differential $d_{\\otimes t}$\n",
|
|
"\n",
|
|
"The differential $d_{\\otimes t}$ of the twisted tensor product $B \\otimes_t GB$ may be expressed as the sum of the differential of the simple tensor product $B \\otimes GB$ and the following morphism of degree -1,\n",
|
|
"$$\\nabla: B \\otimes GB \\longrightarrow B \\otimes GB,$$\n",
|
|
"where $\\nabla$ is the composition of the morphisms of the following sequence:\n",
|
|
"$$B\\otimes GB \\buildrel {\\Delta\\otimes 1_{GB}} \\over \\longrightarrow (B\\otimes B) \\otimes GB\n",
|
|
" \\buildrel {assoc} \\over \\longrightarrow B \\otimes (B \\otimes GB)\n",
|
|
" \\buildrel {1_B \\otimes (t \\otimes 1_{GB})} \\over \\longrightarrow B \\otimes (GB \\otimes GB)\n",
|
|
" \\buildrel {1_B \\otimes \\varpi} \\over \\longrightarrow B \\otimes GB.$$\n",
|
|
"In the previous formula, $\\Delta$ is the coproduct in the coalgebra $B$, $\\varpi$ is the product in the algebra $GB$, $1_B$ is the identity morphism in $B$ and $1_{GB}$ the identity morphism in $GB$. We need also, as in a previous example, an \"assoc\" morphism for the compound tensor product. The user will note the easiness for coding in `Kenzo` such a long composition of morphisms."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 55,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K167 Chain-Complex]"
|
|
]
|
|
},
|
|
"execution_count": 55,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def 3-left (tnsr-prdc (tnsr-prdc d d) gd))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 56,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K169 Chain-Complex]"
|
|
]
|
|
},
|
|
"execution_count": 56,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def 3-right (tnsr-prdc d (tnsr-prdc d gd)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 57,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K171 Morphism (degree 0): K167 -> K169]"
|
|
]
|
|
},
|
|
"execution_count": 57,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def assoc1 (build-mrph\n",
|
|
" :sorc 3-left\n",
|
|
" :trgt 3-right\n",
|
|
" :degr 0\n",
|
|
" :intr #'(lambda (degr a2-a) (declare (ignore degr))\n",
|
|
" (with-tnpr (degra2 gnrta2 degra gnrta) a2-a\n",
|
|
" (declare (ignore degra2))\n",
|
|
" (with-tnpr (degr1 gnrt1 degr2 gnrt2) gnrta2\n",
|
|
" (cmbn (+ degr1 degr2 degra) \n",
|
|
" 1 (tnpr degr1 \n",
|
|
" gnrt1 \n",
|
|
" (+ degr2 degra) \n",
|
|
" (tnpr degr2 gnrt2 degra gnrta))))))\n",
|
|
" :strt :gnrt\n",
|
|
" :orgn '(assoc-double-tensor-product)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 58,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K172 Morphism (degree 0): K112 -> K112]"
|
|
]
|
|
},
|
|
"execution_count": 58,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def id-d (idnt-mrph d))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 59,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K173 Morphism (degree 0): K117 -> K117]"
|
|
]
|
|
},
|
|
"execution_count": 59,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def id-gd (idnt-mrph gd))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 60,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K185 Morphism (degree -1): K139 -> K139]"
|
|
]
|
|
},
|
|
"execution_count": 60,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def nabla \n",
|
|
" (add (dffr (tnsr-prdc d gd))\n",
|
|
" (i-cmps (tnsr-prdc id-d (aprd gd))\n",
|
|
" (tnsr-prdc id-d (tnsr-prdc cochain id-gd))\n",
|
|
" assoc1\n",
|
|
" (tnsr-prdc (cprd d) id-gd))))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"We verify that the morphism `nabla` and the differential of the twisted tensor product (accessible through the symbol `d-twtp-gd`) return the same results:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 61,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 1}\n",
|
|
"<1 * <TnPr 1 <<Loop[7]>>>>\n",
|
|
"<-1 * <TnPr 1 <<Loop[0 3][7]>>>>\n",
|
|
"<1 * <TnPr 3 <<Loop[3\\-1][5]>>>>\n",
|
|
"<-1 * <TnPr 3 <<Loop[6]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 61,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? (dffr d-twtp-gd) 2 (tnpr 1 3 1 (loop3 0 7 1)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 62,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 1}\n",
|
|
"<1 * <TnPr 1 <<Loop[7]>>>>\n",
|
|
"<-1 * <TnPr 1 <<Loop[0 3][7]>>>>\n",
|
|
"<1 * <TnPr 3 <<Loop[3\\-1][5]>>>>\n",
|
|
"<-1 * <TnPr 3 <<Loop[6]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 62,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? nabla 2 (tnpr 1 3 1 (loop3 0 7 1)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 63,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K186 Morphism (degree -1): K139 -> K139]"
|
|
]
|
|
},
|
|
"execution_count": 63,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def zero (sbtr nabla (dffr d-twtp-gd)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 64,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 1}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 64,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? zero 2 (tnpr 1 3 1 (loop3 0 7 1)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 65,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 4}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 65,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? zero 5 (tnpr 3 15 2 (loop3 0 15 1)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"### The cup product of the twisting cochain\n",
|
|
"\n",
|
|
"The cup product $t \\sqcup t$ of the twisting cochain $t$,\n",
|
|
"$$t\\sqcup t: B \\longrightarrow GB$$\n",
|
|
"is defined by the following composition of morphisms:\n",
|
|
"$$B \\buildrel {\\Delta} \\over \\longrightarrow B \\otimes B\n",
|
|
" \\buildrel {t \\otimes t} \\over \\longrightarrow GB \\otimes GB \n",
|
|
" \\buildrel {\\varpi} \\over \\longrightarrow GB.$$\n",
|
|
"We may now verify the formula\n",
|
|
"$$ d_{GB} \\circ t + t \\circ d_B + t\\sqcup t =0,$$\n",
|
|
"where $d_B$ and $d_{GB}$ are the respective differential morphisms in $B$ and $GB$."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 66,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K189 Morphism (degree -2): K112 -> K117]"
|
|
]
|
|
},
|
|
"execution_count": 66,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def t-cup-t (i-cmps (aprd gd) (tnsr-prdc cochain cochain) (cprd d)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 67,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K190 Morphism (degree -2): K112 -> K117]"
|
|
]
|
|
},
|
|
"execution_count": 67,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def dt (cmps (dffr gd) cochain))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 68,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K191 Morphism (degree -2): K112 -> K117]"
|
|
]
|
|
},
|
|
"execution_count": 68,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def td (cmps cochain (dffr d)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 69,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K193 Morphism (degree -2): K112 -> K117]"
|
|
]
|
|
},
|
|
"execution_count": 69,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def zero-2 (i-add dt td t-cup-t))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 70,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 1}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 70,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? zero-2 3 15)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 71,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 2}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 71,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? zero-2 4 31)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 72,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 72,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? zero-2 5 63)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 73,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 4}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 73,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? zero-2 6 127)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"So the user has easily verified the *cochain condition* for the twisting cochain $t$.\n",
|
|
"\n",
|
|
"## The essential contraction\n",
|
|
"\n",
|
|
"It is known that if $B$ is a reduced simplicial set, the space $B \\times_\\tau GB$ is contractible. So it is possible to build a reduction of this space over $\\mathbb{Z}$. This reduction depends of the important contraction\n",
|
|
"$$\\chi_{\\times\\tau}: {{\\cal C}_*(B) \\times_\\tau {\\cal C}_*(GB)} \\longrightarrow \n",
|
|
" {{\\cal C}_*(B) \\times_\\tau {\\cal C}_*(GB)}, $$\n",
|
|
"which is a homotopy operator (degree: $+1$) satisfying the relation\n",
|
|
"$$d \\circ \\chi_{\\times\\tau} + \\chi_{\\times\\tau} \\circ d =1.$$\n",
|
|
"Now, from the reduction\n",
|
|
"$$\n",
|
|
"\\begin{aligned}\n",
|
|
"{{\\cal C}_*(X \\times_\\tau GX)} \\quad& \\stackrel{h}{\\longrightarrow} & {}^s{{\\cal C}_*(X \\times_\\tau GX)} \\cr\n",
|
|
" {\\scriptstyle f} \\downarrow \\uparrow {\\scriptstyle g} \\qquad \\cr\n",
|
|
" {{\\cal C}_*(X) \\otimes_t {\\cal C}_*(GX)} \\cr\n",
|
|
"\\end{aligned}\n",
|
|
"$$\n",
|
|
"there is also an induced contraction \n",
|
|
"$$\\chi_{\\otimes t}: {{\\cal C}_*(B) \\otimes_t {\\cal C}_*(GB)} \\longrightarrow \n",
|
|
" {{\\cal C}_*(B) \\otimes_t {\\cal C}_*(GB)}, $$\n",
|
|
"defined by $\\chi_{\\otimes t}= f \\circ \\chi_{\\times\\tau} \\circ g$.\n",
|
|
"This implies that the twisted tensor product is also contractible over $\\mathbb{Z}$.\n",
|
|
"\n",
|
|
"The two functions of `Kenzo` for this construction are:\n",
|
|
"\n",
|
|
"`crts-contraction` *space* *[Function]*\n",
|
|
"> Return the homotopy morphism corresponding to the contraction $\\chi_{\\times\\tau}$. The lisp definition is:\n",
|
|
"```commonlisp\n",
|
|
" (defun CRTS-CONTRACTION \n",
|
|
" (space\n",
|
|
" &aux (twisted-crts-prdc (twisted-crts-prdc space)))\n",
|
|
" (the morphism\n",
|
|
" (build-mrph\n",
|
|
" :sorc twisted-crts-prdc \n",
|
|
" :trgt twisted-crts-prdc \n",
|
|
" :degr +1\n",
|
|
" :intr (crts-contraction-intr \n",
|
|
" (cmpr space)\n",
|
|
" (bspn space) \n",
|
|
" (face space) \n",
|
|
" (cmpr twisted-crts-prdc))\n",
|
|
" :strt :gnrt\n",
|
|
" :orgn `(crts-contraction ,space))))\n",
|
|
"```\n",
|
|
"At execution time, the work is essentialy done by the function put in the slot `:intr`.\n",
|
|
"\n",
|
|
"`tnpr-contraction` *space* *[Function]*\n",
|
|
"> Return the induced morphism $\\chi_{\\otimes t}= f \\circ \\chi_{\\times\\tau} \\circ g$, as shown by the lisp definition:\n",
|
|
"```commonlisp\n",
|
|
" (defun TNPR-CONTRACTION \n",
|
|
" (space\n",
|
|
" &aux (szczarba (szczarba space))\n",
|
|
" (f (f szczarba))\n",
|
|
" (g (g szczarba))\n",
|
|
" (crts-contraction (crts-contraction space)))\n",
|
|
" (the morphism\n",
|
|
" (i-cmps f crts-contraction g)))\n",
|
|
"```\n",
|
|
"\n",
|
|
"### Examples\n",
|
|
"\n",
|
|
"Let us use again our familiar simplicial set $\\bar\\Delta$. First we apply the homotopy operator $\\chi_{\\times t}$ upon various generators. Note that the binary coding of the simplices allows normal arithmetic operators to generate them."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 74,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K112 Simplicial-Set]"
|
|
]
|
|
},
|
|
"execution_count": 74,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def delta (deltab))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 75,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K194 Morphism (degree 1): K134 -> K134]"
|
|
]
|
|
},
|
|
"execution_count": 75,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def chi-x (crts-contraction delta))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 76,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 1}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 76,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-x 0 (crpr 0 1 0 +null-loop+))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 77,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 1}\n",
|
|
"<-1 * <CrPr - 96 0 <<Loop>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 77,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-x 0 (crpr 0 1 0 (loop3 0 96 1)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 78,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 1}\n",
|
|
"<-1 * <CrPr - 96 0 <<Loop[384]>>>>\n",
|
|
"<-1 * <CrPr - 384 0 <<Loop>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 78,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-x 0 (crpr 0 1 0 (loop3 0 96 1 0 (+ 256 128) 1)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 79,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 1}\n",
|
|
"<-1 * <CrPr - 96 0 <<Loop[384][1536]>>>>\n",
|
|
"<-1 * <CrPr - 384 0 <<Loop[1536]>>>>\n",
|
|
"<-1 * <CrPr - 1536 0 <<Loop>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 79,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-x 0 (crpr 0 1 0 (loop3 0 96 1 0 (+ 256 128) 1 0 (+ 512 1024) 1)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 80,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 1}\n",
|
|
"<-1 * <CrPr - 96 0 <<Loop>>>>\n",
|
|
"<-1 * <CrPr - 96 0 <<Loop[96]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 80,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-x 0 (crpr 0 1 0 (loop3 0 96 2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 81,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 2}\n",
|
|
"<1 * <CrPr - 224 1-0 <<Loop>>>>\n",
|
|
"<-1 * <CrPr 1 3 0 <<Loop[224]>>>>\n",
|
|
"<1 * <CrPr 1 96 0 <<Loop[224]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 81,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-x 1 (crpr 0 3 0 (loop3 0 (+ 32 64 128) 1)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 82,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<-1 * <CrPr - 480 2-1-0 <<Loop>>>>\n",
|
|
"<1 * <CrPr 2 7 1 <<Loop[480]>>>>\n",
|
|
"<-1 * <CrPr 2 224 1 <<Loop[480]>>>>\n",
|
|
"<-1 * <CrPr 2-1 5 0 <<Loop[480]>>>>\n",
|
|
"<1 * <CrPr 2-1 160 0 <<Loop[480]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 82,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-x 2 (crpr 0 7 0 (loop3 0 (+ 32 64 128 256) 1)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 83,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 4}\n",
|
|
"<-1 * <CrPr 3-1 7 2-0 <<Loop[1 224\\2][2 224\\-2]>>>>\n",
|
|
"<1 * <CrPr 3-2 7 1-0 <<Loop[1 224\\2][2 224\\-2]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 83,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-x 3 (crpr 2 7 1 (loop3 2 (+ 32 64 128) 2 4 (+ 32 64 128) -2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 84,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 4}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 84,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-x 3 (crpr 2 7 4 (loop3 2 (+ 32 64 128) 2 1 (+ 32 64 128) -2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 85,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 4}\n",
|
|
"<-1 * <CrPr 3-1 7 2-0 <<Loop[1 224\\-2][2 224\\2]>>>>\n",
|
|
"<1 * <CrPr 3-2 7 1-0 <<Loop[1 224\\-2][2 224\\2]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 85,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-x 3 (crpr 2 7 1 (loop3 2 (+ 32 64 128) -2 4 (+ 32 64 128) 2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 86,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 4}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 86,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-x 3 (crpr 2 7 4 (loop3 2 (+ 32 64 128) -2 1 (+ 32 64 128) 2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 87,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 4}\n",
|
|
"<-1 * <CrPr 3-0 7 2-1 <<Loop[1 224\\2][2 224\\-2]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 87,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-x 3 (crpr 1 7 2 (loop3 2 (+ 32 64 128) 2 4 (+ 32 64 128) -2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 88,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 4}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 88,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-x 3 (crpr 4 7 2 (loop3 2 (+ 32 64 128) 2 1 (+ 32 64 128) -2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 89,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 4}\n",
|
|
"<-1 * <CrPr 3-0 7 2-1 <<Loop[1 224\\-2][2 224\\2]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 89,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-x 3 (crpr 1 7 2 (loop3 2 (+ 32 64 128) -2 4 (+ 32 64 128) 2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 90,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 4}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 90,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-x 3 (crpr 4 7 2 (loop3 2 (+ 32 64 128) -2 1 (+ 32 64 128) 2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Then, for testing $\\chi_{\\otimes t}$ we use the image of all those generators by the function `f` of the Brown reduction.\n",
|
|
"$$\n",
|
|
"\\begin{aligned}\n",
|
|
" {{\\cal C}_*(X \\times_\\tau GX)} \\quad& \\stackrel{h}{\\longrightarrow} & {}^s{{\\cal C}_*(X \\times_\\tau GX)} \\cr\n",
|
|
" {\\scriptstyle f} \\downarrow \\uparrow {\\scriptstyle g}\\qquad \\cr\n",
|
|
" {{\\cal C}_*(X) \\otimes_t {\\cal C}_*(GX)} \\cr\n",
|
|
"\\end{aligned}\n",
|
|
"$$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 91,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"T"
|
|
]
|
|
},
|
|
"execution_count": 91,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(setf *tnpr-with-degrees* t)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 92,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K196 Morphism (degree 1): K160 -> K160]"
|
|
]
|
|
},
|
|
"execution_count": 92,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def chi-t (tnpr-contraction delta))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 93,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K162 Reduction K134 => K160]"
|
|
]
|
|
},
|
|
"execution_count": 93,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def reduc (szczarba delta))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 94,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K152 Morphism (degree 0): K134 -> K160]"
|
|
]
|
|
},
|
|
"execution_count": 94,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def f (f reduc))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 95,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 0}\n",
|
|
"<1 * <TnPr 0 1 0 <<Loop>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 95,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? f 0 (crpr 0 1 0 +null-loop+))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 96,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 1}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 96,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-t *)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 97,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 0}\n",
|
|
"<1 * <TnPr 0 32 0 <<Loop[96]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 97,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? f 0 (crpr 0 1 0 (loop3 0 96 1)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 98,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 1}\n",
|
|
"<-1 * <TnPr 1 96 0 <<Loop>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 98,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-t *)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 99,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 0}\n",
|
|
"<1 * <TnPr 0 1 0 <<Loop[96][384]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 99,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? f 0 (crpr 0 1 0 (loop3 0 96 1 0 (+ 256 128) 1)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 100,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 1}\n",
|
|
"<-1 * <TnPr 1 96 0 <<Loop[384]>>>>\n",
|
|
"<-1 * <TnPr 1 384 0 <<Loop>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 100,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-t *)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 101,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 0}\n",
|
|
"<1 * <TnPr 0 1 0 <<Loop[96][384][1536]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 101,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? f 0 (crpr 0 1 0 (loop3 0 96 1 0 (+ 256 128) 1 0 (+ 512 1024) 1)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 102,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 1}\n",
|
|
"<-1 * <TnPr 1 96 0 <<Loop[384][1536]>>>>\n",
|
|
"<-1 * <TnPr 1 384 0 <<Loop[1536]>>>>\n",
|
|
"<-1 * <TnPr 1 1536 0 <<Loop>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 102,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-t *)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 103,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 0}\n",
|
|
"<1 * <TnPr 0 1 0 <<Loop[96\\2]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 103,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? f 0 (crpr 0 1 0 (loop3 0 96 2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 104,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 1}\n",
|
|
"<-1 * <TnPr 1 96 0 <<Loop>>>>\n",
|
|
"<-1 * <TnPr 1 96 0 <<Loop[96]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 104,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-t *)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 105,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 1}\n",
|
|
"<1 * <TnPr 0 1 1 <<Loop[0 3][224]>>>>\n",
|
|
"<1 * <TnPr 1 3 0 <<Loop[192]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 105,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? f 1 (crpr 0 3 0 (loop3 0 (+ 32 64 128) 1)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 106,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 2}\n",
|
|
"<-1 * <TnPr 1 3 1 <<Loop[224]>>>>\n",
|
|
"<1 * <TnPr 1 96 1 <<Loop[224]>>>>\n",
|
|
"<1 * <TnPr 2 224 0 <<Loop>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 106,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-t *)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 107,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 2}\n",
|
|
"<-1 * <TnPr 0 1 2 <<Loop[1-0 3][0 7][1 416]>>>>\n",
|
|
"<1 * <TnPr 0 1 2 <<Loop[1-0 3][1 7][480]>>>>\n",
|
|
"<1 * <TnPr 1 3 1 <<Loop[0 6][448]>>>>\n",
|
|
"<1 * <TnPr 2 7 0 <<Loop[384]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 107,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? f 2 (crpr 0 7 0 (loop3 0 (+ 32 64 128 256) 1)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 108,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<1 * <TnPr 0 1 3 <<Loop[2-1-0 3][1-0 7][2 480]>>>>\n",
|
|
"<-1 * <TnPr 0 1 3 <<Loop[2-1-0 3][2-0 7][1 480]>>>>\n",
|
|
"<-1 * <TnPr 0 32 3 <<Loop[2-1-0 96][1-0 224][2 480]>>>>\n",
|
|
"<1 * <TnPr 0 32 3 <<Loop[2-1-0 96][2-0 224][1 480]>>>>\n",
|
|
"<-1 * <TnPr 1 5 2 <<Loop[480]>>>>\n",
|
|
"<1 * <TnPr 1 160 2 <<Loop[480]>>>>\n",
|
|
"<1 * <TnPr 2 7 1 <<Loop[448]>>>>\n",
|
|
"<-1 * <TnPr 2 224 1 <<Loop[448]>>>>\n",
|
|
"<-1 * <TnPr 3 480 0 <<Loop>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 108,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-t *)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 109,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<1 * <TnPr 0 1 3 <<Loop[2-1-0 3][2-1 7][2-0 224\\2][3-0 224\\-2]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 109,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? f 3 (crpr 2 7 1 (loop3 2 (+ 32 64 128) 2 4 (+ 32 64 128) -2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 110,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 4}\n",
|
|
"<1 * <TnPr 2 7 2 <<Loop[1 224\\2][2 224\\-2]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 110,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-t *)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 111,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 111,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? f 3 (crpr 2 7 4 (loop3 2 (+ 32 64 128) 2 1 (+ 32 64 128) -2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 112,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 4}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 112,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-t *)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 113,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<1 * <TnPr 0 1 3 <<Loop[2-1-0 3][2-1 7][2-0 224\\-2][3-0 224\\2]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 113,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? f 3 (crpr 2 7 1 (loop3 2 (+ 32 64 128) -2 4 (+ 32 64 128) 2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 114,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 4}\n",
|
|
"<1 * <TnPr 2 7 2 <<Loop[1 224\\-2][2 224\\2]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 114,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-t *)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 115,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 115,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? f 3 (crpr 2 7 4 (loop3 2 (+ 32 64 128) -2 1 (+ 32 64 128) 2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 116,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 4}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 116,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-t *)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 117,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<-1 * <TnPr 0 1 3 <<Loop[2-1-0 3][1-0 7][2-1 224\\2][3-2 224\\-2]>>>>\n",
|
|
"<1 * <TnPr 0 1 3 <<Loop[2-1-0 3][2-0 7][2-1 224\\2][3-1 224\\-2]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 117,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? f 3 (crpr 1 7 2 (loop3 2 (+ 32 64 128) 2 4 (+ 32 64 128) -2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 118,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 4}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 118,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-t *)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 119,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<1 * <TnPr 0 1 3 <<Loop[2-1-0 3][1-0 7][2-1 224\\2][2-0 224\\-2]>>>>\n",
|
|
"<-1 * <TnPr 0 1 3 <<Loop[2-1-0 3][2-0 7][2-1 224\\2][1-0 224\\-2]>>>>\n",
|
|
"<1 * <TnPr 2 7 1 <<Loop[0 192\\2][224\\-2]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 119,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? f 3 (crpr 4 7 2 (loop3 2 (+ 32 64 128) 2 1 (+ 32 64 128) -2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 120,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 4}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 120,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-t *)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 121,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<-1 * <TnPr 0 1 3 <<Loop[2-1-0 3][1-0 7][2-1 224\\-2][3-2 224\\2]>>>>\n",
|
|
"<1 * <TnPr 0 1 3 <<Loop[2-1-0 3][2-0 7][2-1 224\\-2][3-1 224\\2]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 121,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? f 3 (crpr 1 7 2 (loop3 2 (+ 32 64 128) -2 4 (+ 32 64 128) 2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 122,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 4}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 122,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-t *)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 123,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<1 * <TnPr 0 1 3 <<Loop[2-1-0 3][1-0 7][2-1 224\\-2][2-0 224\\2]>>>>\n",
|
|
"<-1 * <TnPr 0 1 3 <<Loop[2-1-0 3][2-0 7][2-1 224\\-2][1-0 224\\2]>>>>\n",
|
|
"<1 * <TnPr 2 7 1 <<Loop[0 192\\-2][224\\2]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 123,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? f 3 (crpr 4 7 2 (loop3 2 (+ 32 64 128) -2 1 (+ 32 64 128) 2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 124,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 4}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 124,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? chi-t *)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"We verify now the required property of the homotopy operator $\\chi_{\\times\\tau}$. As usual, we build by composition a morphism `zero`."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 125,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K135 Morphism (degree -1): K134 -> K134]"
|
|
]
|
|
},
|
|
"execution_count": 125,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def dfr (bndr (twisted-crts-prdc delta)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 126,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K201 Morphism (degree 0): K134 -> K134]"
|
|
]
|
|
},
|
|
"execution_count": 126,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def zero (i-sbtr (idnt-mrph (sorc dfr)) (cmps dfr chi-x) \n",
|
|
" (cmps chi-x dfr)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 127,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<CrPr 2 7 1 <<Loop[1 224\\-2][0 224\\2]>>>"
|
|
]
|
|
},
|
|
"execution_count": 127,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def simplx (crpr 4 7 2 (loop3 2 (+ 32 64 128) -2 1 (+ 32 64 128) 2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 128,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 128,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? zero 3 simplx)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Then, we do the same test for the homotopy operator $\\chi_{\\otimes t}$."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 129,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K160 Chain-Complex]"
|
|
]
|
|
},
|
|
"execution_count": 129,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def tw (twisted-tnsr-prdc d))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 130,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K206 Morphism (degree 0): K160 -> K160]"
|
|
]
|
|
},
|
|
"execution_count": 130,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def zero-2 (i-sbtr (idnt-mrph tw) (cmps tw chi-t) (cmps chi-t tw)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 131,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<TnPr 0 1 3 <<Loop[31\\2][992\\-1]>>>"
|
|
]
|
|
},
|
|
"execution_count": 131,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def simpx2 (tnpr 0 1 3 (loop3 0 (mask 5) 2 0 (* 32 (mask 5)) -1)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 132,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 132,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(time (? zero-2 3 simpx2))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Note nevertheless that the relation is not satisfied for the base generator $*\\otimes *$, namely the tensor product of both base generators. This is due to the fact that both contractions, $\\chi_{\\times t}$ and $\\chi_{\\otimes t}$, correspond to reductions over $\\mathbb{Z}$ and not on 0."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 133,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<TnPr 0 1 0 <<Loop>>>"
|
|
]
|
|
},
|
|
"execution_count": 133,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def gnrt-0 (tnpr 0 1 0 +null-loop+))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 134,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 0}\n",
|
|
"<1 * <TnPr 0 1 0 <<Loop>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 134,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? zero-2 0 gnrt-0)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Let us build, for instance, the reduction of the twisted tensor product over $\\mathbb{Z}$ and check it. In that case, the two homomorphisms $f$ and $g$ are respectively the *augmentation* and *coaugmentation* morphisms.\n",
|
|
"$$\n",
|
|
"\\begin{aligned}\n",
|
|
"{{\\cal C}_*(B) \\otimes_t {\\cal C}_*(GB)} & \\qquad\\stackrel{\\chi_{\\otimes t}}{\\longrightarrow} &\n",
|
|
" {}^s{{\\cal C}_*(B) \\otimes_t {\\cal C}_*(GB)} \\cr\n",
|
|
" {\\scriptstyle aug} \\downarrow \\uparrow {\\scriptstyle coaug}\\quad & & \\cr\n",
|
|
" {{\\cal C}_*(\\mathbb{Z})} \\qquad& & \\cr\n",
|
|
"\\end{aligned}\n",
|
|
"$$\n",
|
|
"We recall that, the unit chain complex corresponding to $\\mathbb{Z}$ is built by the function `z-chcm`. The unique generator in degree 0 is `:z-gnrt`."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 135,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K209 Cohomology-Class on K160 of degree 0]"
|
|
]
|
|
},
|
|
"execution_count": 135,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def aug (build-mrph\n",
|
|
" :sorc tw \n",
|
|
" :trgt (z-chcm) \n",
|
|
" :degr 0\n",
|
|
" :intr #'(lambda (degr gnrt) (declare (ignore gnrt))\n",
|
|
" (if (zerop degr)\n",
|
|
" (term-cmbn 0 1 :z-gnrt)\n",
|
|
" (zero-cmbn degr)))\n",
|
|
" :strt :gnrt \n",
|
|
" :orgn '(aug tw)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 136,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K210 Morphism (degree 0): K207 -> K160]"
|
|
]
|
|
},
|
|
"execution_count": 136,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def coaug (build-mrph\n",
|
|
" :sorc (z-chcm) \n",
|
|
" :trgt tw \n",
|
|
" :degr 0\n",
|
|
" :intr #'(lambda (degr gnrt) (declare (ignore gnrt))\n",
|
|
" (if (zerop degr)\n",
|
|
" (term-cmbn 0 1 (tnpr 0 1 0 +null-loop+))\n",
|
|
" (zero-cmbn degr)))\n",
|
|
" :strt :gnrt\n",
|
|
" :orgn '(coaug tw)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 137,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K211 Reduction K160 => K207]"
|
|
]
|
|
},
|
|
"execution_count": 137,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def rdct (build-rdct :f aug \n",
|
|
" :g coaug \n",
|
|
" :h Chi-t \n",
|
|
" :orgn '(reduction-tw-Z)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 138,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"---done---"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"NIL"
|
|
]
|
|
},
|
|
"execution_count": 138,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(pre-check-rdct rdct)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 139,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<1 * <TnPr 1 3 2 <<Loop[15\\2]>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 139,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(setf *tc* (cmbn 3 1 (tnpr 1 3 2 (loop3 0 15 2))))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 140,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 0}\n",
|
|
"<1 * Z-GNRT>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 140,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(setf *bc* (cmbn 0 1 :z-gnrt))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 141,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"*TC* => \n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<1 * <TnPr 1 3 2 <<Loop[15\\2]>>>>\n",
|
|
"------------------------------------------------------------------------------\n",
|
|
"\n",
|
|
"*BC* => \n",
|
|
"----------------------------------------------------------------------{CMBN 0}\n",
|
|
"<1 * Z-GNRT>\n",
|
|
"------------------------------------------------------------------------------\n",
|
|
"\n",
|
|
"Checking *TDD* = 0\n",
|
|
"Result: \n",
|
|
"----------------------------------------------------------------------{CMBN 1}\n",
|
|
"------------------------------------------------------------------------------\n",
|
|
"\n",
|
|
"Checking *BDD* = 0\n",
|
|
"Result: \n",
|
|
"----------------------------------------------------------------------{CMBN -2}\n",
|
|
"------------------------------------------------------------------------------\n",
|
|
"\n",
|
|
"Checking *DF-FD* = 0\n",
|
|
"Result: \n",
|
|
"----------------------------------------------------------------------{CMBN 2}\n",
|
|
"------------------------------------------------------------------------------\n",
|
|
"\n",
|
|
"Checking *DG-GD* = 0\n",
|
|
"Result: \n",
|
|
"----------------------------------------------------------------------{CMBN -1}\n",
|
|
"------------------------------------------------------------------------------\n",
|
|
"\n",
|
|
"Checking *ID-FG* = 0\n",
|
|
"Result: \n",
|
|
"----------------------------------------------------------------------{CMBN 0}\n",
|
|
"------------------------------------------------------------------------------\n",
|
|
"\n",
|
|
"Checking *ID-GF-DH-HD* = 0\n",
|
|
"Result: \n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"------------------------------------------------------------------------------\n",
|
|
"\n",
|
|
"Checking *HH* = 0\n",
|
|
"Result: \n",
|
|
"----------------------------------------------------------------------{CMBN 5}\n",
|
|
"------------------------------------------------------------------------------\n",
|
|
"\n",
|
|
"Checking *FH* = 0\n",
|
|
"Result: \n",
|
|
"----------------------------------------------------------------------{CMBN 4}\n",
|
|
"------------------------------------------------------------------------------\n",
|
|
"\n",
|
|
"Checking *HG* = 0\n",
|
|
"Result: \n",
|
|
"----------------------------------------------------------------------{CMBN 1}\n",
|
|
"------------------------------------------------------------------------------\n",
|
|
"\n",
|
|
"---done---"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"NIL"
|
|
]
|
|
},
|
|
"execution_count": 141,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(check-rdct-no-wait)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## An unproved property of the algebraic Kan contraction\n",
|
|
"\n",
|
|
"Since the early version of the software (1990), and through a host of examples, an amazing algebraic property of the Kan contraction $\\chi_{\\otimes t}$ has been experimentally discovered. Many computations have been done of $\\chi_{\\otimes t}(b \\otimes g)$, for various choices of $b \\otimes g$ and in all these cases, as soon as $degree(b) > 0$, then the result is null.\n",
|
|
"In other words, $\\chi_{\\otimes t}$ *is null outside the base fiber.* Up to now, no actual proof of this result has yet been given.\n",
|
|
"\n",
|
|
"We show that, using the \"soft\" version of $\\bar{\\Delta}$."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 142,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K1 Simplicial-Set]"
|
|
]
|
|
},
|
|
"execution_count": 142,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def db (soft-deltab))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 143,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K231 Morphism (degree 1): K88 -> K88]"
|
|
]
|
|
},
|
|
"execution_count": 143,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def tt (tnpr-contraction db))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 144,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<TnPr 3 (DELT . 31) 4 <<Loop[(DELT . 63)\\2]>>>"
|
|
]
|
|
},
|
|
"execution_count": 144,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def gnrt1 (tnpr 3 (code '(0 1 2 3 4)) \n",
|
|
" 4 (loop3 0 (code '(0 1 2 3 4 5)) 2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 145,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 8}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 145,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? tt 7 gnrt1)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 146,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<TnPr 4 (DELT . 5460) 5 <<Loop[(DELT . 10922)\\5]>>>"
|
|
]
|
|
},
|
|
"execution_count": 146,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(def gnrt2 (tnpr 4 (code '(2 4 6 8 10 12)) \n",
|
|
" 5 (loop3 0 (code '(1 3 5 7 9 11 13)) 5)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 147,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 10}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 147,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? tt 9 gnrt2)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"But if $degree(b) = 0$, then the result is non-null in general."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 148,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<-1 * <TnPr 0 (DELT . 1) 3 <<Loop[2-1-0 (DELT . 3)][1-0 (DELT . 7)][2 (DELT . 15)]>>>>\n",
|
|
"<1 * <TnPr 0 (DELT . 1) 3 <<Loop[2-1-0 (DELT . 3)][2-0 (DELT . 7)][1 (DELT . 15)]>>>>\n",
|
|
"<1 * <TnPr 1 (DELT . 5) 2 <<Loop[(DELT . 15)]>>>>\n",
|
|
"<-1 * <TnPr 2 (DELT . 7) 1 <<Loop[(DELT . 14)]>>>>\n",
|
|
"<-1 * <TnPr 3 (DELT . 15) 0 <<Loop>>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 148,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? tt 2 (tnpr 0 (code '(0)) 2 (loop3 0 (code '(0 1 2 3)) 1)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 149,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 5}\n",
|
|
"<1 * <TnPr 0 (DELT . 2) 5 <<Loop[4-3-2-1-0 (DELT . 6)][3-2-1-0 (DELT . 14)][4-2-1-0 (DELT . 26)][4-3-1-0 (DELT . 50)][4-3-2 (DELT . 114)]>>>>\n",
|
|
"<1 * <TnPr 0 (DELT . 2) 5 <<Loop[4-3-2-1-0 (DELT . 6)][3-2-1-0 (DELT . 14)][4-2-1-0 (DELT . 26)][4-3-1-0 (DELT . 50)][4-3-2 (DELT . 114)\\2]>>>>\n",
|
|
"<1 * <TnPr 0 (DELT . 2) 5 <<Loop[4-3-2-1-0 (DELT . 6)][3-2-1-0 (DELT . 14)][4-2-1-0 (DELT . 26)][4-3-1-0 (DELT . 50)][4-3-2 (DELT . 114)\\3]>>>>\n",
|
|
"<-1 * <TnPr 0 (DELT . 2) 5 <<Loop[4-3-2-1-0 (DELT . 6)][3-2-1-0 (DELT . 14)][4-2-1-0 (DELT . 26)][4-3-1-0 (DELT . 50)][4-3-2-0 (DELT . 98)][4-3-2-1 (DELT . 98)]>>>>\n",
|
|
"<-1 * <TnPr 0 (DELT . 2) 5 <<Loop[4-3-2-1-0 (DELT . 6)][3-2-1-0 (DELT . 14)][4-2-1-0 (DELT . 26)][4-3-1-0 (DELT . 50)][4-3-2-0 (DELT . 98)][4-3-2-1 (DELT . 98)\\2]>>>>\n",
|
|
"<-1 * <TnPr 0 (DELT . 2) 5 <<Loop[4-3-2-1-0 (DELT . 6)][3-2-1-0 (DELT . 14)][4-2-1-0 (DELT . 26)][4-3-1-0 (DELT . 82)][4-3-2 (DELT . 114)]>>>>\n",
|
|
"<-1 * <TnPr 0 (DELT . 2) 5 <<Loop[4-3-2-1-0 (DELT . 6)][3-2-1-0 (DELT . 14)][4-2-1-0 (DELT . 26)][4-3-1-0 (DELT . 82)][4-3-2 (DELT . 114)\\2]>>>>\n",
|
|
"<1 * <TnPr 0 (DELT . 2) 5 <<Loop[4-3-2-1-0 (DELT . 6)][3-2-1-0 (DELT . 14)][4-2-1-0 (DELT . 26)][4-3-2-0 (DELT . 50)][4-3-0 (DELT . 114)][4-3-2-1 (DELT . 98)]>>>>\n",
|
|
"<1 * <TnPr 0 (DELT . 2) 5 <<Loop[4-3-2-1-0 (DELT . 6)][3-2-1-0 (DELT . 14)][4-2-1-0 (DELT . 26)][4-3-2-0 (DELT . 50)][4-3-0 (DELT . 114)][4-3-2-1 (DELT . 98)\\2]>>>>\n",
|
|
"<-1 * <TnPr 0 (DELT . 2) 5 <<Loop[4-3-2-1-0 (DELT . 6)][3-2-1-0 (DELT . 14)][4-2-1-0 (DELT . 26)][4-3-2-0 (DELT . 50)][4-3-1 (DELT . 114)]>>>>\n",
|
|
"... ...\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 149,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(? tt 4 (tnpr 0 (code '(0)) 4 (loop3 0 (code '(1 2 3 4 5 6)) 3)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 150,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"535"
|
|
]
|
|
},
|
|
"execution_count": 150,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(length (cmbn-list *))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Lisp file concerned in this chapter\n",
|
|
"\n",
|
|
"`ls-twisted-products.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
|
|
}
|