diff -r 82f57315cade -r 7a92cbec7030 src/HOL/Groups_Big.thy --- a/src/HOL/Groups_Big.thy Sun Jan 20 17:15:49 2019 +0000 +++ b/src/HOL/Groups_Big.thy Mon Jan 21 14:44:23 2019 +0000 @@ -503,6 +503,26 @@ shows "F g A = F h B" using assms same_carrier [of C A B] by simp +lemma eq_general: + assumes B: "\y. y \ B \ \!x. x \ A \ h x = y" and A: "\x. x \ A \ h x \ B \ \(h x) = \ x" + shows "F \ A = F \ B" +proof - + have eq: "B = h ` A" + by (auto dest: assms) + have h: "inj_on h A" + using assms by (blast intro: inj_onI) + have "F \ A = F (\ \ h) A" + using A by auto + also have "\ = F \ B" + by (simp add: eq reindex h) + finally show ?thesis . +qed + +lemma eq_general_inverses: + assumes B: "\y. y \ B \ k y \ A \ h(k y) = y" and A: "\x. x \ A \ h x \ B \ k(h x) = x \ \(h x) = \ x" + shows "F \ A = F \ B" + by (rule eq_general [where h=h]) (force intro: dest: A B)+ + end