@@ -869,11 +869,11 @@ def compSL : (F →SL[σ₂₃] G) →L[𝕜₃] (E →SL[σ₁₂] F) →SL[σ
869
869
1 fun f g => by simpa only [one_mul] using op_norm_comp_le f g
870
870
#align continuous_linear_map.compSL ContinuousLinearMap.compSL
871
871
872
- /-- Porting note: Local instance for `norm_compSL_le`.
873
- Should be by `inferInstance`, and indeed not be needed. -/
874
- local instance : Norm ((F →SL[σ₂₃] G) →L[𝕜₃] (E →SL[σ₁₂] F) →SL[σ₂₃] E →SL[σ₁₃] G) :=
875
- hasOpNorm (E := F →SL[σ₂₃] G) (F := (E →SL[σ₁₂] F) →SL[σ₂₃] E →SL[σ₁₃] G) in
876
- theorem norm_compSL_le : ‖compSL E F G σ₁₂ σ₂₃‖ ≤ 1 :=
872
+ theorem norm_compSL_le :
873
+ -- porting note: added
874
+ letI : Norm ((F →SL[σ₂₃] G) →L[𝕜₃] (E →SL[σ₁₂] F) →SL[σ₂₃] E →SL[σ₁₃] G) :=
875
+ hasOpNorm (E := F →SL[σ₂₃] G) (F := (E →SL[σ₁₂] F) →SL[σ₂₃] E →SL[σ₁₃] G)
876
+ ‖compSL E F G σ₁₂ σ₂₃‖ ≤ 1 :=
877
877
LinearMap.mkContinuous₂_norm_le _ zero_le_one _
878
878
#align continuous_linear_map.norm_compSL_le ContinuousLinearMap.norm_compSL_le
879
879
@@ -905,11 +905,10 @@ def compL : (Fₗ →L[𝕜] Gₗ) →L[𝕜] (E →L[𝕜] Fₗ) →L[𝕜] E
905
905
compSL E Fₗ Gₗ (RingHom.id 𝕜) (RingHom.id 𝕜)
906
906
#align continuous_linear_map.compL ContinuousLinearMap.compL
907
907
908
- /-- Porting note: Local instance for `norm_compL_le`.
909
- Should be by `inferInstance`, and indeed not be needed. -/
910
- local instance : Norm ((Fₗ →L[𝕜] Gₗ) →L[𝕜] (E →L[𝕜] Fₗ) →L[𝕜] E →L[𝕜] Gₗ) :=
911
- hasOpNorm (E := Fₗ →L[𝕜] Gₗ) (F := (E →L[𝕜] Fₗ) →L[𝕜] E →L[𝕜] Gₗ) in
912
- theorem norm_compL_le : ‖compL 𝕜 E Fₗ Gₗ‖ ≤ 1 :=
908
+ theorem norm_compL_le :
909
+ letI : Norm ((Fₗ →L[𝕜] Gₗ) →L[𝕜] (E →L[𝕜] Fₗ) →L[𝕜] E →L[𝕜] Gₗ) :=
910
+ hasOpNorm (E := Fₗ →L[𝕜] Gₗ) (F := (E →L[𝕜] Fₗ) →L[𝕜] E →L[𝕜] Gₗ)
911
+ ‖compL 𝕜 E Fₗ Gₗ‖ ≤ 1 :=
913
912
norm_compSL_le _ _ _ _ _
914
913
#align continuous_linear_map.norm_compL_le ContinuousLinearMap.norm_compL_le
915
914
@@ -931,22 +930,22 @@ def precompL (L : E →L[𝕜] Fₗ →L[𝕜] Gₗ) : (Eₗ →L[𝕜] E) →L[
931
930
(precompR Eₗ (flip L)).flip
932
931
#align continuous_linear_map.precompL ContinuousLinearMap.precompL
933
932
934
- /-- Porting note: Local instances for `norm_precompR_le`.
935
- Should be by `inferInstance`, and indeed not be needed. -/
936
- local instance : SeminormedAddCommGroup ((Eₗ →L[𝕜] Fₗ) →L[𝕜] Eₗ →L[𝕜] Gₗ) := inferInstance in
937
- local instance : NormedSpace 𝕜 ((Eₗ →L[𝕜] Fₗ) →L[𝕜] Eₗ →L[𝕜] Gₗ) := inferInstance in
938
- theorem norm_precompR_le (L : E →L[𝕜] Fₗ →L[𝕜] Gₗ) : ‖precompR Eₗ L‖ ≤ ‖L‖ :=
933
+ theorem norm_precompR_le (L : E →L[𝕜] Fₗ →L[𝕜] Gₗ) :
934
+ -- porting note: added
935
+ letI : SeminormedAddCommGroup ((Eₗ →L[𝕜] Fₗ) →L[𝕜] Eₗ →L[𝕜] Gₗ) := inferInstance
936
+ letI : NormedSpace 𝕜 ((Eₗ →L[𝕜] Fₗ) →L[𝕜] Eₗ →L[𝕜] Gₗ) := inferInstance
937
+ ‖precompR Eₗ L‖ ≤ ‖L‖ :=
939
938
calc
940
939
‖precompR Eₗ L‖ ≤ ‖compL 𝕜 Eₗ Fₗ Gₗ‖ * ‖L‖ := op_norm_comp_le _ _
941
940
_ ≤ 1 * ‖L‖ := (mul_le_mul_of_nonneg_right (norm_compL_le _ _ _ _) (norm_nonneg _))
942
941
_ = ‖L‖ := by rw [one_mul]
943
942
#align continuous_linear_map.norm_precompR_le ContinuousLinearMap.norm_precompR_le
944
943
945
- /-- Porting note: Local instance for `norm_precompL_le`.
946
- Should be by `inferInstance`, and indeed not be needed. -/
947
- local instance : Norm ((Eₗ →L[𝕜] E) →L[𝕜] Fₗ →L[𝕜] Eₗ →L[𝕜] Gₗ) :=
948
- hasOpNorm (E := Eₗ →L[𝕜] E) (F := Fₗ →L[𝕜] Eₗ →L[𝕜] Gₗ) in
949
- theorem norm_precompL_le (L : E →L[𝕜] Fₗ →L[𝕜] Gₗ) : ‖precompL Eₗ L‖ ≤ ‖L‖ := by
944
+ theorem norm_precompL_le (L : E →L[𝕜] Fₗ →L[𝕜] Gₗ) :
945
+ -- porting note: added
946
+ letI : Norm ((Eₗ →L[𝕜] E) →L[𝕜] Fₗ →L[𝕜] Eₗ →L[𝕜] Gₗ) :=
947
+ hasOpNorm (E := Eₗ →L[𝕜] E) (F := Fₗ →L[𝕜] Eₗ →L[𝕜] Gₗ)
948
+ ‖precompL Eₗ L‖ ≤ ‖L‖ := by
950
949
rw [precompL, op_norm_flip, ← op_norm_flip L]
951
950
exact norm_precompR_le _ L.flip
952
951
#align continuous_linear_map.norm_precompL_le ContinuousLinearMap.norm_precompL_le
@@ -1105,11 +1104,9 @@ theorem op_norm_mulLeftRight_apply_le (x : 𝕜') : ‖mulLeftRight 𝕜 𝕜' x
1105
1104
op_norm_le_bound _ (norm_nonneg x) (op_norm_mulLeftRight_apply_apply_le 𝕜 𝕜' x)
1106
1105
#align continuous_linear_map.op_norm_mul_left_right_apply_le ContinuousLinearMap.op_norm_mulLeftRight_apply_le
1107
1106
1108
- /-- Porting note: Local instance for `op_norm_mulLeftRight_le`.
1109
- Should be by `inferInstance`, and indeed not be needed. -/
1110
- local instance : Norm (𝕜' →L[𝕜] 𝕜' →L[𝕜] 𝕜' →L[𝕜] 𝕜') :=
1111
- hasOpNorm (E := 𝕜') (F := 𝕜' →L[𝕜] 𝕜' →L[𝕜] 𝕜') in
1112
- theorem op_norm_mulLeftRight_le : ‖mulLeftRight 𝕜 𝕜'‖ ≤ 1 :=
1107
+ theorem op_norm_mulLeftRight_le :
1108
+ letI : Norm (𝕜' →L[𝕜] 𝕜' →L[𝕜] 𝕜' →L[𝕜] 𝕜') := hasOpNorm (E := 𝕜') (F := 𝕜' →L[𝕜] 𝕜' →L[𝕜] 𝕜')
1109
+ ‖mulLeftRight 𝕜 𝕜'‖ ≤ 1 :=
1113
1110
op_norm_le_bound _ zero_le_one fun x => (one_mul ‖x‖).symm ▸ op_norm_mulLeftRight_apply_le 𝕜 𝕜' x
1114
1111
#align continuous_linear_map.op_norm_mul_left_right_le ContinuousLinearMap.op_norm_mulLeftRight_le
1115
1112
0 commit comments