@@ -620,6 +620,59 @@ lemma mul_def (f g : M₁ →L[R₁] M₁) : f * g = f.comp g := rfl
620620
621621lemma mul_apply (f g : M₁ →L[R₁] M₁) (x : M₁) : (f * g) x = f (g x) := rfl
622622
623+ instance : monoid_with_zero (M₁ →L[R₁] M₁) :=
624+ { mul := (*),
625+ one := 1 ,
626+ zero := 0 ,
627+ mul_zero := λ f, ext $ λ _, map_zero f,
628+ zero_mul := λ _, ext $ λ _, rfl,
629+ mul_one := λ _, ext $ λ _, rfl,
630+ one_mul := λ _, ext $ λ _, rfl,
631+ mul_assoc := λ _ _ _, ext $ λ _, rfl, }
632+
633+ instance [has_continuous_add M₁] : semiring (M₁ →L[R₁] M₁) :=
634+ { mul := (*),
635+ one := 1 ,
636+ left_distrib := λ f g h, ext $ λ x, map_add f (g x) (h x),
637+ right_distrib := λ _ _ _, ext $ λ _, linear_map.add_apply _ _ _,
638+ ..continuous_linear_map.monoid_with_zero,
639+ ..continuous_linear_map.add_comm_monoid }
640+
641+ /-- `continuous_linear_map.to_linear_map` as a `ring_hom`.-/
642+ @[simps]
643+ def to_linear_map_ring_hom [has_continuous_add M₁] : (M₁ →L[R₁] M₁) →+* (M₁ →ₗ[R₁] M₁) :=
644+ { to_fun := to_linear_map,
645+ map_zero' := rfl,
646+ map_one' := rfl,
647+ map_add' := λ _ _, rfl,
648+ map_mul' := λ _ _, rfl }
649+
650+ section apply_action
651+ variables [has_continuous_add M₁]
652+
653+ /-- The tautological action by `M₁ →L[R₁] M₁` on `M`.
654+
655+ This generalizes `function.End.apply_mul_action`. -/
656+ instance apply_module : module (M₁ →L[R₁] M₁) M₁ :=
657+ module.comp_hom _ to_linear_map_ring_hom
658+
659+ @[simp] protected lemma smul_def (f : M₁ →L[R₁] M₁) (a : M₁) : f • a = f a := rfl
660+
661+ /-- `continuous_linear_map.apply_module` is faithful. -/
662+ instance apply_has_faithful_scalar : has_faithful_scalar (M₁ →L[R₁] M₁) M₁ :=
663+ ⟨λ _ _, continuous_linear_map.ext⟩
664+
665+ instance apply_smul_comm_class : smul_comm_class R₁ (M₁ →L[R₁] M₁) M₁ :=
666+ { smul_comm := λ r e m, (e.map_smul r m).symm }
667+
668+ instance apply_smul_comm_class' : smul_comm_class (M₁ →L[R₁] M₁) R₁ M₁ :=
669+ { smul_comm := continuous_linear_map.map_smul }
670+
671+ instance : has_continuous_const_smul (M₁ →L[R₁] M₁) M₁ :=
672+ ⟨continuous_linear_map.continuous⟩
673+
674+ end apply_action
675+
623676/-- The cartesian product of two bounded linear maps, as a bounded linear map. -/
624677protected def prod [module R₁ M₂] [module R₁ M₃] (f₁ : M₁ →L[R₁] M₂) (f₂ : M₁ →L[R₁] M₃) :
625678 M₁ →L[R₁] (M₂ × M₃) :=
@@ -984,11 +1037,7 @@ end
9841037instance [topological_add_group M] : ring (M →L[R] M) :=
9851038{ mul := (*),
9861039 one := 1 ,
987- mul_one := λ _, ext $ λ _, rfl,
988- one_mul := λ _, ext $ λ _, rfl,
989- mul_assoc := λ _ _ _, ext $ λ _, rfl,
990- left_distrib := λ f g h, ext $ λ x, map_add f (g x) (h x),
991- right_distrib := λ _ _ _, ext $ λ _, linear_map.add_apply _ _ _,
1040+ ..continuous_linear_map.semiring,
9921041 ..continuous_linear_map.add_comm_group }
9931042
9941043lemma smul_right_one_pow [topological_space R] [topological_ring R] (c : R) (n : ℕ) :
0 commit comments