I'm interested in implementing Weil restriction (restriction of scalars) 
for affine schemes. I see from #5569, that there is an implementation for 
ideals. I'd like to extend this to affine schemes/points/morphisms. There 
is also an aborted attempt of Weil restriction for projective models of 
elliptic curves #13266 that does not seem to be going anywhere.

While the code for the restriction for each of these (affine) objects is 
not difficult, this seems like something that should be implemented as a 
functor as you'd like the resulting schemes/points/morphisms to all play 
nicely together. However, I know little about functors in Sage. I've looked 
around in the code a little bit hoping to find an example where something 
like this was done before, but I'm having some trouble. I see where Spec is 
implemented as a functor, but I'm not sure that is helpful. I've also seen 
the documentation about which functions a new functor class should 
override. I'm sure I'm going to get this wrong, but as a place to start 
this discussion would an implementation look something like this

1) create a new functor class WeilRestrictionAffineFunctor which implements
_coerce_into_domain(self, x)
_apply_functor(self, x)
_apply_functor_to_morphism(self, f)

although it doesn't seem like any of these three would apply to the points 
of the affine scheme.

2) Given an affine scheme A and a morphism f:A -> A, have the methods 
A.weil_restriction() and f.weil_restriction() call the functor so that 
domains/codomains all match-up nicely? For example, I'd like something like 
this to work

sage: K.<w>=QuadraticField(3)
sage: A.<x,y>=AffineSpace(K,2)
sage: X=A.subscheme([y^2-x^2])
sage: H=End(X)
sage: f=H([y,x])
sage: P=X(-1,1)
sage: f(P).weil_restriction() == f.weil_restriction(P.weil_restriction())
True


I'm sure I could make this work manually by caching the weil_restriction of 
a scheme so that a new one is only created when it doesn't already exist 
(like 'homogenize' does) but, at least mathematically, this really should 
be a functor. I guess my first question is then: Is a functor the 'right' 
choice for implementation of Weil restriction in Sage? If yes, is there 
anywhere else in Sage something like this is done from which I can base 
this new functionality?

Thanks,
  Ben

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to