Quantum Center and Hochschild cohomology of Flag Varieties

Implementation of the module describing the hochschild cohomology of flag varieties.

Equivalently this givesthe center of the small quantum group, as described in the two papers by Anna Lachowska and You Qi:

https://arxiv.org/abs/1604.07380v3

https://arxiv.org/abs/1703.02457v3

Let \(G\) be a complex simple Lie group, and let \(P\) be a parabolic subgroup. Then we consider the cotangent bundle of the associated partial flag variety:

\[\tilde{\mathcal N}_P :=T^*(G/P)\]

We are then interested in computing

\[HH^s(\tilde{\mathcal N}_P)\cong \bigoplus_{i+j+k=s}H^i(\tilde{\mathcal N}_P,\wedge^jT \tilde{\mathcal N}_P)^k\]

This can be computed by using the BGG resolution. We define the following module:

\[M_j^k = \bigoplus_r \operatorname{Sym}^{j-r+k/2}\mathfrak u_P\otimes \wedge^r\mathfrak g\otimes \wedge^{j-r}\mathfrak n_P\]

Let \(\Delta\colon\mathfrak p\to \mathfrak g\oplus \mathfrak u_P\otimes\mathfrak n_P\) be given by the inclusion in the first component and in the second component by the adjoint action (after identifying \(\operatorname{End}(\mathfrak n_P)\) with \(\mathfrak u_P\otimes \mathfrak n_P\)). Then \(\Delta\) induces a map \(M_{j-1}^k\to M_j^k\). We define the module

\[E_j^k = M_j^k\big/\Delta(M_{j-1}^k)\]

Then the cohomology of the BGG resolution of \(E_j^k\) in degree \(i\) with respect to a dominant weight \(\mu\) computes the multiplicity of \(\mu\) of \(H^i(\tilde{\mathcal N}_P,\wedge^jT\tilde{\mathcal N}_P)^k\).

class bggcohomology.quantum_center.CokerCache(rel_dic, source_dims, target_dims, basis_indices, pbar=None, method=0)[source]

Wrapper to compute cokernels on demand.

Stores the image of a map of weight spaces, and computes the cokernel of the map when needed. Acts like a dictionary, and caches results.

Parameters:
  • rel_dic (dict[tuple(int), array[int]]) – Dictionary mapping weights to arrays encoding sparse matrix of relations to quotient by in DOK format.
  • source_dims (dict[tuple(int), int]) – Dictionary mapping weights to dimensions of the weight components in the source space.
  • target_dims (dict[tuple(int), int]) – Dictionary mapping weights to dimensions of the weight components in the target space.
  • pbar (tqdm or None (default None)) – tqdm instance to send status updates to. If None this feature is disable.
bggcohomology.quantum_center.Eijk_basis(BGG, j, k, subset=[], pbar=None, method=0)[source]

Give a basis of the quotient \(E_j^k = M_j^k\big/\Delta(M_{j-1}^k)\).

Parameters:
  • BGG (BGGComplex) –
  • j (int) –
  • k (int) –
  • subset (list[int] (default: [])) – Subset defining parabolic
  • pbar (tqdm or None (default None)) – tqdm instance to send status updates to. If None this feature is disable.
Returns:

Object that stores basis of \(M_j^k\) and frame of \(\Delta(M_{j-1}^k)\), so that basis of \(E_j^k\) can be computed when needed.

Return type:

CokerCache

bggcohomology.quantum_center.Mjk(BGG, j, k, subset=[])[source]

Define the module Mjk.

\[M_j^k = \bigoplus_r \operatorname{Sym}^{j-r+k/2}\mathfrak u_P\otimes \wedge^r\mathfrak g\otimes \wedge^{j-r}\mathfrak n_P\]
Parameters:
  • j (int) –
  • k (int) –
Returns:

Return type:

LieAlgebraCompositeModule

bggcohomology.quantum_center.all_abijk(BGG, s=0, subset=[], half_only=False)[source]

Return a list of all the (a,b) in the bigraded table.

Parameters:
  • BGG (BGGComplex) –
  • s (int (default: 0)) – The cohomological degree of Hochschild complex
  • subset (list[int]) – The parabolic subset
  • half_only (bool) – If True then only half of the table is returned; the other half can be deduced by symmetry.
bggcohomology.quantum_center.compute_phi(BGG, subset=[])[source]

Compute the map \(\mathfrak b\to \mathfrak n\otimes \mathfrak u\).

Parameters:
  • BGG (BGGComplex) –
  • subset (list[int] (default: [])) – Subset defining parabolic
Returns:

Dictionary mapping basis indices of \(\mathfrak b\) to an array with rows (n_index, u_index, coeff), where n_index is index in basis of \(\mathfrak n\), u_index is the index in basis of \(\mathfrak u\), and coeff is the coefficient.

Return type:

dict[int, np.array[int]]

bggcohomology.quantum_center.display_bigraded_table(table, text_only=False)[source]

Generate LaTeX code to display the bigraded table.

Takes a dictionary (a,b) -> LaTeX string. If extend_half = True, we extend the table by using the symmetry

bggcohomology.quantum_center.display_cohomology_stats(cohom_dic, BGG, text_only=False)[source]

Display multiplicities and dimensions of all the entries in bigraded table.

bggcohomology.quantum_center.extend_from_symmetry(table, max_a=None)[source]

Use symmetry to compute an entire bigraded table from just the top half.

bggcohomology.quantum_center.prepare_texfile(tables, title=None)[source]

Given some tables, join them together and create a LaTeX document to contain them.