#9972: Add toric lattice morphisms
----------------------------------+-----------------------------------------
Reporter: novoselt | Owner: mhampton
Type: enhancement | Status: needs_info
Priority: major | Milestone: sage-4.6
Component: geometry | Keywords:
Author: Andrey Novoseltsev | Upstream: N/A
Reviewer: Volker Braun | Merged:
Work_issues: |
----------------------------------+-----------------------------------------
Comment(by vbraun):
Replying to [comment:5 novoselt]:
> "it is a morphism between toric lattices with distinguished fans in the
domain and codomain which are compatible with this morphism."
Yes, that is the usual definition. No restriction on the support of the
underlying lattice map.
On an unrelated note, I would call "point" = "0-dimensional torus orbit" =
full-dimensional cone. A toric morphism maps points to potentially higher-
dimensional torus orbits. Though I do understand that you meant lattice
points.
I understand your issue about having multiple morphisms. But if the fans
don't know about the toric morphism then they shouldn't know about the
toric variety either, otherwise its confusing. So in principle I don't
mind getting rid of the `Cone_of_toric_variety` class. At least this
solves the dilemma `cone_of_variety.cohomology_class()` vs.
`variety.cohomology_class(cone)`; since the cone doesn't know about the
variety only the latter can work. But instead of adding a
`cohomology_class` method, I'd rather have the `CohomologyRing` element
constructor accept cones:
{{{
sage: HH = X.cohomology_ring()
sage: HH( X.fan(2)[23] )
}}}
This pattern works already for the divisor group and Chow group:
{{{
sage: Div = X.divisor_group()
sage: Div( X.fan(1)[0] ) # output should have been V(z0)?!?
V(1-d cone of Rational polyhedral fan in 2-d lattice N)
sage: A = X.Chow_group()
sage: A( X.fan(1)[0] )
The Chow cycle (1, 0, 0)
}}}
> For this ticket I propose the following:
> 1. Rename `make_compatible_with` to `subdivide_domain`.
> 2. Add to `ToricLatticeMorphism` a method like `image_fan(domain_fan)`
to construct the "natural" fan in the codomain, as you have suggested.
If we can agree on a hierarchy `ToricLatticeMorphism` -> `FanMorphism` ->
`ToricMorphism` then `ToricLatticeMorphism` shouldn't know about fans at
all, if only to avoid circular imports. Similar to how `ToricLattice`
doesn't know about `Fan`. So `make_compatible_with` and `image_fan` become
special cases of the `FanMorphism` constructor.
And instead of an `is_compatible_with` method, why not have
`FanMorphism(matrix,fan1,fan2)` raise `ValueError, "Cone <3,4,5> is not
contained in any image cone"`.
> 3. Add `FanMorphism(ToricLatticeMorphism)` which mathematically is what
I have said above, will live in the same Hom-space as lattice morphisms,
and will behave in the same way (including `domain` and `codomain`
returning toric lattices), except that it also has `domain_fan` and
`codomain_fan` methods returning fans which are guaranteed to be
compatible with the morphism. It also has `image_cone` and
`preimage_cones`, results are cached (perhaps it is more efficient to
compute them at once for all cones or even do it during compatibility
check).
Yes, sounds good!
> 4. Cones of fans also get `image_cone` and `preimage_cones` methods
that take as an argument a `FanMorphism` with appropriate fans.
I'd rather have only `morphism(cone)` (or `morphism.image(cone)`) and
`morphism.preimages(cone)`.
> A follow-up ticket will add `ToricMorphism` for arbitrary scheme
morphisms between toric varieties and `ToricEquivariantMorphism` for those
coming from `FanMorphisms`.
I agree, but can we use, say, `AlgebraicMorphism` and `ToricMorphism`?
Toric should really always be replaceable with "torus-equivariant".
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/9972#comment:6>
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.