607 next |
607 next |
608 show "sym (rcong H)" |
608 show "sym (rcong H)" |
609 proof (simp add: r_congruent_def sym_def, clarify) |
609 proof (simp add: r_congruent_def sym_def, clarify) |
610 fix x y |
610 fix x y |
611 assume [simp]: "x \<in> carrier G" "y \<in> carrier G" |
611 assume [simp]: "x \<in> carrier G" "y \<in> carrier G" |
612 and "inv x \<otimes> y \<in> H" |
612 and "inv x \<otimes> y \<in> H" |
613 hence "inv (inv x \<otimes> y) \<in> H" by (simp add: m_inv_closed) |
613 hence "inv (inv x \<otimes> y) \<in> H" by (simp add: m_inv_closed) |
614 thus "inv y \<otimes> x \<in> H" by (simp add: inv_mult_group) |
614 thus "inv y \<otimes> x \<in> H" by (simp add: inv_mult_group) |
615 qed |
615 qed |
616 next |
616 next |
617 show "trans (rcong H)" |
617 show "trans (rcong H)" |
618 proof (simp add: r_congruent_def trans_def, clarify) |
618 proof (simp add: r_congruent_def trans_def, clarify) |
619 fix x y z |
619 fix x y z |
620 assume [simp]: "x \<in> carrier G" "y \<in> carrier G" "z \<in> carrier G" |
620 assume [simp]: "x \<in> carrier G" "y \<in> carrier G" "z \<in> carrier G" |
621 and "inv x \<otimes> y \<in> H" and "inv y \<otimes> z \<in> H" |
621 and "inv x \<otimes> y \<in> H" and "inv y \<otimes> z \<in> H" |
622 hence "(inv x \<otimes> y) \<otimes> (inv y \<otimes> z) \<in> H" by simp |
622 hence "(inv x \<otimes> y) \<otimes> (inv y \<otimes> z) \<in> H" by simp |
623 hence "inv x \<otimes> (y \<otimes> inv y) \<otimes> z \<in> H" |
623 hence "inv x \<otimes> (y \<otimes> inv y) \<otimes> z \<in> H" |
624 by (simp add: m_assoc del: r_inv Units_r_inv) |
624 by (simp add: m_assoc del: r_inv Units_r_inv) |
625 thus "inv x \<otimes> z \<in> H" by simp |
625 thus "inv x \<otimes> z \<in> H" by simp |
626 qed |
626 qed |
627 qed |
627 qed |
628 qed |
628 qed |
629 |
629 |