kenzo/examples/19_Simplicial_groups_fibration.ipynb
2017-10-08 20:11:31 -05:00

2476 lines
70 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": [
"# Simplicial groups fibrations\n",
"\n",
"## Introduction\n",
"\n",
"This chapter is analogous to the Loop spaces fibrations chapter where algorithms have been specially designed for loop spaces. In the present case, we have at our disposal all the tools developped for the fibrations. Let ${\\cal G}$ be a 0-reduced simplicial group and $\\bar{\\cal W}{\\cal G}$, its classifying space. We recall that if ${\\cal G}$ is an Abelian simplicial group then $\\bar{\\cal W}{\\cal G}$ is also an Abelian simplicial group, otherwise if ${\\cal G}$ is non-Abelian, then $\\bar{\\cal W}{\\cal G}$ is only a simplicial set. The software `Kenzo` implements the **canonical** twisted cartesian product of $\\bar{\\cal W}{\\cal G}$ by ${\\cal G}$, denoted ${\\cal WG}=\\bar{\\cal W}{\\cal G} \\times_\\tau {\\cal G}$. The *canonical fibration*\n",
"$$ {\\cal G}\\quad \\hookrightarrow\\quad {\\cal WG} \\hskip 1.2em \\longrightarrow \\hskip -1.2em \\longrightarrow \n",
" \\quad\\bar{\\cal W}{\\cal G},$$\n",
"is defined by the following twisting operator:\n",
"$$\\tau[(g_{n-1}, g_{n-2}, \\ldots, g_0)]= g_{n-1}.$$\n",
"The total space ${\\cal WG}=\\bar{\\cal W}{\\cal G} \\times_\\tau {\\cal G}$ is acyclic.\n",
"\n",
"## The function for the canonical fibration\n",
"\n",
"`smgr-fibration` *smgr* *[Function]*\n",
"> Build the simplicial morphism of degree -1 corresponding to the canonical fibration. The source is the classifying space of the simplicial group *smgr* (built internally by the function), the target is *smgr* and the internal lisp function value of the slot `:sintr` implements\n",
"the twisting operator. The returned object is a fibration.\n",
"\n",
"### Examples\n",
"\n",
"Let us take the Abelian simplicial group $K(\\mathbb{Z},1)$ and build the fibration morphism."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K1 Abelian-Simplicial-Group]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def k1 (k-z-1))"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K25 Fibration K13 -> K1]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def tw (smgr-fibration k1))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If needed, the classifying space may be found in the slot `:sorc` of the fibration:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K13 Abelian-Simplicial-Group]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def k2 (sorc tw))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We may build now the total space of the fibration. We see that `Kenzo` returns a Kan simplicial set because the base and fiber spaces are also of Kan type. Then we test the face and differential operator upon a simplex of degree 4 of the total space `tt`."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K31 Kan-Simplicial-Set]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def tt (fibration-total tw)) "
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<CrPr - <<GBar<- (10 11 12)><- (20 21)><- (30)><- NIL>>> - (2 4 6 8)>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def gmsm (crpr 0 (gbar 4 0 '(10 11 12) 0 '(20 21) 0 '(30) 0 '())\n",
" 0 '(2 4 6 8)))"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"<AbSm - <CrPr - <<GBar<- (11 12)><- (21)><- NIL>>> - (4 6 8)>> \n",
"<AbSm - <CrPr - <<GBar<- (21 12)><- (41)><- NIL>>> - (6 6 8)>> \n",
"<AbSm - <CrPr - <<GBar<- (10 23)><- (50)><- NIL>>> - (2 10 8)>> \n",
"<AbSm - <CrPr - <<GBar<- (30 32)><- (30)><- NIL>>> - (2 4 14)>> \n",
"<AbSm - <CrPr - <<GBar<- (20 21)><- (30)><- NIL>>> - (12 15 18)>> "
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(dotimes (i 5) (print (face tt i 4 gmsm)))"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 3}\n",
"<1 * <CrPr - <<GBar<- (10 23)><- (50)><- NIL>>> - (2 10 8)>>\n",
"<1 * <CrPr - <<GBar<- (11 12)><- (21)><- NIL>>> - (4 6 8)>>\n",
"<1 * <CrPr - <<GBar<- (20 21)><- (30)><- NIL>>> - (12 15 18)>>\n",
"<-1 * <CrPr - <<GBar<- (21 12)><- (41)><- NIL>>> - (6 6 8)>>\n",
"<-1 * <CrPr - <<GBar<- (30 32)><- (30)><- NIL>>> - (2 4 14)>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(? tt 4 gmsm)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 2}\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(? tt *)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We may also build the Ronald Brown reduction and test the differential upon a simplex belonging to the twisted tensor product (slot `:bcc` of the reduction)."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K59 Reduction K31 => K57]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def br (brown-reduction tw))"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K57 Chain-Complex]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def tw-pr (bcc br))"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 3}\n",
"<-1 * <TnPr <<GBar>> (111 11000 100000)>>\n",
"<1 * <TnPr <<GBar>> (111 101000 10000)>>\n",
"<1 * <TnPr <<GBar>> (11011 100 100000)>>\n",
"<-1 * <TnPr <<GBar>> (11011 100000 100)>>\n",
"<-1 * <TnPr <<GBar>> (101001 110 10000)>>\n",
"<1 * <TnPr <<GBar>> (101001 10010 100)>>\n",
"<1 * <TnPr <<GBar<- (100000)><- NIL>>> (100)>>\n",
"<1 * <TnPr <<GBar<- (1 110)><- (101000)><- NIL>>> NIL>>\n",
"<1 * <TnPr <<GBar<- (10 100)><- (10000)><- NIL>>> NIL>>\n",
"<-1 * <TnPr <<GBar<- (11 100)><- (11000)><- NIL>>> NIL>>\n",
"... ...\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(? tw-pr 4 (tnpr 4 (gbar 4 0 '(1 10 100) 0 '(1000 10000) 0 '(100000) 0 '())\n",
" 0 '()))"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 2}\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(? tw-pr *)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The essential contraction for simplicial groups fibrations\n",
"\n",
"It is known that if ${\\cal G}$ is a 0-reduced simplicial group, the space ${\\cal WG}=\\bar{\\cal W}{\\cal G} \\times_\\tau {\\cal G}$ is contractible. So it is possible to build a reduction of this space over $\\mathbb{Z}$. This reduction depends on the important contraction\n",
"$$\\chi_{\\times\\tau}: {\\bar{\\cal W}{\\cal G} \\times_\\tau {\\cal G}} \\longrightarrow \n",
" {\\bar{\\cal W}{\\cal G} \\times_\\tau {\\cal G}}, $$\n",
"defined by:\n",
"$$\\chi_{\\times\\tau}[(g_{n-1}, \\ldots, g_0), g_n] = (-1)^{n+1} (g_n, g_{n-1}, \\ldots, g_0, *),$$\n",
"where $g_n \\in {\\cal G}$, $(g_{n-1}, \\ldots, g_0)$ is a gbar in $\\bar{\\cal W}{\\cal G}$, and\n",
"$*$ is the neutral element of ${\\cal G}_{n+1}$ (in fact the n-th degeneracy of the base point of\n",
"${\\cal G}$). We recall also that $\\chi_{\\times\\tau}$\n",
"is a homotopy operator (degree: +1) satisfying the relation\n",
"$$d \\circ \\chi_{\\times\\tau} + \\chi_{\\times\\tau} \\circ d =1.$$\n",
"In addition, if we consider the Brown reduction\n",
"$$\n",
"\\begin{aligned}\n",
"{\\bar{\\cal W}{\\cal G} \\times_\\tau {\\cal G}} & \\qquad\\stackrel{h}{\\longrightarrow} & \n",
" {}^s{\\bar{\\cal W}{\\cal G} \\times_\\tau {\\cal G}} \\cr\n",
" {\\scriptstyle f} \\downarrow \\uparrow {\\scriptstyle g} \\cr\n",
" {\\bar{\\cal W}{\\cal G} \\otimes_\\tau {\\cal G}} \\cr\n",
"\\end{aligned}\n",
"$$\n",
"there is an induced contraction \n",
"$$\\chi_{\\otimes t}: {\\bar{\\cal W}{\\cal G} \\otimes_\\tau {\\cal G}} \\longrightarrow \n",
" {\\bar{\\cal W}{\\cal G} \\otimes_\\tau {\\cal G}}, $$\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",
"`smgr-crts-contraction` *smgr* *[Function]*\n",
"> Return the homotopy morphism corresponding to the contraction $\\chi_{\\times\\tau}$. The lisp definition is:\n",
"```commonlisp\n",
" (defun SMGR-CRTS-CONTRACTION (smgr)\n",
" (the morphism\n",
" (build-mrph\n",
" :sorc (fibration-total (smgr-fibration smgr))\n",
" :trgt (fibration-total (smgr-fibration smgr))\n",
" :degr +1\n",
" :intr (smgr-crts-contraction-intr (bspn smgr))\n",
" :strt :gnrt\n",
" :orgn `(smgr-crts-contraction ,smgr))))\n",
"```\n",
"At execution time, the work is essentialy done by the function put in the slot `:intr`. This function is itself built by the internal function `smgr-crts-contraction-intr` requiring as argument the base point of the simplicial group.\n",
"\n",
"`smgr-tnpr-contraction` *smgr* *[Function]*\n",
"> Return the induced morphism $\\chi_{\\otimes t}= f \\circ \\chi_{\\times\\tau} \\circ g$, where $f$ and $g$ are built by the Brown reduction. The lisp definition is:\n",
"```commonlisp\n",
" (defun SMGR-TNPR-CONTRACTION (smgr \n",
" &aux (fibration (smgr-fibration smgr))\n",
" (brown (brown-reduction fibration))\n",
" (f (f brown))\n",
" (g (g brown))\n",
" (chi (smgr-crts-contraction smgr)))\n",
" (the morphism\n",
" (i-cmps f chi g)))\n",
"```\n",
"\n",
"### Examples\n",
"\n",
"It is an instructive exercise to build and check the reduction over $\\mathbb{Z}$ of the space\n",
"${\\cal WG}=\\bar{\\cal W}{\\cal G} \\times_\\tau {\\cal G}$ as we did in the loop spaces fibrations chapter. \n",
"$$\n",
"\\begin{aligned}\n",
"\\bar{\\cal W}{\\cal G} \\times_\\tau {\\cal G} & \\qquad\\stackrel{\\chi_{\\times t}}{\\longrightarrow} &\n",
"{}^s\\bar{\\cal W}{\\cal G} \\times_\\tau {\\cal G} \\cr\n",
" {\\scriptstyle aug} \\downarrow \\uparrow {\\scriptstyle coaug} \\cr\n",
" {{\\cal C}_*(\\mathbb{Z})} \\quad& & \\cr\n",
"\\end{aligned}\n",
"$$\n",
"In this case, the two homomorphisms $f$ and $g$ of the reduction, are respectively the *augmentation* and *coaugmentation* morphisms. We define both morphisms according to our previous example based on $K(\\mathbb{Z},1)$. The unit chain complex corresponding to $\\mathbb{Z}$ is built by the function `z-chcm`; its unique generator in degree 0 is `:z-gnrt`. "
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K1 Abelian-Simplicial-Group]"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def k1 (k-z-1)) "
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K25 Fibration K13 -> K1]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def tw (smgr-fibration k1))"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K31 Kan-Simplicial-Set]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def tt (fibration-total tw)) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The base point of the total space, needed for the coaugmentation, may be obtained by either of the following statements:"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<CrPr - <<GBar>> - NIL>"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(bspn tt)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<CrPr - <<GBar>> - NIL>"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(crpr 0 +null-gbar+ 0 nil)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K62 Cohomology-Class on K31 of degree 0]"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def aug (build-mrph\n",
" :sorc (fibration-total (smgr-fibration (k-z-1))) \n",
" :trgt (z-chcm) \n",
" :degr 0\n",
" :intr #'(lambda (degr gnrt)\n",
" (declare (ignore gnrt))\n",
" (if (zerop degr)\n",
" (term-cmbn 0 1 :z-gnrt)\n",
" (zero-cmbn degr)))\n",
" :strt :gnrt \n",
" :orgn '(aug-fibr-tot-smgr-fibr-k-z-1)))"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"SIMPLE-STYLE-WARNING: \n",
" undefined function: :TYPE\n"
]
},
{
"data": {
"text/plain": [
"[K63 Morphism (degree 0): K60 -> K31]"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def coaug (build-mrph\n",
" :sorc (z-chcm) \n",
" :trgt (fibration-total (smgr-fibration (k-z-1))) \n",
" :degr 0\n",
" :intr #'(lambda (degr gnrt)\n",
" (declare (ignore gnrt))\n",
" (if (zerop degr)\n",
" (term-cmbn 0 1 (crpr 0 +null-gbar+ 0 '()))\n",
" (zero-cmbn degr)))\n",
" :strt :gnrt\n",
" :orgn '(coaug-fibr-tot-smgr-fibr-k-z-1)))"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 0}\n",
"<1 * Z-GNRT>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(? aug 0 (bspn tt))"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 0}\n",
"<1 * <CrPr - <<GBar>> - NIL>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(? coaug 0 :z-gnrt)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K64 Morphism (degree 1): K31 -> K31]"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def chi-x-tau (smgr-crts-contraction (k-z-1)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let us apply the contraction morphism upon some simplices:"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 0}\n",
"<1 * <CrPr - <<GBar>> - NIL>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(setf *tc* (cmbn 0 1 (crpr 0 +null-gbar+ 0 '())))"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 1}\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(? chi-x-tau *)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 4}\n",
"<1 * <CrPr - <<GBar<- (10 11 12)><- (20 21)><- (30)><- NIL>>> - (2 4 6 8)>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(setf *tc* (cmbn 4 1 (crpr 0 (gbar 4 0 '(10 11 12) 0 '(20 21) 0 '(30) 0 '())\n",
" 0 '(2 4 6 8))))"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 5}\n",
"<-1 * <CrPr - <<GBar<- (2 4 6 8)><- (10 11 12)><- (20 21)><- (30)><- NIL>>> 4-3-2-1-0 NIL>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(? chi-x-tau *)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 3}\n",
"<1 * <CrPr - <<GBar<- (10 11)><- (20)><- NIL>>> - (2 4 6)>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(setf *tc* (cmbn 3 1 (crpr 0 (gbar 3 0 '(10 11) 0 '(20) 0 '())\n",
" 0 '(2 4 6))))"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 4}\n",
"<1 * <CrPr - <<GBar<- (2 4 6)><- (10 11)><- (20)><- NIL>>> 3-2-1-0 NIL>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(? chi-x-tau *)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We may build now the reduction over $\\mathbb{Z}$ and test it upon the various simplices above:"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K65 Reduction K31 => K60]"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def rdct (build-rdct :f aug \n",
" :g coaug \n",
" :h chi-x-tau \n",
" :orgn '(reduction-tt-z)))"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"---done---"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(pre-check-rdct rdct)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 0}\n",
"<1 * <CrPr - <<GBar>> - NIL>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(setf *tc* (cmbn 0 1 (crpr 0 +null-gbar+ 0 '())))"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 0}\n",
"<1 * Z-GNRT>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(setf *bc* (cmbn 0 1 :z-gnrt))"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"*TC* => \n",
"----------------------------------------------------------------------{CMBN 0}\n",
"<1 * <CrPr - <<GBar>> - NIL>>\n",
"------------------------------------------------------------------------------\n",
"\n",
"*BC* => \n",
"----------------------------------------------------------------------{CMBN 0}\n",
"<1 * Z-GNRT>\n",
"------------------------------------------------------------------------------\n",
"\n",
"Checking *TDD* = 0\n",
"Result: \n",
"----------------------------------------------------------------------{CMBN -2}\n",
"------------------------------------------------------------------------------\n",
"\n",
"Checking *BDD* = 0\n",
"Result: \n",
"----------------------------------------------------------------------{CMBN -2}\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 0}\n",
"------------------------------------------------------------------------------\n",
"\n",
"Checking *ID-GF-DH-HD* = 0\n",
"Result: \n",
"----------------------------------------------------------------------{CMBN 0}\n",
"------------------------------------------------------------------------------\n",
"\n",
"Checking *HH* = 0\n",
"Result: \n",
"----------------------------------------------------------------------{CMBN 2}\n",
"------------------------------------------------------------------------------\n",
"\n",
"Checking *FH* = 0\n",
"Result: \n",
"----------------------------------------------------------------------{CMBN 1}\n",
"------------------------------------------------------------------------------\n",
"\n",
"Checking *HG* = 0\n",
"Result: \n",
"----------------------------------------------------------------------{CMBN 1}\n",
"------------------------------------------------------------------------------\n",
"\n",
"---done---"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(check-rdct-no-wait)"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 4}\n",
"<1 * <CrPr - <<GBar<- (10 11 12)><- (20 21)><- (30)><- NIL>>> - (2 4 6 8)>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(setf *tc* (cmbn 4 1 (crpr 0 (gbar 4 0 '(10 11 12) 0 '(20 21) 0 '(30) 0 '())\n",
" 0 '(2 4 6 8))))"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"*TC* => \n",
"----------------------------------------------------------------------{CMBN 4}\n",
"<1 * <CrPr - <<GBar<- (10 11 12)><- (20 21)><- (30)><- NIL>>> - (2 4 6 8)>>\n",
"------------------------------------------------------------------------------\n",
"\n",
"*BC* => \n",
"----------------------------------------------------------------------{CMBN 0}\n",
"<1 * Z-GNRT>\n",
"------------------------------------------------------------------------------\n",
"\n",
"Checking *TDD* = 0\n",
"Result: \n",
"----------------------------------------------------------------------{CMBN 2}\n",
"------------------------------------------------------------------------------\n",
"\n",
"Checking *BDD* = 0\n",
"Result: \n",
"----------------------------------------------------------------------{CMBN -2}\n",
"------------------------------------------------------------------------------\n",
"\n",
"Checking *DF-FD* = 0\n",
"Result: \n",
"----------------------------------------------------------------------{CMBN 3}\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 4}\n",
"------------------------------------------------------------------------------\n",
"\n",
"Checking *HH* = 0\n",
"Result: \n",
"----------------------------------------------------------------------{CMBN 6}\n",
"------------------------------------------------------------------------------\n",
"\n",
"Checking *FH* = 0\n",
"Result: \n",
"----------------------------------------------------------------------{CMBN 5}\n",
"------------------------------------------------------------------------------\n",
"\n",
"Checking *HG* = 0\n",
"Result: \n",
"----------------------------------------------------------------------{CMBN 1}\n",
"------------------------------------------------------------------------------\n",
"\n",
"---done---"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(check-rdct-no-wait)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 3}\n",
"<1 * <CrPr - <<GBar<- (10 11)><- (20)><- NIL>>> - (2 4 6)>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(setf *tc* (cmbn 3 1 (crpr 0 (gbar 3 0 '(10 11) 0 '(20) 0 '())\n",
" 0 '(2 4 6))))"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"*TC* => \n",
"----------------------------------------------------------------------{CMBN 3}\n",
"<1 * <CrPr - <<GBar<- (10 11)><- (20)><- NIL>>> - (2 4 6)>>\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": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(check-rdct-no-wait)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We build now the reduction over $\\mathbb{Z}$ of the twisted tensor product. The contraction is obtained by a call to the function `smgr-tnpr-contraction`. \n",
"$$\n",
"\\begin{aligned}\n",
"\\bar{\\cal W}{\\cal G} \\otimes_\\tau {\\cal G} & \\qquad\\stackrel{\\chi_{\\otimes t}}{\\longrightarrow} &\n",
"{}^s\\bar{\\cal W}{\\cal G} \\otimes_\\tau {\\cal G} \\cr\n",
" {\\scriptstyle aug} \\downarrow \\uparrow {\\scriptstyle coaug} \\cr\n",
" {{\\cal C}_*(\\mathbb{Z})}\\quad \\cr\n",
"\\end{aligned}\n",
"$$\n",
"Of course, we have to define the augmentation and coaugmentation morphisms adapted to this new example. The user will note that the twisted tensor product chain complex may be obtained from the slot `:sorc` of the contration $\\chi_{\\otimes t}$."
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K88 Morphism (degree 1): K57 -> K57]"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def chi-t-tau (smgr-tnpr-contraction (k-z-1)))"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K89 Cohomology-Class on K57 of degree 0]"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def aug-t (build-mrph\n",
" :sorc (sorc chi-t-tau)\n",
" :trgt (z-chcm) \n",
" :degr 0\n",
" :intr #'(lambda (degr gnrt)\n",
" (declare (ignore gnrt))\n",
" (if (zerop degr)\n",
" (term-cmbn 0 1 :z-gnrt)\n",
" (zero-cmbn degr)))\n",
" :strt :gnrt \n",
" :orgn '(aug-t-fibr-tot-smgr-fibr-k-z-1) ))"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K90 Morphism (degree 0): K60 -> K57]"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def coaug-t (build-mrph\n",
" :sorc (z-chcm) \n",
" :trgt (sorc chi-t-tau)\n",
" :degr 0\n",
" :intr #'(lambda (degr gnrt)\n",
" (declare (ignore gnrt))\n",
" (if (zerop degr)\n",
" (term-cmbn 0 1 (tnpr 0 +null-gbar+ 0 '()))\n",
" (zero-cmbn degr)))\n",
" :strt :gnrt\n",
" :orgn '(coaug-t-fibr-tot-smgr-fibr-k-z-1) ))"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K91 Reduction K57 => K60]"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def rdct-t (build-rdct :f aug-t \n",
" :g coaug-t \n",
" :h chi-t-tau\n",
" :orgn '(reduction-t-tt-z)))"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"---done---"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(pre-check-rdct rdct-t)"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 0}\n",
"<1 * <TnPr <<GBar>> NIL>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(setf *tc* (cmbn 0 1 (tnpr 0 +null-gbar+ 0 '())))"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 0}\n",
"<1 * Z-GNRT>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(setf *bc* (cmbn 0 1 :z-gnrt))"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"*TC* => \n",
"----------------------------------------------------------------------{CMBN 0}\n",
"<1 * <TnPr <<GBar>> NIL>>\n",
"------------------------------------------------------------------------------\n",
"\n",
"*BC* => \n",
"----------------------------------------------------------------------{CMBN 0}\n",
"<1 * Z-GNRT>\n",
"------------------------------------------------------------------------------\n",
"\n",
"Checking *TDD* = 0\n",
"Result: \n",
"----------------------------------------------------------------------{CMBN -2}\n",
"------------------------------------------------------------------------------\n",
"\n",
"Checking *BDD* = 0\n",
"Result: \n",
"----------------------------------------------------------------------{CMBN -2}\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 0}\n",
"------------------------------------------------------------------------------\n",
"\n",
"Checking *ID-GF-DH-HD* = 0\n",
"Result: \n",
"----------------------------------------------------------------------{CMBN 0}\n",
"------------------------------------------------------------------------------\n",
"\n",
"Checking *HH* = 0\n",
"Result: \n",
"----------------------------------------------------------------------{CMBN 2}\n",
"------------------------------------------------------------------------------\n",
"\n",
"Checking *FH* = 0\n",
"Result: \n",
"----------------------------------------------------------------------{CMBN 1}\n",
"------------------------------------------------------------------------------\n",
"\n",
"Checking *HG* = 0\n",
"Result: \n",
"----------------------------------------------------------------------{CMBN 1}\n",
"------------------------------------------------------------------------------\n",
"\n",
"---done---"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(check-rdct-no-wait)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The check is validated also for the following simplices. We see also that, if we apply the contraction $\\chi_{\\otimes t}$ upon various simplices outside the base fiber, the result is in general non--null. The nullity of this contraction outside the base fiber, which we have verified experimentally in many cases in loop spaces fibration is not verified in simplicial group fibrations."
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 3}\n",
"<1 * <TnPr <<GBar>> (1 10 100)>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(setf *tc* (cmbn 3 1 (tnpr 0 +null-gbar+ 3 '(1 10 100))))"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 4}\n",
"<1 * <TnPr <<GBar<- (1 10 100)><1-0 NIL><0 NIL><- NIL>>> NIL>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(? chi-t-tau *tc*)"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 3}\n",
"<1 * <TnPr <<GBar<- (1)><- NIL>>> (10)>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(setf *tc* (cmbn 3 1 (tnpr 2 (gbar 2 0 '(1) 0 '()) 1 '(10))))"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 4}\n",
"<1 * <TnPr <<GBar<1-0 (10)><1-0 NIL><- (1)><- NIL>>> NIL>>\n",
"<-1 * <TnPr <<GBar<2-0 (10)><1 (1)><0 NIL><- NIL>>> NIL>>\n",
"<1 * <TnPr <<GBar<2-1 (10)><0 (1)><0 NIL><- NIL>>> NIL>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(? chi-t-tau *tc*)"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 3}\n",
"<1 * <TnPr <<GBar<- (1 10)><- (100)><- NIL>>> NIL>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(setf *tc* (cmbn 3 1 (tnpr 3 (gbar 3 0 '(1 10) 0 '(100) 0 '()) 0 '())))"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 4}\n",
"<1 * <TnPr <<GBar<2 (1 10)><1 (100)><0 NIL><- NIL>>> NIL>>\n",
"<-1 * <TnPr <<GBar<2-1 (11)><0 (100)><0 NIL><- NIL>>> NIL>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(? chi-t-tau *tc*)"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 4}\n",
"<1 * <TnPr <<GBar>> (1 10 100 1000)>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(setf *tc* (cmbn 4 1 (tnpr 0 +null-gbar+ 4 '(1 10 100 1000))))"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 5}\n",
"<-1 * <TnPr <<GBar<- (1 10 100 1000)><2-1-0 NIL><1-0 NIL><0 NIL><- NIL>>> NIL>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(? chi-t-tau *tc*)"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 4}\n",
"<1 * <TnPr <<GBar<- (1)><- NIL>>> (10 100)>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(setf *tc* (cmbn 4 1 (tnpr 2 (gbar 2 0 '(1) 0 '()) 2 '(10 100))))"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 5}\n",
"<-1 * <TnPr <<GBar<1-0 (10 100)><2-1-0 NIL><1-0 NIL><- (1)><- NIL>>> NIL>>\n",
"<1 * <TnPr <<GBar<2-0 (10 100)><2-1-0 NIL><1 (1)><0 NIL><- NIL>>> NIL>>\n",
"<-1 * <TnPr <<GBar<2-1 (10 100)><2-1-0 NIL><0 (1)><0 NIL><- NIL>>> NIL>>\n",
"<-1 * <TnPr <<GBar<3-0 (10 100)><2-1 (1)><1-0 NIL><0 NIL><- NIL>>> NIL>>\n",
"<1 * <TnPr <<GBar<3-1 (10 100)><2-0 (1)><1-0 NIL><0 NIL><- NIL>>> NIL>>\n",
"<-1 * <TnPr <<GBar<3-2 (10 100)><1-0 (1)><1-0 NIL><0 NIL><- NIL>>> NIL>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(? chi-t-tau *tc*)"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 4}\n",
"<1 * <TnPr <<GBar<- (1 10)><- (100)><- NIL>>> (1000)>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(setf *tc* (cmbn 4 1 (tnpr 3 (gbar 3 0 '(1 10) 0 '(100) 0 '())\n",
" 1 '(1000)))) "
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 5}\n",
"<-1 * <TnPr <<GBar<2 (1 10 1000)><2-1-0 NIL><1 (100)><0 NIL><- NIL>>> NIL>>\n",
"<1 * <TnPr <<GBar<2-1 (11 1000)><2-1-0 NIL><0 (100)><0 NIL><- NIL>>> NIL>>\n",
"<-1 * <TnPr <<GBar<2-1-0 (1000)><2-1-0 NIL><- (1 10)><- (100)><- NIL>>> NIL>>\n",
"<1 * <TnPr <<GBar<3 (1 10 1000)><2-1 (100)><1-0 NIL><0 NIL><- NIL>>> NIL>>\n",
"<-1 * <TnPr <<GBar<3 (1 1000 10)><2-1 (100)><1-0 NIL><0 NIL><- NIL>>> NIL>>\n",
"<1 * <TnPr <<GBar<3 (1000 1 10)><2-0 (100)><1-0 NIL><0 NIL><- NIL>>> NIL>>\n",
"<-1 * <TnPr <<GBar<3-1 (11 1000)><2-0 (100)><1-0 NIL><0 NIL><- NIL>>> NIL>>\n",
"<1 * <TnPr <<GBar<3-1-0 (1000)><2 (1 10)><1-0 NIL><- (100)><- NIL>>> NIL>>\n",
"<1 * <TnPr <<GBar<3-2 (11 1000)><1-0 (100)><1-0 NIL><0 NIL><- NIL>>> NIL>>\n",
"<-1 * <TnPr <<GBar<3-2 (1000 11)><1-0 (100)><1-0 NIL><0 NIL><- NIL>>> NIL>>\n",
"... ...\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(? chi-t-tau *tc*)"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 4}\n",
"<1 * <TnPr <<GBar<- (1 10 100)><- (1000 10000)><- (100000)><- NIL>>> NIL>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(setf *tc* (cmbn 4 1 (tnpr 4 (gbar 4 0 '(1 10 100)\n",
" 0 '(1000 10000)\n",
" 0 '(100000)\n",
" 0 '())\n",
" 0 '())))"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 5}\n",
"<1 * <TnPr <<GBar<2 (1001 10010 100)><2-1-0 NIL><1 (100000)><0 NIL><- NIL>>> NIL>>\n",
"<-1 * <TnPr <<GBar<2-1 (11011 100)><2-1-0 NIL><0 (100000)><0 NIL><- NIL>>> NIL>>\n",
"<-1 * <TnPr <<GBar<3 (1 10 100)><2 (1000 10000)><1-0 NIL><- (100000)><- NIL>>> NIL>>\n",
"<-1 * <TnPr <<GBar<3 (111 1000 10000)><2-0 (100000)><1-0 NIL><0 NIL><- NIL>>> NIL>>\n",
"<1 * <TnPr <<GBar<3 (1001 110 10000)><2-1 (100000)><1-0 NIL><0 NIL><- NIL>>> NIL>>\n",
"<-1 * <TnPr <<GBar<3 (1001 10010 100)><2-1 (100000)><1-0 NIL><0 NIL><- NIL>>> NIL>>\n",
"<1 * <TnPr <<GBar<3-1 (11011 100)><2-0 (100000)><1-0 NIL><0 NIL><- NIL>>> NIL>>\n",
"<1 * <TnPr <<GBar<3-2 (1 110)><1 (1000 10000)><1 (100000)><0 NIL><- NIL>>> NIL>>\n",
"<1 * <TnPr <<GBar<3-2 (111 11000)><1-0 (100000)><1-0 NIL><0 NIL><- NIL>>> NIL>>\n",
"<-1 * <TnPr <<GBar<3-2 (11011 100)><1-0 (100000)><1-0 NIL><0 NIL><- NIL>>> NIL>>\n",
"... ...\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(? chi-t-tau *tc*)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let us verify once again the unproved conjecture signaled in the loop spaces fibrations chapter. In fact, if the conjecture is true, it is sufficient to prove it with $\\bar{\\Delta}$. But the following is also a good test of verifying all the involved machinery. If we take ${\\cal G}= K(\\mathbb{Z},1)$, the space ${\\cal WG}=\\bar{\\cal W}{\\cal G} \\times_\\tau {\\cal G}$ is 0-reduced. Let us consider its loop space and the induced contraction $\\chi_{\\otimes t}$ over ${\\cal WG} \\otimes_\\tau \\Omega{\\cal WG}$. ${\\cal WG}$ and the contraction $\\chi_{\\otimes t}$ are built by the two following statements:"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K31 Kan-Simplicial-Set]"
]
},
"execution_count": 61,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def wgkz1 (fibration-total (smgr-fibration(k-z-1))))"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K159 Morphism (degree 1): K154 -> K154]"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def chi-t-tau (tnpr-contraction wgkz1))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let us apply successively the contraction upon a simplex belonging to the base fiber (`gnrt0`) and a simplex out of the base fiber (`gnrt1`). We see that in the second case we obtain a null result. We verify also that $\\chi_{\\otimes t}\\circ \\chi_{\\otimes t}=0$."
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<TnPr <CrPr - <<GBar>> - NIL> <<Loop[<CrPr - <<GBar<- (1)><- (0)>>> - (1)>\\-3]>>>"
]
},
"execution_count": 63,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def gnrt0 (tnpr 0 (crpr 0 +null-gbar+ 0 nil)\n",
" 0 (loop3 0 (crpr 0 (gbar 2 0 '(1) 0 '(0) ) 0 '(1)) -3)))"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 1}\n",
"<1 * <TnPr <CrPr - <<GBar<- (1)><- (0)>>> - (1)> <<Loop[<CrPr - <<GBar<- (1)><- (0)>>> - (1)>\\-3]>>>>\n",
"<1 * <TnPr <CrPr - <<GBar<- (1)><- (0)>>> - (1)> <<Loop[<CrPr - <<GBar<- (1)><- (0)>>> - (1)>\\-2]>>>>\n",
"<1 * <TnPr <CrPr - <<GBar<- (1)><- (0)>>> - (1)> <<Loop[<CrPr - <<GBar<- (1)><- (0)>>> - (1)>\\-1]>>>>\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(? chi-t-tau 0 gnrt0)"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 2}\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 65,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(? chi-t-tau *)"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<TnPr <CrPr - <<GBar<- (10 11 12)><- (20 21)><- (30)><- NIL>>> - (2 4 6 8)> <<Loop[<CrPr - <<GBar<- (1)><- (0)>>> - (1)>\\2]>>>"
]
},
"execution_count": 66,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def gnrt1 (tnpr 4 (crpr 0 (gbar 4 0 '(10 11 12) 0 '(20 21) 0 '(30) 0 '())\n",
" 0 '(2 4 6 8))\n",
" 0 (loop3 0 (crpr 0 (gbar 2 0 '(1) 0 '(0) ) 0 '(1)) 2)))"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"----------------------------------------------------------------------{CMBN 5}\n",
"------------------------------------------------------------------------------\n"
]
},
"execution_count": 67,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(? chi-t-tau 4 gnrt1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"At last we verify that the total space of the fibration of $K(\\mathbb{Z},1)$ is contractible."
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Computing boundary-matrix in dimension 0.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"Computing the boundary of the generator 1/1 (dimension 0) :\n",
"<TnPr <<Abar>> *> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 1.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"Computing the boundary of the generator 1/1 (dimension 1) :\n",
"<TnPr <<Abar>> S1> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 0 :\n",
"\n",
"\n",
"Component Z\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 1.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"Computing the boundary of the generator 1/1 (dimension 1) :\n",
"<TnPr <<Abar>> S1> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 2.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"Computing the boundary of the generator 1/1 (dimension 2) :\n",
"<TnPr <<Abar[2 S1]>> *> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 1 :\n",
"\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 2.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"Computing the boundary of the generator 1/1 (dimension 2) :\n",
"<TnPr <<Abar[2 S1]>> *> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 3.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"Computing the boundary of the generator 1/1 (dimension 3) :\n",
"<TnPr <<Abar[2 S1]>> S1> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 2 :\n",
"\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 3.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"Computing the boundary of the generator 1/1 (dimension 3) :\n",
"<TnPr <<Abar[2 S1]>> S1> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 4.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"Computing the boundary of the generator 1/1 (dimension 4) :\n",
"<TnPr <<Abar[2 S1][2 S1]>> *> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 3 :\n",
"\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 4.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"Computing the boundary of the generator 1/1 (dimension 4) :\n",
"<TnPr <<Abar[2 S1][2 S1]>> *> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 5.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"Computing the boundary of the generator 1/1 (dimension 5) :\n",
"<TnPr <<Abar[2 S1][2 S1]>> S1> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 4 :\n",
"\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 5.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"Computing the boundary of the generator 1/1 (dimension 5) :\n",
"<TnPr <<Abar[2 S1][2 S1]>> S1> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 6.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"Computing the boundary of the generator 1/1 (dimension 6) :\n",
"<TnPr <<Abar[2 S1][2 S1][2 S1]>> *> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 5 :\n",
"\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 6.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"Computing the boundary of the generator 1/1 (dimension 6) :\n",
"<TnPr <<Abar[2 S1][2 S1][2 S1]>> *> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 7.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"Computing the boundary of the generator 1/1 (dimension 7) :\n",
"<TnPr <<Abar[2 S1][2 S1][2 S1]>> S1> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 6 :\n",
"\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 7.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"Computing the boundary of the generator 1/1 (dimension 7) :\n",
"<TnPr <<Abar[2 S1][2 S1][2 S1]>> S1> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 8.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"Computing the boundary of the generator 1/1 (dimension 8) :\n",
"<TnPr <<Abar[2 S1][2 S1][2 S1][2 S1]>> *> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 7 :\n",
"\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 8.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"Computing the boundary of the generator 1/1 (dimension 8) :\n",
"<TnPr <<Abar[2 S1][2 S1][2 S1][2 S1]>> *> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 9.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"Computing the boundary of the generator 1/1 (dimension 9) :\n",
"<TnPr <<Abar[2 S1][2 S1][2 S1][2 S1]>> S1> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 8 :\n",
"\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 9.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"Computing the boundary of the generator 1/1 (dimension 9) :\n",
"<TnPr <<Abar[2 S1][2 S1][2 S1][2 S1]>> S1> \n",
"End of computing.\n",
"\n",
"\n",
"Computing boundary-matrix in dimension 10.\n",
"Rank of the source-module : 1.\n",
"\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"Computing the boundary of the generator 1/1 (dimension 10) :\n",
"<TnPr <<Abar[2 S1][2 S1][2 S1][2 S1][2 S1]>> *> \n",
"End of computing.\n",
"\n",
"\n",
"\n",
"\n",
"Homology in dimension 9 :\n",
"\n",
"\n",
"\n",
"---done---\n",
"\n",
";; Clock -> 2017-10-08, 12h 31m 26s.\n",
"\n"
]
},
{
"data": {
"text/plain": [
"NIL"
]
},
"execution_count": 68,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(homology (fibration-total(smgr-fibration (k-z-1))) 0 10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Another example is the following: we build the canonical fibration of $\\bar{\\cal W}^2K(\\mathbb{Z}_2, 1)$ and verify that its fibration total space is contractible:"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K327 Abelian-Simplicial-Group]"
]
},
"execution_count": 69,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def k22 (classifying-space(classifying-space(k-z2-1))))"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K351 Fibration K339 -> K327]"
]
},
"execution_count": 70,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def fb (smgr-fibration k22))"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[K357 Kan-Simplicial-Set]"
]
},
"execution_count": 71,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(def tt2 (fibration-total fb))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"(homology tt2 0 10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Lisp file concerned in this chapter\n",
"\n",
"`cs-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
}