load("tors_lattice.py")
Construct your poset and name your poset poset
.
Input using SageMath's Poset
function.
poset = Poset( ([1,2,3,4,5], [[1,2], [2,5], [1,3],[3,4],[4,5]] ) )
poset
The directions of Hasse arrows in SageMath is opposite to our convention!
Input using Jan Geuenich's String Applet and my String Applet to Sage converter
load("converter.py")
poset = Poset( SAtoSage("data.tex"))
myshow(poset, label = False)
Construct the lattice of torsion classes by TorsLattice(poset)
tors = TorsLattice(poset)
The lattice of wide subcats: tors.wide_lattice()
wide = tors.wide_lattice()
wide
Finite lattice containing 60 elements (use the .plot() method to plot)
myshow(wide)
The lattice of ICE-closed subcats: tors.ice_lattice()
myshow(tors.ice_lattice(), label = False)
The poset of torsion hearts: tors.heart_poset()
heart = tors.heart_poset()
heart.is_lattice()
False
$\Delta(\Lambda)$: tors.s_tau_tilt_complex()
cpx = tors.s_tau_tilt_complex()
cpx.h_vector()
[1, 14, 30, 14, 1]
$\mathsf{tors} kQ$ for a Dynkin quiver $Q$ is given by the Cambiran lattice [Ingalls-Thomas].
Consider the path algebra $k [ 1 \to 2 \leftarrow 3]$, type $A_3$ with its source sequence $(1,3,2)$.
Name W = WeylGroup(["A3"])
, and $\mathsf{tors} kQ$ is W.cambrian_lattice((1,3,2))
.
W = WeylGroup(["A3"])
poset = W.cambrian_lattice((1,3,2))
tors = TorsLattice(poset)
myshow(tors, label = False)
$\mathsf{wide} kQ$ should be isomorphic to the so-called non-crossing partition lattice, given by posets.NoncrossingPartitions(W)
.
wide = tors.wide_lattice()
NC = posets.NoncrossingPartitions(W)
wide.is_isomorphic(NC)
True
$\Delta(kQ)$ should be isomorphic to ClusterComplex(["A3"])
.
cpx = tors.s_tau_tilt_complex()
cpx.is_isomorphic(ClusterComplex(["A3"]))
True
$\mathsf{tors} \Pi$ is given by the right weak order of the Weyl group [Mizuno].
Consider the preprojective algebra of $\Pi$ type $D_4$.
Let's google how to input this!
W = CoxeterGroup(["D4"])
poset = W.weak_poset()
tors = TorsLattice(poset)
myshow(tors, label = False)