PartialFlagVarieties.jl 0.3.1

Pieter Belmans

2026/08/13

Since the pre-release of PartialFlagVarieties.jl at v0.1.0: 0.2.0 and 0.2.1 were housekeeping, 0.3.0 adds maps between flag varieties and renames a few things while the leading zero still allows it, and 0.3.1 removes a dependency the package did not need. So the current version is 0.3.1, but 0.3.0 is the one worth reading about.

Maps between flag varieties

For $I \subseteq J$ we have $\mathrm{P}_J \subseteq \mathrm{P}_I$, hence a projection $q \colon \mathrm{G}/\mathrm{P}_J \to \mathrm{G}/\mathrm{P}_I$. You can now pull equivariant bundles back along $q$, and push them forward:

X, D = Gr(3, 6), flag_variety(6, [1, 3])

F = pullback(D, universal_subbundle(X))
rank.(graded_pieces(F))                       # [1, 2]
graded_pieces(F) == tautological_bundles(D)   # true

pushforward(X, structure_sheaf(D))            # R⁰ = E(0)

The pullback is only filtered: the unipotent radical of $\mathrm{P}_J$ acts on the fibre, so $q^*\mathcal{E}$ does not split. Its associated graded is the branching of the fibre from $\mathrm{L}_I$ to $\mathrm{L}_J$, and above it recovers the tautological filtration $0 \to \mathcal{U}_1 \to \mathcal{U}_3 \to \mathcal{U}_3/\mathcal{U}_1 \to 0$ on $\mathrm{Fl}(1,3;6)$, subbundle first.

The pushforward is the Borel–Weil–Bott theorem for $\mathrm{L}_I$ instead of for $\mathrm{G}$: the same $\rho$-shifted fold into a dominant chamber, reflecting only in the nodes unmarked in $I$. Taking $I = \emptyset$, so that the target is a point, gives back cohomology. Since $\mathbf{R}q_*$ of an irreducible sits in a single degree, the Leray spectral sequence degenerates, and that identity is what the tests check across every type.

What moved

0.x means the names are not frozen, and several changed in 0.3.0:

Two behaviours changed as well. Bundles now compare as unordered direct sums, a direct sum having no order. And a weight that is not dominant for the Levi is rejected when a bundle is constructed: it is the highest weight of nothing, and it used to be tolerated, then read as zero by some functions and pushed through Borel–Weil–Bott by others.

Trying it out

The package is not in the General registry, because one of its dependencies is not either, so that one comes first, and rev pins the release rather than tracking main:

using Pkg
Pkg.add(url="https://github.com/HomogeneousTools/ZeroLocus62", subdir="julia")
Pkg.add(url="https://github.com/HomogeneousTools/PartialFlagVarieties.jl",
        rev="ea4aa9e")   # v0.3.1

The documentation has the full API. Issues and suggestions on the repository remain very welcome, and still cheap to act on.