2287 lines
57 KiB
Plaintext
2287 lines
57 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"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"
|
|
}
|
|
],
|
|
"source": [
|
|
"(ql:quickload :kenzo)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"---done---"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"NIL"
|
|
]
|
|
},
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"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)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"#### Example"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"CDELTA"
|
|
]
|
|
},
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(defun cdelta (dmns)\n",
|
|
" (cat:build-chcm\n",
|
|
" :cmpr #'cat:l-cmpr\n",
|
|
" :basis :locally-effective\n",
|
|
" :bsgn '(0)\n",
|
|
" :intr-dffr\n",
|
|
" #'(lambda (degr gmsm)\n",
|
|
" (cat:make-cmbn\n",
|
|
" :degr (1- degr)\n",
|
|
" :list (do ((rslt cat:+empty-list+\n",
|
|
" (cons (cons sign\n",
|
|
" (append\n",
|
|
" (subseq gmsm 0 nark)\n",
|
|
" (subseq gmsm (1+ nark))))\n",
|
|
" rslt))\n",
|
|
" (sign 1 (- sign))\n",
|
|
" (nark 0 (1+ nark)))\n",
|
|
" ((> nark degr) rslt))))\n",
|
|
" :strt :gnrt\n",
|
|
" :orgn `(locally effective version of C_* delta ,dmns)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"MAKE-F"
|
|
]
|
|
},
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(defun make-f (tdmns bdmns)\n",
|
|
" (cat: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",
|
|
" :strt :gnrt\n",
|
|
" :orgn `(projection delta ,tdmns => delta ,bdmns)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"MAKE-G"
|
|
]
|
|
},
|
|
"execution_count": 9,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(defun make-g (tdmns bdmns)\n",
|
|
" (cat:build-mrph\n",
|
|
" :sorc (cdelta bdmns) :trgt (cdelta tdmns) :degr 0\n",
|
|
" :intr #'identity\n",
|
|
" :strt :cmbn\n",
|
|
" :orgn `(injection delta ,bdmns => delta ,tdmns)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"MAKE-H"
|
|
]
|
|
},
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(defun make-h (tdmns bdmns)\n",
|
|
" (cat: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",
|
|
" (append (subseq gmsm 0 pos) (list bdmns)\n",
|
|
" (subseq gmsm pos))))\n",
|
|
" (cat:zero-cmbn (1+ degr)))))\n",
|
|
" :strt :gnrt\n",
|
|
" :orgn `(homotopy for delta ,tdmns => ,bdmns)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"MAKE-RDCT"
|
|
]
|
|
},
|
|
"execution_count": 11,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(defun make-rdct (tdmns bdmns)\n",
|
|
" (let ((rdct (cat:build-rdct\n",
|
|
" :f (make-f tdmns bdmns)\n",
|
|
" :g (make-g tdmns bdmns)\n",
|
|
" :h (make-h tdmns bdmns)\n",
|
|
" :orgn `(reduction delta ,tdmns ,bdmns))))\n",
|
|
" rdct))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K8 Reduction K1 => K3]"
|
|
]
|
|
},
|
|
"execution_count": 12,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:def rdct (make-rdct 6 3))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(REDUCTION DELTA 6 3)"
|
|
]
|
|
},
|
|
"execution_count": 13,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:orgn rdct)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 14,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"---done---"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"NIL"
|
|
]
|
|
},
|
|
"execution_count": 14,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:pre-check-rdct rdct)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 15,
|
|
"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"
|
|
}
|
|
],
|
|
"source": [
|
|
"(setf cat:*tc* (cat:cmbn 2 1 '(0 1 2) 10 '(1 2 3) 100 '(1 2 4) 1000 '(2 3 4)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"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"
|
|
}
|
|
],
|
|
"source": [
|
|
"(setf cat:*bc* (cat:cmbn 3 4 '(0 1 2 3)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 17,
|
|
"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"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:check-rdct-no-wait)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 18,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K35 Reduction K1 => K30]"
|
|
]
|
|
},
|
|
"execution_count": 18,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:def trdct (make-rdct 6 4))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 19,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K39 Reduction K30 => K3]"
|
|
]
|
|
},
|
|
"execution_count": 19,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:def brdct (make-rdct 4 3))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 20,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K45 Reduction K1 => K3]"
|
|
]
|
|
},
|
|
"execution_count": 20,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(setf rdct (cat:cmps brdct trdct))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 21,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"---done---"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"NIL"
|
|
]
|
|
},
|
|
"execution_count": 21,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:pre-check-rdct rdct)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 22,
|
|
"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"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:check-rdct-no-wait)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"### 2.4.1 Useful functions related to the perturbation lemma\n",
|
|
"#### Example"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 23,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K66 Homotopy-Equivalence K30 <= K30 => K30]"
|
|
]
|
|
},
|
|
"execution_count": 23,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:def hmeq (cat:trivial-hmeq (cdelta 4)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 24,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K74 Homotopy-Equivalence K69 <= K69 => K69]"
|
|
]
|
|
},
|
|
"execution_count": 24,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(setf hmeq (cat:add hmeq (cat:opps (cat:dffr (cdelta 4)))))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 25,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 2}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 25,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:gnrt-? (cat:dffr (cat:rbcc hmeq)) 3 '(0 1 2 3))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"### 2.5.1 Representation of a combination in a bicone"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 26,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<2 * <BcnB B1>>\n",
|
|
"<4 * <BcnB B1>>\n",
|
|
"<6 * <BcnB B3>>\n",
|
|
"<3 * <BcnB C1>>\n",
|
|
"<5 * <BcnB C1>>\n",
|
|
"<7 * <BcnB D1>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 26,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"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)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 27,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"((2 . <BcnB B1>) (4 . <BcnB B1>) (6 . <BcnB B3>) (3 . <BcnB C1>) (5 . <BcnB C1>) (7 . <BcnB D1>))"
|
|
]
|
|
},
|
|
"execution_count": 27,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:cmbn-list comb-bic)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"### 2.5.2 Useful functions and macros for bicones\n",
|
|
"#### Examples"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 28,
|
|
"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"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:def comb-b (cat:cmbn 3 2 'b1 4 'b2 6 'b3))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 29,
|
|
"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"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:def comb-c (cat:cmbn 4 3 'c1 5 'c2))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 30,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<7 * D1>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 30,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:def comb-d (cat:cmbn 3 7 'd1))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 31,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<2 * <BcnB B1>>\n",
|
|
"<4 * <BcnB B2>>\n",
|
|
"<6 * <BcnB B3>>\n",
|
|
"<3 * <BcnC C1>>\n",
|
|
"<5 * <BcnC C2>>\n",
|
|
"<7 * <BcnD D1>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 31,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:def comb-bic (cat:make-bicn-cmbn comb-b comb-c comb-d))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 32,
|
|
"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"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:bicn-cmbn-cmbnb comb-bic)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 33,
|
|
"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"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:bicn-cmbn-cmbnc comb-bic)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 34,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<7 * D1>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 34,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:bicn-cmbn-cmbnd comb-bic)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 35,
|
|
"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"
|
|
}
|
|
],
|
|
"source": [
|
|
"(multiple-value-bind (b c d)\n",
|
|
" (cat:dispatch-bicn-cmbn comb-bic)\n",
|
|
" (list b c d))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 2.6 Construction of a bicone from 2 reductions\n",
|
|
"#### Example"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 36,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"---done---"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"NIL"
|
|
]
|
|
},
|
|
"execution_count": 36,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:cat-init)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 37,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"CDELTA"
|
|
]
|
|
},
|
|
"execution_count": 37,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(defun cdelta (dmns)\n",
|
|
" (cat:build-chcm\n",
|
|
" :cmpr #'cat:l-cmpr\n",
|
|
" :basis #'(lambda (n)\n",
|
|
" (mapcar #'cat:dlop-int-ext (funcall (cat:delta-n-basis dmns) n)))\n",
|
|
" :bsgn '(0)\n",
|
|
" :intr-dffr\n",
|
|
" #'(lambda (degr gmsm)\n",
|
|
" (cat:make-cmbn\n",
|
|
" :degr (1- degr)\n",
|
|
" :list (do ((rslt cat:+empty-list+\n",
|
|
" (cons (cons sign\n",
|
|
" (append\n",
|
|
" (subseq gmsm 0 nark)\n",
|
|
" (subseq gmsm (1+ nark))))\n",
|
|
" rslt))\n",
|
|
" (sign 1 (- sign))\n",
|
|
" (nark 0 (1+ nark)))\n",
|
|
" ((> nark degr) rslt))))\n",
|
|
" :strt :gnrt\n",
|
|
" :orgn `(Effective version of C_* delta ,dmns)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 38,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K1 Chain-Complex]"
|
|
]
|
|
},
|
|
"execution_count": 38,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:def delta3 (cdelta 3))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 39,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"((0) (1) (2) (3))"
|
|
]
|
|
},
|
|
"execution_count": 39,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:basis delta3 0)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 40,
|
|
"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"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:basis delta3 1)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 41,
|
|
"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"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:basis delta3 2)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 42,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"((0 1 2 3))"
|
|
]
|
|
},
|
|
"execution_count": 42,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:basis delta3 3)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 43,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"NIL"
|
|
]
|
|
},
|
|
"execution_count": 43,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:basis delta3 4)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 44,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K15 Chain-Complex]"
|
|
]
|
|
},
|
|
"execution_count": 44,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:def bic (cat:bicone (make-rdct 3 2) (make-rdct 4 2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 45,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(<BcnB (0)> <BcnB (1)> <BcnB (2)> <BcnB (3)> <BcnC (0 1)> <BcnC (0 2)> <BcnC (1 2)> <BcnD (0)> <BcnD (1)> <BcnD (2)> ...)"
|
|
]
|
|
},
|
|
"execution_count": 45,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:basis bic 0)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 46,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(<BcnB (0 1)> <BcnB (0 2)> <BcnB (1 2)> <BcnB (0 3)> <BcnB (1 3)> <BcnB (2 3)> <BcnC (0 1 2)> <BcnD (0 1)> <BcnD (0 2)> <BcnD (1 2)> ...)"
|
|
]
|
|
},
|
|
"execution_count": 46,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:basis bic 1)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 47,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(<BcnD (0 1 2 3 4)>)"
|
|
]
|
|
},
|
|
"execution_count": 47,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:basis bic 4)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 48,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 1}\n",
|
|
"<3 * <BcnB (0 1)>>\n",
|
|
"<-3 * <BcnB (0 3)>>\n",
|
|
"<3 * <BcnB (1 3)>>\n",
|
|
"<12 * <BcnC (0 1 2)>>\n",
|
|
"<-4 * <BcnC (0 1 3)>>\n",
|
|
"<4 * <BcnC (0 2 3)>>\n",
|
|
"<-4 * <BcnC (1 2 3)>>\n",
|
|
"<5 * <BcnD (0 1)>>\n",
|
|
"<-5 * <BcnD (0 4)>>\n",
|
|
"<5 * <BcnD (1 4)>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 48,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"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))))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 49,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 0}\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 49,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"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)))))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 2.7 Composition of homotopy equivalences\n",
|
|
"#### Example"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 50,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"---done---"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"NIL"
|
|
]
|
|
},
|
|
"execution_count": 50,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:cat-init)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 51,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K1 Chain-Complex]"
|
|
]
|
|
},
|
|
"execution_count": 51,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:def c (cat:build-chcm\n",
|
|
" :cmpr #'cat:s-cmpr\n",
|
|
" :basis #'(lambda (dmns) (declare (ignore dmns)) '(a))\n",
|
|
" :bsgn 'a\n",
|
|
" :intr-dffr #'cat:zero-intr-dffr\n",
|
|
" :strt :cmbn\n",
|
|
" :orgn '(c)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 52,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K6 Homotopy-Equivalence K1 <= K1 => K1]"
|
|
]
|
|
},
|
|
"execution_count": 52,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:def h1 (cat:trivial-hmeq c))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 53,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K17 Homotopy-Equivalence K1 <= K7 => K1]"
|
|
]
|
|
},
|
|
"execution_count": 53,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:def h2 (cat:cmps h1 h1))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 54,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"---done---"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"NIL"
|
|
]
|
|
},
|
|
"execution_count": 54,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:pre-check-rdct (cat:lrdct h2))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 55,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<1 * <BcnB A>>\n",
|
|
"<10 * <BcnC A>>\n",
|
|
"<100 * <BcnD A>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 55,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(setf cat:*tc* (cat:cmbn 3 1 (cat:bcnb 'a) 10 (cat:bcnc 'a) 100 (cat:bcnd 'a)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 56,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<1 * A>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 56,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(setf cat:*bc* (cat:cmbn 3 1 'a))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 57,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"*TC* => \n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<1 * <BcnB A>>\n",
|
|
"<10 * <BcnC A>>\n",
|
|
"<100 * <BcnD A>>\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"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:check-rdct-no-wait)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 58,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"---done---"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"NIL"
|
|
]
|
|
},
|
|
"execution_count": 58,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:pre-check-rdct (cat:rrdct h2))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 59,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"*TC* => \n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<1 * <BcnB A>>\n",
|
|
"<10 * <BcnC A>>\n",
|
|
"<100 * <BcnD A>>\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"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:check-rdct-no-wait)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 60,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[K65 Homotopy-Equivalence K1 <= K55 => K1]"
|
|
]
|
|
},
|
|
"execution_count": 60,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:def h3 (cat:cmps h2 h2))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 61,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"\n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<1 * <BcnB <BcnB A>>>\n",
|
|
"<10 * <BcnB <BcnC A>>>\n",
|
|
"<100 * <BcnB <BcnD A>>>\n",
|
|
"<1000 * <BcnC A>>\n",
|
|
"<10000 * <BcnD <BcnB A>>>\n",
|
|
"<5234 * <BcnD <BcnC A>>>\n",
|
|
"<223 * <BcnD <BcnD A>>>\n",
|
|
"------------------------------------------------------------------------------\n"
|
|
]
|
|
},
|
|
"execution_count": 61,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"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))))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 62,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"---done---"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"NIL"
|
|
]
|
|
},
|
|
"execution_count": 62,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:pre-check-rdct (cat:lrdct h3))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 63,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"*TC* => \n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<1 * <BcnB <BcnB A>>>\n",
|
|
"<10 * <BcnB <BcnC A>>>\n",
|
|
"<100 * <BcnB <BcnD A>>>\n",
|
|
"<1000 * <BcnC A>>\n",
|
|
"<10000 * <BcnD <BcnB A>>>\n",
|
|
"<5234 * <BcnD <BcnC A>>>\n",
|
|
"<223 * <BcnD <BcnD A>>>\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"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:check-rdct-no-wait)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 64,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"---done---"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"NIL"
|
|
]
|
|
},
|
|
"execution_count": 64,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:pre-check-rdct (cat:rrdct h3))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 65,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"*TC* => \n",
|
|
"----------------------------------------------------------------------{CMBN 3}\n",
|
|
"<1 * <BcnB <BcnB A>>>\n",
|
|
"<10 * <BcnB <BcnC A>>>\n",
|
|
"<100 * <BcnB <BcnD A>>>\n",
|
|
"<1000 * <BcnC A>>\n",
|
|
"<10000 * <BcnD <BcnB A>>>\n",
|
|
"<5234 * <BcnD <BcnC A>>>\n",
|
|
"<223 * <BcnD <BcnD A>>>\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"
|
|
}
|
|
],
|
|
"source": [
|
|
"(cat:check-rdct-no-wait)"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "CCL 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": 0
|
|
}
|