@@ -54,7 +54,7 @@ approach, it turns out that direct proofs are easier and more efficient.
5454-/
5555
5656noncomputable theory
57- open_locale classical big_operators nnreal
57+ open_locale big_operators nnreal
5858open finset metric
5959
6060local attribute [instance, priority 1001 ]
@@ -77,7 +77,7 @@ universes u v v' wE wE₁ wE' wEi wG wG'
7777variables {𝕜 : Type u} {ι : Type v} {ι' : Type v'} {n : ℕ}
7878 {E : ι → Type wE} {E₁ : ι → Type wE₁} {E' : ι' → Type wE'} {Ei : fin n.succ → Type wEi}
7979 {G : Type wG} {G' : Type wG'}
80- [decidable_eq ι] [ fintype ι] [decidable_eq ι' ] [fintype ι'] [nontrivially_normed_field 𝕜]
80+ [fintype ι] [fintype ι'] [nontrivially_normed_field 𝕜]
8181 [Π i, normed_add_comm_group (E i)] [Π i, normed_space 𝕜 (E i)]
8282 [Π i, normed_add_comm_group (E₁ i)] [Π i, normed_space 𝕜 (E₁ i)]
8383 [Π i, normed_add_comm_group (E' i)] [Π i, normed_space 𝕜 (E' i)]
@@ -137,7 +137,7 @@ using the multilinearity. Here, we give a precise but hard to use version. See
137137`‖f m - f m'‖ ≤
138138 C * ‖m 1 - m' 1‖ * max ‖m 2‖ ‖m' 2‖ * max ‖m 3‖ ‖m' 3‖ * ... * max ‖m n‖ ‖m' n‖ + ...`,
139139where the other terms in the sum are the same products where `1` is replaced by any `i`. -/
140- lemma norm_image_sub_le_of_bound' {C : ℝ} (hC : 0 ≤ C)
140+ lemma norm_image_sub_le_of_bound' [decidable_eq ι] {C : ℝ} (hC : 0 ≤ C)
141141 (H : ∀ m, ‖f m‖ ≤ C * ∏ i, ‖m i‖) (m₁ m₂ : Πi, E i) :
142142 ‖f m₁ - f m₂‖ ≤
143143 C * ∑ i, ∏ j, if j = i then ‖m₁ i - m₂ i‖ else max ‖m₁ j‖ ‖m₂ j‖ :=
@@ -182,6 +182,7 @@ lemma norm_image_sub_le_of_bound {C : ℝ} (hC : 0 ≤ C)
182182 (H : ∀ m, ‖f m‖ ≤ C * ∏ i, ‖m i‖) (m₁ m₂ : Πi, E i) :
183183 ‖f m₁ - f m₂‖ ≤ C * (fintype.card ι) * (max ‖m₁‖ ‖m₂‖) ^ (fintype.card ι - 1 ) * ‖m₁ - m₂‖ :=
184184begin
185+ letI := classical.dec_eq ι,
185186 have A : ∀ (i : ι), ∏ j, (if j = i then ‖m₁ i - m₂ i‖ else max ‖m₁ j‖ ‖m₂ j‖)
186187 ≤ ‖m₁ - m₂‖ * (max ‖m₁‖ ‖m₂‖) ^ (fintype.card ι - 1 ),
187188 { assume i,
@@ -541,7 +542,7 @@ For a less precise but more usable version, see `norm_image_sub_le`. The bound r
541542`‖f m - f m'‖ ≤
542543 ‖f‖ * ‖m 1 - m' 1‖ * max ‖m 2‖ ‖m' 2‖ * max ‖m 3‖ ‖m' 3‖ * ... * max ‖m n‖ ‖m' n‖ + ...`,
543544where the other terms in the sum are the same products where `1` is replaced by any `i`.-/
544- lemma norm_image_sub_le' (m₁ m₂ : Πi, E i) :
545+ lemma norm_image_sub_le' [decidable_eq ι] (m₁ m₂ : Πi, E i) :
545546 ‖f m₁ - f m₂‖ ≤
546547 ‖f‖ * ∑ i, ∏ j, if j = i then ‖m₁ i - m₂ i‖ else max ‖m₁ j‖ ‖m₂ j‖ :=
547548f.to_multilinear_map.norm_image_sub_le_of_bound' (norm_nonneg _) f.le_op_norm _ _
@@ -633,13 +634,15 @@ begin
633634 -- Next, we show that this `F` is multilinear,
634635 let Fmult : multilinear_map 𝕜 E G :=
635636 { to_fun := F,
636- map_add' := λ v i x y, begin
637+ map_add' := λ _ v i x y, begin
638+ resetI,
637639 have A := hF (function.update v i (x + y)),
638640 have B := (hF (function.update v i x)).add (hF (function.update v i y)),
639641 simp at A B,
640642 exact tendsto_nhds_unique A B
641643 end ,
642- map_smul' := λ v i c x, begin
644+ map_smul' := λ _ v i c x, begin
645+ resetI,
643646 have A := hF (function.update v i (c • x)),
644647 have B := filter.tendsto.smul (@tendsto_const_nhds _ ℕ _ c _) (hF (function.update v i x)),
645648 simp at A B,
@@ -722,7 +725,7 @@ variables {𝕜 ι} {A : Type*} [normed_comm_ring A] [normed_algebra 𝕜 A]
722725lemma norm_mk_pi_algebra_le [nonempty ι] :
723726 ‖continuous_multilinear_map.mk_pi_algebra 𝕜 ι A‖ ≤ 1 :=
724727begin
725- have := λ f, @op_norm_le_bound 𝕜 ι (λ i, A) A _ _ _ _ _ _ _ f _ zero_le_one,
728+ have := λ f, @op_norm_le_bound 𝕜 ι (λ i, A) A _ _ _ _ _ _ f _ zero_le_one,
726729 refine this _ _,
727730 intros m,
728731 simp only [continuous_multilinear_map.mk_pi_algebra_apply, one_mul],
@@ -733,7 +736,7 @@ lemma norm_mk_pi_algebra_of_empty [is_empty ι] :
733736 ‖continuous_multilinear_map.mk_pi_algebra 𝕜 ι A‖ = ‖(1 : A)‖ :=
734737begin
735738 apply le_antisymm,
736- { have := λ f, @op_norm_le_bound 𝕜 ι (λ i, A) A _ _ _ _ _ _ _ f _ (norm_nonneg (1 : A)),
739+ { have := λ f, @op_norm_le_bound 𝕜 ι (λ i, A) A _ _ _ _ _ _ f _ (norm_nonneg (1 : A)),
737740 refine this _ _,
738741 simp, },
739742 { convert ratio_le_op_norm _ (λ _, (1 : A)),
@@ -759,7 +762,7 @@ variables {𝕜 n} {A : Type*} [normed_ring A] [normed_algebra 𝕜 A]
759762lemma norm_mk_pi_algebra_fin_succ_le :
760763 ‖continuous_multilinear_map.mk_pi_algebra_fin 𝕜 n.succ A‖ ≤ 1 :=
761764begin
762- have := λ f, @op_norm_le_bound 𝕜 (fin n.succ) (λ i, A) A _ _ _ _ _ _ _ f _ zero_le_one,
765+ have := λ f, @op_norm_le_bound 𝕜 (fin n.succ) (λ i, A) A _ _ _ _ _ _ f _ zero_le_one,
763766 refine this _ _,
764767 intros m,
765768 simp only [continuous_multilinear_map.mk_pi_algebra_fin_apply, one_mul, list.of_fn_eq_map,
@@ -781,7 +784,7 @@ lemma norm_mk_pi_algebra_fin_zero :
781784 ‖continuous_multilinear_map.mk_pi_algebra_fin 𝕜 0 A‖ = ‖(1 : A)‖ :=
782785begin
783786 refine le_antisymm _ _,
784- { have := λ f, @op_norm_le_bound 𝕜 (fin 0 ) (λ i, A) A _ _ _ _ _ _ _ f _ (norm_nonneg (1 : A)),
787+ { have := λ f, @op_norm_le_bound 𝕜 (fin 0 ) (λ i, A) A _ _ _ _ _ _ f _ (norm_nonneg (1 : A)),
785788 refine this _ _,
786789 simp, },
787790 { convert ratio_le_op_norm _ (λ _, (1 : A)),
@@ -926,10 +929,10 @@ multilinear_map.mk_continuous
926929 ring_hom.id_apply] }
927930 (‖f‖ * ∏ i, ‖m i‖) $ λ x,
928931 by { rw mul_right_comm, exact (f x).le_of_op_norm_le _ (f.le_op_norm x) },
929- map_add' := λ m i x y,
932+ map_add' := λ _ m i x y,
930933 by { ext1, simp only [add_apply, continuous_multilinear_map.map_add, linear_map.coe_mk,
931934 linear_map.mk_continuous_apply]},
932- map_smul' := λ m i c x,
935+ map_smul' := λ _ m i c x,
933936 by { ext1, simp only [coe_smul', continuous_multilinear_map.map_smul, linear_map.coe_mk,
934937 linear_map.mk_continuous_apply, pi.smul_apply]} }
935938 ‖f‖ $ λ m,
@@ -988,8 +991,8 @@ def mk_continuous_multilinear (f : multilinear_map 𝕜 E (multilinear_map 𝕜
988991 continuous_multilinear_map 𝕜 E (continuous_multilinear_map 𝕜 E' G) :=
989992mk_continuous
990993 { to_fun := λ m, mk_continuous (f m) (C * ∏ i, ‖m i‖) $ H m,
991- map_add' := λ m i x y, by { ext1, simp },
992- map_smul' := λ m i c x, by { ext1, simp } }
994+ map_add' := λ _ m i x y, by { ext1, simp },
995+ map_smul' := λ _ m i c x, by { ext1, simp } }
993996 (max C 0 ) $ λ m, ((f m).mk_continuous_norm_le' _).trans_eq $
994997 by { rw [max_mul_of_nonneg, zero_mul], exact prod_nonneg (λ _ _, norm_nonneg _) }
995998
@@ -1069,7 +1072,7 @@ linear_map.mk_continuous
10691072rfl
10701073
10711074lemma norm_comp_continuous_linear_mapL_le (f : Π i, E i →L[𝕜] E₁ i) :
1072- ‖@comp_continuous_linear_mapL 𝕜 ι E E₁ G _ _ _ _ _ _ _ _ _ f‖ ≤ (∏ i, ‖f i‖) :=
1075+ ‖@comp_continuous_linear_mapL 𝕜 ι E E₁ G _ _ _ _ _ _ _ _ f‖ ≤ (∏ i, ‖f i‖) :=
10731076linear_map.mk_continuous_norm_le _ (prod_nonneg $ λ i _, norm_nonneg _) _
10741077
10751078variable (G)
@@ -1276,8 +1279,8 @@ def continuous_multilinear_map.uncurry_right
12761279 continuous_multilinear_map 𝕜 Ei G :=
12771280let f' : multilinear_map 𝕜 (λ(i : fin n), Ei i.cast_succ) (Ei (last n) →ₗ[𝕜] G) :=
12781281{ to_fun := λ m, (f m).to_linear_map,
1279- map_add' := λ m i x y, by simp,
1280- map_smul' := λ m i c x, by simp } in
1282+ map_add' := λ _ m i x y, by simp,
1283+ map_smul' := λ _ m i c x, by simp } in
12811284(@multilinear_map.uncurry_right 𝕜 n Ei G _ _ _ _ _ f').mk_continuous
12821285 (‖f‖) (λm, f.norm_map_init_le m)
12831286
@@ -1295,8 +1298,8 @@ def continuous_multilinear_map.curry_right
12951298let f' : multilinear_map 𝕜 (λ(i : fin n), Ei i.cast_succ) (Ei (last n) →L[𝕜] G) :=
12961299{ to_fun := λm, (f.to_multilinear_map.curry_right m).mk_continuous
12971300 (‖f‖ * ∏ i, ‖m i‖) $ λx, f.norm_map_snoc_le m x,
1298- map_add' := λ m i x y, by { simp, refl },
1299- map_smul' := λ m i c x, by { simp, refl } } in
1301+ map_add' := λ _ m i x y, by { simp, refl },
1302+ map_smul' := λ _ m i c x, by { simp, refl } } in
13001303f'.mk_continuous (‖f‖) (λm, linear_map.mk_continuous_norm_le _
13011304 (mul_nonneg (norm_nonneg _) (prod_nonneg (λj hj, norm_nonneg _))) _)
13021305
@@ -1518,8 +1521,6 @@ variables {𝕜 G G'}
15181521
15191522section
15201523
1521- variable [decidable_eq (ι ⊕ ι')]
1522-
15231524/-- A continuous multilinear map with variables indexed by `ι ⊕ ι'` defines a continuous multilinear
15241525map with variables indexed by `ι` taking values in the space of continuous multilinear maps with
15251526variables indexed by `ι'`. -/
0 commit comments