diff --git a/examples/Chapter2.ipynb b/examples/Chapter2.ipynb index 51e1a1b..301ec2a 100644 --- a/examples/Chapter2.ipynb +++ b/examples/Chapter2.ipynb @@ -2,313 +2,232 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": { "collapsed": false }, - "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": [ - "(:KENZO)" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "(ql:quickload :kenzo)" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "---done---" - ] - }, - { - "data": { - "text/plain": [ - "NIL" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:cat-init)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2.2.1 Representation of a reduction" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "\"----------------------------------------------------------------[class-doc]\n", - "REDUCTION\n", - "Slots: (tcc bcc f g h idnm orgn)\n", - "Instances of this class represent reductions of chain complexes.\n", - "\n", - " ^ h s ^ f ° g = 1\n", - " C -----> C C\n", - " ^ h ° d + d ° h = 1 - g ° f\n", - " | | ^\n", - " f | | g C\n", - " | | f ° h = 0\n", - " v h ° g = 0\n", - " C h ° h = 0\n", - "\n", - "The class has 7 slots:\n", - " ^\n", - "1. TCC, an object of type CHAIN-COMPLEX, the top chain complex C. Its reader\n", - " function is TCC1.\n", - "\n", - "2. BCC, an object of type CHAIN-COMPLEX, the bottom chain complex C. Its reader\n", - " function is BCC1.\n", - "\n", - "3. F, an object of type MORPHISM representing the chain morphism f. Its reader\n", - " function is F1.\n", - "\n", - "4. G, an object of type MORPHISM representing the chain morphism g. Its reader\n", - " function is G1.\n", - "\n", - "5. H, an object of type MORPHISM representing the morphism of graded modules h.\n", - " Its reader function is H1.\n", - "\n", - "9. IDNM, an integer, a system-generated identifier for this object. Its reader\n", - " function is IDNM.\n", - "\n", - "10. ORGN, a list containg a comment indicating the origin of the object.\n", - " This comment should be unique for a Kenzo session (between calls of\n", - " CAT-INIT), as it is used for caching purposes. Its reader function\n", - " is ORGN.\n", - "-----------------------------------------------------------------------------\"" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "(documentation 'cat:reduction 'type)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2.2.2 The function $\\texttt{build-rdct}$" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "\"--------------------------------------------------------------[function-doc]\n", - "BUILD-RDCT\n", - "Args: (&key f g h orgn)\n", - "Returns an instance of the class REDUCTION. The keyword arguments are as\n", - "follows:\n", - "\n", - ":F F, an object of type MORPHISM representing the chain morphism f of a\n", - " reduction\n", - "\n", - ":G G, an object of type MORPHISM representing the chain morphism g of a\n", - " reduction\n", - "\n", - ":H H, an object of type MORPHISM representing the morphism of graded modules h\n", - " of a reduction\n", - "\n", - ":ORGN ORGN, a list containing a relevant and carefully chosen comment about\n", - " the origin of the chain complex. This comment should be unique\n", - " for a Kenzo session (between calls of CAT-INIT), as it is used\n", - " for caching purposes.\n", - "\n", - "Use this function instead of creating instances via the standard constructor\n", - "MAKE-INSTANCE.\n", - "------------------------------------------------------------------------------\"" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "(documentation 'cat:build-rdct 'function)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2.2.4 Verification functions" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "\"--------------------------------------------------------------[function-doc]\n", - "PRE-CHECK-RDCT\n", - "Args: (rdct)\n", - "Assigns the following Lisp global variables, using morphisms from RDCT and the\n", - "differentials and identity morphisms of the underlying chain complexes,\n", - "according to these formulas:\n", - "\n", - "*TDD* = d ° d\n", - " ^ ^\n", - " C C\n", - "\n", - "*BDD* = d ° d\n", - " C C\n", - "\n", - "*ID-FG* = Id - f ° g\n", - " C\n", - "\n", - "*ID-GF-DH-HD* = Id - g ° f - (d ° h + h ° d )\n", - " ^ ^ ^\n", - " C C C\n", - "\n", - "*HH* = h ° h\n", - "*FH* = f ° h\n", - "*HG* = h ° g\n", - "\n", - "*DF-FD* = d ° f - f ° d\n", - " C ^\n", - " C\n", - "\n", - "*DG-GD* = d ° g - g ° d\n", - " ^ C\n", - " C\n", - "\n", - "------------------------------------------------------------------------------\"" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "(documentation 'cat:pre-check-rdct 'function)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "\"--------------------------------------------------------------[function-doc]\n", - "CHECK-RDCT-NO-WAIT\n", - "Args: ()\n", - "Maps combinations of the top and bottom chain complexes of a reduction using\n", - "the morphisms created by PRE-CHECK-RDCT. Having no parameters, the\n", - "combinations must be provided via the Lisp global variables *TC* and *BC*,\n", - "for the top and bottom chain complex, respectively. If the morphisms are\n", - "coherent, the result of each mapping is a null combination.\n", - "------------------------------------------------------------------------------\"" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "(documentation 'cat:check-rdct-no-wait 'function)" + "(in-package \"CAT\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(cat-init)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ + "# Objects with effective homology\n", + "\n", + "## 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", + "\n", + "## Reduction\n", + "\n", + "A *reduction* in ``Kenzo`` is a 5-tuple $(\\hat C, C, f, g, h)$:\n", + "\n", + "$$\n", + "\\begin{align}\n", + "\\hat{C}\\quad & \\qquad\\stackrel{h}{\\longrightarrow} & \\mbox{$^s\\hat{C}$} \\\\\n", + "{\\scriptstyle f} \\downarrow \\uparrow {\\scriptstyle g} & & \\\\\n", + "C\\quad & &\n", + "\\end{align}\n", + "$$\n", + "\n", + "where $\\hat C$ and $C$ are chain complexes, $f$ and $g$ chain complex morphisms and\n", + "$h$ a homotopy operator. Hereafter, $\\hat C$ is called the *top chain complex* and $C$ the *bottom chain complex*. ${}^s\\hat C$ is $\\hat C$ shifted, i.e. $h$ has degree $1$. The mappings $f$, $g$, $h$, together with the differential operator $d$ on $\\hat C$, must verify the following relations:\n", + "\n", + "$$\n", + "\\begin{eqnarray*}\n", + "f \\circ g & = & 1_C \\\\\n", + "h \\circ d + d \\circ h & = & 1_{\\hat C} - g \\circ f \\\\\n", + "f \\circ h & = & 0 \\\\\n", + "h \\circ g & = & 0 \\\\\n", + "h \\circ h & = & 0\n", + "\\end{eqnarray*}\n", + "$$\n", + "\n", + "The morphisms $f$ and $g$ and the homotopy operator $h$ describe the (big) chain complex $\\hat C$ as the direct sum\n", + "\n", + "$$ \\hat C= \\hat C_1 \\oplus \\hat C_2$$\n", + "\n", + "where $\\hat C_1 = Im(g) \\simeq C$ and $\\hat C_2= Ker(f)$ ($\\hat C_2$ is acyclic).\n", + "\n", + "### Representation of a reduction\n", + "\n", + "A reduction\\index{reduction!representation} is implemented as an instance of the ``CLOS`` class ``REDUCTION``, whose definition is:\n", + "\n", + "```lisp\n", + "(DEFCLASS REDUCTION ()\n", + " ;; Top Chain Complex\n", + " ((tcc :type chain-complex :initarg :tcc :reader tcc1)\n", + " ;; Bottom Chain Complex\n", + " (bcc :type chain-complex :initarg :bcc :reader bcc1)\n", + " (f :type morphism :initarg :f :reader f1)\n", + " (g :type morphism :initarg :g :reader g1)\n", + " (h :type morphism :initarg :h :reader h1)\n", + " ;; IDentification NuMber\n", + " (idnm :type fixnum :initform (incf *idnm-counter*) :reader idnm)\n", + " ;; ORiGiN\n", + " (orgn :type list :initarg :orgn :reader orgn)))\n", + "```\n", + "\n", + "This class has 7 slots:\n", + "\n", + "1. ``tcc``, the object of type ``chain-complex`` representing the chain complex $\\hat C$ (top chain complex).\n", + "2. ``bcc``, the object of type ``chain-complex`` representing the chain complex $C$ (bottom chain complex).\n", + "3. ``f``, the object of type ``morphism``representing the morphism $f$.\n", + "4. ``g``, the object of type ``morphism`` representing the morphism $g$.\n", + "5. ``h``, the object of type ``morphism`` representing the morphism $h$.\n", + "6. ``idmn``, an integer, number plate for the object.\n", + "7. ``orgn``, a comment list carefully chosen.\n", + "\n", + "The accessors of the slots are the functions whose name appears after the specifier ``:reader`` in the class definition. A printing method has been associated to the class ``REDUCTION`` and the external representation of an instance is a string like ``[Kn Reduction]``, where ``n`` is the number plate of the ``Kenzo`` object.\n", + "\n", + "### The function ``build-rdct``\n", + "\n", + "To facilitate the construction of instances of the ``REDUCTION`` class, the\n", + "software provides the function ``build-rdct``.\n", + "\n", + "```lisp\n", + "build-rdct :f f :g g :h h :orgn orgn\n", + "```\n", + "\n", + "defined with keyword parameters. The returned value is an instance of the class ``REDUCTION``. \n", + "The keyword arguments are:\n", + "\n", + "- *f*, the object of type ``morphism`` representing the morphism $f$.\n", + "- *g*, the object of type ``morphism`` representing the morphism $g$.\n", + "- *h*, the object of type ``morphism`` representing the morphism $h$.\n", + "- *orgn*, the comment list carefully chosen since the system does not build a new instance of the class if it finds in the list of already built reductions, ``*rdct-list*``, a reduction with the same comment list.\n", + "\n", + "The ``tcc`` slot and the ``bcc`` slot of the instance are taken respectively from the ``sorc`` slot (source slot) and the ``trgt`` slot (target slot) of the morphism $f$. The function ``build-rdc`` controls the validity of the degrees of the morphisms and pushes the new created instance on the list ``*rdct-list*``.\n", + "\n", + "### Useful macros and functions\n", + "\n", + "``(cat-init)`` *[Function]*\n", + "> Clear among others, the list ``*rdct-list*``, list of user created reductions and reset the global counter to 1. See also the description of this function in chapter 1.\n", + "\n", + "``(rdct n)`` *[Function]*\n", + "> Retrieve in the list ``*rdct-list*`` the reduction instance whose identification (as ``Kenzo`` object) is ``n``. If it does not exist, return ``NIL``.\n", + "\n", + "``(bcc rdct &rest args)`` *[Macro]*\n", + "> With only one argument (a reduction *rdct*) this macro selects the bottom chain complex of the reduction. Otherwise, it applies the differential of the bottom chain complex of the reduction *rdc* on the arguments *args*, (either *degree generator* or *cmb*).\n", + "\n", + "``(tcc rdct &rest args)`` *[Macro]*\n", + "> With only one argument (a reduction *rdct*) this macro selects the top chain complex of the reduction. Otherwise, it applies the differential of the top chain complex of the reduction *rdc* on the arguments *args*, (either *degree generator* or *cmb*).\n", + "\n", + "``(f rdct &rest args)`` *[Macro]*\n", + "> With only one argument (a reduction *rdct*) this macro selects the morphism $f$ of the reduction. Otherwise, it applies the morphism $f$ of the reduction *rdc* on the arguments *args*, (either *degree generator* or *cmb*).\n", + "\n", + "``(g rdct &rest args)`` *[Macro]*\n", + "> With only one argument (a reduction *rdct* this macro selects the morphism $g$ of the reduction. Otherwise, it applies the morphism $g$ of the reduction *rdc* on the arguments *args*, (either *degree generator* or *cmb*).\n", + "\n", + "``(h rdct &rest args)`` *[Macro]*\n", + "> With only one argument (a reduction *rdct*) this macro selects the morphism $h$ of the reduction. Otherwise, it applies the morphism $h$ of the reduction *rdc* on the arguments *args*, (either *degree generator* or *cmb*).\n", + "\n", + "``(trivial-rdct chcm)`` *[Function]*\n", + "> Build the trivial reduction involving only the chain complex chcm, as shown in the following diagram,\n", + "$$\n", + "\\begin{align}\n", + " C \\quad & \\quad\\stackrel{Zero} {\\longrightarrow} & {}^s C \\\\\n", + " {\\scriptstyle {Id}} \\downarrow \\uparrow {\\scriptstyle {Id}} & & \\\\\n", + " C \\quad & &\n", + "\\end{align}\n", + "$$\n", + "where the morphism *Zero* is the zero morphism of degree 1 in the chain complex $C$ and *Id* is the identity morphism in that chain complex (see the functions ``zero-mrph`` and ``idnt-mrph`` in the chain complex chapter).\n", + "\n", + "``(cmps brdct trdct)`` *[Method]*\n", + "> Build a new reduction from the two reductions $r1$ and $r2$ (here, respectively *brdct* and *trdct*). This is done by a call to ``build-rdct`` with the following parameters:\n", + "$$\n", + "\\begin{eqnarray*}\n", + "f & = & f_{r1}\\circ f_{r2}, \\\\\n", + "g & = & g_{r2}\\circ g_{r1}, \\\\\n", + "h & = & h_{r2} + g_{r2} \\circ h_{r1} \\circ f_{r2}.\n", + "\\end{eqnarray*}\n", + "$$\n", + "The compositions and additions of morphisms are realized respectively by the methods ``cmps``, ``i-cmps`` and ``add`` (see chapter 1). We recall that the ``tcc`` and the ``bcc`` slots of this new created reduction are respectively the source and target slots of the new morphim $f$.\n", + "\n", + "### Verification functions\n", + "\n", + "The two following functions are very helpful to verify the coherence of the the various mappings involved in a reduction. Let us recall the diagram of a reduction:\n", + "$$\n", + "\\begin{align}\n", + "\\hat{C} \\quad & \\quad\\stackrel{h}{\\longrightarrow} & \\mbox{$^s\\hat{C}$} \\\\\n", + "{\\scriptstyle f} \\downarrow \\uparrow {\\scriptstyle g} & & \\\\\n", + "C \\quad & &\n", + "\\end{align}\n", + "$$\n", + "\n", + "``(pre-check-rdct rdct)`` *[Function]*\n", + "> Assign to the following lisp global variables, the morphism instances computed from the morphisms of the reduction *rdct*, according to the formulas:\n", + "$$\n", + "\\begin{align}\n", + " \\mathtt{*tdd*} & = & d_{\\hat C} \\circ d_{\\hat C},\\\\\n", + " \\mathtt{*bdd*} & = & d_C \\circ d_C , \\\\\n", + " \\mathtt{*id-fg*} & = & f \\circ g - Id_C,\n", + " \\mathtt{*id-gf-dh-hd*} & = & Id_{\\hat C} - g \\circ f - (d_{\\hat C} \\circ h + h \\circ d_{\\hat C}),\\\\\n", + " \\mathtt{*hh*} & = & h \\circ h, \\\\\n", + " \\mathtt{*fh*} & = & f \\circ h, \\\\\n", + " \\mathtt{*hg*} & = & h \\circ g, \\\\\n", + " \\mathtt{*df-fd*} & = & d_C \\circ f - f \\circ d_{\\hat C}, \\\\\n", + " \\mathtt{*dg-gd*} & = & d_{\\hat C} \\circ g - g \\circ d_C.\n", + "\\end{align}\n", + "$$\n", + "In these formulas $d_C$ and $d_{\\hat C}$ are the respective boundary operators of the\n", + "chain complexes $C$ and $\\hat C$. $Id_C$ and $Id_{\\hat C}$ are the identity morphisms\n", + "on the chain complexes $C$ and $\\hat C$ built by the function ``idnt-mrph``\n", + "\n", + "``(check-rdct)`` *[Function]*\n", + "> Map all the morphisms prepared by the function *pre-check-rdct* on chosen combinations.\n", + "This function having no parameters, the user must assign to the two lisp global variables:\n", + "``*tc*`` and ``*bc*``, valid combinations belonging respectively to $\\hat C$ and $C$. The call to this function is simply ``(check-rdct)``. This function knows what morphism to apply\n", + "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" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "CDELTA" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "(defun cdelta (dmns)\n", - " (cat:build-chcm\n", - " :cmpr #'cat:l-cmpr\n", + " (build-chcm\n", + " :cmpr #'l-cmpr\n", " :basis :locally-effective\n", " :bsgn '(0)\n", " :intr-dffr\n", " #'(lambda (degr gmsm)\n", - " (cat:make-cmbn\n", + " (make-cmbn\n", " :degr (1- degr)\n", - " :list (do ((rslt cat:+empty-list+\n", + " :list (do ((rslt +empty-list+\n", " (cons (cons sign\n", " (append\n", " (subseq gmsm 0 nark)\n", @@ -323,59 +242,37 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "MAKE-F" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "(defun make-f (tdmns bdmns)\n", - " (cat:build-mrph\n", + " (build-mrph\n", " :sorc (cdelta tdmns) :trgt (cdelta bdmns) :degr 0\n", " :intr #'(lambda (degr gmsm)\n", " (let ((pos (position-if #'(lambda (vertex) (>= vertex bdmns))\n", " gmsm)))\n", " (if pos\n", " (if (< pos degr)\n", - " (cat:zero-cmbn degr)\n", - " (cat:cmbn degr 1 (nconc (butlast gmsm) (list bdmns))))\n", - " (cat:cmbn degr 1 gmsm))))\n", + " (zero-cmbn degr)\n", + " (cmbn degr 1 (nconc (butlast gmsm) (list bdmns))))\n", + " (cmbn degr 1 gmsm))))\n", " :strt :gnrt\n", " :orgn `(projection delta ,tdmns => delta ,bdmns)))" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "MAKE-G" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "(defun make-g (tdmns bdmns)\n", - " (cat:build-mrph\n", + " (build-mrph\n", " :sorc (cdelta bdmns) :trgt (cdelta tdmns) :degr 0\n", " :intr #'identity\n", " :strt :cmbn\n", @@ -384,61 +281,39 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "MAKE-H" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "(defun make-h (tdmns bdmns)\n", - " (cat:build-mrph\n", + " (build-mrph\n", " :sorc (cdelta tdmns) :trgt (cdelta tdmns) :degr +1\n", " :intr #'(lambda (degr gmsm)\n", " (let ((pos (position-if #'(lambda (vertex) (>= vertex bdmns))\n", " gmsm)))\n", " (if pos\n", " (if (member bdmns gmsm)\n", - " (cat:zero-cmbn (1+ degr))\n", - " (cat:cmbn (1+ degr) (cat:-1-expt-n pos)\n", + " (zero-cmbn (1+ degr))\n", + " (cmbn (1+ degr) (-1-expt-n pos)\n", " (append (subseq gmsm 0 pos) (list bdmns)\n", " (subseq gmsm pos))))\n", - " (cat:zero-cmbn (1+ degr)))))\n", + " (zero-cmbn (1+ degr)))))\n", " :strt :gnrt\n", " :orgn `(homotopy for delta ,tdmns => ,bdmns)))" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "MAKE-RDCT" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "(defun make-rdct (tdmns bdmns)\n", - " (let ((rdct (cat:build-rdct\n", + " (let ((rdct (build-rdct\n", " :f (make-f tdmns bdmns)\n", " :g (make-g tdmns bdmns)\n", " :h (make-h tdmns bdmns)\n", @@ -448,401 +323,123 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "[K8 Reduction K1 => K3]" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:def rdct (make-rdct 6 3))" + "(def rdct (make-rdct 6 3))" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "(REDUCTION DELTA 6 3)" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:orgn rdct)" + "(orgn rdct)" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "---done---" - ] - }, - { - "data": { - "text/plain": [ - "NIL" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:pre-check-rdct rdct)" + "(pre-check-rdct rdct)" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "\n", - "----------------------------------------------------------------------{CMBN 2}\n", - "<1 * (0 1 2)>\n", - "<10 * (1 2 3)>\n", - "<100 * (1 2 4)>\n", - "<1000 * (2 3 4)>\n", - "------------------------------------------------------------------------------\n" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(setf cat:*tc* (cat:cmbn 2 1 '(0 1 2) 10 '(1 2 3) 100 '(1 2 4) 1000 '(2 3 4)))" + "(setf *tc* (cmbn 2 1 '(0 1 2) 10 '(1 2 3) 100 '(1 2 4) 1000 '(2 3 4)))" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "\n", - "----------------------------------------------------------------------{CMBN 3}\n", - "<4 * (0 1 2 3)>\n", - "------------------------------------------------------------------------------\n" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(setf cat:*bc* (cat:cmbn 3 4 '(0 1 2 3)))" + "(setf *bc* (cmbn 3 4 '(0 1 2 3)))" ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "*TC* => \n", - "----------------------------------------------------------------------{CMBN 2}\n", - "<1 * (0 1 2)>\n", - "<10 * (1 2 3)>\n", - "<100 * (1 2 4)>\n", - "<1000 * (2 3 4)>\n", - "------------------------------------------------------------------------------\n", - "\n", - "*BC* => \n", - "----------------------------------------------------------------------{CMBN 3}\n", - "<4 * (0 1 2 3)>\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *TDD* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 0}\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *BDD* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 1}\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *DF-FD* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 1}\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *DG-GD* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 2}\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *ID-FG* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 3}\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 4}\n", - "------------------------------------------------------------------------------\n", - "\n", - "---done---" - ] - }, - { - "data": { - "text/plain": [ - "NIL" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:check-rdct-no-wait)" + "(check-rdct-no-wait)" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "[K35 Reduction K1 => K30]" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:def trdct (make-rdct 6 4))" + "(def trdct (make-rdct 6 4))" ] }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "[K39 Reduction K30 => K3]" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:def brdct (make-rdct 4 3))" + "(def brdct (make-rdct 4 3))" ] }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "[K45 Reduction K1 => K3]" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(setf rdct (cat:cmps brdct trdct))" + "(setf rdct (cmps brdct trdct))" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "---done---" - ] - }, - { - "data": { - "text/plain": [ - "NIL" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:pre-check-rdct rdct)" + "(pre-check-rdct rdct)" ] }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "*TC* => \n", - "----------------------------------------------------------------------{CMBN 2}\n", - "<1 * (0 1 2)>\n", - "<10 * (1 2 3)>\n", - "<100 * (1 2 4)>\n", - "<1000 * (2 3 4)>\n", - "------------------------------------------------------------------------------\n", - "\n", - "*BC* => \n", - "----------------------------------------------------------------------{CMBN 3}\n", - "<4 * (0 1 2 3)>\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *TDD* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 0}\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *BDD* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 1}\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *DF-FD* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 1}\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *DG-GD* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 2}\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *ID-FG* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 3}\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 4}\n", - "------------------------------------------------------------------------------\n", - "\n", - "---done---" - ] - }, - { - "data": { - "text/plain": [ - "NIL" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:check-rdct-no-wait)" + "(check-rdct-no-wait)" ] }, { @@ -855,70 +452,35 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "[K66 Homotopy-Equivalence K30 <= K30 => K30]" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:def hmeq (cat:trivial-hmeq (cdelta 4)))" + "(def hmeq (trivial-hmeq (cdelta 4)))" ] }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "[K74 Homotopy-Equivalence K69 <= K69 => K69]" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(setf hmeq (cat:add hmeq (cat:opps (cat:dffr (cdelta 4)))))" + "(setf hmeq (add hmeq (opps (dffr (cdelta 4)))))" ] }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "\n", - "----------------------------------------------------------------------{CMBN 2}\n", - "------------------------------------------------------------------------------\n" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:gnrt-? (cat:dffr (cat:rbcc hmeq)) 3 '(0 1 2 3))" + "(gnrt-? (dffr (rbcc hmeq)) 3 '(0 1 2 3))" ] }, { @@ -930,55 +492,25 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "\n", - "----------------------------------------------------------------------{CMBN 3}\n", - "<2 * >\n", - "<4 * >\n", - "<6 * >\n", - "<3 * >\n", - "<5 * >\n", - "<7 * >\n", - "------------------------------------------------------------------------------\n" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:def comb-bic (cat:cmbn 3 2 (cat:bcnb 'b1) 4 (cat:bcnb 'b1) 6 (cat:bcnb 'b3)\n", - " 3 (cat:bcnb 'c1) 5 (cat:bcnb 'c1) 7 (cat:bcnb 'd1)))" + "(def comb-bic (cmbn 3 2 (bcnb 'b1) 4 (bcnb 'b1) 6 (bcnb 'b3)\n", + " 3 (bcnb 'c1) 5 (bcnb 'c1) 7 (bcnb 'd1)))" ] }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "((2 . ) (4 . ) (6 . ) (3 . ) (5 . ) (7 . ))" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:cmbn-list comb-bic)" + "(cmbn-list comb-bic)" ] }, { @@ -991,226 +523,91 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "\n", - "----------------------------------------------------------------------{CMBN 3}\n", - "<2 * B1>\n", - "<4 * B2>\n", - "<6 * B3>\n", - "------------------------------------------------------------------------------\n" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:def comb-b (cat:cmbn 3 2 'b1 4 'b2 6 'b3))" + "(def comb-b (cmbn 3 2 'b1 4 'b2 6 'b3))" ] }, { "cell_type": "code", - "execution_count": 29, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "\n", - "----------------------------------------------------------------------{CMBN 4}\n", - "<3 * C1>\n", - "<5 * C2>\n", - "------------------------------------------------------------------------------\n" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:def comb-c (cat:cmbn 4 3 'c1 5 'c2))" + "(def comb-c (cmbn 4 3 'c1 5 'c2))" ] }, { "cell_type": "code", - "execution_count": 30, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "\n", - "----------------------------------------------------------------------{CMBN 3}\n", - "<7 * D1>\n", - "------------------------------------------------------------------------------\n" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:def comb-d (cat:cmbn 3 7 'd1))" + "(def comb-d (cmbn 3 7 'd1))" ] }, { "cell_type": "code", - "execution_count": 31, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "\n", - "----------------------------------------------------------------------{CMBN 3}\n", - "<2 * >\n", - "<4 * >\n", - "<6 * >\n", - "<3 * >\n", - "<5 * >\n", - "<7 * >\n", - "------------------------------------------------------------------------------\n" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:def comb-bic (cat:make-bicn-cmbn comb-b comb-c comb-d))" + "(def comb-bic (make-bicn-cmbn comb-b comb-c comb-d))" ] }, { "cell_type": "code", - "execution_count": 32, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "\n", - "----------------------------------------------------------------------{CMBN 3}\n", - "<2 * B1>\n", - "<4 * B2>\n", - "<6 * B3>\n", - "------------------------------------------------------------------------------\n" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:bicn-cmbn-cmbnb comb-bic)" + "(bicn-cmbn-cmbnb comb-bic)" ] }, { "cell_type": "code", - "execution_count": 33, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "\n", - "----------------------------------------------------------------------{CMBN 4}\n", - "<3 * C1>\n", - "<5 * C2>\n", - "------------------------------------------------------------------------------\n" - ] - }, - "execution_count": 33, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:bicn-cmbn-cmbnc comb-bic)" + "(bicn-cmbn-cmbnc comb-bic)" ] }, { "cell_type": "code", - "execution_count": 34, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "\n", - "----------------------------------------------------------------------{CMBN 3}\n", - "<7 * D1>\n", - "------------------------------------------------------------------------------\n" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:bicn-cmbn-cmbnd comb-bic)" + "(bicn-cmbn-cmbnd comb-bic)" ] }, { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "(\n", - "----------------------------------------------------------------------{CMBN 3}\n", - "<2 * B1>\n", - "<4 * B2>\n", - "<6 * B3>\n", - "------------------------------------------------------------------------------\n", - " \n", - "----------------------------------------------------------------------{CMBN 4}\n", - "<3 * C1>\n", - "<5 * C2>\n", - "------------------------------------------------------------------------------\n", - " \n", - "----------------------------------------------------------------------{CMBN 3}\n", - "<7 * D1>\n", - "------------------------------------------------------------------------------\n", - ")" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "(multiple-value-bind (b c d)\n", - " (cat:dispatch-bicn-cmbn comb-bic)\n", + " (dispatch-bicn-cmbn comb-bic)\n", " (list b c d))" ] }, @@ -1224,64 +621,34 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "---done---" - ] - }, - { - "data": { - "text/plain": [ - "NIL" - ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:cat-init)" + "(cat-init)" ] }, { "cell_type": "code", - "execution_count": 37, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "CDELTA" - ] - }, - "execution_count": 37, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "(defun cdelta (dmns)\n", - " (cat:build-chcm\n", - " :cmpr #'cat:l-cmpr\n", + " (build-chcm\n", + " :cmpr #'l-cmpr\n", " :basis #'(lambda (n)\n", - " (mapcar #'cat:dlop-int-ext (funcall (cat:delta-n-basis dmns) n)))\n", + " (mapcar #'dlop-int-ext (funcall (delta-n-basis dmns) n)))\n", " :bsgn '(0)\n", " :intr-dffr\n", " #'(lambda (degr gmsm)\n", - " (cat:make-cmbn\n", + " (make-cmbn\n", " :degr (1- degr)\n", - " :list (do ((rslt cat:+empty-list+\n", + " :list (do ((rslt +empty-list+\n", " (cons (cons sign\n", " (append\n", " (subseq gmsm 0 nark)\n", @@ -1296,280 +663,134 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "[K1 Chain-Complex]" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:def delta3 (cdelta 3))" + "(def delta3 (cdelta 3))" ] }, { "cell_type": "code", - "execution_count": 39, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "((0) (1) (2) (3))" - ] - }, - "execution_count": 39, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:basis delta3 0)" + "(basis delta3 0)" ] }, { "cell_type": "code", - "execution_count": 40, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "((0 1) (0 2) (1 2) (0 3) (1 3) (2 3))" - ] - }, - "execution_count": 40, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:basis delta3 1)" + "(basis delta3 1)" ] }, { "cell_type": "code", - "execution_count": 41, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "((0 1 2) (0 1 3) (0 2 3) (1 2 3))" - ] - }, - "execution_count": 41, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:basis delta3 2)" + "(basis delta3 2)" ] }, { "cell_type": "code", - "execution_count": 42, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "((0 1 2 3))" - ] - }, - "execution_count": 42, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:basis delta3 3)" + "(basis delta3 3)" ] }, { "cell_type": "code", - "execution_count": 43, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "NIL" - ] - }, - "execution_count": 43, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:basis delta3 4)" + "(basis delta3 4)" ] }, { "cell_type": "code", - "execution_count": 44, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "[K15 Chain-Complex]" - ] - }, - "execution_count": 44, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:def bic (cat:bicone (make-rdct 3 2) (make-rdct 4 2)))" + "(def bic (bicone (make-rdct 3 2) (make-rdct 4 2)))" ] }, { "cell_type": "code", - "execution_count": 45, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "( ...)" - ] - }, - "execution_count": 45, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:basis bic 0)" + "(basis bic 0)" ] }, { "cell_type": "code", - "execution_count": 46, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "( ...)" - ] - }, - "execution_count": 46, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:basis bic 1)" + "(basis bic 1)" ] }, { "cell_type": "code", - "execution_count": 47, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "()" - ] - }, - "execution_count": 47, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:basis bic 4)" + "(basis bic 4)" ] }, { "cell_type": "code", - "execution_count": 48, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "\n", - "----------------------------------------------------------------------{CMBN 1}\n", - "<3 * >\n", - "<-3 * >\n", - "<3 * >\n", - "<12 * >\n", - "<-4 * >\n", - "<4 * >\n", - "<-4 * >\n", - "<5 * >\n", - "<-5 * >\n", - "<5 * >\n", - "------------------------------------------------------------------------------\n" - ] - }, - "execution_count": 48, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:? bic (cat:cmbn 2 3 (cat:bcnb '(0 1 3)) 4 (cat:bcnc '(0 1 2 3)) 5 (cat:bcnd '(0 1 4))))" + "(? bic (cmbn 2 3 (bcnb '(0 1 3)) 4 (bcnc '(0 1 2 3)) 5 (bcnd '(0 1 4))))" ] }, { "cell_type": "code", - "execution_count": 49, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "\n", - "----------------------------------------------------------------------{CMBN 0}\n", - "------------------------------------------------------------------------------\n" - ] - }, - "execution_count": 49, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:? bic (cat:? bic (cat:cmbn 2 3 (cat:bcnb '(0 1 3)) 4 (cat:bcnc '(0 1 2 3)) 5 (cat:bcnd '(0 1 4)))))" + "(? bic (? bic (cmbn 2 3 (bcnb '(0 1 3)) 4 (bcnc '(0 1 2 3)) 5 (bcnd '(0 1 4)))))" ] }, { @@ -1582,694 +803,192 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "---done---" - ] - }, - { - "data": { - "text/plain": [ - "NIL" - ] - }, - "execution_count": 50, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:cat-init)" + "(cat-init)" ] }, { "cell_type": "code", - "execution_count": 51, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "[K1 Chain-Complex]" - ] - }, - "execution_count": 51, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:def c (cat:build-chcm\n", - " :cmpr #'cat:s-cmpr\n", + "(def c (build-chcm\n", + " :cmpr #'s-cmpr\n", " :basis #'(lambda (dmns) (declare (ignore dmns)) '(a))\n", " :bsgn 'a\n", - " :intr-dffr #'cat:zero-intr-dffr\n", + " :intr-dffr #'zero-intr-dffr\n", " :strt :cmbn\n", " :orgn '(c)))" ] }, { "cell_type": "code", - "execution_count": 52, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "[K6 Homotopy-Equivalence K1 <= K1 => K1]" - ] - }, - "execution_count": 52, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:def h1 (cat:trivial-hmeq c))" + "(def h1 (trivial-hmeq c))" ] }, { "cell_type": "code", - "execution_count": 53, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "[K17 Homotopy-Equivalence K1 <= K7 => K1]" - ] - }, - "execution_count": 53, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:def h2 (cat:cmps h1 h1))" + "(def h2 (cmps h1 h1))" ] }, { "cell_type": "code", - "execution_count": 54, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "---done---" - ] - }, - { - "data": { - "text/plain": [ - "NIL" - ] - }, - "execution_count": 54, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:pre-check-rdct (cat:lrdct h2))" + "(pre-check-rdct (lrdct h2))" ] }, { "cell_type": "code", - "execution_count": 55, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "\n", - "----------------------------------------------------------------------{CMBN 3}\n", - "<1 * >\n", - "<10 * >\n", - "<100 * >\n", - "------------------------------------------------------------------------------\n" - ] - }, - "execution_count": 55, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(setf cat:*tc* (cat:cmbn 3 1 (cat:bcnb 'a) 10 (cat:bcnc 'a) 100 (cat:bcnd 'a)))" + "(setf *tc* (cmbn 3 1 (bcnb 'a) 10 (bcnc 'a) 100 (bcnd 'a)))" ] }, { "cell_type": "code", - "execution_count": 56, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "\n", - "----------------------------------------------------------------------{CMBN 3}\n", - "<1 * A>\n", - "------------------------------------------------------------------------------\n" - ] - }, - "execution_count": 56, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(setf cat:*bc* (cat:cmbn 3 1 'a))" + "(setf *bc* (cmbn 3 1 'a))" ] }, { "cell_type": "code", - "execution_count": 57, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "*TC* => \n", - "----------------------------------------------------------------------{CMBN 3}\n", - "<1 * >\n", - "<10 * >\n", - "<100 * >\n", - "------------------------------------------------------------------------------\n", - "\n", - "*BC* => \n", - "----------------------------------------------------------------------{CMBN 3}\n", - "<1 * A>\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *TDD* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 1}\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *BDD* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 1}\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *DF-FD* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 2}\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *DG-GD* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 2}\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *ID-FG* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 3}\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 4}\n", - "------------------------------------------------------------------------------\n", - "\n", - "---done---" - ] - }, - { - "data": { - "text/plain": [ - "NIL" - ] - }, - "execution_count": 57, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:check-rdct-no-wait)" + "(check-rdct-no-wait)" ] }, { "cell_type": "code", - "execution_count": 58, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "---done---" - ] - }, - { - "data": { - "text/plain": [ - "NIL" - ] - }, - "execution_count": 58, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:pre-check-rdct (cat:rrdct h2))" + "(pre-check-rdct (rrdct h2))" ] }, { "cell_type": "code", - "execution_count": 59, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "*TC* => \n", - "----------------------------------------------------------------------{CMBN 3}\n", - "<1 * >\n", - "<10 * >\n", - "<100 * >\n", - "------------------------------------------------------------------------------\n", - "\n", - "*BC* => \n", - "----------------------------------------------------------------------{CMBN 3}\n", - "<1 * A>\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *TDD* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 1}\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *BDD* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 1}\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *DF-FD* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 2}\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *DG-GD* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 2}\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *ID-FG* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 3}\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 4}\n", - "------------------------------------------------------------------------------\n", - "\n", - "---done---" - ] - }, - { - "data": { - "text/plain": [ - "NIL" - ] - }, - "execution_count": 59, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:check-rdct-no-wait)" + "(check-rdct-no-wait)" ] }, { "cell_type": "code", - "execution_count": 60, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "[K65 Homotopy-Equivalence K1 <= K55 => K1]" - ] - }, - "execution_count": 60, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:def h3 (cat:cmps h2 h2))" + "(def h3 (cmps h2 h2))" ] }, { "cell_type": "code", - "execution_count": 61, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "\n", - "----------------------------------------------------------------------{CMBN 3}\n", - "<1 * >>\n", - "<10 * >>\n", - "<100 * >>\n", - "<1000 * >\n", - "<10000 * >>\n", - "<5234 * >>\n", - "<223 * >>\n", - "------------------------------------------------------------------------------\n" - ] - }, - "execution_count": 61, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(setf cat:*tc* (cat:cmbn 3 1 (cat:bcnb (cat:bcnb 'a)) 10 (cat:bcnb (cat:bcnc 'a)) 100 (cat:bcnb (cat:bcnd 'a))\n", - " 1000 (cat:bcnc 'a)\n", - " 10000 (cat:bcnd (cat:bcnb 'a)) 5234 (cat:bcnd (cat:bcnc 'a))\n", - " 223 (cat:bcnd (cat:bcnd 'a))))" + "(setf *tc* (cmbn 3 1 (bcnb (bcnb 'a)) 10 (bcnb (bcnc 'a)) 100 (bcnb (bcnd 'a))\n", + " 1000 (bcnc 'a) 10000 (bcnd (bcnb 'a)) 5234 (bcnd (bcnc 'a))\n", + " 223 (bcnd (bcnd 'a))))" ] }, { "cell_type": "code", - "execution_count": 62, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "---done---" - ] - }, - { - "data": { - "text/plain": [ - "NIL" - ] - }, - "execution_count": 62, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:pre-check-rdct (cat:lrdct h3))" + "(pre-check-rdct (lrdct h3))" ] }, { "cell_type": "code", - "execution_count": 63, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "*TC* => \n", - "----------------------------------------------------------------------{CMBN 3}\n", - "<1 * >>\n", - "<10 * >>\n", - "<100 * >>\n", - "<1000 * >\n", - "<10000 * >>\n", - "<5234 * >>\n", - "<223 * >>\n", - "------------------------------------------------------------------------------\n", - "\n", - "*BC* => \n", - "----------------------------------------------------------------------{CMBN 3}\n", - "<1 * A>\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *TDD* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 1}\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *BDD* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 1}\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *DF-FD* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 2}\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *DG-GD* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 2}\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *ID-FG* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 3}\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 4}\n", - "------------------------------------------------------------------------------\n", - "\n", - "---done---" - ] - }, - { - "data": { - "text/plain": [ - "NIL" - ] - }, - "execution_count": 63, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:check-rdct-no-wait)" + "(check-rdct-no-wait)" ] }, { "cell_type": "code", - "execution_count": 64, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "---done---" - ] - }, - { - "data": { - "text/plain": [ - "NIL" - ] - }, - "execution_count": 64, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:pre-check-rdct (cat:rrdct h3))" + "(pre-check-rdct (rrdct h3))" ] }, { "cell_type": "code", - "execution_count": 65, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "*TC* => \n", - "----------------------------------------------------------------------{CMBN 3}\n", - "<1 * >>\n", - "<10 * >>\n", - "<100 * >>\n", - "<1000 * >\n", - "<10000 * >>\n", - "<5234 * >>\n", - "<223 * >>\n", - "------------------------------------------------------------------------------\n", - "\n", - "*BC* => \n", - "----------------------------------------------------------------------{CMBN 3}\n", - "<1 * A>\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *TDD* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 1}\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *BDD* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 1}\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *DF-FD* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 2}\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *DG-GD* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 2}\n", - "------------------------------------------------------------------------------\n", - "\n", - "Checking *ID-FG* = 0\n", - "Result: \n", - "----------------------------------------------------------------------{CMBN 3}\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 4}\n", - "------------------------------------------------------------------------------\n", - "\n", - "---done---" - ] - }, - { - "data": { - "text/plain": [ - "NIL" - ] - }, - "execution_count": 65, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "(cat:check-rdct-no-wait)" + "(check-rdct-no-wait)" ] } ], "metadata": { "kernelspec": { - "display_name": "CCL Lisp", + "display_name": "SBCL Lisp", "language": "lisp", "name": "lisp" },