Added Francis' changes.

This commit is contained in:
gheber 2016-04-05 19:01:50 -05:00
parent e85efa276d
commit 1b2791dc7c

View File

@ -29,7 +29,7 @@
"\n",
"### The function `build-algb`\n",
"\n",
"To facilitate the construction of instances of the `ALGEBRA` class, the software **Kenzo** provides the function `build-algb`:\n",
"To facilitate the construction of instances of the `ALGEBRA` class, the program **Kenzo** provides the function `build-algb`:\n",
"\n",
"```commonlisp\n",
"build-algb :cmpr cmpr :basis basis :bsgn bsgn :intr-dffr intr-dffr\n",
@ -46,12 +46,10 @@
"- *intr-dffr*, the differential lisp function for the chain complex.\n",
"- *dffr-strt*, the strategy (`:gnrt` or `:cmbn`) for the differential.\n",
"- *intr-aprd*, the lisp function for the product of the algebra.\n",
"- *aprd-strt*, the strategy (`:gnrt` or `:cmbn`) for the coproduct.\n",
"- *aprd-strt*, the strategy (`:gnrt` or `:cmbn`) for the product.\n",
"- *orgn*, an adequate comment list.\n",
"\n",
"The function `build-algb` calls the function `build-chcm` and with the help of the function `build-mrph` builds the product morphism of degree 0 to settle the\n",
"slot `aprd` of the instance. According to the definition, the source slot of the product morphism is the tensor product of this chain complex with itself and the target slot is the underlying chain complex. An identification number $n$ (slot `idnm`) is assigned to this Kenzo object and the `ALGEBRA` instance is pushed onto the list `*algb-list*`. \n",
"The associated printing method prints a string like `[K`*n* `Algebra]`.\n",
"The function `build-algb` calls the function `build-chcm` and with the help of the function `build-mrph` builds the product morphism of degree 0 to settle the slot `aprd` of the instance. According to the definition, the source slot of the product morphism is the tensor product of this chain complex with itself and the target slot is the underlying chain complex. An identification number $n$ (slot `idnm`) is assigned to this Kenzo object and the `ALGEBRA` instance is pushed onto the list `*algb-list*`. The associated printing method prints a string like `[K`*n* `Algebra]`.\n",
"\n",
"### Miscellaneous functions and macros for algebras\n",
"\n",
@ -68,7 +66,7 @@
"or on a pair *degree, tensor-product* (`(aprd` *algb degr tensor-product*`)`).\n",
"\n",
"`change-chcm-to-algb` *chcm* `:intr-aprd` *intr-aprd* `:aprd-strt` *aprd-strt* `:orgn` *orgn* *[Function]*\n",
"> Build an algebra instance from the already created chain complex *chcm*. The user must give via key parameters a lisp function for the product, its strategy and a comment list.\n",
"> Build an algebra instance from the already created chain complex *chcm*. The user must give via key arguments a lisp function for the product, its strategy and a comment list.\n",
"\n",
"## Hopf Algebra\n",
"\n",
@ -79,13 +77,12 @@
" ())\n",
"```\n",
"\n",
"So, this class (multi-) inherits the slots of the `COALGEBRA` and `ALGEBRA` classes.\n",
"The associated printing method prints a string like `[K`*n* `Hopf-Algebra]`, and the function `hopf` may be used to retrieve the Hopf instance, in the list `*hopf-list*`.\n",
"So, this class (multi-) inherits the slots of the `COALGEBRA` and `ALGEBRA` classes. The associated printing method prints a string like `[K`*n* `Hopf-Algebra]`, and the function `hopf` may be used to retrieve the Hopf instance, in the list `*hopf-list*`. As usual, it is the responsability of the user to be sure the standard coherence properties between product, coproduct, differential and base generator are satisfied.\n",
"\n",
"### Example of algebra\n",
"\n",
"We shall see later important examples of algebras. Let us content ourself for the moment\n",
"to define the trivial algebra on a given chain complex *having only one generator in degree* 0}. If this chain complex *chcm* already exists, we use simply the function `change-chcm-to-algb` and we have to provide for the keyword `:intr-aprd`, a lisp function for the product morphism. We recall that the argument of the product in the algebra is a tensor product.\n",
"to define the trivial algebra on a given chain complex *having only one generator in degree* 0. If this chain complex *chcm* already exists, we use simply the function `change-chcm-to-algb` and we have to provide for the keyword `:intr-aprd`, a lisp function for the product morphism. We recall that the argument of the product in the algebra is a tensor product.\n",
"This function must obey the rule of the multiplication by the unit and otherwise will return a null combination of degree the sum of the two degrees in the tensor product."
]
},
@ -142,7 +139,7 @@
"output_type": "stream",
"text": [
"SIMPLE-STYLE-WARNING: \n",
" #<SB-INT:SIMPLE-STYLE-WARNING \"undefined ~(~A~): ~S\" {100530D143}>\n"
" #<SB-INT:SIMPLE-STYLE-WARNING \"undefined ~(~A~): ~S\" {10053B64C3}>\n"
]
},
{
@ -237,7 +234,7 @@
"text": [
"\n",
"The object is a STANDARD-OBJECT of type CAT::ALGEBRA.\n",
"0. CMPR: #<FUNCTION (LAMBDA (GSM1 GSM2) :IN \"/root/cl-jupyter-master/cl-jupyter.lisp\") {100521C55B}>\n",
"0. CMPR: #<FUNCTION (LAMBDA (GSM1 GSM2) :IN \"/root/cl-jupyter-master/cl-jupyter.lisp\") {10052CC88B}>\n",
"1. BASIS: :LOCALLY-EFFECTIVE\n",
"2. BSGN: (0)\n",
"3. DFFR: [K2 Morphism (degree -1): K1 -> K1]\n",
@ -269,6 +266,8 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Note the simplicial structure has been lost: the `face` component is no longer present in the object. We will see later the CLASS `simplicial-group` where the group structure automatically induces an algebra structure: the class `simplicial-group` is a subclass of the classes `simplicial-set` and `algebra`.\n",
"\n",
"Let us test now the product in this trivial algebra:"
]
},
@ -352,12 +351,9 @@
"source": [
"## The Bar construction\n",
"\n",
"Let $\\cal A$ be an associative algebra, assumed connected and ${\\cal A}_0 \\simeq \\mathbb{Z}$. \n",
"Furthermore let us suppose that ${\\cal A}$ is a free $\\mathbb{Z}$-module. Then it is possible \n",
"to define a chain complex, $Bar^{\\cal A}(\\mathbb{Z}, \\mathbb{Z})$ - simply denoted here by $Bar({\\cal A})$ - \n",
"whose $n$-th component is the free $\\mathbb{Z}$-module generated by the \"bars\":\n",
"\n",
"Let $\\cal A$ be an associative algebra, assumed connected, that is, ${\\cal A}_0 \\simeq \\mathbb{Z}$. Furthermore let us suppose that ${\\cal A}$ is a free $\\mathbb{Z}$-module, more precisely, for every $i \\geq 0$, a \"distinguished\" basis is chosen for $\\mathcal{A}_i$, the elements of which will be called the (distinguished) *generators* of $\\mathcal{A}_i$. Then it is possible to define a chain complex, $Bar^{\\cal A}(\\mathbb{Z}, \\mathbb{Z})$ - simply denoted here by $Bar({\\cal A})$ - whose $n$-th component is the free $\\mathbb{Z}$-module generated by the \"bars\":\n",
"$$ [Bar({\\cal A})]_n = \\{ [g_1 \\mid g_2 \\mid \\ldots \\mid g_k] \\}, \\quad \\sum_{j=1}^{k} [deg(g_j)+1] =n. $$\n",
"where the $g_i$'s are distinguished generators of arbitrary *positive* degree.\n",
"\n",
"The object denoted $[g_1 \\mid g_2 \\mid \\ldots \\mid g_k]$ \n",
"with $\\sum_{j=1}^{k} [deg(g_j)+1] =n$, is traditionally called a *bar* and is in fact, an element of the $n$-th iterated suspension of ${\\cal A}^{\\otimes n}$. The integer $n$ is the *total degree*. The structure of the bar of the algebra ${\\cal A}$ is recalled in the following figure, where $\\bar{\\cal A}$ is ${\\cal A}$ without its component of degree 0. In the vertical sense, we have the *tensorial degree*, whereas in the horizontal one, we have the *simplicial degree*. The *total degree* $n$ is the sum of both degrees.\n",
@ -378,12 +374,11 @@
"\n",
"### Representation of a bar object\n",
"\n",
"An elementary bar object - not to be confused with the chain complex $Bar({\\cal A})$ - is represented in `Kenzo` by a lisp object of the form:\n",
"An elementary bar object - not to be confused with the chain complex $Bar({\\cal A})$ - is represented in `Kenzo` by a lisp object of the structure class `ABAR`:\n",
"\n",
"`(:ABAR` ($i_1\\, . \\, a_1$) \\ldots ($i_k\\, . \\, a_k$)`)`\n",
"`(:ABAR :LIST` (($i_1\\, . \\, a_1$) $\\ldots$ ($i_k\\, . \\, a_k$))`)`\n",
"\n",
"where the $i_j$ are the degrees *in the bar chain complex* of the generators $a_j$.\n",
"In the original algebra $\\cal A$, the generators $a_j$ had the degree $i_j-1$. The corresponding type is `ABAR`. The function building such an object is also called `abar`\n",
"where the $i_j$ are the degrees *in the bar chain complex* of the generators $a_j$. In the original algebra $\\cal A$, the generators $a_j$ had the degree $i_j-1$. The corresponding type is `ABAR`. The function building such an object is also called `abar`\n",
"\n",
"`abar` *degr1 gnr1 degr2 gnr2 ... degrk gnrk* *[Function]*\n",
"> Construct an elementary bar object, i.e. a \"suspended tensorial product\" of degree $\\sum degr_i$. The sequence of pairs $\\lbrace degr_i,\\, gnr_i \\rbrace$ has an undefinite length and may be void. In this case, the bar is the null bar object, also located in the system through the constant `+null-abar+`. The function `abar` accepts also as unique argument a list of the form `(`*degr1 gnr1 degr2 gnr2 ... degrk gnrk*`)`.\n",
@ -488,7 +483,7 @@
"\\end{aligned}\n",
"$$\n",
"\n",
"- A chain complex called `vertical-bar` is defined with the *vertical differential* $d_v$. In this case, only the underlying chain complex structure is used.\n",
"- A chain complex called `vertical-bar` is defined with the *vertical differential* $d_v$. In this case, only the underlying chain complex structure of the $\\mathcal{A}i$'s is used.\n",
"- A horizontal differential $d_h$ is defined. This uses the product structure.\n",
"- The final chain complex `bar` is created with differential $d_v+d_h$.\n",
"\n",
@ -507,12 +502,12 @@
"$$d_v [a_1 \\mid \\cdots \\mid a_n]=\n",
"-\\sum_{i=1}^n{(-1)^{\\sum_{j=1}^{i-1}{\\mid a_j \\mid}}}\n",
" {[a_1 \\mid \\cdots \\mid a_{i-1} \\mid {\\bf da_i} \\mid a_{i+1} \\mid \\cdots \\mid a_n]},$$\n",
"where $da_i$ is the differential of the generator $a_i$ in the original chain complex (function *dffr*) and $\\mid a_i \\mid$ is the degree of the generator $a_i$ *in the bar chain complex*.\n",
"where $da_i$ is the differential of the generator $a_i$ in the original chain complex (function *dffr*) and $\\mid a_i \\mid$ is in the exponent of $(-1)$ the degree of the generator $a_i$ *in the bar chain complex*.\n",
"In general, the differential $da_i$ is a sum of objects. So, applying the distributive law, the right member is a sum of bar objects, represented by a combination.\n",
"\n",
"`vrtc-bar` *chcm* *[Method]*\n",
"> Build the vertical bar chain complex from the underlying chain complex *chcm*. This is simply done by the call to `build-chcm`:\n",
"``lisp\n",
"```commonlisp\n",
" (build-chcm\n",
" :cmpr (bar-cmpr cmpr)\n",
" :basis (bar-basis basis)\n",
@ -520,7 +515,7 @@
" :intr-dffr (bar-intr-vrtc-dffr dffr)\n",
" :strt :gnrt\n",
" :orgn `(vrtc-bar ,chcm))\n",
"``\n",
"```\n",
"where, *cmpr*, *basis* and *dffr* are extracted from the chain complex *chcm*. Note that the base generator is the null bar object.\n",
"\n",
"#### Examples\n",
@ -538,7 +533,7 @@
{
"data": {
"text/plain": [
"#<CLOSURE (FLET CAT::RSLT :IN BAR-CMPR) {1005AE1E4B}>"
"#<CLOSURE (FLET CAT::RSLT :IN BAR-CMPR) {1005BA97FB}>"
]
},
"execution_count": 12,
@ -582,7 +577,7 @@
{
"data": {
"text/plain": [
":GREATER"
":LESS"
]
},
"execution_count": 14,
@ -591,7 +586,7 @@
}
],
"source": [
"(funcall cmpr-for-bar (abar 3 'a 7 'q) (abar))"
"(funcall cmpr-for-bar (abar 3 'a 7 'q) (abar 4 'b 2 'p 4 'q))"
]
},
{
@ -633,7 +628,7 @@
{
"data": {
"text/plain": [
"#<FUNCTION (LAMBDA (DEGR) :IN \"/root/cl-jupyter-master/cl-jupyter.lisp\") {1005C9C5CB}>"
"#<FUNCTION (LAMBDA (DEGR) :IN \"/root/cl-jupyter-master/cl-jupyter.lisp\") {1005D6681B}>"
]
},
"execution_count": 16,
@ -685,7 +680,7 @@
{
"data": {
"text/plain": [
"#<CLOSURE (FLET CAT::RSLT :IN BAR-BASIS) {1005D5F11B}>"
"#<CLOSURE (FLET CAT::RSLT :IN BAR-BASIS) {1005E2835B}>"
]
},
"execution_count": 18,
@ -834,14 +829,13 @@
"$$d_h [a_1 \\mid \\cdots \\mid a_k] = \\sum_{i=2}^n{(-1)^{\\sum_{j=1}^{i-1}{\\mid a_j \\mid}}}\n",
" [a_1 \\mid \\cdots \\mid a_{i-2} \\mid {\\bf a_{i-1}a_i} \\mid a_{i+1} \\mid \\cdots \\mid a_k]$$\n",
"\n",
"where the product in the algebra is noted simply by the concatenation and $\\mid a_i \\mid$\n",
"is the degree of $a_i$ in $Bar({\\cal A})$. In `Kenzo`, two functions are designed for building the horizontal differential:\n",
"where the product in the algebra is noted simply by the concatenation and $\\mid a_i \\mid$ in the exponent of $(-1)$ is the degree of $a_i$ in $Bar({\\cal A})$. In `Kenzo`, two functions are designed for building the horizontal differential:\n",
"\n",
"`bar-intr-hrzn-dffr` *aprd* *[Function]*\n",
"> From the product morphism *aprd*, build the lisp function with 2 arguments: a degree and an `abar` object (i.e. a generator) realizing the algorithm for $d_h$.\n",
"\n",
"`bar-hrzn-dffr` *algb* *[Function]*\n",
"Build the horizontal differential morphism, using the slot product *aprd* of the algebra *algb* and the previous function. Note that when called, this function creates, if not already created, the vertical bar chain complex on * algb*:\n",
"Build the horizontal differential morphism, using the slot product *aprd* of the algebra *algb* and the previous function. Note that when called, this function creates, if not already created, the vertical bar chain complex on *algb*:\n",
"```commonlisp\n",
" (build-mrph\n",
" :sorc (vrtc-bar algb) \n",