src/HOL/Quotient_Examples/FSet.thy
changeset 53374 a14d2a854c02
parent 51371 197ad6b8f763
child 54336 9a21e5c6e5d9
equal deleted inserted replaced
53373:3ca9e79ac926 53374:a14d2a854c02
  1031     by (auto simp add: in_fset none_in_empty_fset [symmetric] sym)
  1031     by (auto simp add: in_fset none_in_empty_fset [symmetric] sym)
  1032 next
  1032 next
  1033   case (insert x A)
  1033   case (insert x A)
  1034   from insert.prems insert.hyps(1) have "\<And>z. z \<in> fset A \<longleftrightarrow> z \<in> fset (B - {|x|})"
  1034   from insert.prems insert.hyps(1) have "\<And>z. z \<in> fset A \<longleftrightarrow> z \<in> fset (B - {|x|})"
  1035     by (auto simp add: in_fset)
  1035     by (auto simp add: in_fset)
  1036   then have "A = B - {|x|}" by (rule insert.hyps(2))
  1036   then have A: "A = B - {|x|}" by (rule insert.hyps(2))
  1037   moreover with insert.prems [symmetric, of x] have "x |\<in>| B" by (simp add: in_fset)
  1037   with insert.prems [symmetric, of x] have "x |\<in>| B" by (simp add: in_fset)
  1038   ultimately show ?case by (metis in_fset_mdef)
  1038   with A show ?case by (metis in_fset_mdef)
  1039 qed
  1039 qed
  1040 
  1040 
  1041 subsection {* alternate formulation with a different decomposition principle
  1041 subsection {* alternate formulation with a different decomposition principle
  1042   and a proof of equivalence *}
  1042   and a proof of equivalence *}
  1043 
  1043