From cc7224761dd655f48475b01e6f17faeb753b9705 Mon Sep 17 00:00:00 2001 From: gheber Date: Thu, 3 Mar 2016 19:19:46 -0600 Subject: [PATCH] Another snippet of Chapter 7. --- examples/Chapter7.ipynb | 639 +++++++++++++++++++++++++++++++++++++++- examples/bottless.png | Bin 0 -> 16374 bytes examples/cylinss.png | Bin 0 -> 16034 bytes examples/duncess.png | Bin 0 -> 14406 bytes examples/moebiuss.png | Bin 0 -> 17161 bytes examples/ppss.png | Bin 0 -> 14692 bytes examples/torus2.png | Bin 0 -> 16073 bytes examples/toruss.png | Bin 0 -> 15304 bytes 8 files changed, 638 insertions(+), 1 deletion(-) create mode 100644 examples/bottless.png create mode 100644 examples/cylinss.png create mode 100644 examples/duncess.png create mode 100644 examples/moebiuss.png create mode 100644 examples/ppss.png create mode 100644 examples/torus2.png create mode 100644 examples/toruss.png diff --git a/examples/Chapter7.ipynb b/examples/Chapter7.ipynb index a0eac40..34f2499 100644 --- a/examples/Chapter7.ipynb +++ b/examples/Chapter7.ipynb @@ -526,7 +526,644 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## A first set of helpful functions on simplicial sets" + "## A first set of helpful functions on simplicial sets\n", + "\n", + "We give now a first set of functions, methods or macros acting on simplicial set instances. \n", + "\n", + "``cat-init`` *[Function]*\n", + "> Clear in particular ``*smst-list*``, the list of user created simplicial sets and reset the global counter to 1.\n", + "\n", + "``smst`` *n* *[Function]*\n", + "> Retrieve in the list ``*smst-list*`` the simplicial set instance whose the Kenzo identification\n", + "is $n$. If it does not exist, return ``NIL``.\n", + "\n", + "``cmpr`` *smst absm1 absm2* *[Macro]*\n", + "> Compare the abstract simplices *absm1* and *absm2* with the comparison function associated with the simplicial set *smst*.\n", + "\n", + "``bspn`` *smst* *[Macro]*\n", + "> Return the base point of the simplicial set *smst*.\n", + "\n", + "``bndr`` *smst* ``&rest`` *[Macro]*\n", + "> Identical to the macro ``dffr`` (see the chain complex chapter). For simplicial sets, it is more traditional to use the term *boundary*.\n", + "\n", + "``dgnl`` *smst* ``&rest`` *[Macro]*\n", + "> Identical to the macro ``cprd`` (see the coalgebra chapter). For simplicial sets, this recalls the \n", + "Alexander-Witney diagonal.\n", + "\n", + "``face`` *smst i k gmsm-or-absm* *[Macro]*\n", + "> Versatile macro to apply the face operator $\\partial_i^k$ on the simplex *gmsm-or-absm* of the simplicial set *smst*. The name of the simplex parameter shows clearly that it may be either a geometric simplex or an abstract simplex. With only one argument (*smst*), return the function *face*. \n", + "In any other case, we recall that this application returns always an object of type ``ABSM``.\n", + "\n", + "``degenerate-p`` *absm* *[Macro]*\n", + "> Return ``t`` if the abstract simplex *asm* is degenerate, ``nil`` otherwise.\n", + "\n", + "``non-degenerate-p`` *absm* *[Macro]*\n", + "> Return ``t`` if the abstract simplex *asm* is non-degenerate, ``nil`` otherwise.\n", + "\n", + "``check-smst`` *smst dmns1* ``&optional`` *dmns2 (1+ dmns1)* *[Function]*\n", + "> Return ``t`` if the fundamental relations between the face operators $\\partial_i^k$\n", + "with $k=dmns1,\\ldots, dmns2-1$, applied on the effective simplicial set *smst*, are satisfied, otherwise ``nil``. If the optional parameter *dmns2* is omitted, the test is done only for\n", + "$k=dmns1$.\n", + "\n", + "## Examples\n", + "\n", + "After having created instances of the standard simplicial sets $\\Delta^2$ and $\\Delta^3$ ($\\Delta^\\mathbb{N}$ has been defined previously), let us test some simple functions. Note that, since the class of simplicial sets is a sub-class of the class of coalgebras, itself subclass of chain complexes, the functions defined on these classes are available." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(def delta2 (delta-n 2))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(def delta3 (delta-n 3))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(degenerate-p (absm 0 '(1 2 3)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(degenerate-p (absm 5 '(0 1 2 3 4)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(basis delta3 2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(basis delta2 0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " The set of simplices in any dimension for the simplicial set $\\Delta^\\mathbb{N}$ is infinite:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(basis delta-infty 1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us test the face function. We see that, though ``delta-infty`` is locally effective, nevertheless, we may work with its simplices:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(face delta-infty 2 4 '(0 1 2 3 4))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(face delta-infty 2 4 (absm 0 '(0 1 2 3 4)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(face delta-infty 2 5 (absm (dgop-ext-int '(1)) '(0 1 2 3 4)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(face delta-infty 2 5 (absm (dgop-ext-int '(3)) '(0 1 2 3 4)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(bspn delta-infty)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The two following statement show that ``delta-infty`` may be considered also as a coalgebra and a chain complex." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(cprd delta-infty 4 '(0 1 2 3 4))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(? delta-infty 4 '(0 1 2 3 4))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The simplicial set ``diabolo-ss``, has also all the properties of a coalgebra and of a chain complex." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(basis diabolo-ss 1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(basis diabolo-ss 2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(? diabolo-ss 2 (first *))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(? diabolo-ss *)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(dgnl diabolo-ss **)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## The function ``build-finite-ss``\n", + "\n", + "The function ``build-finite-ss`` is a powerful function simplifying the creation of a finite simplicial set. From the lisp point of view, it accepts only one argument, the structured list of the simplices and their faces. In this list, every non--degenerate simplex must be coded as a symbol given by the user. The structure of the list is the following:\n", + "\n", + "- **0** (in fact, optional)\n", + "- $<$Sequence of the vertices, the first item being the base point$>$,\n", + "- **1**\n", + "- $<$Sequence of description of simplices in dimension 1$>$,\n", + "- **2**\n", + "- $<$Sequence of description of simplices in dimension 2$>$,\n", + "- ... ... ... ... ... ...\n", + "- **n**\n", + "- $<$Sequence of description of simplices in dimension n$>$.\n", + "\n", + "where $<$Sequence of description of simplices in dimension k$>$ is a sequence of the following items:\n", + "\n", + "1. A symbol, the symbolic name of the simplex.\n", + "2. A list of faces of this simplex, describing the faces of the simplex. A face can be described in two ways:\n", + " - a symbol, the symbolic name of a {\\bf non-degenerate} simplex composing itself the face.\n", + " - or a list of the form ($i_k\\ i_{k-1}\\ \\ldots \\ i_1 \\ i_0$ ``symbol``) meaning that the degeneracy $\\eta_{i_k}\\eta_{i_{k-1}}\\ldots\\eta_{i_1}\\eta_{i_0}$ is to be applied to the non-degenerate simplex of name ``symbol`` to produce the actual (possibly degenerate) face. If the simplex face has dimension 0 (a vertex), the name of this vertex is sufficient in the face description because the program computes itself the unique possible degeneracy of the vertex, i.e. $\\eta_{k-2}\\ldots\\eta_0$. \n", + "\n", + "### Examples\n", + "\n", + "Let us give some examples to clarify the use of ``build-finite-ss``. In the first example, we use ``build-finite-ss`` to create a simplicial complex, corresponding to a triangulation of the torus. As the faces are never degenerated, the description of the faces is of simplified form." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(cl-jupyter-user:png-from-file \"torus2.png\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The vertices will be named ``v0``, ``v1``, ..., ``v6``, ``v0`` being the base point. The edges\n", + "will be named ``e01``, ``e02``, ..., ``e56``, the list of faces of the edge $e_{ij}$ being\n", + "$(v_j\\ v_i)$. The triangles will be named ``t013``, ``t015``, ..., ``t456``, the list of faces of\n", + "the triangle $t_{ijk}$ being $(e_{jk}\\ e_{ik}\\ e_{ij})$. With this convention of describing the simplices, the call to ``build-finite-ss`` is in simplified form:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(def torus2\n", + " (build-finite-ss \n", + " '(v0 v1 v2 v3 v4 v5 v6 \n", + "\n", + " 1 e01 (v1 v0) e02 (v2 v0) e03 (v3 v0)\n", + " e04 (v4 v0) e05 (v5 v0) e06 (v6 v0)\n", + " e12 (v2 v1) e13 (v3 v1) e14 (v4 v1)\n", + " e15 (v5 v1) e16 (v6 v1) e23 (v3 v2)\n", + " e24 (v4 v2) e25 (v5 v2) e26 (v6 v2)\n", + " e34 (v4 v3) e35 (v5 v3) e36 (v6 v3)\n", + " e45 (v5 v4) e46 (v6 v4) e56 (v6 v5)\n", + "\n", + " 2 t013 (e13 e03 e01) t015 (e15 e05 e01) t024 (e24 e04 e02)\n", + " t026 (e26 e06 e02) t036 (e36 e06 e03) t045 (e45 e05 e04)\n", + " t125 (e25 e15 e12) t126 (e26 e16 e12) t134 (e34 e14 e13)\n", + " t146 (e46 e16 e14) t234 (e34 e24 e23) t235 (e35 e25 e23)\n", + " t356 (e56 e36 e35) t456 (e56 e46 e45) )))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "After verification of the coherence of the description of the faces, the function ``build-finite-ss`` calls adequately the function ``build-smst`` to create an instance of the class ``SIMPLICIAL SET`` subclass of the class ``CHAIN COMPLEX``. So that, it is easy for the user to obtain the homology groups of the torus, for instance in dimension 1:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(chcm-homology torus2 1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The function ``build-finite-ss`` calls internally some verification functions mentioned above to verify the coherence of the description of the simplicial set and gives an error message if the description of the simplicial set is incorrect. For instance:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(def mm (build-finite-ss \n", + " '(s0 s1 s2 s3 \n", + " 1 0-1 (s1 s0) 1-2 (s2 s1) 2-3 (s3 s2)\n", + " 2 0-1-2 (2-3 1-2 0-1))\n", + " ))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the following examples, we show the power of ``build-finite-ss`` for the description of classical surfaces as simplicial sets, and in each case we verify the well known homology groups of those surfaces. The examples of the torus or the dunce-hat must be compared, as to the simplicity of the definition, to the respective ones in the previous page and in the Homology chapter." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(cl-jupyter-user:png-from-file \"cylinss.png\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(def cylinss (build-finite-ss \n", + " '(v0 v1 \n", + " 1 e0 (v1 v0) e1 (v1 v1) e2 (v0 v0) e3 (v1 v0)\n", + " 2 t0 (e1 e3 e0) t1 (e0 e3 e2)) ))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(dotimes (i 3) (chcm-homology cylinss i))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(cl-jupyter-user:png-from-file \"moebiuss.png\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(def moebiuss (build-finite-ss \n", + " '(v0 v1 \n", + " 1 e0 (v1 v0) e1 (v0 v1) e2 (v1 v0) e3 (v0 v0)\n", + " 2 t0 (e1 e3 e0) t1 (e0 e2 e3)) ))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(dotimes (i 3) (chcm-homology moebiuss i))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(cl-jupyter-user:png-from-file \"toruss.png\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(def toruss (build-finite-ss \n", + " '(v0\n", + " 1 e0 (v0 v0) e1 (v0 v0) e2 (v0 v0)\n", + " 2 t0 (e1 e2 e0) t1 (e0 e2 e1)) ))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(dotimes (i 3) (chcm-homology toruss i))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(cl-jupyter-user:png-from-file \"bottless.png\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(def bottless (build-finite-ss \n", + " '(v0\n", + " 1 e0 (v0 v0) e1 (v0 v0) e2 (v0 v0)\n", + " 2 t0 (e1 e2 e0) t1 (e0 e1 e2)) ))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(dotimes (i 3) (chcm-homology bottless i))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(cl-jupyter-user:png-from-file \"ppss.png\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(def ppss (build-finite-ss \n", + " '( *\n", + " 1 e (* *)\n", + " 2 t (e * e)) ))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(dotimes (i 3) (chcm-homology ppss i))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The user will note that the list of faces for the 2-simplex ``t``, is in simplified form. In particular, as the face 1 of ``t`` is the 0-degeneracy of the base point \"$*$\", it is sufficient to code the face 1 of ``t``by \"``*``\" instead of the complete form ``(0 *)``." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(cl-jupyter-user:png-from-file \"duncess.png\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(def duncess (build-finite-ss \n", + " '( *\n", + " 1 e (* *)\n", + " 2 t (e e e)) ))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "(dotimes (i 3) (chcm-homology duncess i))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Special simplicial sets\n", + "\n", + "The system provides useful functions to create interesting simplicial sets of constant usage. In particular, the user is advised from now to use the following version of the standard simplex implemented in ``Kenzo`` and not the one given previously for simplicity reason.\n", + "\n", + "### The standard simplex" ] } ], diff --git a/examples/bottless.png b/examples/bottless.png new file mode 100644 index 0000000000000000000000000000000000000000..f847b0356dc8b18ccf5bfc2b57f9fb1489fa11d1 GIT binary patch literal 16374 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 literal 0 HcmV?d00001 diff --git a/examples/cylinss.png b/examples/cylinss.png new file mode 100644 index 0000000000000000000000000000000000000000..e55f0e7eefb433ecedd153e14424b509938d9b47 GIT binary patch literal 16034 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

N_`;x?x5j1fvu-Xf_O9NjU04?z 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 literal 0 HcmV?d00001 diff --git a/examples/moebiuss.png b/examples/moebiuss.png new file mode 100644 index 0000000000000000000000000000000000000000..c212027162d67b6add99f05fd8adcb9f80923a14 GIT binary patch literal 17161 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 literal 0 HcmV?d00001 diff --git a/examples/ppss.png b/examples/ppss.png new file mode 100644 index 0000000000000000000000000000000000000000..5929f1356bfc1eedfb3c27e299de6cb3912566e2 GIT binary patch literal 14692 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 literal 0 HcmV?d00001 diff --git a/examples/torus2.png b/examples/torus2.png new file mode 100644 index 0000000000000000000000000000000000000000..9d18cea4414b6123819ceffc4761f0bf92fb9269 GIT binary patch literal 16073 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 E0W$|G-v9sr literal 0 HcmV?d00001