@@ -309,6 +309,12 @@ lemma map_sum {ι : Type*} (s : finset ι) (g : ι → M) :
309
309
310
310
@[simp, norm_cast] lemma coe_coe : ((f : M →ₗ[R] M₂) : (M → M₂)) = (f : M → M₂) := rfl
311
311
312
+ @[ext] theorem ext_ring [topological_space R] {f g : R →L[R] M} (h : f 1 = g 1 ) : f = g :=
313
+ coe_inj.1 $ linear_map.ext_ring h
314
+
315
+ theorem ext_ring_iff [topological_space R] {f g : R →L[R] M} : f = g ↔ f 1 = g 1 :=
316
+ ⟨λ h, h ▸ rfl, ext_ring⟩
317
+
312
318
/-- If two continuous linear maps are equal on a set `s`, then they are equal on the closure
313
319
of the `submodule.span` of this set. -/
314
320
lemma eq_on_closure_span [t2_space M₂] {s : set M} {f g : M →L[R] M₂} (h : set.eq_on f g s) :
440
446
f₁.prod f₂ x = (f₁ x, f₂ x) :=
441
447
rfl
442
448
449
+ section
450
+
451
+ variables (R M M₂)
452
+
453
+ /-- The left injection into a product is a continuous linear map. -/
454
+ def inl : M →L[R] M × M₂ := (id R M).prod 0
455
+
456
+ /-- The right injection into a product is a continuous linear map. -/
457
+ def inr : M₂ →L[R] M × M₂ := (0 : M₂ →L[R] M).prod (id R M₂)
458
+
459
+ end
460
+
461
+ @[simp] lemma inl_apply (x : M) : inl R M M₂ x = (x, 0 ) := rfl
462
+ @[simp] lemma inr_apply (x : M₂) : inr R M M₂ x = (0 , x) := rfl
463
+
464
+ @[simp, norm_cast] lemma coe_inl : (inl R M M₂ : M →ₗ[R] M × M₂) = linear_map.inl R M M₂ := rfl
465
+ @[simp, norm_cast] lemma coe_inr : (inr R M M₂ : M₂ →ₗ[R] M × M₂) = linear_map.inr R M M₂ := rfl
466
+
443
467
instance [topological_space R] [topological_semimodule R M] [topological_semimodule R M₂] :
444
468
topological_semimodule R (M × M₂) :=
445
469
⟨(continuous_fst.smul (continuous_fst.comp continuous_snd)).prod_mk
@@ -595,10 +619,7 @@ by ext; simp [← continuous_linear_map.map_smul_of_tower]
595
619
@[simp]
596
620
lemma smul_right_one_eq_iff {f f' : M₂} :
597
621
smul_right (1 : R →L[R] R) f = smul_right (1 : R →L[R] R) f' ↔ f = f' :=
598
- ⟨λ h, have (smul_right (1 : R →L[R] R) f : R → M₂) 1 = (smul_right (1 : R →L[R] R) f' : R → M₂) 1 ,
599
- by rw h,
600
- by simp at this ; assumption,
601
- λ h, by rw h⟩
622
+ by simp only [ext_ring_iff, smul_right_apply, one_apply, one_smul]
602
623
603
624
lemma smul_right_comp [topological_semimodule R R] {x : M₂} {c : R} :
604
625
(smul_right (1 : R →L[R] R) x).comp (smul_right (1 : R →L[R] R) c) =
@@ -772,6 +793,21 @@ lemma smul_apply : (c • f) x = c • (f x) := rfl
772
793
@[simp] lemma comp_smul [linear_map.compatible_smul M₂ M₃ S R] : h.comp (c • f) = c • (h.comp f) :=
773
794
by { ext x, exact h.map_smul_of_tower c (f x) }
774
795
796
+ /-- `continuous_linear_map.prod` as an `equiv`. -/
797
+ @[simps apply] def prod_equiv : ((M →L[R] M₂) × (M →L[R] M₃)) ≃ (M →L[R] M₂ × M₃) :=
798
+ { to_fun := λ f, f.1 .prod f.2 ,
799
+ inv_fun := λ f, ⟨(fst _ _ _).comp f, (snd _ _ _).comp f⟩,
800
+ left_inv := λ f, by ext; refl,
801
+ right_inv := λ f, by ext; refl }
802
+
803
+ lemma prod_ext_iff {f g : M × M₂ →L[R] M₃} :
804
+ f = g ↔ f.comp (inl _ _ _) = g.comp (inl _ _ _) ∧ f.comp (inr _ _ _) = g.comp (inr _ _ _) :=
805
+ by { simp only [← coe_inj, linear_map.prod_ext_iff], refl }
806
+
807
+ @[ext] lemma prod_ext {f g : M × M₂ →L[R] M₃} (hl : f.comp (inl _ _ _) = g.comp (inl _ _ _))
808
+ (hr : f.comp (inr _ _ _) = g.comp (inr _ _ _)) : f = g :=
809
+ prod_ext_iff.2 ⟨hl, hr⟩
810
+
775
811
variables [has_continuous_add M₂]
776
812
777
813
instance : semimodule S (M →L[R] M₂) :=
@@ -785,13 +821,10 @@ instance : semimodule S (M →L[R] M₂) :=
785
821
variables (S) [has_continuous_add M₃]
786
822
787
823
/-- `continuous_linear_map.prod` as a `linear_equiv`. -/
788
- def prodₗ : ((M →L[R] M₂) × (M →L[R] M₃)) ≃ₗ[S] (M →L[R] M₂ × M₃) :=
789
- { to_fun := λ f, f.1 .prod f.2 ,
790
- inv_fun := λ f, ⟨(fst _ _ _).comp f, (snd _ _ _).comp f⟩,
791
- map_add' := λ f g, rfl,
824
+ @[simps apply] def prodₗ : ((M →L[R] M₂) × (M →L[R] M₃)) ≃ₗ[S] (M →L[R] M₂ × M₃) :=
825
+ { map_add' := λ f g, rfl,
792
826
map_smul' := λ c f, rfl,
793
- left_inv := λ f, by ext; refl,
794
- right_inv := λ f, by ext; refl }
827
+ .. prod_equiv }
795
828
796
829
end smul
797
830
0 commit comments