#10529: dimension() and is_smooth() for algebraic subschemes of toric varieties
----------------------------------+-----------------------------------------
Reporter: vbraun | Owner: AlexGhitza
Type: enhancement | Status: needs_review
Priority: major | Milestone: sage-4.6.2
Component: algebraic geometry | Keywords:
Author: Volker Braun | Upstream: N/A
Reviewer: Andrey Novoseltsev | Merged:
Work_issues: |
----------------------------------+-----------------------------------------
Description changed by vbraun:
Old description:
> The purpose of this ticket is to implement `dimension()` and a
> `is_smooth()` method for algebraic subschemes of toric varieties, that
> is, not necessarily complete intersection subschemes.
>
> This patch does not yet deal properly with singular ambient toric
> varieties. This will be implemented in a different ticket since this part
> has further dependencies.
>
> This ticket is broken down into the following individual patches:
>
> 1. `trac_10529_toric_variety_library_names.patch`
>
> This adds optional `names="..."` parameters to `ToricVarietyFactory` (the
> class of the `toric_varieties` object) and to `ToricVariety` and
> `CPRFanoToricVariety` in order to allow you to declare the names of the
> homogeneous variables as
> {{{
> sage: P2.<x,y,z> =
> CPRFanoToricVariety(Delta_polar=ReflexivePolytope(3,0))
> sage: dP6.<x0,x1,x2,x3,x4,x5> = toric_varieties.dP6()
> }}}
>
> 2. `trac_10529_MPolynomialIdeal_subs.patch`
>
> This fixes `subs()` for ideals in multivariate polynomial rings. This is
> currently a noop:
> {{{
> sage: R.<x,y> = PolynomialRing(QQ)
> sage: I = R.ideal(x)
> sage: I
> Ideal (x) of Multivariate Polynomial Ring in x, y over Rational Field
> sage: I.subs(x=y)
> Ideal (x) of Multivariate Polynomial Ring in x, y over Rational Field
> }}}
> With this patch, the output is
> {{{
> sage: I.subs(x=y)
> Ideal (y) of Multivariate Polynomial Ring in x, y over Rational Field
> }}}
>
> 3. `trac_10529_QuotientRingElement_call.patch`
>
> This hands `QuotientRingElement.__call__` down to the `lift()`:
> {{{
> sage: R.<x,y> = PolynomialRing(QQ)
> sage: (x^2+y)(1,1)
> 2
> sage: Q.<xbar,ybar> = R.quotient(x-y)
> sage: (xbar^2+ybar)(1,1)
> ---------------------------------------------------------------------------
> TypeError Traceback (most recent call
> last)
>
> /home/vbraun/opt/sage-4.6.1.rc0/devel/sage-main/<ipython console> in
> <module>()
>
> TypeError: 'QuotientRingElement' object is not callable
> }}}
> becomes
> {{{
> sage: (xbar^2+ybar)(1,1)
> 2
> }}}
>
>
> 4. `trac_10529_SubschemeMorphisms_without_QuotientRing.patch`
>
> Without this patch, morphisms to algebraic subschemes involve the
> `coordinate_ring()` of the subscheme, a quotient ring:
> {{{
> sage: A2.<x,y> = AffineSpace(QQ,2)
> sage: X=A2.subscheme(x)
> sage: Y=A2.subscheme(y)
> sage: X.hom([y,x],Y)
> Scheme morphism:
> From: Closed subscheme of Affine Space of dimension 2 over Rational
> Field defined by:
> x
> To: Closed subscheme of Affine Space of dimension 2 over Rational
> Field defined by:
> y
> Defn: Defined on coordinates by sending (x, y) to
> (ybar, 0)
> }}}
> This patch uses the polynomial ring of the ambient space instead. This is
> mathematically equivalent, but much more convenient for polynomial
> computations.
> {{{
> sage: sage: X.hom([y,x],Y)
> Scheme morphism:
> From: Closed subscheme of Affine Space of dimension 2 over Rational
> Field defined by:
> x
> To: Closed subscheme of Affine Space of dimension 2 over Rational
> Field defined by:
> y
> Defn: Defined on coordinates by sending (x, y) to
> (y, 0)
> }}}
>
> 5. `trac_10529_smoothness_of_algebraic_subschemes.patch`
>
> Finally implements `dimension()` for subschemes of toric varieties and
> `is_smooth()` for all algebraic subschemes.
New description:
The purpose of this ticket is to implement `dimension()` and a
`is_smooth()` method for algebraic subschemes of toric varieties, that is,
not necessarily complete intersection subschemes.
This patch does not yet deal properly with singular ambient toric
varieties. This will be implemented in a different ticket since this part
has further dependencies.
This ticket is broken down into the following individual patches:
1. `trac_10529_toric_variety_library_names.patch`
This adds optional `names="..."` parameters to `ToricVarietyFactory` (the
class of the `toric_varieties` object) and to `ToricVariety` and
`CPRFanoToricVariety` in order to allow you to declare the names of the
homogeneous variables as
{{{
sage: P2.<x,y,z> = CPRFanoToricVariety(Delta_polar=ReflexivePolytope(3,0))
sage: dP6.<x0,x1,x2,x3,x4,x5> = toric_varieties.dP6()
}}}
2. `trac_10529_MPolynomialIdeal_subs.patch`
This fixes `subs()` for ideals in multivariate polynomial rings. This is
currently a noop:
{{{
sage: R.<x,y> = PolynomialRing(QQ)
sage: I = R.ideal(x)
sage: I
Ideal (x) of Multivariate Polynomial Ring in x, y over Rational Field
sage: I.subs(x=y)
Ideal (x) of Multivariate Polynomial Ring in x, y over Rational Field
}}}
With this patch, the output is
{{{
sage: I.subs(x=y)
Ideal (y) of Multivariate Polynomial Ring in x, y over Rational Field
}}}
3. `trac_10529_QuotientRingElement_call.patch`
This hands `QuotientRingElement.__call__` down to the `lift()`:
{{{
sage: R.<x,y> = PolynomialRing(QQ)
sage: (x^2+y)(1,1)
2
sage: Q.<xbar,ybar> = R.quotient(x-y)
sage: (xbar^2+ybar)(1,1)
---------------------------------------------------------------------------
TypeError Traceback (most recent call
last)
/home/vbraun/opt/sage-4.6.1.rc0/devel/sage-main/<ipython console> in
<module>()
TypeError: 'QuotientRingElement' object is not callable
}}}
becomes
{{{
sage: (xbar^2+ybar)(1,1)
2
}}}
4. `trac_10529_SubschemeMorphisms_without_QuotientRing.patch`
Without this patch, morphisms to algebraic subschemes involve the
`coordinate_ring()` of the subscheme, a quotient ring:
{{{
sage: A2.<x,y> = AffineSpace(QQ,2)
sage: X=A2.subscheme(x)
sage: Y=A2.subscheme(y)
sage: X.hom([y,x],Y)
Scheme morphism:
From: Closed subscheme of Affine Space of dimension 2 over Rational
Field defined by:
x
To: Closed subscheme of Affine Space of dimension 2 over Rational
Field defined by:
y
Defn: Defined on coordinates by sending (x, y) to
(ybar, 0)
}}}
This patch uses the polynomial ring of the ambient space instead. This is
mathematically equivalent, but much more convenient for polynomial
computations.
{{{
sage: sage: X.hom([y,x],Y)
Scheme morphism:
From: Closed subscheme of Affine Space of dimension 2 over Rational
Field defined by:
x
To: Closed subscheme of Affine Space of dimension 2 over Rational
Field defined by:
y
Defn: Defined on coordinates by sending (x, y) to
(y, 0)
}}}
5. `trac_10529_smoothness_of_algebraic_subschemes.patch`
Finally implements `dimension()` for subschemes of toric varieties and
`is_smooth()` for all algebraic subschemes.
Apply trac_10529_toric_variety_library_names.patch,
trac_10529_MPolynomialIdeal_subs.patch,
trac_10529_QuotientRingElement_call.patch,
trac_10529_SubschemeMorphisms_without_QuotientRing.patch,
trac_10529_smoothness_of_algebraic_subschemes.patch
Depends on #10525
--
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/10529#comment:10>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.