diff --git a/Mathlib/Analysis/Normed/Operator/Mul.lean b/Mathlib/Analysis/Normed/Operator/Mul.lean index a7a789021e55a6..4ed36b9561d0f8 100644 --- a/Mathlib/Analysis/Normed/Operator/Mul.lean +++ b/Mathlib/Analysis/Normed/Operator/Mul.lean @@ -158,24 +158,15 @@ variable (๐•œ E) /-- If `M` is a normed space over `๐•œ`, then the space of maps `๐•œ โ†’L[๐•œ] M` is linearly equivalent to `M`. (See `ring_lmap_equiv_self` for a stronger statement.) -/ -def ring_lmap_equiv_selfโ‚— : (๐•œ โ†’L[๐•œ] E) โ‰ƒโ‚—[๐•œ] E where - toFun := fun f โ†ฆ f 1 - invFun := (ContinuousLinearMap.id ๐•œ ๐•œ).smulRight - map_smul' := fun a f โ†ฆ by simp only [coe_smul', Pi.smul_apply, RingHom.id_apply] - map_add' := fun f g โ†ฆ by simp only [add_apply] - left_inv := fun f โ†ฆ by ext; simp only [smulRight_apply, coe_id', _root_.id, one_smul] - right_inv := fun m โ†ฆ by simp only [smulRight_apply, id_apply, one_smul] +def ring_lmap_equiv_selfโ‚— : (๐•œ โ†’L[๐•œ] E) โ‰ƒโ‚—[๐•œ] E := + (ContinuousLinearMap.toSpanSingletonLE ๐•œ ๐•œ E).symm /-- If `M` is a normed space over `๐•œ`, then the space of maps `๐•œ โ†’L[๐•œ] M` is linearly isometrically equivalent to `M`. -/ def ring_lmap_equiv_self : (๐•œ โ†’L[๐•œ] E) โ‰ƒโ‚—แตข[๐•œ] E where toLinearEquiv := ring_lmap_equiv_selfโ‚— ๐•œ E - norm_map' := by - refine fun f โ†ฆ le_antisymm ?_ ?_ - ยท simpa only [norm_one, mul_one] using le_opNorm f 1 - ยท refine opNorm_le_bound' f (norm_nonneg <| f 1) (fun x _ โ†ฆ ?_) - rw [(by rw [smul_eq_mul, mul_one] : f x = f (x โ€ข 1)), map_smul, - norm_smul, mul_comm, (by rfl : ring_lmap_equiv_selfโ‚— ๐•œ E f = f 1)] + norm_map' f := by + simpa using (ContinuousLinearMap.norm_toSpanSingleton (๐•œ := ๐•œ) (x := f 1)).symm end RingEquiv