Theorem: MultilinearMap.restr_norm_le
File: Mathlib/Analysis/NormedSpace/Multilinear.lean

tactic: rw [mul_right_comm, mul_assoc]
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
n✝ : ℕ
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
Ei : Fin (Nat.succ n✝) → Type wEi
G : Type wG
G' : Type wG'
inst✝¹⁴ : Fintype ι
inst✝¹³ : Fintype ι'
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : (i : ι) → NormedAddCommGroup (E i)
inst✝¹⁰ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁹ : (i : ι) → NormedAddCommGroup (E₁ i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁷ : (i : ι') → NormedAddCommGroup (E' i)
inst✝⁶ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁵ : (i : Fin (Nat.succ n✝)) → NormedAddCommGroup (Ei i)
inst✝⁴ : (i : Fin (Nat.succ n✝)) → NormedSpace 𝕜 (Ei i)
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f✝ : MultilinearMap 𝕜 E G
k n : ℕ
f : MultilinearMap 𝕜 (fun x => G) G'
s : Finset (Fin n)
hk : card s = k
z : G
C : ℝ
H : ∀ (m : Fin n → G), ‖↑f m‖ ≤ C * ∏ i : Fin n, ‖m i‖
v : Fin k → G
⊢ ‖↑(restr f s hk z) v‖ ≤ C * ‖z‖ ^ (n - k) * ∏ i : Fin k, ‖v i‖

tactic: convert H _ using 2
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
n✝ : ℕ
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
Ei : Fin (Nat.succ n✝) → Type wEi
G : Type wG
G' : Type wG'
inst✝¹⁴ : Fintype ι
inst✝¹³ : Fintype ι'
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : (i : ι) → NormedAddCommGroup (E i)
inst✝¹⁰ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁹ : (i : ι) → NormedAddCommGroup (E₁ i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁷ : (i : ι') → NormedAddCommGroup (E' i)
inst✝⁶ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁵ : (i : Fin (Nat.succ n✝)) → NormedAddCommGroup (Ei i)
inst✝⁴ : (i : Fin (Nat.succ n✝)) → NormedSpace 𝕜 (Ei i)
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f✝ : MultilinearMap 𝕜 E G
k n : ℕ
f : MultilinearMap 𝕜 (fun x => G) G'
s : Finset (Fin n)
hk : card s = k
z : G
C : ℝ
H : ∀ (m : Fin n → G), ‖↑f m‖ ≤ C * ∏ i : Fin n, ‖m i‖
v : Fin k → G
⊢ ‖↑(restr f s hk z) v‖ ≤ C * ((∏ i : Fin k, ‖v i‖) * ‖z‖ ^ (n - k))

tactic: simp only [apply_dite norm, Fintype.prod_dite, prod_const ‖z‖, Finset.card_univ,
  Fintype.card_of_subtype (sᶜ) fun _ => mem_compl, card_compl, Fintype.card_fin, hk, mk_coe, ←
  (s.orderIsoOfFin hk).symm.bijective.prod_comp fun x => ‖v x‖]
state_before: case h.e'_4.h.e'_6
𝕜 : Type u
ι : Type v
ι' : Type v'
n✝ : ℕ
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
Ei : Fin (Nat.succ n✝) → Type wEi
G : Type wG
G' : Type wG'
inst✝¹⁴ : Fintype ι
inst✝¹³ : Fintype ι'
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : (i : ι) → NormedAddCommGroup (E i)
inst✝¹⁰ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁹ : (i : ι) → NormedAddCommGroup (E₁ i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁷ : (i : ι') → NormedAddCommGroup (E' i)
inst✝⁶ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁵ : (i : Fin (Nat.succ n✝)) → NormedAddCommGroup (Ei i)
inst✝⁴ : (i : Fin (Nat.succ n✝)) → NormedSpace 𝕜 (Ei i)
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f✝ : MultilinearMap 𝕜 E G
k n : ℕ
f : MultilinearMap 𝕜 (fun x => G) G'
s : Finset (Fin n)
hk : card s = k
z : G
C : ℝ
H : ∀ (m : Fin n → G), ‖↑f m‖ ≤ C * ∏ i : Fin n, ‖m i‖
v : Fin k → G
⊢ (∏ i : Fin k, ‖v i‖) * ‖z‖ ^ (n - k) =
    ∏ i : Fin n, ‖if h : i ∈ s then v (↑(OrderIso.symm (orderIsoOfFin s hk)) { val := i, property := h }) else z‖

tactic: convert rfl
state_before: case h.e'_4.h.e'_6
𝕜 : Type u
ι : Type v
ι' : Type v'
n✝ : ℕ
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
Ei : Fin (Nat.succ n✝) → Type wEi
G : Type wG
G' : Type wG'
inst✝¹⁴ : Fintype ι
inst✝¹³ : Fintype ι'
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : (i : ι) → NormedAddCommGroup (E i)
inst✝¹⁰ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁹ : (i : ι) → NormedAddCommGroup (E₁ i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁷ : (i : ι') → NormedAddCommGroup (E' i)
inst✝⁶ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁵ : (i : Fin (Nat.succ n✝)) → NormedAddCommGroup (Ei i)
inst✝⁴ : (i : Fin (Nat.succ n✝)) → NormedSpace 𝕜 (Ei i)
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f✝ : MultilinearMap 𝕜 E G
k n : ℕ
f : MultilinearMap 𝕜 (fun x => G) G'
s : Finset (Fin n)
hk : card s = k
z : G
C : ℝ
H : ∀ (m : Fin n → G), ‖↑f m‖ ≤ C * ∏ i : Fin n, ‖m i‖
v : Fin k → G
⊢ (∏ i : { x // x ∈ s }, ‖v (↑(OrderIso.symm (orderIsoOfFin s hk)) i)‖) * ‖z‖ ^ (n - k) =
    (∏ a : { a // a ∈ s }, ‖v (↑(OrderIso.symm (orderIsoOfFin s hk)) { val := ↑a, property := (_ : ↑a ∈ s) })‖) *
      ‖z‖ ^ (n - k)