Some Special Ideals

This page is still in its development stage. Currently, it only contains the function below:

Grassmann Plücker Ideal

flag_pluecker_idealFunction
flag_pluecker_ideal(F::Union{Field, MPolyRing}, dimensions::Vector{Int},n::Int; minimal::Bool=true)

Returns the generators of the defining ideal for the complete flag variety $\text{Fl}(\mathbb{F}, (d_1,\dots,d_k), n)$, where $(d_1,\dots,d_k) =$dimensions, with $d_j\leq n-1$, denotes the rank. That is, the vanishing set of this ideal corresponds to the space of $k$-step flags of linear subspaces $V_1\subset\dots\subset V_k$ in $\mathbb{F}^n$, where $\text{dim}(V_j) = d_{j}$. You can obtain the generators for the $\emph{complete flag variety}$ of $\mathbb{F}^{n}$ by taking dimensions $=(1,\dots,n-1)$ and n$=n$. We remark that evaluating for F = QQ yields the same set of generators as any field of characteristic $0$.

The first parameter can either be $\mathbb{F}$, or a polynomial ring over $\mathbb{F}$, with $\Sum^{k}_{j=1}{n\choose d_{j}$ variables. The parameter dimensions needs to be a vector of distinct increasing entries. Evaluating this function with the parameter minimal = true returns the reduced Gröbner basis for the flag Plücker ideal with respect to the degree reverse lexicographical order. For more details, see Theorem 14.6 [MS05]

Examples

Complete flag variety $\text{Fl}(\mathbb{Q}, (1,2,3), 4)$.

julia> flag_pluecker_ideal(QQ,[1,2,3],4)
Ideal generated by
  x[[2, 4]]*x[[1, 2, 3]] - x[[2, 3]]*x[[1, 2, 4]] + x[[1, 2]]*x[[2, 3, 4]]
  x[[1, 4]]*x[[1, 2, 3]] - x[[1, 3]]*x[[1, 2, 4]] + x[[1, 2]]*x[[1, 3, 4]]
  -x[[3, 4]]*x[[1, 2, 3]] - x[[1, 3]]*x[[2, 3, 4]] + x[[2, 3]]*x[[1, 3, 4]]
  -x[[1, 4]]*x[[2, 3, 4]] + x[[2, 4]]*x[[1, 3, 4]] - x[[3, 4]]*x[[1, 2, 4]]
  -x[[1]]*x[[2, 3, 4]] + x[[2]]*x[[1, 3, 4]] - x[[3]]*x[[1, 2, 4]] + x[[4]]*x[[1, 2, 3]]
  -x[[1, 4]]*x[[2, 3]] + x[[2, 4]]*x[[1, 3]] - x[[3, 4]]*x[[1, 2]]
  -x[[1]]*x[[2, 3]] + x[[2]]*x[[1, 3]] - x[[3]]*x[[1, 2]]
  -x[[2]]*x[[3, 4]] + x[[3]]*x[[2, 4]] - x[[4]]*x[[2, 3]]
  -x[[1]]*x[[3, 4]] + x[[3]]*x[[1, 4]] - x[[4]]*x[[1, 3]]
  -x[[1]]*x[[2, 4]] + x[[2]]*x[[1, 4]] - x[[4]]*x[[1, 2]]

Flag variety $\text{Fl}(\mathbb{Q},(1,3),4)$.

julia> flag_pluecker_ideal(QQ,[1,3],4)
Ideal generated by
  -x[[1]]*x[[2, 3, 4]] + x[[2]]*x[[1, 3, 4]] - x[[3]]*x[[1, 2, 4]] + x[[4]]*x[[1, 2, 3]]

An example with a custom ring as input.

julia> R, _ = polynomial_ring(QQ, 8)
(Multivariate polynomial ring in 8 variables over QQ, QQMPolyRingElem[x1, x2, x3, x4, x5, x6, x7, x8])

julia> flag_pluecker_ideal(R, [1,3], 4; minimal=false)
Ideal generated by
  x1*x6 - x2*x5 + x3*x7 - x4*x8
source
grassmann_pluecker_idealFunction
grassmann_pluecker_ideal([ring::MPolyRing,] subspace_dimension::Int, ambient_dimension::Int)

Given a ring, an ambient dimension and a subspace dimension return the ideal in the given ring generated by the Plücker relations. If the ring is not specified return the ideal in a multivariate polynomial ring over the rationals.

The Grassmann-Plücker ideal is the homogeneous ideal generated by the relations defined by the Plücker Embedding of the Grassmannian. That is given Gr$(k, n)$ the Moduli space of all $k$-dimensional subspaces of an $n$-dimensional vector space, the relations are given by all $d \times d$ minors of a $d \times n$ matrix. For the algorithm see [Stu93].

Examples

julia> grassmann_pluecker_ideal(2, 4)
Ideal generated by
  x[1]*x[6] - x[2]*x[5] + x[3]*x[4]

julia> R, x = polynomial_ring(residue_ring(ZZ, 7)[1], "x" => (1:2, 1:3))
(Multivariate polynomial ring in 6 variables over ZZ/(7), zzModMPolyRingElem[x[1, 1] x[1, 2] x[1, 3]; x[2, 1] x[2, 2] x[2, 3]])

julia> grassmann_pluecker_ideal(R, 2, 4)
Ideal generated by
  x[1, 1]*x[2, 3] + 6*x[2, 1]*x[1, 3] + x[1, 2]*x[2, 2]
source

Contact

Please direct questions about this part of OSCAR to the following people:

You can ask questions in the OSCAR Slack.

Alternatively, you can raise an issue on github.