Some Special Ideals
This page is still in its development stage. Currently, it only contains the function below:
Grassmann Plücker Ideal
flag_pluecker_ideal
— Functionflag_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
grassmann_pluecker_ideal
— Functiongrassmann_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]
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.