{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Note for representation theorists\n", "\n", "This note explains [`kappa.py`](https://github.com/haruhisa-enomoto/kappa-map-for-lattices) for those who study the representation theory of finite-dimensional (artin) algebras.\n", "I will explain how kappa maps appears in the representation theory,\n", "and demonstrate how to use [`kappa.py`](https://github.com/haruhisa-enomoto/kappa-map-for-lattices/blob/main/kappa.py) to study torsion classes." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## References\n", "\n", "- [Asa]\n", " S. Asai, Semibricks, Int. Math. Res. Not. rny150, 2018.\n", "\n", "- [BCZ1] E. Barnard, G. Todorov, S. Zhu,\n", " Minimal inclusion of torsion classes,\n", " Algebraic Combin., 2 (5) (2019), 879--901.\n", "\n", "- [BCZ2] E. Barnard, G. Todorov, S. Zhu,\n", " Dynamical Combinatorics and Torsion Classes,\n", " J. Pure Appl. Algebra 225 (2021), no. 9, 106642.\n", "\n", "- [DIRRT] L. Demonet, O. Iyama, N. Reading, I. Reiten, H. Thomas,\n", " Lattice theory of torsion classes, arXiv:1711.01785.\n", "\n", "- [RST] N. Reading, D. E. Speyer, H. Thomas,\n", " The fundamental theorem of finite semidistributive lattices,\n", " arXiv:1907.08050." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Lattice of torsion classes in SageMath\n", "\n", "Recently, many people (including me) have been considering the lattice of torsion classes.\n", "\n", "Let $\\Lambda$ be a finite-dimensional algebra. Then consider $L:=\\mathsf{tors}\\,\\Lambda$, the complete lattice of torsion classes. Assume further that $\\Lambda$ is **$\\tau$-tilting finite**, which means that $\\mathsf{tors}\\,\\Lambda$ is a **finite** lattice.\n", "\n", "This lattice $L$ is a **semidistributive** lattice, that is, if $\\mathcal{T} \\cap \\mathcal{U}_1 = \\mathcal{T} \\cap \\mathcal{U}_2$, then $\\mathcal{T} \\cap (\\mathcal{U}_1 \\vee \\mathcal{U}_2) = \\mathcal{T} \\cap \\mathcal{U}_1\\, ( = \\mathcal{T} \\cap \\mathcal{U}_2)$ holds, and the dual condition is satisfied. The key fact to prove this is the equality $\\mathcal{U}_1 \\vee \\mathcal{U}_2 = \\mathsf{Filt}\\,(\\mathcal{U}_1 \\cup \\mathcal{U}_2)$, and the dual condition is automatic by the standard duality (see [DIRRT Theorem 3.1] for the precise proof). ~~Thus we do not have to remember the definition of semidistributivity like me.~~" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's look at some examples in SageMath. The easiest non-trivial lattice which is isomorphic to the lattice of torsion class is:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 11 graphics primitives" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "L_A2 = posets.PentagonPoset()\n", "L_A2.plot(figsize = 3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This lattice ``L`` is nothing but $\\mathsf{tors}\\, \\Lambda$ for $\\Lambda = kQ$ for $Q = [1 \\to 2]$. *Note that the Hasse quiver in SageMath is opposite of the representation-theorist's Hasse quiver convention*, thus the node ``0`` is the smallest element. **In this document, we follow representation-theoretist's convention**.\n", "\n", "The following ``L_pp`` is $\\mathsf{tors}\\, \\Pi$ where $\\Pi$ is a preprojective algebra of type $A_3$, since $\\mathsf{tors}\\,\\Pi$ is isomorphic to the lattice of weak order on the Weyl group $W$ of type $A_3$. In this way, we can construct the lattice of torsion classes for any preprojective algebra of Dynkin type." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "W = WeylGroup(\"A3\")\n", "L_pp = W.weak_lattice()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Moreover, we can construct the lattice of torsion classes for any Dynkin path algebra, since it is isomorphic to the Cambrian lattice.\n", "For example, the following ``L_A3`` is $\\mathsf{tors}\\,\\Lambda$ for $\\Lambda = k[1 \\leftarrow 2 \\to 3]$, where ``(1,3,2)`` represents the Coxeter element $s_1 s_3 s_2$ corresponding to the orientation $1 \\leftarrow 2 \\to 3$. " ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 22 graphics primitives" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "L_A3 = W.cambrian_lattice((1,3,2))\n", "L_A3.plot(label_elements=False, figsize = 5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Or we can construct this lattice by constructing posets of $c_Q$-sortable elements as follows." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "c_Q = W.from_reduced_word([1,3,2])\n", "LL_A3_poset = L_pp.subposet([w for w in W if w.is_coxeter_sortable(c_Q)])\n", "LL_A3 = LatticePoset(LL_A3_poset)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "LL_A3.is_isomorphic(L_A3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Brick labeling\n", "\n", "In [DIRRT] and [BCZ1], the labeling of arrows in the Hasse quiver of $L$ was introduced, which assign a brick to each arrow defined as follows (recall that a brick is a module with a division endomorphism ring).\n", "\n", "Suppose that there is an arrow $\\mathcal{T} \\to \\mathcal{U}$, namely, $\\mathcal{T}\\supsetneq \\mathcal{U}$ is a minimal inclusion of torsion classes.\n", "Then [DIRRT Theorem 3.3] shows that **there uniquely exists a brick $B$ contained in the category $\\mathcal{T} \\cap \\mathcal{U}^\\perp$**, where $\\mathcal{U}^\\perp$ is the Hom-perpendicular category of $\\mathcal{U}$, that is, the torsion-free class corresponding to $\\mathcal{U}$. Thus we can put a brick $B$ on the arrow $\\mathcal{T} \\to \\mathcal{U}$, which is called a *brick labeling*.\n", "\n", "However, we cannot naively compute brick labels in SageMath because we should consider bricks. The problem is that **we cannot deal with modules, hence bricks, for a general f.d. algebra in SageMath**. Instead, we use **join-irreducible elements**." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Join-irreducible torsion classes and bricks\n", "\n", "Consider when a torsion class $\\mathcal{T}$ cannot be written as a join of other torsion classes properly contained in $\\mathcal{T}$. Such an element of $\\mathcal{T} \\in L$ is called **join-irreducible**. We can easily check that this is the case precisely when there is a unique arrow $\\mathcal{T} \\to \\mathcal{T}_*$ starting at $\\mathcal{T}$.\n", "This is a purely lattice-theoretic notion, but surprisingly, there is a representation-theoretic description of join-irreducibles as follows [DIRRT Theorem 1.4]:\n", "\n", "*We have a bijection between*\n", "1. *the set of join-irreducible elements in $L$, and*\n", "1. *the set of bricks in $\\mathsf{mod}\\,\\Lambda$.*\n", "\n", "The maps are given as follows.\n", "- 1 to 2: For a join-irreducible torsion class $\\mathcal{T}$, take the brick label $B$ of the unique arrow $\\mathcal{T} \\to \\mathcal{T}_*$ starting at $\\mathcal{T}$.\n", "- 2 to 1: For a brick $B$, take the torsion closure $\\mathsf{T}(B)$, the smallest torsion class containing $B$.\n", "\n", "Of course, we can compute join-irreducibles in SageMath since it's purely combinatorial:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 11 graphics primitives" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "L_A2.plot(figsize=3)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "[1, 2, 3]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "L_A2.join_irreducibles()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following shows that there are $11$ bricks in $\\mathsf{mod}\\, \\Pi$ for a preprojective algebra $\\Pi$ of type $A_3$." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "11" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(L_pp.join_irreducibles())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Therefore, under this bijection, we can **use join-irreducibles to represent bricks!**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bijections between join-irreducibles and meed-irreducibles\n", "\n", "Of course, one may dualize the above bijection by the standard duality: there is a bijection between bricks and join-irreducible elements in the lattice of torsion-free classes. Since the lattice of torsion-free classes is the opposite of $L$, the second set can be regarded as the set of **meet-irreducible** element in $L$. By combining, we obtain the following bijections.\n", "\n", "$$\n", "\\{\\text{join-irreducibles in $L$}\\} \\rightleftarrows \\{\\text{bricks}\\} \\rightleftarrows \\{\\text{meet-irreducibles in $L$}\\}\n", "$$\n", "\n", "Let $\\kappa$ be the composition, which is a bijection from join-irreducibles to meet-irreducibles.\n", "It is natural to ask whether one can compute $\\kappa$ in a purely lattice-theoretical way, and this turns out to be **true**.\n", "\n", "Before describing it, let's describe $\\kappa$ from the representation-theoretic perspective. Let $B$ be a brick. Then the corresponding join-irreducible element is $\\mathsf{T}(B)$, and the corresponding meet-irreducible element is $^\\perp \\mathsf{F}(B)$ (where $\\mathsf{F}(B)$ is the smallest torsion-free class containing $B$), and it's easy to see $^\\perp \\mathsf{F}(B) = {}^\\perp B$.\n", "\n", "Thus $\\kappa$ satisfies the following formula.\n", "\n", "$$\n", "\\kappa(\\mathsf{T}(B)) = {}^\\perp B.\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Definition of the kappa map\n", "\n", "Let $L$ be a general finite semiditributive lattice and $j$ a join-irreducible element of $L$. Then there is a unique Hasse arrow $j \\to j_*$ starting at $j$. Define $\\kappa(j)$ as follows:\n", "\n", "$$\n", "\\kappa(j) = \\max \\{ m \\in L \\, | \\, j \\wedge x = j_* \\},\n", "$$\n", "\n", "where $\\max$ is the maximum element. Then actually this is well-defined, is meet-irreducible, and gives a bijection from join-irreducibles to meet-irreducibles, see e.g. [RST Theorem 2.28].\n", "\n", "In [BCZ2 Theorem A] (and maybe implicitly in [DIRRT]), it was shown that $\\kappa$ on $L = \\mathsf{tors}\\, \\Lambda$ is precisely the above composition $\\{ \\text{j-irr} \\} \\xrightarrow{\\sim} \\{\\text{bricks}\\} \\xrightarrow{\\sim} \\{\\text{meet-irr} \\}$, hence it coincides with the above description $\\kappa(\\mathsf{T}(B)) = {}^\\perp B$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To compute the kappa map, let's use `kappa.py`. To use it, import `add_kappa()` function from `kappa.py` and execute it." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "from kappa import add_kappa\n", "add_kappa()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For example, for a pentagon poset ``L_A2``, we can compute $\\kappa$ as follows." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 11 graphics primitives" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "L_A2.plot(figsize = 3)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The kappa of 1 is 3\n", "The kappa of 2 is 1\n", "The kappa of 3 is 2\n" ] } ], "source": [ "for j in L_A2.join_irreducibles():\n", " print(f\"The kappa of {j} is {L_A2.kappa(j)}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## When to use kappa?\n", "\n", "So, why do we need this kappa map in the representation theory of algebra? The answer is that it naturally arises when we consider the relation between torsion-free classes and bricks represented by join-irreducibles.\n", "\n", "Let $B$ be a brick, and consider the following problem.\n", "\n", "- For a given torsion class $\\mathcal{T}$, when $B$ is contained in $\\mathcal{T}$?\n", "\n", "In SageMath, *we can use join-irreducibles to represent bricks* since they are in bijection. The join-irreducible corresponding to $B$ is $\\mathsf{T}(B)$, hence the answer is clear:\n", "\n", "- $B \\in \\mathcal{T}$ if and only if $\\mathsf{T}(B) \\subseteq \\mathcal{T}$.\n", "\n", "For example, the number of bricks contained in $\\mathcal{T}$ is equal to the number of join-irreducibles $x$ satisfying $x \\leq \\mathcal{T}$. The following code prints the number of bricks contained in each torsion class over the path algebra of type $A_2$." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The number of bricks in 0 is 0\n", "The number of bricks in 1 is 1\n", "The number of bricks in 2 is 1\n", "The number of bricks in 3 is 2\n", "The number of bricks in 4 is 3\n" ] } ], "source": [ "for T in L_A2:\n", " bricks_in_T = [j for j in L_A2.join_irreducibles() if L_A2.is_lequal(j,T)]\n", " print(f\"The number of bricks in {T} is {len(bricks_in_T)}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, consider **torsion-free side**, namely, the following problem.\n", "\n", "- For a given torsion class $\\mathcal{T}$, when $B$ is contained in a torsion-free class $\\mathcal{T}^\\perp$?\n", "\n", "Since we have decided that we use join-irreducibles to represent bricks, we can only use $\\mathsf{T}(B)$. Thus this problem is not so easy, and **we can use kappa map to solve it!**\n", "\n", "Consider when $B \\in \\mathcal{T}^\\perp$ holds. This is equivalent to $\\mathsf{F}(B) \\subseteq \\mathcal{T}^\\perp$, where $\\mathsf{F}(B)$ is the smallest torsion-free class containing $B$. By taking $^\\perp(-)$, we obtain $^\\perp B = ^\\perp \\mathsf{F}(B) \\supseteq \\mathcal{T}$. Therefore, we want to represent $^\\perp B$ using $\\mathsf{T}(B)$, **and this is achieved by the kappa map by the above formula: $\\kappa(\\mathsf{T}(B)) = {}^\\perp B$!**\n", "\n", "To sum up, the answer is:\n", "\n", "- $B \\in \\mathcal{T}^\\perp$ if and only if $\\kappa(\\mathsf{T}(B)) \\supseteq \\mathcal{T}$.\n", "\n", "And this condition is purely lattice-theoretical, hence SageMath can compute it!\n", "\n", "For example, the following code computes the numbers of torsion classes and torsion-free classes containing each brick." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "There are 2 tors and 3 torfs which contain a brick represented by 1\n", "There are 3 tors and 2 torfs which contain a brick represented by 2\n", "There are 2 tors and 2 torfs which contain a brick represented by 3\n" ] } ], "source": [ "for j in L_A2.join_irreducibles():\n", " tors = [T for T in L_A2 if L_A2.is_lequal(j,T)]\n", " m = L_A2.kappa(j)\n", " torf = [T for T in L_A2 if L_A2.is_gequal(m,T)]\n", " print(f\"There are {len(tors)} tors and {len(torf)} torfs which contain a brick represented by {j}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As another example, one can compute the number of bricks containing in $\\mathcal{T}_1 \\cap \\mathcal{T}_2^\\perp$ for given torsion classes $\\mathcal{T}_1$ and $\\mathcal{T}_2$. The subcategory of this form appears in various literatures including [my paper](https://arxiv.org/abs/2010.05433), which was the motivation for dealing with the kappa map." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Extended kappa map\n", "\n", "In `kappa.py`, we also compute the extended kappa map $\\overline{\\kappa}$ for a finite semidistributive. I'll explain the meaning of it following [BCZ2].\n", "\n", "Let $\\mathcal{T}$ be any torsion class. Since we are assuming that $\\Lambda$ is $\\tau$-tilting finite, there are only finitely many Hasse arrows starting at $\\mathcal{T}$, namely, $\\mathcal{T} \\to \\mathcal{T}_i$ for $i=1,2,\\dots, m$. Let $B_i$ be the brick label of $\\mathcal{T} \\to \\mathcal{T}_i$. Then it is known that the following equality holds (e.g. [Asa], [BCZ1]):\n", "\n", "$$\n", "\\mathcal{T} = \\mathsf{T}(B_1)\\vee \\cdots \\vee \\mathsf{T}(B_m)\n", "$$\n", "\n", "This represents an arbitrary torsion class $\\mathcal{T}$ as a join of join-irreducibles $\\mathsf{T}(B_i)$. This presentation has a good lattice-theoretic property, thus is called a *canonical join representation* (see [BCZ1]). I omit the definition, but this says that this presentation is minimal, and is uniquely determined naturally only from $\\mathcal{T}$.\n", "\n", "In [BCZ2], the extended kappa map $\\overline{\\kappa} \\colon L \\to L$ for a finite semiditributive lattice $L$ was introduced.\n", "This is defined as follows: for $x \\in L$, take a canonical join representation $x = j_1 \\vee \\cdots \\vee j_m$. Then\n", "\n", "$$\n", "\\overline{\\kappa}(x) := \\kappa(j_1) \\wedge \\cdots \\wedge \\kappa(j_m)\n", "$$\n", "\n", "Therefore, when applied to the above $\\mathcal{T}$, we obtain\n", "\n", "$$\n", "\\overline{\\kappa}(\\mathcal{T}) = \\kappa(\\mathsf{T}(B_1)) \\wedge \\cdots \\wedge \\kappa(\\mathsf{T}(B_m))\n", " = {}^\\perp B_1 \\cap \\cdots \\cap {}^\\perp B_m.\n", "$$\n", "\n", "Let's consider it in detail. By duality, $\\mathcal{T}':= \\overline{\\kappa}(\\mathcal{T}) = {}^\\perp B_1 \\cap \\cdots \\cap {}^\\perp B_m$ is a *canonical meet representation* (note that ${}^\\perp B$ is meet-irreducible in our $L$ by duality).\n", "Therefore, there are exactly $m$ arrows $\\mathcal{T}'_i \\to \\mathcal{T}'$ with its label $B_i$ for $i=1,\\dots, m$, and $\\mathcal{T}'$ is characterized by this property.\n", "\n", "To sum up, $\\overline{\\kappa}(\\mathcal{T})$ is the following description using the brick labeling:\n", "\n", "1. Compute brick labels $B_i$ of $\\mathcal{T} \\to \\mathcal{T}_i$ for all arrows starting at $\\mathcal{T}$ ($i=1,\\dots,m$).\n", "2. There uniquely exists a torsion class $\\mathcal{T}'$ satisfying the following: there are exactly $m$ arrows $\\mathcal{T}'_i \\to \\mathcal{T}'$ ending at $\\mathcal{T}'$ for $i=1,\\dots m$ and the labels are $B_i$ for each $i$. Then $\\overline{\\kappa}(\\mathcal{T}) = \\mathcal{T}'$.\n", "\n", "This $\\overline{\\kappa}$ is bijective by construction, hence this map is an **extra symmetry** on the lattice of torsion classes!\n", "For a further investigation of this map, we refer the reader to [BCZ2]." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For example, let us compute $\\overline{\\kappa}$ for $A_2$ quiver:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 11 graphics primitives" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "L_A2.plot(figsize = 3)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The extended kappa of 0 is 4\n", "The extended kappa of 1 is 3\n", "The extended kappa of 2 is 1\n", "The extended kappa of 3 is 2\n", "The extended kappa of 4 is 0\n" ] } ], "source": [ "for x in L_A2:\n", " print(f\"The extended kappa of {x} is {L_A2.extended_kappa(x)}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, consider $\\overline{\\kappa}$ using wide subcategoeis. It's known that torsion classes are in bijection with wide subcategories (since we are assuming that $\\Lambda$ is $\\tau$-tilting finite). The wide subcategory corresponding to the above $\\mathcal{T}$ is precisely $\\mathcal{W}:= \\mathsf{Filt}\\, \\{ B_1,\\dots, B_m\\}$, and the coverse is given by $\\mathsf{T}(\\mathcal{W})$. Then it is easy to check ${}^\\perp B_1 \\cap \\cdots \\cap {}^\\perp B_m = {}^\\perp \\mathcal{W}$. To sum up, starting from the wide subcategory $\\mathcal{W}$, we have\n", "\n", "$$\n", "\\overline{\\kappa}(\\mathsf{T}(\\mathcal{W})) = {}^\\perp \\mathcal{W}\n", "$$\n", "\n", "This means that the follownig commutes!\n", "\n", "$$\n", "\\require{AMScd}\n", "\\begin{CD}\n", "\\{ \\text{wide subcats} \\} @= \\{ \\text{wide subcats} \\} \\\\\n", "@V{\\mathsf{T}}VV @V{^\\perp (-)}VV\\\\\n", "L = \\{ \\text{torsion classes}\\} @>{\\overline{\\kappa}}>> L\n", "\\end{CD}\n", "$$" ] } ], "metadata": { "kernelspec": { "display_name": "SageMath 9.1", "language": "sage", "name": "sagemath" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }