pub struct CSMClass {
pub coefficients: BTreeMap<Partition, i64>,
pub grassmannian: (usize, usize),
}Expand description
CSM class of a constructible set, expanded in the Schubert basis of a Grassmannian.
c_SM(Z) = Σ_λ a_λ · σ_λwhere a_λ are integer coefficients.
Fields§
§coefficients: BTreeMap<Partition, i64>Expansion coefficients in the Schubert basis: partition → coefficient
grassmannian: (usize, usize)Grassmannian parameters
Implementations§
Source§impl CSMClass
impl CSMClass
Sourcepub fn of_schubert_cell(
partition: &[usize],
grassmannian: (usize, usize),
) -> Self
pub fn of_schubert_cell( partition: &[usize], grassmannian: (usize, usize), ) -> Self
CSM class of a Schubert cell Ω°_λ in Gr(k, n).
For a Schubert cell (open stratum), the CSM class is computed via inclusion-exclusion from the CSM classes of Schubert varieties:
c_SM(Ω°_λ) = Σ_{μ ≤ λ} (-1)^{|μ|-|λ|} c_SM(Ω_μ)For the top cell (empty partition), c_SM = σ_∅ = [Gr].
§Contract
requires: partition fits in k × (n-k) box
ensures: euler_characteristic() == 1 for any cellSourcepub fn of_schubert_variety(
partition: &[usize],
grassmannian: (usize, usize),
) -> Self
pub fn of_schubert_variety( partition: &[usize], grassmannian: (usize, usize), ) -> Self
CSM class of a Schubert variety Ω_λ (closure of the cell).
c_SM(Ω_λ) = Σ_{μ ≥ λ} c_SM(Ω°_μ)where the sum is over all partitions μ in the Bruhat order above λ.
§Contract
requires: partition fits in k × (n-k) box
ensures: result.coefficients is nonemptySourcepub fn euler_characteristic(&self) -> i64
pub fn euler_characteristic(&self) -> i64
Euler characteristic: the degree of the CSM class.
Equal to the coefficient of the point class σ_{m^k} (fundamental class of the Grassmannian).
§Contract
ensures: for a Schubert cell, result == 1Sourcepub fn csm_intersection(&self, other: &CSMClass) -> CSMClass
pub fn csm_intersection(&self, other: &CSMClass) -> CSMClass
Multiply two CSM classes via the intersection pairing.
Uses Littlewood-Richardson coefficients to expand the product in the Schubert basis.
§Contract
requires: self.grassmannian == other.grassmannian
ensures: result is the product in the Schubert basis ring