Isn't what you're asking for *exactly* the same thing as the
intersection_number method for modular symbols spaces?
sage: H = ModularSymbols(43).cuspidal_subspace()
sage: D = H.decomposition(); D
[
Modular Symbols subspace of dimension 2 of Modular Symbols space of
dimension 7 for Gamma_0(43) of weight 2 with sign 0 over Rational
Field,
Modular Symbols subspace of dimension 4 of Modular Symbols space of
dimension 7 for Gamma_0(43) of weight 2 with sign 0 over Rational
Field
]
sage: D[0].intersection_number(D[1])
4
That computes the index of H[I_1] + H[I_2] in its saturation.
You could also easily modifying the command to get the group structure.
sage: H = ModularSymbols(54).cuspidal_subspace()
sage: D = H.decomposition(); D
[
Modular Symbols subspace of dimension 2 of Modular Symbols space of
dimension 19 for Gamma_0(54) of weight 2 with sign 0 over Rational
Field,
Modular Symbols subspace of dimension 2 of Modular Symbols space of
dimension 19 for Gamma_0(54) of weight 2 with sign 0 over Rational
Field,
Modular Symbols subspace of dimension 4 of Modular Symbols space of
dimension 19 for Gamma_0(54) of weight 2 with sign 0 over Rational
Field
]
sage: D[0].intersection_number(D[2])
9
sage: D[0].congruence_number(D[2])
3
William
> My student Randy Heaton is working on this problem, and may discuss it
> with some of you before I arrive. If there is enough interest, I can
> give an informal talk on Wednesday.
>
> Looking forward to seeing everyone soon,
>
> Amod
>
>
--
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org
Isn't what you're asking for *exactly* the same thing as the
intersection_number method for modular symbols spaces?
Check out this function I posted here. It might be the ultimate
solution to your problem (?):
http://trac.sagemath.org/sage_trac/ticket/6931
William