#11200: Add fibration check to FanMorphism
----------------------------+-----------------------------------------------
Reporter: novoselt | Owner: mhampton
Type: enhancement | Status: needs_info
Priority: major | Milestone: sage-4.7.1
Component: geometry | Keywords: toric
Work_issues: | Upstream: N/A
Reviewer: Volker Braun | Author: Andrey Novoseltsev
Merged: | Dependencies: #10140, #10882
----------------------------+-----------------------------------------------
Comment(by novoselt):
Yes, `phi.index(sigma)` is the way to go, I think, but having these
indices equal to 1 is not enough (and they are all 1 if the linear map has
index one in its image saturation). We also need "relative stars" to be
trivial, so that in the notation of Proposition 2.1.4 in HLY
`\tld{O}_\sigma` is a 1-to-1 cover and `F_\sigma^c` is a singleton.
Going back to names, I will try to be more careful in the future with
checking inherited methods, but it seems to me now that
* `kernel_lattice` should be removed since `kernel` computes exactly the
same thing using generic code.
* `image_lattice` should not be implemented since
`phi.image().saturation()` does what I want and plane `image()` is also of
interest in the toric setting. (Currently, saturation will not return a
toric sublattice, but it is easy to fix.)
For the factoring of the fan morphism `phi: Sigma ---> Sigma'` we (always)
have the following sequence of fan maps:
{{{
Sigma0 --0--> Sigma --1--> Sigma1 --2--> Sigma2 --3--> Sigma'
}}}
where `Sigma0` is the kernel fan, `Sigma1` is `phi(Sigma)` living in
`phi(N_RR) \cap N'`, and `Sigma2` is `phi(N_RR) \cap Sigma'`. Map 1 is
easy to construct as
{{{
FanMorphism(phi.matrix(), phi.domain_fan(), phi.image().saturation())
}}}
Maps 2 and 3 are basically given by identity matrix but there is currently
no "one line way" to construct `Sigma2` which I want to add. Now what I
was referring to, is that both `Sigma1` and `Sigma2` are natural
candidates to be called `image_fan` since they are fans in the image of
`phi` and perhaps `Sigma1` is more natural since it is literally the image
fan of `Sigma` under `phi`.
Since "general" restrictions of `phi` to other fans can be easily done
using `FanMorphism` constructor directly, I am not sure there is any need
in adding special methods to restrict (co)domain to a provided fan. So I
think I am in favor of adding only, say, `restrict_to_image()` with no
arguments which will be the composition of maps 1 and 2 in the diagram.
The main job of this function will be, of course, efficient construction
of `Sigma2` and once it is done all maps of the sequence can be easily
constructed if needed.
Summary of the proposal:
1. remove `kernel_lattice` and use inherited `kernel` instead;
1. tweak `saturation` to make `phi.image().saturation()` to return a
toric sublattice;
1. add `restrict_to_image` returning the map `Sigma ---> Sigma2`;
1. let `phi.index(sigma)` take a cone as an argument and return its index
in the sense of HLY.
Sounds good?
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11200#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.