Beispiel #1
0
    def _second_gen_unramified(self):
        r"""
        Calculate the action of the matrix [0, -1; 1, 0] on the type space,
        in the unramified (even level) case.

        EXAMPLE::

            sage: from sage.modular.local_comp.type_space import example_type_space
            sage: T = example_type_space(2)
            sage: T._second_gen_unramified()
            [ 0  1 -2  1]
            [ 0  0 -1  0]
            [ 0 -1  0  0]
            [ 1 -2  1  0]
            sage: T._second_gen_unramified()**4 == 1
            True
        """
        f = self.prime()**self.u()
        g2 = lift_gen_to_gamma1(f, self.tame_level())

        g3 = [f * g2[0], g2[1], f**2 * g2[2], f * g2[3]]
        A = self.t_space.ambient()
        mm = A._action_on_modular_symbols(g3).restrict(
            self.t_space.free_module()).transpose()
        m = mm / ZZ(f**(self.form().weight() - 2))
        return m
Beispiel #2
0
    def _second_gen_unramified(self):
        r"""
        Calculate the action of the matrix [0, -1; 1, 0] on the type space,
        in the unramified (even level) case.

        EXAMPLE::

            sage: from sage.modular.local_comp.type_space import example_type_space
            sage: T = example_type_space(2)
            sage: T._second_gen_unramified()
            [ 0  1 -2  1]
            [ 0  0 -1  0]
            [ 0 -1  0  0]
            [ 1 -2  1  0]
            sage: T._second_gen_unramified()**4 == 1
            True
        """
        f = self.prime() ** self.u()
        g2 = lift_gen_to_gamma1(f, self.tame_level())
        
        g3 = [f * g2[0], g2[1], f**2 * g2[2], f*g2[3]]
        A = self.t_space.ambient()
        mm = A._action_on_modular_symbols(g3).restrict(self.t_space.free_module()).transpose()
        m = mm / ZZ(f**(self.form().weight()-2))
        return m