edgarcosta / endomorphisms

Rigorous computation of the endomorphism ring of a Jacobian
GNU General Public License v2.0
10 stars 8 forks source link

Construct homomorphism from abstract endomorphism ring to representations #15

Open JRSijsling opened 5 years ago

JRSijsling commented 5 years ago

Return endomorphism ring as second value of HeuristicEndomorphismAlgebra.

JRSijsling commented 5 years ago

Actually, this exists already, as noted in the description of HeuristicEndomorphismAlgebra. Right now, if we put

> L = HeuristicEndomorphismAlgebra(X)

then L[1] is the algebra, L[2] the generators of the ring, and L[3] describes the algebra after tensoring with RR. So to get the ring (up to isomorphism) you just go

> A := L[1];
> B := [ A ! a : a in L[2] ];
> R := Order(Integers(), B); 
> R;
Order of Associative Algebra of dimension 4 with base ring Rational Field
with coefficient ring Integer Ring

It is also possible to get the ring as matrices, but that is not currently accessible as a button. So:

(1) What should we call the function? I think that the current name makes sense instead of having three separate functions, but I am open to suggestions.

(2) Should we add the actual homology generators as 2g x 2g matrices?

jvoight commented 5 years ago

Aha!

So for the above, I got

Parent(L[2][2]); Associative Algebra of dimension 2 with base ring Rational Field

and then I was confused because it looks like these are generators for the algebra, not the ring. My mistake.

But why would you mix the algebra and the ring under the same function?

(1) Why not HeuristicEndomorphismRing, and you return the order and generators as above? (Wouldn't it make sense to post-process to simplify the generators of the algebra? Most humans will want their button to return something like QQ x QQ or a CM field or a quaternion algebra or something recognizable, even though for the ring they may want something more refined. Right?)

(2) For me, the two ring homomorphisms given by the tangent rep (in M_g(K), or Mg(CC) if we you think the former will possibly too expensive) and analytic rep (in M{2g}(ZZ)) are crucial for a total understanding. Like if you want to understand the kernels. How hard would it be to add them as functions as well?

JRSijsling commented 5 years ago

(1) OK, that makes sense. I guess we could add the result of tensoring with RR to the Algebra version and have the Ring version return everything.

Post-processing is an option. I just do not know how to make QQ x QQ any more accessible than it is now. Right now at least there is a uniform structure AlgAss that comes out.

(2) This is not at all hard on the level of generators. It is in fact already there. On the other hand, I do not know how to make a morphism on the level of algebras, which I kind of what since we want everything that gets chopped up well as an AlgAss to be quickly transferable. I will try. In a pinch, there is a silly option, namely to write everything as Eltseqs and write some dedicated function to transfer using that.

JRSijsling commented 5 years ago

Right now we have this: (1) This is returned by HeuristicEndomorphismRing. (2) This is returned via HeuristicEndomorphismRepresentation. No post-processing yet, and no arrows between these notions. This could be a small programming project for someone who is interested in these algorithms.

jvoight commented 5 years ago

Great! What is the question? Or are you ready to close this issue?

JRSijsling commented 5 years ago

Yes, or to keep it open as a project.

jvoight commented 5 years ago

Maybe open a new issue, make it a feature request, but with a more descriptive title? (I don't seem to have the power to do this...)

JRSijsling commented 5 years ago

Changed title and updated description. The current goal is to create a homomorphism between the results of HeuristicEndomorphismRing and HeuristicEndomorphismRepresentation.