src/HOL/Modules.thy
changeset 69064 5840724b1d71
parent 68189 6163c90694ef
child 70802 160eaf566bcb
equal deleted inserted replaced
69045:8c240fdeffcb 69064:5840724b1d71
   876 lemma module_hom_scale: "module_hom s1 s2 f \<Longrightarrow> module_hom s1 s2 (\<lambda>x. s2 c (f x))"
   876 lemma module_hom_scale: "module_hom s1 s2 f \<Longrightarrow> module_hom s1 s2 (\<lambda>x. s2 c (f x))"
   877   by (simp add: module_hom_iff module.scale_scale module.scale_right_distrib ac_simps)
   877   by (simp add: module_hom_iff module.scale_scale module.scale_right_distrib ac_simps)
   878 
   878 
   879 lemma module_hom_compose_scale:
   879 lemma module_hom_compose_scale:
   880   "module_hom s1 s2 (\<lambda>x. s2 (f x) (c))"
   880   "module_hom s1 s2 (\<lambda>x. s2 (f x) (c))"
   881   if "module_hom s1 ( *) f"
   881   if "module_hom s1 (*) f"
   882 proof -
   882 proof -
   883   interpret mh: module_hom s1 "( *)" f by fact
   883   interpret mh: module_hom s1 "(*)" f by fact
   884   show ?thesis
   884   show ?thesis
   885     by unfold_locales (simp_all add: mh.add mh.scale m2.scale_left_distrib)
   885     by unfold_locales (simp_all add: mh.add mh.scale m2.scale_left_distrib)
   886 qed
   886 qed
   887 
   887 
   888 lemma bij_module_hom_imp_inv_module_hom: "module_hom scale1 scale2 f \<Longrightarrow> bij f \<Longrightarrow>
   888 lemma bij_module_hom_imp_inv_module_hom: "module_hom scale1 scale2 f \<Longrightarrow> bij f \<Longrightarrow>
   911 lemma module_hom_scale_self[simp]:
   911 lemma module_hom_scale_self[simp]:
   912   "module_hom scale scale (\<lambda>x. scale c x)"
   912   "module_hom scale scale (\<lambda>x. scale c x)"
   913   using module_axioms module_hom_iff scale_left_commute scale_right_distrib by blast
   913   using module_axioms module_hom_iff scale_left_commute scale_right_distrib by blast
   914 
   914 
   915 lemma module_hom_scale_left[simp]:
   915 lemma module_hom_scale_left[simp]:
   916   "module_hom ( *) scale (\<lambda>r. scale r x)"
   916   "module_hom (*) scale (\<lambda>r. scale r x)"
   917   by unfold_locales (auto simp: algebra_simps)
   917   by unfold_locales (auto simp: algebra_simps)
   918 
   918 
   919 lemma module_hom_id: "module_hom scale scale id"
   919 lemma module_hom_id: "module_hom scale scale id"
   920   by (simp add: module_hom_iff module_axioms)
   920   by (simp add: module_hom_iff module_axioms)
   921 
   921