src/ZF/Finite.thy
changeset 13784 b9f6154427a4
parent 13615 449a70d88b38
child 14883 ca000a495448
equal deleted inserted replaced
13783:3294f727e20d 13784:b9f6154427a4
    88 (*Every subset of a finite set is finite.*)
    88 (*Every subset of a finite set is finite.*)
    89 lemma Fin_subset_lemma [rule_format]: "b: Fin(A) ==> \<forall>z. z<=b --> z: Fin(A)"
    89 lemma Fin_subset_lemma [rule_format]: "b: Fin(A) ==> \<forall>z. z<=b --> z: Fin(A)"
    90 apply (erule Fin_induct)
    90 apply (erule Fin_induct)
    91 apply (simp add: subset_empty_iff)
    91 apply (simp add: subset_empty_iff)
    92 apply (simp add: subset_cons_iff distrib_simps, safe)
    92 apply (simp add: subset_cons_iff distrib_simps, safe)
    93 apply (erule_tac b = "z" in cons_Diff [THEN subst], simp)
    93 apply (erule_tac b = z in cons_Diff [THEN subst], simp)
    94 done
    94 done
    95 
    95 
    96 lemma Fin_subset: "[| c<=b;  b: Fin(A) |] ==> c: Fin(A)"
    96 lemma Fin_subset: "[| c<=b;  b: Fin(A) |] ==> c: Fin(A)"
    97 by (blast intro: Fin_subset_lemma)
    97 by (blast intro: Fin_subset_lemma)
    98 
    98 
   156 lemma FiniteFun_subset_lemma [rule_format]:
   156 lemma FiniteFun_subset_lemma [rule_format]:
   157      "b: A-||>B ==> ALL z. z<=b --> z: A-||>B"
   157      "b: A-||>B ==> ALL z. z<=b --> z: A-||>B"
   158 apply (erule FiniteFun.induct)
   158 apply (erule FiniteFun.induct)
   159 apply (simp add: subset_empty_iff FiniteFun.intros)
   159 apply (simp add: subset_empty_iff FiniteFun.intros)
   160 apply (simp add: subset_cons_iff distrib_simps, safe)
   160 apply (simp add: subset_cons_iff distrib_simps, safe)
   161 apply (erule_tac b = "z" in cons_Diff [THEN subst])
   161 apply (erule_tac b = z in cons_Diff [THEN subst])
   162 apply (drule spec [THEN mp], assumption)
   162 apply (drule spec [THEN mp], assumption)
   163 apply (fast intro!: FiniteFun.intros)
   163 apply (fast intro!: FiniteFun.intros)
   164 done
   164 done
   165 
   165 
   166 lemma FiniteFun_subset: "[| c<=b;  b: A-||>B |] ==> c: A-||>B"
   166 lemma FiniteFun_subset: "[| c<=b;  b: A-||>B |] ==> c: A-||>B"