Added theorem at_finite_select.
authorberghofe
Wed, 11 Jan 2006 18:20:59 +0100
changeset 18657 0a37df3bb99d
parent 18656 32722023ff90
child 18658 317a6f0ef8b9
Added theorem at_finite_select.
src/HOL/Nominal/Nominal.thy
--- a/src/HOL/Nominal/Nominal.thy	Wed Jan 11 17:12:30 2006 +0100
+++ b/src/HOL/Nominal/Nominal.thy	Wed Jan 11 18:20:59 2006 +0100
@@ -615,6 +615,17 @@
   shows "\<exists>c::'x. c\<sharp>x"
   by (simp add: fresh_def, rule ex_in_inf[OF at, OF fs])
 
+lemma at_finite_select: "at (TYPE('a)) \<Longrightarrow> finite (S::'a set) \<Longrightarrow> \<exists>x. x \<notin> S"
+  apply (drule Diff_infinite_finite)
+  apply (simp add: at_def)
+  apply blast
+  apply (subgoal_tac "UNIV - S \<noteq> {}")
+  apply (simp only: ex_in_conv [symmetric])
+  apply blast
+  apply (rule notI)
+  apply simp
+  done
+
 --"the at-props imply the pt-props"
 lemma at_pt_inst:
   assumes at: "at TYPE('x)"