src/HOL/Groups_Big.thy
changeset 64979 20a623d03d71
parent 64272 f76b6dda2e56
child 65680 378a2f11bec9
equal deleted inserted replaced
64978:5b9ba120d222 64979:20a623d03d71
   236 lemma mono_neutral_left: "finite T \<Longrightarrow> S \<subseteq> T \<Longrightarrow> \<forall>i \<in> T - S. g i = \<^bold>1 \<Longrightarrow> F g S = F g T"
   236 lemma mono_neutral_left: "finite T \<Longrightarrow> S \<subseteq> T \<Longrightarrow> \<forall>i \<in> T - S. g i = \<^bold>1 \<Longrightarrow> F g S = F g T"
   237   by (blast intro: mono_neutral_cong_left)
   237   by (blast intro: mono_neutral_cong_left)
   238 
   238 
   239 lemma mono_neutral_right: "finite T \<Longrightarrow> S \<subseteq> T \<Longrightarrow> \<forall>i \<in> T - S. g i = \<^bold>1 \<Longrightarrow> F g T = F g S"
   239 lemma mono_neutral_right: "finite T \<Longrightarrow> S \<subseteq> T \<Longrightarrow> \<forall>i \<in> T - S. g i = \<^bold>1 \<Longrightarrow> F g T = F g S"
   240   by (blast intro!: mono_neutral_left [symmetric])
   240   by (blast intro!: mono_neutral_left [symmetric])
       
   241 
       
   242 lemma mono_neutral_cong:
       
   243   assumes [simp]: "finite T" "finite S"
       
   244     and *: "\<And>i. i \<in> T - S \<Longrightarrow> h i = \<^bold>1" "\<And>i. i \<in> S - T \<Longrightarrow> g i = \<^bold>1"
       
   245     and gh: "\<And>x. x \<in> S \<inter> T \<Longrightarrow> g x = h x"
       
   246  shows "F g S = F h T"
       
   247 proof-
       
   248   have "F g S = F g (S \<inter> T)"
       
   249     by(rule mono_neutral_right)(auto intro: *)
       
   250   also have "\<dots> = F h (S \<inter> T)" using refl gh by(rule cong)
       
   251   also have "\<dots> = F h T"
       
   252     by(rule mono_neutral_left)(auto intro: *)
       
   253   finally show ?thesis .
       
   254 qed
   241 
   255 
   242 lemma reindex_bij_betw: "bij_betw h S T \<Longrightarrow> F (\<lambda>x. g (h x)) S = F g T"
   256 lemma reindex_bij_betw: "bij_betw h S T \<Longrightarrow> F (\<lambda>x. g (h x)) S = F g T"
   243   by (auto simp: bij_betw_def reindex)
   257   by (auto simp: bij_betw_def reindex)
   244 
   258 
   245 lemma reindex_bij_witness:
   259 lemma reindex_bij_witness: