File: Mathlib/MeasureTheory/Integral/TorusIntegral.lean

full_name: term__ⁿ⁺¹._@.Mathlib.MeasureTheory.Integral.TorusIntegral._hyg.21
code: macro:arg t:term:max noWs "ⁿ⁺¹" : term => `(Fin (n + 1) → $t)
goal: Lean.TrailingParserDescr

full_name: «_aux_Mathlib_MeasureTheory_Integral_TorusIntegral___macroRules_term__ⁿ⁺¹_1»
code: macro:arg t:term:max noWs "ⁿ⁺¹" : term => `(Fin (n + 1) → $t)
goal: Lean.Macro

full_name: term__ⁿ._@.Mathlib.MeasureTheory.Integral.TorusIntegral._hyg.304
code: macro:arg t:term:max noWs "ⁿ" : term => `(Fin n → $t)
goal: Lean.TrailingParserDescr

full_name: «_aux_Mathlib_MeasureTheory_Integral_TorusIntegral___macroRules_term__ⁿ_1»
code: macro:arg t:term:max noWs "ⁿ" : term => `(Fin n → $t)
goal: Lean.Macro

full_name: «_aux_Mathlib_MeasureTheory_Integral_TorusIntegral___macroRules_term__⁰_1»
code: macro:arg t:term:max noWs "⁰" : term => `(Fin 0 → $t)
goal: Lean.Macro

full_name: term__⁰._@.Mathlib.MeasureTheory.Integral.TorusIntegral._hyg.566
code: macro:arg t:term:max noWs "⁰" : term => `(Fin 0 → $t)
goal: Lean.TrailingParserDescr

full_name: term__¹._@.Mathlib.MeasureTheory.Integral.TorusIntegral._hyg.803
code: macro:arg t:term:max noWs "¹" : term => `(Fin 1 → $t)
goal: Lean.TrailingParserDescr

full_name: «_aux_Mathlib_MeasureTheory_Integral_TorusIntegral___macroRules_term__¹_1»
code: macro:arg t:term:max noWs "¹" : term => `(Fin 1 → $t)
goal: Lean.Macro

full_name: torusMap
code: /-- The n dimensional exponential map $θ_i ↦ c + R e^{θ_i*I}, θ ∈ ℝⁿ$ representing
a torus in `ℂⁿ` with center `c ∈ ℂⁿ` and generalized radius `R ∈ ℝⁿ`, so we can adjust
it to every n axis. -/
def torusMap (c : ℂⁿ) (R : ℝⁿ) : ℝⁿ → ℂⁿ 
goal: (Fin n → ℝ) → Fin n → ℂ

full_name: torusMap_sub_center
code: theorem torusMap_sub_center (c : ℂⁿ) (R : ℝⁿ) (θ : ℝⁿ) : torusMap c R θ - c = torusMap 0 R θ 
goal: torusMap c R θ - c = torusMap 0 R θ

full_name: torusMap_eq_center_iff
code: theorem torusMap_eq_center_iff {c : ℂⁿ} {R : ℝⁿ} {θ : ℝⁿ} : torusMap c R θ = c ↔ R = 0 
goal: torusMap c R θ = c ↔ R = 0

full_name: torusMap_zero_radius
code: @[simp]
theorem torusMap_zero_radius (c : ℂⁿ) : torusMap c 0 = const ℝⁿ c 
goal: torusMap c 0 = Function.const (Fin n → ℝ) c

full_name: TorusIntegrable
code: /-- A function `f : ℂⁿ → E` is integrable on the generalized torus if the function
`f ∘ torusMap c R θ` is integrable on `Icc (0 : ℝⁿ) (fun _ ↦ 2 * π)`. -/
def TorusIntegrable (f : ℂⁿ → E) (c : ℂⁿ) (R : ℝⁿ) : Prop 
goal: Prop

full_name: TorusIntegrable.torusIntegrable_const
code: /-- Constant functions are torus integrable -/
theorem torusIntegrable_const (a : E) (c : ℂⁿ) (R : ℝⁿ) : TorusIntegrable (fun _ => a) c R 
goal: TorusIntegrable (fun x => a) c R

full_name: TorusIntegrable.neg
code: /-- If `f` is torus integrable then `-f` is torus integrable. -/
protected nonrec theorem neg (hf : TorusIntegrable f c R) : TorusIntegrable (-f) c R 
goal: TorusIntegrable (-f) c R

full_name: TorusIntegrable.add
code: /-- If `f` and `g` are two torus integrable functions, then so is `f + g`. -/
protected nonrec theorem add (hf : TorusIntegrable f c R) (hg : TorusIntegrable g c R) :
    TorusIntegrable (f + g) c R 
goal: TorusIntegrable (f + g) c R

full_name: TorusIntegrable.sub
code: /-- If `f` and `g` are two torus integrable functions, then so is `f - g`. -/
protected nonrec theorem sub (hf : TorusIntegrable f c R) (hg : TorusIntegrable g c R) :
    TorusIntegrable (f - g) c R 
goal: TorusIntegrable (f - g) c R

full_name: TorusIntegrable.torusIntegrable_zero_radius
code: theorem torusIntegrable_zero_radius {f : ℂⁿ → E} {c : ℂⁿ} : TorusIntegrable f c 0 
goal: TorusIntegrable f c 0

full_name: TorusIntegrable.function_integrable
code: /-- The function given in the definition of `torusIntegral` is integrable. -/
theorem function_integrable [NormedSpace ℂ E] (hf : TorusIntegrable f c R) :
    IntegrableOn (fun θ : ℝⁿ => (∏ i, R i * exp (θ i * I) * I : ℂ) • f (torusMap c R θ))
      (Icc (0 : ℝⁿ) fun _ => 2 * π) volume 
goal: MeasureTheory.IntegrableOn (fun θ => (∏ i : Fin n, ↑(R i) * cexp (↑(θ i) * Complex.I) * Complex.I) • f (torusMap c R θ))
  (Set.Icc 0 fun x => 2 * π) MeasureTheory.volume

full_name: torusIntegral
code: /-- The integral over a generalized torus with center `c ∈ ℂⁿ` and radius `R ∈ ℝⁿ`, defined
as the `•`-product of the derivative of `torusMap` and `f (torusMap c R θ)`-/
def torusIntegral (f : ℂⁿ → E) (c : ℂⁿ) (R : ℝⁿ) 
goal: E

full_name: «_aux_Mathlib_MeasureTheory_Integral_TorusIntegral___macroRules_term∯_InT(_,_),__1»
code: @[inherit_doc torusIntegral]
notation3"∯ "(...)" in ""T("c", "R")"", "r:(scoped f => torusIntegral f c R) => r
goal: Lean.Macro

full_name: torusIntegral_radius_zero
code: theorem torusIntegral_radius_zero (hn : n ≠ 0) (f : ℂⁿ → E) (c : ℂⁿ) :
    (∯ x in T(c, 0), f x) = 0 
goal: (∯ (x : Fin n → ℂ) in T(c, 0), f x) = 0

full_name: torusIntegral_neg
code: theorem torusIntegral_neg (f : ℂⁿ → E) (c : ℂⁿ) (R : ℝⁿ) :
    (∯ x in T(c, R), -f x) = -∯ x in T(c, R), f x 
goal: (∯ (x : Fin n → ℂ) in T(c, R), -f x) = -∯ (x : Fin n → ℂ) in T(c, R), f x

full_name: torusIntegral_add
code: theorem torusIntegral_add (hf : TorusIntegrable f c R) (hg : TorusIntegrable g c R) :
    (∯ x in T(c, R), f x + g x) = (∯ x in T(c, R), f x) + ∯ x in T(c, R), g x 
goal: (∯ (x : Fin n → ℂ) in T(c, R), f x + g x) = (∯ (x : Fin n → ℂ) in T(c, R), f x) + ∯ (x : Fin n → ℂ) in T(c, R), g x

full_name: torusIntegral_sub
code: theorem torusIntegral_sub (hf : TorusIntegrable f c R) (hg : TorusIntegrable g c R) :
    (∯ x in T(c, R), f x - g x) = (∯ x in T(c, R), f x) - ∯ x in T(c, R), g x 
goal: (∯ (x : Fin n → ℂ) in T(c, R), f x - g x) = (∯ (x : Fin n → ℂ) in T(c, R), f x) - ∯ (x : Fin n → ℂ) in T(c, R), g x

full_name: torusIntegral_smul
code: theorem torusIntegral_smul {𝕜 : Type*} [RCLike 𝕜] [NormedSpace 𝕜 E] [SMulCommClass 𝕜 ℂ E] (a : 𝕜)
    (f : ℂⁿ → E) (c : ℂⁿ) (R : ℝⁿ) : (∯ x in T(c, R), a • f x) = a • ∯ x in T(c, R), f x 
goal: (∯ (x : Fin n → ℂ) in T(c, R), a • f x) = a • ∯ (x : Fin n → ℂ) in T(c, R), f x

full_name: torusIntegral_const_mul
code: theorem torusIntegral_const_mul (a : ℂ) (f : ℂⁿ → ℂ) (c : ℂⁿ) (R : ℝⁿ) :
    (∯ x in T(c, R), a * f x) = a * ∯ x in T(c, R), f x 
goal: (∯ (x : Fin n → ℂ) in T(c, R), a * f x) = a * ∯ (x : Fin n → ℂ) in T(c, R), f x

full_name: norm_torusIntegral_le_of_norm_le_const
code: /-- If for all `θ : ℝⁿ`, `‖f (torusMap c R θ)‖` is less than or equal to a constant `C : ℝ`, then
`‖∯ x in T(c, R), f x‖` is less than or equal to `(2 * π)^n * (∏ i, |R i|) * C`-/
theorem norm_torusIntegral_le_of_norm_le_const {C : ℝ} (hf : ∀ θ, ‖f (torusMap c R θ)‖ ≤ C) :
    ‖∯ x in T(c, R), f x‖ ≤ ((2 * π) ^ (n : ℕ) * ∏ i, |R i|) * C 
goal: ‖∯ (x : Fin n → ℂ) in T(c, R), f x‖ ≤ ((2 * π) ^ n * ∏ i : Fin n, |R i|) * C

full_name: torusIntegral_dim0
code: @[simp]
theorem torusIntegral_dim0 (f : ℂ⁰ → E) (c : ℂ⁰) (R : ℝ⁰) : (∯ x in T(c, R), f x) = f c 
goal: (∯ (x : Fin 0 → ℂ) in T(c, R), f x) = f c

full_name: torusIntegral_dim1
code: /-- In dimension one, `torusIntegral` is the same as `circleIntegral`
(up to the natural equivalence between `ℂ` and `Fin 1 → ℂ`). -/
theorem torusIntegral_dim1 (f : ℂ¹ → E) (c : ℂ¹) (R : ℝ¹) :
    (∯ x in T(c, R), f x) = ∮ z in C(c 0, R 0), f fun _ => z 
goal: (∯ (x : Fin 1 → ℂ) in T(c, R), f x) = ∮ (z : ℂ) in C(c 0, R 0), f fun x => z

full_name: torusIntegral_succAbove
code: /-- Recurrent formula for `torusIntegral`, see also `torusIntegral_succ`. -/
theorem torusIntegral_succAbove {f : ℂⁿ⁺¹ → E} {c : ℂⁿ⁺¹} {R : ℝⁿ⁺¹} (hf : TorusIntegrable f c R)
    (i : Fin (n + 1)) :
    (∯ x in T(c, R), f x) =
      ∮ x in C(c i, R i), ∯ y in T(c ∘ i.succAbove, R ∘ i.succAbove), f (i.insertNth x y) 
goal: (∯ (x : Fin (n + 1) → ℂ) in T(c, R), f x) =
  ∮ (x : ℂ) in C(c i, R i), ∯ (y : Fin n → ℂ) in T(c ∘ i.succAbove, R ∘ i.succAbove), f (i.insertNth x y)

full_name: torusIntegral_succ
code: /-- Recurrent formula for `torusIntegral`, see also `torusIntegral_succAbove`. -/
theorem torusIntegral_succ {f : ℂⁿ⁺¹ → E} {c : ℂⁿ⁺¹} {R : ℝⁿ⁺¹} (hf : TorusIntegrable f c R) :
    (∯ x in T(c, R), f x) =
      ∮ x in C(c 0, R 0), ∯ y in T(c ∘ Fin.succ, R ∘ Fin.succ), f (Fin.cons x y) 
goal: (∯ (x : Fin (n + 1) → ℂ) in T(c, R), f x) =
  ∮ (x : ℂ) in C(c 0, R 0), ∯ (y : Fin n → ℂ) in T(c ∘ Fin.succ, R ∘ Fin.succ), f (Fin.cons x y)