[Asa] S. Asai, Semibricks, Int. Math. Res. Not. rny150, 2018.

[BCZ1] E. Barnard, G. Todorov, S. Zhu, Minimal inclusion of torsion classes, Algebraic Combin., 2 (5) (2019), 879--901.

[BCZ2] E. Barnard, G. Todorov, S. Zhu, Dynamical Combinatorics and Torsion Classes, J. Pure Appl. Algebra 225 (2021), no. 9, 106642.

[DIRRT] L. Demonet, O. Iyama, N. Reading, I. Reiten, H. Thomas, Lattice theory of torsion classes, arXiv:1711.01785.

[RST] N. Reading, D. E. Speyer, H. Thomas, The fundamental theorem of finite semidistributive lattices, arXiv:1907.08050.

Recently, many people (including me) have been considering the lattice of torsion classes.

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.

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.~~

In [1]:

```
L_A2 = posets.PentagonPoset()
L_A2.plot(figsize = 3)
```

Out[1]:

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**.

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.

In [2]:

```
W = WeylGroup("A3")
L_pp = W.weak_lattice()
```

`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$.

In [3]:

```
L_A3 = W.cambrian_lattice((1,3,2))
L_A3.plot(label_elements=False, figsize = 5)
```

Out[3]:

Or we can construct this lattice by constructing posets of $c_Q$-sortable elements as follows.

In [4]:

```
c_Q = W.from_reduced_word([1,3,2])
LL_A3_poset = L_pp.subposet([w for w in W if w.is_coxeter_sortable(c_Q)])
LL_A3 = LatticePoset(LL_A3_poset)
```

In [5]:

```
LL_A3.is_isomorphic(L_A3)
```

Out[5]:

True

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).

Suppose that there is an arrow $\mathcal{T} \to \mathcal{U}$, namely, $\mathcal{T}\supsetneq \mathcal{U}$ is a minimal inclusion of torsion classes.
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*.

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**.

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}$.
This is a purely lattice-theoretic notion, but surprisingly, there is a representation-theoretic description of join-irreducibles as follows [DIRRT Theorem 1.4]:

*We have a bijection between*

*the set of join-irreducible elements in $L$, and**the set of bricks in $\mathsf{mod}\,\Lambda$.*

The maps are given as follows.

- 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}$.
- 2 to 1: For a brick $B$, take the torsion closure $\mathsf{T}(B)$, the smallest torsion class containing $B$.

Of course, we can compute join-irreducibles in SageMath since it's purely combinatorial:

In [6]:

```
L_A2.plot(figsize=3)
```

Out[6]:

In [7]:

```
L_A2.join_irreducibles()
```

Out[7]:

[1, 2, 3]

In [8]:

```
len(L_pp.join_irreducibles())
```

Out[8]:

11

Therefore, under this bijection, we can **use join-irreducibles to represent bricks!**

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.

Let $\kappa$ be the composition, which is a bijection from join-irreducibles to meet-irreducibles.
It is natural to ask whether one can compute $\kappa$ in a purely lattice-theoretical way, and this turns out to be **true**.

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$.

Thus $\kappa$ satisfies the following formula.

$$ \kappa(\mathsf{T}(B)) = {}^\perp B. $$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:

$$ \kappa(j) = \max \{ m \in L \, | \, j \wedge x = j_* \}, $$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].

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$.

`kappa.py`

. To use it, import `add_kappa()`

function from `kappa.py`

and execute it.

In [9]:

```
from kappa import add_kappa
add_kappa()
```

For example, for a pentagon poset `L_A2`

, we can compute $\kappa$ as follows.

In [10]:

```
L_A2.plot(figsize = 3)
```

Out[10]:

In [11]:

```
for j in L_A2.join_irreducibles():
print(f"The kappa of {j} is {L_A2.kappa(j)}")
```

The kappa of 1 is 3 The kappa of 2 is 1 The kappa of 3 is 2

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.

Let $B$ be a brick, and consider the following problem.

- For a given torsion class $\mathcal{T}$, when $B$ is contained in $\mathcal{T}$?

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:

- $B \in \mathcal{T}$ if and only if $\mathsf{T}(B) \subseteq \mathcal{T}$.

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$.

In [12]:

```
for T in L_A2:
bricks_in_T = [j for j in L_A2.join_irreducibles() if L_A2.is_lequal(j,T)]
print(f"The number of bricks in {T} is {len(bricks_in_T)}")
```

Next, consider **torsion-free side**, namely, the following problem.

- For a given torsion class $\mathcal{T}$, when $B$ is contained in a torsion-free class $\mathcal{T}^\perp$?

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!**

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$!**

To sum up, the answer is:

- $B \in \mathcal{T}^\perp$ if and only if $\kappa(\mathsf{T}(B)) \supseteq \mathcal{T}$.

And this condition is purely lattice-theoretical, hence SageMath can compute it!

For example, the following code computes the numbers of torsion classes and torsion-free classes containing each brick.

In [13]:

```
for j in L_A2.join_irreducibles():
tors = [T for T in L_A2 if L_A2.is_lequal(j,T)]
m = L_A2.kappa(j)
torf = [T for T in L_A2 if L_A2.is_gequal(m,T)]
print(f"There are {len(tors)} tors and {len(torf)} torfs which contain a brick represented by {j}")
```

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].

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]):

$$ \mathcal{T} = \mathsf{T}(B_1)\vee \cdots \vee \mathsf{T}(B_m) $$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}$.

In [BCZ2], the extended kappa map $\overline{\kappa} \colon L \to L$ for a finite semiditributive lattice $L$ was introduced. This is defined as follows: for $x \in L$, take a canonical join representation $x = j_1 \vee \cdots \vee j_m$. Then

$$ \overline{\kappa}(x) := \kappa(j_1) \wedge \cdots \wedge \kappa(j_m) $$Therefore, when applied to the above $\mathcal{T}$, we obtain

$$ \overline{\kappa}(\mathcal{T}) = \kappa(\mathsf{T}(B_1)) \wedge \cdots \wedge \kappa(\mathsf{T}(B_m)) = {}^\perp B_1 \cap \cdots \cap {}^\perp B_m. $$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).
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.

To sum up, $\overline{\kappa}(\mathcal{T})$ is the following description using the brick labeling:

- Compute brick labels $B_i$ of $\mathcal{T} \to \mathcal{T}_i$ for all arrows starting at $\mathcal{T}$ ($i=1,\dots,m$).
- 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}'$.

This $\overline{\kappa}$ is bijective by construction, hence this map is an **extra symmetry** on the lattice of torsion classes!
For a further investigation of this map, we refer the reader to [BCZ2].

For example, let us compute $\overline{\kappa}$ for $A_2$ quiver:

In [14]:

```
L_A2.plot(figsize = 3)
```

Out[14]:

In [15]:

```
for x in L_A2:
print(f"The extended kappa of {x} is {L_A2.extended_kappa(x)}")
```

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

$$ \overline{\kappa}(\mathsf{T}(\mathcal{W})) = {}^\perp \mathcal{W} $$This means that the follownig commutes!

$$ \require{AMScd} \begin{CD} \{ \text{wide subcats} \} @= \{ \text{wide subcats} \} \\ @V{\mathsf{T}}VV @V{^\perp (-)}VV\\ L = \{ \text{torsion classes}\} @>{\overline{\kappa}}>> L \end{CD} $$