src/ZF/Constructible/Normal.thy
changeset 46927 faf4a0b02b71
parent 46823 57bf0cecb366
child 46963 67da5904300a
equal deleted inserted replaced
46914:c2ca2c3d23a6 46927:faf4a0b02b71
   241 
   241 
   242 lemma Normal_imp_mono: "[| i<j; Normal(F) |] ==> F(i) < F(j)"
   242 lemma Normal_imp_mono: "[| i<j; Normal(F) |] ==> F(i) < F(j)"
   243 by (simp add: Normal_def mono_Ord_def)
   243 by (simp add: Normal_def mono_Ord_def)
   244 
   244 
   245 lemma Normal_increasing: "[| Ord(i); Normal(F) |] ==> i\<le>F(i)"
   245 lemma Normal_increasing: "[| Ord(i); Normal(F) |] ==> i\<le>F(i)"
   246 apply (induct i rule: trans_induct3_rule)
   246 apply (induct i rule: trans_induct3)
   247   apply (simp add: subset_imp_le)
   247   apply (simp add: subset_imp_le)
   248  apply (subgoal_tac "F(x) < F(succ(x))")
   248  apply (subgoal_tac "F(x) < F(succ(x))")
   249   apply (force intro: lt_trans1)
   249   apply (force intro: lt_trans1)
   250  apply (simp add: Normal_def mono_Ord_def)
   250  apply (simp add: Normal_def mono_Ord_def)
   251 apply (subgoal_tac "(\<Union>y<x. y) \<le> (\<Union>y<x. F(y))")
   251 apply (subgoal_tac "(\<Union>y<x. y) \<le> (\<Union>y<x. F(y))")
   381     "normalize(F,a) == transrec2(a, F(0), \<lambda>x r. F(succ(x)) \<union> succ(r))"
   381     "normalize(F,a) == transrec2(a, F(0), \<lambda>x r. F(succ(x)) \<union> succ(r))"
   382 
   382 
   383 
   383 
   384 lemma Ord_normalize [simp, intro]:
   384 lemma Ord_normalize [simp, intro]:
   385      "[| Ord(a); !!x. Ord(x) ==> Ord(F(x)) |] ==> Ord(normalize(F, a))"
   385      "[| Ord(a); !!x. Ord(x) ==> Ord(F(x)) |] ==> Ord(normalize(F, a))"
   386 apply (induct a rule: trans_induct3_rule)
   386 apply (induct a rule: trans_induct3)
   387 apply (simp_all add: ltD def_transrec2 [OF normalize_def])
   387 apply (simp_all add: ltD def_transrec2 [OF normalize_def])
   388 done
   388 done
   389 
   389 
   390 lemma normalize_lemma [rule_format]:
   390 lemma normalize_lemma [rule_format]:
   391      "[| Ord(b); !!x. Ord(x) ==> Ord(F(x)) |] 
   391      "[| Ord(b); !!x. Ord(x) ==> Ord(F(x)) |]