equal
deleted
inserted
replaced
450 apply (rule eSuc_enat [THEN subst]) |
450 apply (rule eSuc_enat [THEN subst]) |
451 apply (rule exI) |
451 apply (rule exI) |
452 apply (erule (1) le_less_trans) |
452 apply (erule (1) le_less_trans) |
453 done |
453 done |
454 |
454 |
455 instantiation enat :: "{bot, top}" |
455 instantiation enat :: "{order_bot, order_top}" |
456 begin |
456 begin |
457 |
457 |
458 definition bot_enat :: enat where |
458 definition bot_enat :: enat where |
459 "bot_enat = 0" |
459 "bot_enat = 0" |
460 |
460 |
621 by (cases "A = {}") (auto intro: LeastI2_ex) } |
621 by (cases "A = {}") (auto intro: LeastI2_ex) } |
622 { assume "x \<in> A" then show "x \<le> Sup A" |
622 { assume "x \<in> A" then show "x \<le> Sup A" |
623 unfolding Sup_enat_def by (cases "finite A") auto } |
623 unfolding Sup_enat_def by (cases "finite A") auto } |
624 { assume "\<And>y. y \<in> A \<Longrightarrow> y \<le> x" then show "Sup A \<le> x" |
624 { assume "\<And>y. y \<in> A \<Longrightarrow> y \<le> x" then show "Sup A \<le> x" |
625 unfolding Sup_enat_def using finite_enat_bounded by auto } |
625 unfolding Sup_enat_def using finite_enat_bounded by auto } |
626 qed (simp_all add: inf_enat_def sup_enat_def) |
626 qed (simp_all add: |
|
627 inf_enat_def sup_enat_def bot_enat_def top_enat_def Inf_enat_def Sup_enat_def) |
627 end |
628 end |
628 |
629 |
629 instance enat :: complete_linorder .. |
630 instance enat :: complete_linorder .. |
630 |
631 |
631 subsection {* Traditional theorem names *} |
632 subsection {* Traditional theorem names *} |