Theorem: ContinuousMultilinearMap.norm_domDomCongrLinearEquiv' (ForML/ContinuousMultilinearMap.lean)

State before:
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
ι : Type u_2
inst✝⁵ : Fintype ι
ι' : Type u_3
inst✝⁴ : Fintype ι'
D : ι → Type u_4
inst✝³ : (i : ι) → SeminormedAddCommGroup (D i)
inst✝² : (i : ι) → NormedSpace 𝕜 (D i)
F : Type u_5
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
σ : ι ≃ ι'
f : ContinuousMultilinearMap 𝕜 D F
⊢ ‖(domDomCongrLinearEquiv' 𝕜 𝕜 D F σ) f‖ = ‖f‖
Tactic:
simp only [ContinuousMultilinearMap.norm_def, domDomCongrLinearEquiv'_apply]
State after:
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
ι : Type u_2
inst✝⁵ : Fintype ι
ι' : Type u_3
inst✝⁴ : Fintype ι'
D : ι → Type u_4
inst✝³ : (i : ι) → SeminormedAddCommGroup (D i)
inst✝² : (i : ι) → NormedSpace 𝕜 (D i)
F : Type u_5
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
σ : ι ≃ ι'
f : ContinuousMultilinearMap 𝕜 D F
⊢ sInf {c | 0 ≤ c ∧ ∀ (m : (i : ι') → D (σ.symm i)), ‖f ((Equiv.piCongrLeft' D σ).symm m)‖ ≤ c * ∏ i : ι', ‖m i‖} =
    sInf {c | 0 ≤ c ∧ ∀ (m : (i : ι) → D i), ‖f m‖ ≤ c * ∏ i : ι, ‖m i‖}

State before:
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
ι : Type u_2
inst✝⁵ : Fintype ι
ι' : Type u_3
inst✝⁴ : Fintype ι'
D : ι → Type u_4
inst✝³ : (i : ι) → SeminormedAddCommGroup (D i)
inst✝² : (i : ι) → NormedSpace 𝕜 (D i)
F : Type u_5
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
σ : ι ≃ ι'
f : ContinuousMultilinearMap 𝕜 D F
⊢ sInf {c | 0 ≤ c ∧ ∀ (m : (i : ι') → D (σ.symm i)), ‖f ((Equiv.piCongrLeft' D σ).symm m)‖ ≤ c * ∏ i : ι', ‖m i‖} =
    sInf {c | 0 ≤ c ∧ ∀ (m : (i : ι) → D i), ‖f m‖ ≤ c * ∏ i : ι, ‖m i‖}
Tactic:
refine congrArg _ ?_
State after:
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
ι : Type u_2
inst✝⁵ : Fintype ι
ι' : Type u_3
inst✝⁴ : Fintype ι'
D : ι → Type u_4
inst✝³ : (i : ι) → SeminormedAddCommGroup (D i)
inst✝² : (i : ι) → NormedSpace 𝕜 (D i)
F : Type u_5
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
σ : ι ≃ ι'
f : ContinuousMultilinearMap 𝕜 D F
⊢ {c | 0 ≤ c ∧ ∀ (m : (i : ι') → D (σ.symm i)), ‖f ((Equiv.piCongrLeft' D σ).symm m)‖ ≤ c * ∏ i : ι', ‖m i‖} =
    {c | 0 ≤ c ∧ ∀ (m : (i : ι) → D i), ‖f m‖ ≤ c * ∏ i : ι, ‖m i‖}

State before:
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
ι : Type u_2
inst✝⁵ : Fintype ι
ι' : Type u_3
inst✝⁴ : Fintype ι'
D : ι → Type u_4
inst✝³ : (i : ι) → SeminormedAddCommGroup (D i)
inst✝² : (i : ι) → NormedSpace 𝕜 (D i)
F : Type u_5
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
σ : ι ≃ ι'
f : ContinuousMultilinearMap 𝕜 D F
⊢ {c | 0 ≤ c ∧ ∀ (m : (i : ι') → D (σ.symm i)), ‖f ((Equiv.piCongrLeft' D σ).symm m)‖ ≤ c * ∏ i : ι', ‖m i‖} =
    {c | 0 ≤ c ∧ ∀ (m : (i : ι) → D i), ‖f m‖ ≤ c * ∏ i : ι, ‖m i‖}
Tactic:
ext c
State after:
case h
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
ι : Type u_2
inst✝⁵ : Fintype ι
ι' : Type u_3
inst✝⁴ : Fintype ι'
D : ι → Type u_4
inst✝³ : (i : ι) → SeminormedAddCommGroup (D i)
inst✝² : (i : ι) → NormedSpace 𝕜 (D i)
F : Type u_5
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
σ : ι ≃ ι'
f : ContinuousMultilinearMap 𝕜 D F
c : ℝ
⊢ c ∈ {c | 0 ≤ c ∧ ∀ (m : (i : ι') → D (σ.symm i)), ‖f ((Equiv.piCongrLeft' D σ).symm m)‖ ≤ c * ∏ i : ι', ‖m i‖} ↔
    c ∈ {c | 0 ≤ c ∧ ∀ (m : (i : ι) → D i), ‖f m‖ ≤ c * ∏ i : ι, ‖m i‖}

State before:
case h
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
ι : Type u_2
inst✝⁵ : Fintype ι
ι' : Type u_3
inst✝⁴ : Fintype ι'
D : ι → Type u_4
inst✝³ : (i : ι) → SeminormedAddCommGroup (D i)
inst✝² : (i : ι) → NormedSpace 𝕜 (D i)
F : Type u_5
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
σ : ι ≃ ι'
f : ContinuousMultilinearMap 𝕜 D F
c : ℝ
⊢ c ∈ {c | 0 ≤ c ∧ ∀ (m : (i : ι') → D (σ.symm i)), ‖f ((Equiv.piCongrLeft' D σ).symm m)‖ ≤ c * ∏ i : ι', ‖m i‖} ↔
    c ∈ {c | 0 ≤ c ∧ ∀ (m : (i : ι) → D i), ‖f m‖ ≤ c * ∏ i : ι, ‖m i‖}
Tactic:
simp only [Set.mem_setOf_eq, and_congr_right_iff]
State after:
case h
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
ι : Type u_2
inst✝⁵ : Fintype ι
ι' : Type u_3
inst✝⁴ : Fintype ι'
D : ι → Type u_4
inst✝³ : (i : ι) → SeminormedAddCommGroup (D i)
inst✝² : (i : ι) → NormedSpace 𝕜 (D i)
F : Type u_5
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
σ : ι ≃ ι'
f : ContinuousMultilinearMap 𝕜 D F
c : ℝ
⊢ 0 ≤ c →
    ((∀ (m : (i : ι') → D (σ.symm i)), ‖f ((Equiv.piCongrLeft' D σ).symm m)‖ ≤ c * ∏ i : ι', ‖m i‖) ↔
      ∀ (m : (i : ι) → D i), ‖f m‖ ≤ c * ∏ i : ι, ‖m i‖)

State before:
case h
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
ι : Type u_2
inst✝⁵ : Fintype ι
ι' : Type u_3
inst✝⁴ : Fintype ι'
D : ι → Type u_4
inst✝³ : (i : ι) → SeminormedAddCommGroup (D i)
inst✝² : (i : ι) → NormedSpace 𝕜 (D i)
F : Type u_5
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
σ : ι ≃ ι'
f : ContinuousMultilinearMap 𝕜 D F
c : ℝ
⊢ 0 ≤ c →
    ((∀ (m : (i : ι') → D (σ.symm i)), ‖f ((Equiv.piCongrLeft' D σ).symm m)‖ ≤ c * ∏ i : ι', ‖m i‖) ↔
      ∀ (m : (i : ι) → D i), ‖f m‖ ≤ c * ∏ i : ι, ‖m i‖)
Tactic:
intro _
State after:
case h
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
ι : Type u_2
inst✝⁵ : Fintype ι
ι' : Type u_3
inst✝⁴ : Fintype ι'
D : ι → Type u_4
inst✝³ : (i : ι) → SeminormedAddCommGroup (D i)
inst✝² : (i : ι) → NormedSpace 𝕜 (D i)
F : Type u_5
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
σ : ι ≃ ι'
f : ContinuousMultilinearMap 𝕜 D F
c : ℝ
a✝ : 0 ≤ c
⊢ (∀ (m : (i : ι') → D (σ.symm i)), ‖f ((Equiv.piCongrLeft' D σ).symm m)‖ ≤ c * ∏ i : ι', ‖m i‖) ↔
    ∀ (m : (i : ι) → D i), ‖f m‖ ≤ c * ∏ i : ι, ‖m i‖

State before:
case h
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
ι : Type u_2
inst✝⁵ : Fintype ι
ι' : Type u_3
inst✝⁴ : Fintype ι'
D : ι → Type u_4
inst✝³ : (i : ι) → SeminormedAddCommGroup (D i)
inst✝² : (i : ι) → NormedSpace 𝕜 (D i)
F : Type u_5
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
σ : ι ≃ ι'
f : ContinuousMultilinearMap 𝕜 D F
c : ℝ
a✝ : 0 ≤ c
⊢ (∀ (m : (i : ι') → D (σ.symm i)), ‖f ((Equiv.piCongrLeft' D σ).symm m)‖ ≤ c * ∏ i : ι', ‖m i‖) ↔
    ∀ (m : (i : ι) → D i), ‖f m‖ ≤ c * ∏ i : ι, ‖m i‖
Tactic:
rw [Equiv.forall_congr_left' (Equiv.piCongrLeft' D σ).symm]
State after:
case h
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
ι : Type u_2
inst✝⁵ : Fintype ι
ι' : Type u_3
inst✝⁴ : Fintype ι'
D : ι → Type u_4
inst✝³ : (i : ι) → SeminormedAddCommGroup (D i)
inst✝² : (i : ι) → NormedSpace 𝕜 (D i)
F : Type u_5
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
σ : ι ≃ ι'
f : ContinuousMultilinearMap 𝕜 D F
c : ℝ
a✝ : 0 ≤ c
⊢ (∀ (y : (a : ι) → D a),
      ‖f ((Equiv.piCongrLeft' D σ).symm ((Equiv.piCongrLeft' D σ).symm.symm y))‖ ≤
        c * ∏ i : ι', ‖(Equiv.piCongrLeft' D σ).symm.symm y i‖) ↔
    ∀ (m : (i : ι) → D i), ‖f m‖ ≤ c * ∏ i : ι, ‖m i‖

State before:
case h
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
ι : Type u_2
inst✝⁵ : Fintype ι
ι' : Type u_3
inst✝⁴ : Fintype ι'
D : ι → Type u_4
inst✝³ : (i : ι) → SeminormedAddCommGroup (D i)
inst✝² : (i : ι) → NormedSpace 𝕜 (D i)
F : Type u_5
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
σ : ι ≃ ι'
f : ContinuousMultilinearMap 𝕜 D F
c : ℝ
a✝ : 0 ≤ c
⊢ (∀ (y : (a : ι) → D a),
      ‖f ((Equiv.piCongrLeft' D σ).symm ((Equiv.piCongrLeft' D σ).symm.symm y))‖ ≤
        c * ∏ i : ι', ‖(Equiv.piCongrLeft' D σ).symm.symm y i‖) ↔
    ∀ (m : (i : ι) → D i), ‖f m‖ ≤ c * ∏ i : ι, ‖m i‖
Tactic:
simp only [Equiv.symm_symm, Equiv.symm_apply_apply, Equiv.piCongrLeft'_apply]
State after:
case h
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
ι : Type u_2
inst✝⁵ : Fintype ι
ι' : Type u_3
inst✝⁴ : Fintype ι'
D : ι → Type u_4
inst✝³ : (i : ι) → SeminormedAddCommGroup (D i)
inst✝² : (i : ι) → NormedSpace 𝕜 (D i)
F : Type u_5
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
σ : ι ≃ ι'
f : ContinuousMultilinearMap 𝕜 D F
c : ℝ
a✝ : 0 ≤ c
⊢ (∀ (y : (a : ι) → D a), ‖f y‖ ≤ c * ∏ x : ι', ‖y (σ.symm x)‖) ↔ ∀ (m : (i : ι) → D i), ‖f m‖ ≤ c * ∏ i : ι, ‖m i‖

State before:
case h
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
ι : Type u_2
inst✝⁵ : Fintype ι
ι' : Type u_3
inst✝⁴ : Fintype ι'
D : ι → Type u_4
inst✝³ : (i : ι) → SeminormedAddCommGroup (D i)
inst✝² : (i : ι) → NormedSpace 𝕜 (D i)
F : Type u_5
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
σ : ι ≃ ι'
f : ContinuousMultilinearMap 𝕜 D F
c : ℝ
a✝ : 0 ≤ c
⊢ (∀ (y : (a : ι) → D a), ‖f y‖ ≤ c * ∏ x : ι', ‖y (σ.symm x)‖) ↔ ∀ (m : (i : ι) → D i), ‖f m‖ ≤ c * ∏ i : ι, ‖m i‖
Tactic:
rw [forall_congr]
State after:
case h
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
ι : Type u_2
inst✝⁵ : Fintype ι
ι' : Type u_3
inst✝⁴ : Fintype ι'
D : ι → Type u_4
inst✝³ : (i : ι) → SeminormedAddCommGroup (D i)
inst✝² : (i : ι) → NormedSpace 𝕜 (D i)
F : Type u_5
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
σ : ι ≃ ι'
f : ContinuousMultilinearMap 𝕜 D F
c : ℝ
a✝ : 0 ≤ c
⊢ ∀ (a : (a : ι) → D a), (‖f a‖ ≤ c * ∏ x : ι', ‖a (σ.symm x)‖) = (‖f a‖ ≤ c * ∏ i : ι, ‖a i‖)

State before:
case h
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
ι : Type u_2
inst✝⁵ : Fintype ι
ι' : Type u_3
inst✝⁴ : Fintype ι'
D : ι → Type u_4
inst✝³ : (i : ι) → SeminormedAddCommGroup (D i)
inst✝² : (i : ι) → NormedSpace 𝕜 (D i)
F : Type u_5
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
σ : ι ≃ ι'
f : ContinuousMultilinearMap 𝕜 D F
c : ℝ
a✝ : 0 ≤ c
⊢ ∀ (a : (a : ι) → D a), (‖f a‖ ≤ c * ∏ x : ι', ‖a (σ.symm x)‖) = (‖f a‖ ≤ c * ∏ i : ι, ‖a i‖)
Tactic:
intro x
State after:
case h
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
ι : Type u_2
inst✝⁵ : Fintype ι
ι' : Type u_3
inst✝⁴ : Fintype ι'
D : ι → Type u_4
inst✝³ : (i : ι) → SeminormedAddCommGroup (D i)
inst✝² : (i : ι) → NormedSpace 𝕜 (D i)
F : Type u_5
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
σ : ι ≃ ι'
f : ContinuousMultilinearMap 𝕜 D F
c : ℝ
a✝ : 0 ≤ c
x : (a : ι) → D a
⊢ (‖f x‖ ≤ c * ∏ x_1 : ι', ‖x (σ.symm x_1)‖) = (‖f x‖ ≤ c * ∏ i : ι, ‖x i‖)

State before:
case h
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
ι : Type u_2
inst✝⁵ : Fintype ι
ι' : Type u_3
inst✝⁴ : Fintype ι'
D : ι → Type u_4
inst✝³ : (i : ι) → SeminormedAddCommGroup (D i)
inst✝² : (i : ι) → NormedSpace 𝕜 (D i)
F : Type u_5
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
σ : ι ≃ ι'
f : ContinuousMultilinearMap 𝕜 D F
c : ℝ
a✝ : 0 ≤ c
x : (a : ι) → D a
⊢ (‖f x‖ ≤ c * ∏ x_1 : ι', ‖x (σ.symm x_1)‖) = (‖f x‖ ≤ c * ∏ i : ι, ‖x i‖)
Tactic:
rw [eq_iff_iff]
State after:
case h
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
ι : Type u_2
inst✝⁵ : Fintype ι
ι' : Type u_3
inst✝⁴ : Fintype ι'
D : ι → Type u_4
inst✝³ : (i : ι) → SeminormedAddCommGroup (D i)
inst✝² : (i : ι) → NormedSpace 𝕜 (D i)
F : Type u_5
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
σ : ι ≃ ι'
f : ContinuousMultilinearMap 𝕜 D F
c : ℝ
a✝ : 0 ≤ c
x : (a : ι) → D a
⊢ ‖f x‖ ≤ c * ∏ x_1 : ι', ‖x (σ.symm x_1)‖ ↔ ‖f x‖ ≤ c * ∏ i : ι, ‖x i‖

State before:
case h
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
ι : Type u_2
inst✝⁵ : Fintype ι
ι' : Type u_3
inst✝⁴ : Fintype ι'
D : ι → Type u_4
inst✝³ : (i : ι) → SeminormedAddCommGroup (D i)
inst✝² : (i : ι) → NormedSpace 𝕜 (D i)
F : Type u_5
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
σ : ι ≃ ι'
f : ContinuousMultilinearMap 𝕜 D F
c : ℝ
a✝ : 0 ≤ c
x : (a : ι) → D a
⊢ ‖f x‖ ≤ c * ∏ x_1 : ι', ‖x (σ.symm x_1)‖ ↔ ‖f x‖ ≤ c * ∏ i : ι, ‖x i‖
Tactic:
rw [← Finset.univ_map_equiv_to_embedding σ, Finset.prod_map]
State after:
case h
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
ι : Type u_2
inst✝⁵ : Fintype ι
ι' : Type u_3
inst✝⁴ : Fintype ι'
D : ι → Type u_4
inst✝³ : (i : ι) → SeminormedAddCommGroup (D i)
inst✝² : (i : ι) → NormedSpace 𝕜 (D i)
F : Type u_5
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
σ : ι ≃ ι'
f : ContinuousMultilinearMap 𝕜 D F
c : ℝ
a✝ : 0 ≤ c
x : (a : ι) → D a
⊢ ‖f x‖ ≤ c * ∏ x_1 : ι, ‖x (σ.symm ((Equiv.toEmbedding σ) x_1))‖ ↔ ‖f x‖ ≤ c * ∏ i : ι, ‖x i‖

State before:
case h
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
ι : Type u_2
inst✝⁵ : Fintype ι
ι' : Type u_3
inst✝⁴ : Fintype ι'
D : ι → Type u_4
inst✝³ : (i : ι) → SeminormedAddCommGroup (D i)
inst✝² : (i : ι) → NormedSpace 𝕜 (D i)
F : Type u_5
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
σ : ι ≃ ι'
f : ContinuousMultilinearMap 𝕜 D F
c : ℝ
a✝ : 0 ≤ c
x : (a : ι) → D a
⊢ ‖f x‖ ≤ c * ∏ x_1 : ι, ‖x (σ.symm ((Equiv.toEmbedding σ) x_1))‖ ↔ ‖f x‖ ≤ c * ∏ i : ι, ‖x i‖
Tactic:
simp only [Equiv.coe_toEmbedding]
State after:
case h
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
ι : Type u_2
inst✝⁵ : Fintype ι
ι' : Type u_3
inst✝⁴ : Fintype ι'
D : ι → Type u_4
inst✝³ : (i : ι) → SeminormedAddCommGroup (D i)
inst✝² : (i : ι) → NormedSpace 𝕜 (D i)
F : Type u_5
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
σ : ι ≃ ι'
f : ContinuousMultilinearMap 𝕜 D F
c : ℝ
a✝ : 0 ≤ c
x : (a : ι) → D a
⊢ ‖f x‖ ≤ c * ∏ x_1 : ι, ‖x (σ.symm (σ x_1))‖ ↔ ‖f x‖ ≤ c * ∏ i : ι, ‖x i‖