Chapter2 updates.
This commit is contained in:
parent
f0fe2b7799
commit
1566abc307
@ -42,7 +42,7 @@
|
||||
"## Introduction\n",
|
||||
"\n",
|
||||
"The present chapter describes the set of programming tools for handling *objects with effective homology*. The theoretical material may be found in the paper *Constructive Algebraic Topology* by Julio Rubio Garcia and Francis Sergeraert (Available at the web site\n",
|
||||
"[**https://www-fourier.ujf.grenoble.fr/~sergerar/**](https://www-fourier.ujf.grenoble.fr/~sergerar/)). The terminology used in this chapter is compatible with this reference.). The terminology used in this chapter is compatible with this reference.\n",
|
||||
"[**https://www-fourier.ujf.grenoble.fr/~sergerar/**](https://www-fourier.ujf-grenoble.fr/~sergerar/)). The terminology used in this chapter is compatible with this reference.). The terminology used in this chapter is compatible with this reference.\n",
|
||||
"\n",
|
||||
"## Reduction\n",
|
||||
"\n",
|
||||
@ -207,7 +207,12 @@
|
||||
"to the combinations and pauses after each evaluation to allow the user to inspect each result.\n",
|
||||
"To resume the execution, the user must enter a blank character. If the morphisms are coherent, the result of each mapping is a null combination.\n",
|
||||
"\n",
|
||||
"#### Example"
|
||||
"#### Example\n",
|
||||
"\n",
|
||||
"To show an example about the verification functions, we first define a locally effective version\n",
|
||||
"of the standard simplex $\\Delta^n$. The following function ``cdelta`` builds the standard simplex\n",
|
||||
"in dimension *dmns*. In using the created chain complex, the user must bear in mind that\n",
|
||||
"the only valid vertices are the vertices numbered from $(0)$ to $(dmns)$."
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -240,6 +245,17 @@
|
||||
" :orgn `(locally effective version of C_* delta ,dmns)))"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Now, let us define 3 functions ``make-f``, ``make-g`` and ``make-h`` which build the following respective morphisms between $\\Delta^m$ and $\\Delta^n$:\n",
|
||||
"\n",
|
||||
"- ``(make-f tdms bdms)`` builds a projection morphism $f$ from $\\Delta^{tdms}$ to $\\Delta^{bdms}$, $tdms>=bdms$, where the vertices $(0)$ to $(dms)$ of $\\Delta^{tdms}$ are applied on the vertices of the same number in $\\Delta^{bdms}$ and the vertices $(bdms+1)$ to $(tdms)$ are applied on the vertex $(bdms)$ of $\\Delta^{bdms}$.\n",
|
||||
"- ``(make-g tdms bdms)`` builds the injection morphism $g$ from $\\Delta^{bdms}$ to $\\Delta^{tdms}$ (the slot {\\tt :intr} is the identity function).\n",
|
||||
"- ``(make-h tdms bdms)`` builds a homotopy morphism of degree 1, $h$, from $\\Delta^{tdms}$ to itself, connecting w.r.t. the homotopy relation, the chain map $g \\circ f$ with the identity morphism $Id$."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
@ -304,6 +320,15 @@
|
||||
" :orgn `(homotopy for delta ,tdmns => ,bdmns)))"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"We may now define a function to build a reduction. One has not to define a priori the standard\n",
|
||||
"simplices: this is done in all the functions and we know that there is no duplication, because\n",
|
||||
"before creation, the system checks, owing to the comment list, if the instance of a class (here a chain complex) already exists."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
@ -321,6 +346,14 @@
|
||||
" rdct))"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"We now build with a simple call to the function ``make-rdct`` the chain complexes corresponding \n",
|
||||
"to $\\Delta^6$ and $\\Delta^3$, the 3 morphisms $f$, $g$, $h$ and the reduction. The lisp utility function ``inspect`` gives an idea of the organisation of the class instance. Then we verify the coherency of the reduction with the functions ``pre-check-rdct`` and ``check-rdct``."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
@ -332,6 +365,17 @@
|
||||
"(def rdct (make-rdct 6 3))"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"(inspect rdct)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
@ -387,6 +431,14 @@
|
||||
"(check-rdct-no-wait)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"We do now the same thing with a more complicated reduction which is the\n",
|
||||
"composition of the two following reductions:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
@ -446,8 +498,225 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2.4.1 Useful functions related to the perturbation lemma\n",
|
||||
"#### Example"
|
||||
"## Homotopy equivalence\n",
|
||||
"\n",
|
||||
"A *homotopy equivalence* between two chain complexes $C$ and $EC$ is a pair of reductions:\n",
|
||||
"\n",
|
||||
"$$\n",
|
||||
"\\begin{align}\n",
|
||||
" & \\qquad\\hat{C} & \\\\\n",
|
||||
" \\rho_1\\swarrow\\nearrow & & \\nwarrow\\searrow \\rho_2 \\\\\n",
|
||||
"C \\quad & & EC\\quad\n",
|
||||
"\\end{align}\n",
|
||||
"$$\n",
|
||||
"\n",
|
||||
"If $C$ and $EC$ are *free* $\\mathbb{Z}$-chain complexes, a usual chain equivalence between them can be\n",
|
||||
"organized in this way. Frequently the chain complexes $C$ and $\\hat C$ are *locally effective*\n",
|
||||
"and on the contrary, the chain complex $EC$ is *effective*, so that $EC$ can be understood\n",
|
||||
"as a description of the homology of $C$. More precisely, $EC$ is a tool allowing one to compute the\n",
|
||||
"homology of $C$. The chain complexe $\\hat C$ is only an intermediate object.\n",
|
||||
"\n",
|
||||
"### Representation of a homotopy equivalence\n",
|
||||
"\n",
|
||||
"A homotopy equivalence is implemented as an instance of the ``CLOS`` class ``HOMOTOPY-EQUIVALENCE``,\n",
|
||||
"whose definition is\n",
|
||||
"\n",
|
||||
"```lisp\n",
|
||||
"(DEFCLASS HOMOTOPY-EQUIVALENCE ()\n",
|
||||
" ;; Left Bottom Chain Complex\n",
|
||||
" ((lbcc :type chain-complex :initarg :lbcc :reader lbcc1)\n",
|
||||
" ;; Top Chain Complex\n",
|
||||
" (tcc :type chain-complex :initarg :tcc :reader tcc1)\n",
|
||||
" ;; Bottom Right Chain Complex\n",
|
||||
" (rbcc :type chain-complex :initarg :rbcc :reader rbcc1)\n",
|
||||
" ;; Left f\n",
|
||||
" (lf :type morphism :initarg :lf :reader lf1)\n",
|
||||
" ;; Left g\n",
|
||||
" (lg :type morphism :initarg :lg :reader lg1)\n",
|
||||
" ;; Left h\n",
|
||||
" (lh :type morphism :initarg :lh :reader lh1)\n",
|
||||
" ;; Right f\n",
|
||||
" (rf :type morphism :initarg :rf :reader rf1)\n",
|
||||
" ;; Right g\n",
|
||||
" (rg :type morphism :initarg :rg :reader rg1)\n",
|
||||
" ;; Right h\n",
|
||||
" (rh :type morphism :initarg :rh :reader rh1)\n",
|
||||
" ;; Left ReDuCTion\n",
|
||||
" (lrdct :type reduction :initarg :lrdct :reader lrdct)\n",
|
||||
" ;; Right ReDuCTion\n",
|
||||
" (rrdct :type reduction :initarg :rrdct :reader rrdct)\n",
|
||||
" ;; IDentification NuMber\n",
|
||||
" (idnm :type fixnum :initform (incf *idnm-counter*) :reader idnm)\n",
|
||||
" (orgn :type list :initarg :orgn :reader orgn)))\n",
|
||||
"```\n",
|
||||
"\n",
|
||||
"This class has 13 slots:\n",
|
||||
"\n",
|
||||
"- ``lbcc``, the object of type ``chain complex`` representing the chain complex $C$ (**l**eft **b**ottom **c**hain **c**omplex on the diagram).\n",
|
||||
"- ``tcc``, the object of type ``chain complex`` representing the chain complex $\\hat C$ (**t**op **c**hain **c**omplex).\n",
|
||||
"- ``rbcc``, the object of type ``chain complex`` representing the chain complex $EC$ (**r**ight **b**ottom **c**hain **c**omplex on the diagram).\n",
|
||||
"- ``lf``, the object of type ``morphism`` representing the morphism $f$ of the (**l**eft) reduction $\\rho_1$.\n",
|
||||
"- ``lg``, the object of type ``morphism`` representing the morphism $g$ of the (**l**eft) reduction $\\rho_1$.\n",
|
||||
"- ``lh``, the object of type ``morphism`` representing the morphism $h$ of the (**l**eft) reduction $\\rho_1$.\n",
|
||||
"- ``rf``, the object of type ``morphism`` representing the morphism $f$ of the (**r**ight) reduction $\\rho_2$.\n",
|
||||
"- ``rg``, the object of type ``morphism`` representing the morphism $g$ of the (**r**ight) reduction $\\rho_2$.\n",
|
||||
"- ``rh``, the object of type ``morphism`` representing the morphism $h$ of the (**r**ight) reduction $\\rho_2$.\n",
|
||||
"- ``lrdc``, the object of type ``reduction`` representing the (**l**eft) reduction $\\rho_1$.\n",
|
||||
"- ``rrdc``, the object of type ``reduction`` representing the (**r**ight) reduction $\\rho_2$.\n",
|
||||
"- ``idn``, an integer, number plate for the object, set by the system.\n",
|
||||
"- ``orgn``, an adequate comment list.\n",
|
||||
"\n",
|
||||
"When an instance is created, the printing method associated to the class ``HOMOTOPY EQUIVALENCE`` prints a string like ``[Kn Homotopy-Equivalence]``, where *n* is the number plate of the Kenzo object.\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"### The function ``build-hmeq``\n",
|
||||
"\n",
|
||||
"To facilitate the construction of instances of the ``HOMOTOPY-EQUIVALENCE`` class, the software provides the function, (in fact a method), ``build-hmeq`` which may be used in the following ways:\n",
|
||||
"either with the two reductions $\\rho_1$ and $\\rho_2$ or explicitly with the morphisms.\n",
|
||||
"The selection of the adequate method is done by inspecting the first keyword, which is \n",
|
||||
"``:lrdct`` in the first case and ``:lf`` in the second one. In both cases the returned value is an instance of the class ``HOMOTOPY-EQUIVALENCE``.\n",
|
||||
"\n",
|
||||
"1) ``(build-hmeq :lrdct lrdct :rrdct rrdc :orgn orgn)`` *[Method]*\n",
|
||||
"> The keyword arguments are:\n",
|
||||
"- *lrdct*, the object of type ``reduction`` representing the reduction $\\rho_1$.\n",
|
||||
"- *rrdct*, the object of type ``reduction`` representing the reduction $\\rho_2$.\n",
|
||||
"- *org*, the comment list.\n",
|
||||
"The function ``build-heq-from-rdc`` calls internally the standard constructor ``make-instance``. All the needed information is contained in the two reductions.\n",
|
||||
"\n",
|
||||
"2) ``(build-hmeq :lf lf :lg lg :lh lh :rf rf :rg rg :rh rh :orgn orgn)`` *[Method]*\n",
|
||||
"> The keyword arguments are:\n",
|
||||
"- *lf*, the object of type ``morphism`` representing the morphism $f$ of the reduction $\\rho_1$.\n",
|
||||
"- *lg*, the object of type ``morphism`` representing the morphism $g$ of the reduction $\\rho_1$.\n",
|
||||
"- *lh*, the object of type ``morphism`` representing the morphism $h$ of the reduction $\\rho_1$.\n",
|
||||
"- *rf*, the object of type ``morphism`` representing the morphism $f$ of the reduction $\\rho_2$.\n",
|
||||
"- *rg*, the object of type ``morphism`` representing the morphism $g$ of the reduction $\\rho_2$.\n",
|
||||
"- *rh*, the object of type ``morphism`` representing the morphism $h$ of the reduction $\\rho_2$.\n",
|
||||
"- *org*, the comment list.\n",
|
||||
"\n",
|
||||
"All the needed information is contained in the morphism structures.\n",
|
||||
"In both cases, the method pushes the created instance onto the list ``*hmeq-list*``.\n",
|
||||
"\n",
|
||||
"### Useful macros and functions\n",
|
||||
"\n",
|
||||
"``(cat-init)`` *[Function]*\n",
|
||||
"> Clear among others, the list ``*hmeq-list*``, list of user created homotopy equivalences and reset the global counter to 1.\n",
|
||||
"\n",
|
||||
"``(hmeq n)`` *[Function]*\n",
|
||||
"> Retrieve in the list ``*hmeq-list*`` the homotopy equivalence instance whose identification is $n$. If it does not exist, return ``NIL``.\n",
|
||||
"\n",
|
||||
"``(lbcc hmeq &rest args)`` *[Macro]*\n",
|
||||
"> With only one argument (a homotopy equivalence *hmeq*) this macro selects the left bottom chain complex of the homotopy equivalence. Otherwise, it applies the differential of the left bottom chain complex of *hmeq* on the arguments *args*, (either *degree generator* or *cmb*).\n",
|
||||
"\n",
|
||||
"``(rbcc hmeq &rest args)`` *[Macro]*\n",
|
||||
"> With only one argument (a homotopy equivalence *hmeq*) this macro selects the right bottom chain complex of the homotopy equivalence. Otherwise, it applies the differential of the right bottom chain complex of *hmeq* on the arguments *args*, (either *degree generator* or *cmb*).\n",
|
||||
"\n",
|
||||
"``(lf hmeq &rest args)`` *[Macro]*\n",
|
||||
"> With only one argument (a homotopy equivalence {\\em hmeq}) this macro selects the morphism $f$ of the left reduction of *hmeq*. Otherwise, it applies the morphism $f$ of the left reduction of *hmeq* on the arguments *args*, (either *degree generator* or *cmb*).\n",
|
||||
"\n",
|
||||
"``(lg hmeq &rest args)`` *[Macro]*\n",
|
||||
"> With only one argument (a homotopy equivalence *hmeq*) this macro selects the morphism $g$ of the left reduction of *hmeq*. Otherwise, it applies the morphism $g$ of the left reduction of *hmeq* on the arguments *args*, (either *degree generator* or *cmb*).\n",
|
||||
"\n",
|
||||
"``(lh hmeq &rest args)`` *[Macro]*\n",
|
||||
"> With only one argument (a homotopy equivalence *hmeq*) this macro selects the morphism $h$ of the left reduction of *hmeq*. Otherwise, it applies the morphism $h$ of the left reduction of *hmeq* on the arguments *args*, (either *degree generator* or *cmb*).\n",
|
||||
"\n",
|
||||
"``(rf hmeq &rest args)`` *[Macro]*\n",
|
||||
"> With only one argument (a homotopy equivalence *hmeq*) this macro selects the morphism $f$ of the right reduction of *hmeq*. Otherwise, it applies the morphism $f$ of the right reduction of *hmeq* on the arguments *args*, (either *degree generator* or *cmb*).\n",
|
||||
"\n",
|
||||
"``(rg hmeq &rest args)`` *[Macro]*\n",
|
||||
"> With only one argument (a homotopy equivalence *hmeq*) this macro selects the morphism $g$ of the right reduction of *hmeq*. Otherwise, it applies the morphism $g$ of the right reduction of *hmeq* on the arguments *args*, (either *degree generator* or *cmb*).\n",
|
||||
"\n",
|
||||
"``(rh hmeq &rest args)`` *[Macro]*\n",
|
||||
"> With only one argument (a homotopy equivalence *hmeq*) this macro selects the morphism $h$ of the right reduction of *hmeq*. Otherwise, it applies the morphism $h$ of the right reduction of *hmeq* on the arguments *args*, (either *degree generator* or *cmb*).\n",
|
||||
"\n",
|
||||
"``(trivial-hmeq chcm)`` *[Function]*\n",
|
||||
"> Build the trivial homotopy equivalence involving only the chain complex *chcm*. In that case,\n",
|
||||
"the 3 chain complexes $C$, $EC$ and $\\hat C$ are the chain complex *chcm* itself and the reductions $\\rho_1$ and $\\rho_2$ are, of course, the trivial reductions on *chcm* built by the statement ``(trivial-rdct chcm)``."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## The perturbation lemma machinery\n",
|
||||
"\n",
|
||||
"For a good understanding of the lisp functions involved in the machinery in question,\n",
|
||||
"we recall the *perturbation lemma* (**Ronald Brown**. *The twisted Eilenberg--Zilber theorem*.\n",
|
||||
"Celebrazioni Arch. Secolo XX Simp. Top., 1967, pp 34-37.). In the basic (resp. trivial) perturbation lemma, the given perturbation concerns the **top** (resp. **bottom**) chain complex.\n",
|
||||
"\n",
|
||||
"**Theorem 1 (Basic perturbation lemma)** - Let\n",
|
||||
"$\\rho=(\\hat{C},C,f,g,h)$ a reduction and $\\hat{\\delta}$ a *perturbation* of $d_{\\hat{C}}$, that is, an operator defined on $\\hat{C}$ of degree -1 satisfying the relation $(d_{\\hat{C}}+\\hat{\\delta})\\circ(d_{\\hat{C}}+\\hat{\\delta})=0$. Furthermore, the composite function $h\\circ\\hat{\\delta}$ is assumed *locally nilpotent*, that is, $\\forall x \\in \\hat{C}$, $(h\\circ\\hat{\\delta})^nx=0$, for $n$ sufficiently large. Then a new reduction $\\rho'=(\\hat{C}',C',f',g',h')$ can be constructed where:\n",
|
||||
"1. $\\hat{C}'$ is the chain complex obtained from $C$ by replacing the old differential $d_{\\hat{C}}$ by $(d_{\\hat{C}}+\\hat{\\delta}),$\n",
|
||||
"2. the new chain complex $C'$ is obtained from the chain complex $C$ only by replacing the old differential $d_C$ by $(d_C + \\delta),$ with $\\delta = f \\circ {\\hat \\delta} \\circ \\phi \\circ g =\n",
|
||||
" f \\circ \\psi \\circ {\\hat \\delta} \\circ g,$\n",
|
||||
"3. $f'= f \\circ \\psi = f \\circ (Id - {\\hat \\delta} \\circ \\phi \\circ h),$\n",
|
||||
"4. $g'= \\phi \\circ g,$\n",
|
||||
"5. $h'= \\phi \\circ h = h \\circ \\psi$,\n",
|
||||
"with \n",
|
||||
"$$\n",
|
||||
"\\phi=\\sum_{i=0}^{\\infty}{(-1)^i(h \\circ \\hat{\\delta})^i}\n",
|
||||
"$$\n",
|
||||
"and\n",
|
||||
"$$\n",
|
||||
"\\psi=\\sum_{i=0}^{\\infty}{(-1)^i(\\hat{\\delta}\\circ h)^i} = Id - {\\hat \\delta} \\circ \\phi \\circ h,\n",
|
||||
"$$\n",
|
||||
"the convergence being ensured by the locally nilpotency of $h \\circ \\hat{\\delta}$ and $\\hat{\\delta} \\circ h$.\n",
|
||||
"\n",
|
||||
"**Theorem 2 (Trivial perturbation lemma)** - Let\n",
|
||||
"$\\rho=(\\hat{C},C,f,g,h)$ a reduction and ${\\check\\delta}$ a *perturbation* of $d_C$, that is, an operator defined on $C$ of degree -1 satisfying the relation $(d_C+{\\check\\delta})\\circ (d_C+{\\check\\delta})=0$. Then a new reduction $\\rho'=(\\hat{C}',C',f',g',h')$ can be constructed where:\n",
|
||||
"1. $\\hat{C}'$ is the chain complex obtained from $C$ by replacing the old differential $d_{\\hat{C}}$ by $(d_{\\hat{C}}+ g \\circ {\\check\\delta} \\circ f),$\n",
|
||||
"2. the new chain complex $C'$ is obtained from the chain complex $C$ only by replacing the old differential $d_C$ by $(d_C +{\\check \\delta}),$ \n",
|
||||
"3. $f'= f,$\n",
|
||||
"4. $g'= g,$\n",
|
||||
"5. $h'= h.$\n",
|
||||
"\n",
|
||||
"### Useful functions related to the perturbation lemma\n",
|
||||
"\n",
|
||||
"The functions implementing the perturbation-lemma are actually the heart of the program. They allow us\n",
|
||||
"to implement the effective versions of the classical spectral sequences (Serre, Eilenberg-Moore, ...). \n",
|
||||
"\n",
|
||||
"``(add rdct perturbation)`` *[Method]*\n",
|
||||
"> Build a new reduction from the object of type ``reduction``, *rdct* and \n",
|
||||
"the object of type ``morphism``, *perturbation*, applying the formulas given in the perturbation lemma. In fact, this method calls one or the other of the two following functions according as the perturbation is on the top or on the bottom chain complex and returns the values of the called function.\n",
|
||||
"\n",
|
||||
"``(basic-perturbation-lemma reduction top-perturbation)`` *[Function]*\n",
|
||||
"> Return a double value: the perturbed reduction and the computed bottom-perturbation (a morphism)\n",
|
||||
"$f \\circ {\\hat \\delta}\\circ \\phi \\circ g$. Of course, to avoid unuseful computations when the morphisms are effectively applied, the function takes in account the simplifications involved for instance whensome morphisms are the null morphism.\n",
|
||||
"\n",
|
||||
"``(easy-perturbation-lemma reduction bottom-perturbation)`` *[Function]*\n",
|
||||
"> Return a double value: the perturbed reduction and the computed top-perturbation (a morphism) $g \\circ {\\check \\delta} \\circ f$. Of course, to avoid unuseful computation when the morphisms will be applied, the function takes in account the simplifications involved for instance when some morphisms are the null morphism.\n",
|
||||
"\n",
|
||||
"``(special-bpl reduction top-perturbation)`` *[Function]*\n",
|
||||
"> This function is analogous to ``basic-perturbation-lemma`` and is used in some special cases when the morphism $g$ is invariant.\n",
|
||||
"\n",
|
||||
"``bpl-*-sigma homotopy perturbation)`` *[Function]*\n",
|
||||
"> Construct the principal series $\\phi=\\sum_{i=0}^{\\infty}{(-1)^i(h \\circ \\hat{\\delta})^i}$ of the basic perturbation lemma.\n",
|
||||
"\n",
|
||||
"``(add hmeq lb-perturbation)`` *[Method]*\n",
|
||||
"> Build a homotopy equivalence from the ``homotopy-equivalence`` *hmeq* and the ``morphism`` *lb-perturbation*, a perturbation of the differential of the left bottom chain complex of *hmeq*. From *hmeq*:\n",
|
||||
"$$\n",
|
||||
"\\begin{align}\n",
|
||||
" & \\qquad\\hat{C} & \\\\\n",
|
||||
" \\rho_1\\swarrow\\nearrow & & \\nwarrow\\searrow \\rho_2 \\\\\n",
|
||||
"C\\quad & & EC\n",
|
||||
"\\end{align}\n",
|
||||
"$$\n",
|
||||
"the method ``add`` builds the new homotopy equivalence:\n",
|
||||
"$$\n",
|
||||
"\\begin{align}\n",
|
||||
" & \\qquad\\hat{C}' & \\\\\n",
|
||||
" \\rho'_1\\swarrow\\nearrow & & \\nwarrow\\searrow \\rho'_2 \\\\\n",
|
||||
"C'\\quad & & EC'\n",
|
||||
"\\end{align}\n",
|
||||
"$$\n",
|
||||
"where the construction steps are the following:\n",
|
||||
"- The reduction $\\rho'_1$ is computed with the method ``add`` for a reduction with arguments: the left reduction of *hmeq* and the perturbation *lb-perturbation*. The trivial perturbation lemma is applied. As a bonus, this returns also the top perturbation, say $\\delta$ to be applied to $\\hat{C}$.\n",
|
||||
"- The reduction $\\rho'_2$ is computed with the previous method ``add`` with arguments: the right reduction of *hmeq* and the top perturbation $\\delta$ just computed. That time, the basic perturbation lemma is applied.\n",
|
||||
"- The function ``build-hmeq`` is called with parameters $\\rho'_1$ and $\\rho'_2$.\n",
|
||||
"\n",
|
||||
"#### Example\n",
|
||||
"\n",
|
||||
"We shall apply these methods and functions in the following chapters. Let us show on a trivial example\n",
|
||||
"how this machinery works. First, we build a trivial homotopy equivalence on $\\Delta^4$. Then we build a new one by perturbing the differential of the left bottom chain complex with its opposite. The last call shows how this perturbation has been propagated."
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -487,7 +756,21 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2.5.1 Representation of a combination in a bicone"
|
||||
"## Bicones\n",
|
||||
"\n",
|
||||
"Given 3 chain complexes $B$, $C$ and $D$, together with 2 chain homomorphisms $f_1$ and $f_2$ of degree $0$ (commuting with the differentials), as shown in the following diagram, a bicone on these chain complexes is a chain complex, $BCN(f_1,f_2)$ where the $n$-th chain group $[BCN(f_1,f_2)]$ is $B_n \\oplus C_{n+1} \\oplus D_n$.\n",
|
||||
"\n",
|
||||
"$$\n",
|
||||
"\\begin{align}\n",
|
||||
"B & & & \\qquad D & \\\\\n",
|
||||
"& f_1 \\searrow & & \\swarrow f_2 & \\\\\n",
|
||||
"& & C \\qquad& &\n",
|
||||
"\\end{align}\n",
|
||||
"$$\n",
|
||||
"\n",
|
||||
"### Representation of a combination in a bicone\n",
|
||||
"\n",
|
||||
"To distinguish to which chain complex belongs a generator in a combination of a bicone, the following convention has been adopted: if ``gb`` is a generator of any degree of $B$, it will be represented in the bicone by the list ``(:BcnB gb)`` and printed as ``<BcnB gb>``. The symbols for $C$ and $D$ are respectively ``:BcnC`` and ``:BcnD``. The 3 macros ``bcnb``, ``bcnc`` and ``bcnd`` may be used to build such a generator. The building function for combinations, ``cmbn``, may be used in the following way:"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -499,7 +782,7 @@
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"(def comb-bic (cmbn 3 2 (bcnb 'b1) 4 (bcnb 'b1) 6 (bcnb 'b3)\n",
|
||||
" 3 (bcnb 'c1) 5 (bcnb 'c1) 7 (bcnb 'd1)))"
|
||||
" 3 (bcnb 'c1) 5 (bcnb 'c1) 7 (bcnb 'd1)))"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user