Modular forms #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file defines modular forms and proves some basic properties about them.
We begin by defining modular forms and cusp forms as extension of slash_invariant_forms
then we
define the space of modular forms, cusp forms and prove that the product of two modular forms is a
modular form.
- to_fun : upper_half_plane → ℂ
- slash_action_eq' : ∀ (γ : ↥Γ), slash_action.map ℂ k γ self.to_fun = self.to_fun
- holo' : mdifferentiable (model_with_corners_self ℂ ℂ) (model_with_corners_self ℂ ℂ) self.to_fun
- bdd_at_infty' : ∀ (A : matrix.special_linear_group (fin 2) ℤ), upper_half_plane.is_bounded_at_im_infty (slash_action.map ℂ k A self.to_fun)
These are slash_invariant_form
's that are holomophic and bounded at infinity.
Instances for modular_form
The slash_invariant_form
associated to a modular_form
.
The slash_invariant_form
associated to a cusp_form
.
- to_fun : upper_half_plane → ℂ
- slash_action_eq' : ∀ (γ : ↥Γ), slash_action.map ℂ k γ self.to_fun = self.to_fun
- holo' : mdifferentiable (model_with_corners_self ℂ ℂ) (model_with_corners_self ℂ ℂ) self.to_fun
- zero_at_infty' : ∀ (A : matrix.special_linear_group (fin 2) ℤ), upper_half_plane.is_zero_at_im_infty (slash_action.map ℂ k A self.to_fun)
These are slash_invariant_form
s that are holomophic and zero at infinity.
Instances for cusp_form
- coe : F → Π (a : upper_half_plane), (λ (_x : upper_half_plane), ℂ) a
- coe_injective' : function.injective (modular_form_class.coe Γ k)
- slash_action_eq : ∀ (f : F) (γ : ↥Γ), slash_action.map ℂ k γ ⇑f = ⇑f
- holo : ∀ (f : F), mdifferentiable (model_with_corners_self ℂ ℂ) (model_with_corners_self ℂ ℂ) ⇑f
- bdd_at_infty : ∀ (f : F) (A : matrix.special_linear_group (fin 2) ℤ), upper_half_plane.is_bounded_at_im_infty (slash_action.map ℂ k A ⇑f)
modular_form_class F Γ k
says that F
is a type of bundled functions that extend
slash_invariant_form_class
by requiring that the functions be holomorphic and bounded
at infinity.
Instances of this typeclass
Instances of other typeclasses for modular_form_class
- modular_form_class.has_sizeof_inst
- coe : F → Π (a : upper_half_plane), (λ (_x : upper_half_plane), ℂ) a
- coe_injective' : function.injective (cusp_form_class.coe Γ k)
- slash_action_eq : ∀ (f : F) (γ : ↥Γ), slash_action.map ℂ k γ ⇑f = ⇑f
- holo : ∀ (f : F), mdifferentiable (model_with_corners_self ℂ ℂ) (model_with_corners_self ℂ ℂ) ⇑f
- zero_at_infty : ∀ (f : F) (A : matrix.special_linear_group (fin 2) ℤ), upper_half_plane.is_zero_at_im_infty (slash_action.map ℂ k A ⇑f)
cusp_form_class F Γ k
says that F
is a type of bundled functions that extend
slash_invariant_form_class
by requiring that the functions be holomorphic and zero
at infinity.
Instances of this typeclass
Instances of other typeclasses for cusp_form_class
- cusp_form_class.has_sizeof_inst
Equations
- modular_form_class.modular_form Γ k = {coe := modular_form.to_fun k, coe_injective' := _, slash_action_eq := _, holo := _, bdd_at_infty := _}
Equations
- cusp_form_class.cusp_form Γ k = {coe := cusp_form.to_fun k, coe_injective' := _, slash_action_eq := _, holo := _, zero_at_infty := _}
Copy of a modular_form
with a new to_fun
equal to the old one. Useful to fix
definitional equalities.
Equations
- f.copy f' h = {to_fun := f', slash_action_eq' := _, holo' := _, bdd_at_infty' := _}
Copy of a cusp_form
with a new to_fun
equal to the old one. Useful to fix
definitional equalities.
Equations
- f.copy f' h = {to_fun := f', slash_action_eq' := _, holo' := _, zero_at_infty' := _}
Equations
- modular_form.has_add = {add := λ (f g : modular_form Γ k), {to_fun := (↑f + ↑g).to_fun, slash_action_eq' := _, holo' := _, bdd_at_infty' := _}}
Equations
- modular_form.has_zero = {zero := {to_fun := 0.to_fun, slash_action_eq' := _, holo' := _, bdd_at_infty' := _}}
Equations
- modular_form.has_smul = {smul := λ (c : α) (f : modular_form Γ k), {to_fun := c • ⇑f, slash_action_eq' := _, holo' := _, bdd_at_infty' := _}}
Equations
- modular_form.has_neg = {neg := λ (f : modular_form Γ k), {to_fun := -⇑f, slash_action_eq' := _, holo' := _, bdd_at_infty' := _}}
Equations
- modular_form.has_sub = {sub := λ (f g : modular_form Γ k), f + -g}
Equations
- modular_form.add_comm_group = function.injective.add_comm_group coe_fn modular_form.add_comm_group._proof_3 modular_form.add_comm_group._proof_4 modular_form.coe_add modular_form.coe_neg modular_form.coe_sub modular_form.add_comm_group._proof_5 modular_form.add_comm_group._proof_6
Additive coercion from modular_form
to ℍ → ℂ
.
Equations
- modular_form.coe_hom = {to_fun := λ (f : modular_form Γ k), ⇑f, map_zero' := _, map_add' := _}
Equations
- modular_form.module = function.injective.module ℂ modular_form.coe_hom modular_form.module._proof_2 modular_form.module._proof_3
Equations
- modular_form.inhabited = {default := 0}
The modular form of weight k_1 + k_2
given by the product of two modular forms of weights
k_1
and k_2
.
Equations
- f.mul g = {to_fun := ⇑f * ⇑g, slash_action_eq' := _, holo' := _, bdd_at_infty' := _}
Equations
- modular_form.has_one = {one := {to_fun := 1.to_fun, slash_action_eq' := _, holo' := _, bdd_at_infty' := _}}
Equations
- cusp_form.has_add = {add := λ (f g : cusp_form Γ k), {to_fun := ⇑f + ⇑g, slash_action_eq' := _, holo' := _, zero_at_infty' := _}}
Equations
- cusp_form.has_zero = {zero := {to_fun := 0, slash_action_eq' := _, holo' := cusp_form.has_zero._proof_2, zero_at_infty' := _}}
Equations
- cusp_form.has_smul = {smul := λ (c : α) (f : cusp_form Γ k), {to_fun := c • ⇑f, slash_action_eq' := _, holo' := _, zero_at_infty' := _}}
Equations
- cusp_form.has_neg = {neg := λ (f : cusp_form Γ k), {to_fun := -⇑f, slash_action_eq' := _, holo' := _, zero_at_infty' := _}}
Equations
- cusp_form.add_comm_group = function.injective.add_comm_group coe_fn cusp_form.add_comm_group._proof_3 cusp_form.add_comm_group._proof_4 cusp_form.coe_add cusp_form.coe_neg cusp_form.coe_sub cusp_form.add_comm_group._proof_5 cusp_form.add_comm_group._proof_6
Equations
- cusp_form.module = function.injective.module ℂ cusp_form.coe_hom cusp_form.module._proof_2 cusp_form.module._proof_3
Equations
- cusp_form.inhabited = {default := 0}
Equations
- cusp_form.modular_form_class = {coe := fun_like.coe (slash_invariant_form_class.to_fun_like F Γ k), coe_injective' := _, slash_action_eq := _, holo := _, bdd_at_infty := _}