equal
deleted
inserted
replaced
552 apply (simp add: LeastM_def) |
552 apply (simp add: LeastM_def) |
553 apply (rule someI_ex) |
553 apply (rule someI_ex) |
554 apply (erule ex_has_least_nat) |
554 apply (erule ex_has_least_nat) |
555 done |
555 done |
556 |
556 |
557 lemmas LeastM_natI = LeastM_nat_lemma [THEN conjunct1, standard] |
557 lemmas LeastM_natI = LeastM_nat_lemma [THEN conjunct1] |
558 |
558 |
559 lemma LeastM_nat_le: "P x ==> m (LeastM m P) <= (m x::nat)" |
559 lemma LeastM_nat_le: "P x ==> m (LeastM m P) <= (m x::nat)" |
560 by (rule LeastM_nat_lemma [THEN conjunct2, THEN spec, THEN mp], assumption, assumption) |
560 by (rule LeastM_nat_lemma [THEN conjunct2, THEN spec, THEN mp], assumption, assumption) |
561 |
561 |
562 |
562 |
618 apply (simp add: GreatestM_def) |
618 apply (simp add: GreatestM_def) |
619 apply (rule someI_ex) |
619 apply (rule someI_ex) |
620 apply (erule ex_has_greatest_nat, assumption) |
620 apply (erule ex_has_greatest_nat, assumption) |
621 done |
621 done |
622 |
622 |
623 lemmas GreatestM_natI = GreatestM_nat_lemma [THEN conjunct1, standard] |
623 lemmas GreatestM_natI = GreatestM_nat_lemma [THEN conjunct1] |
624 |
624 |
625 lemma GreatestM_nat_le: |
625 lemma GreatestM_nat_le: |
626 "P x ==> \<forall>y. P y --> m y < b |
626 "P x ==> \<forall>y. P y --> m y < b |
627 ==> (m x::nat) <= m (GreatestM m P)" |
627 ==> (m x::nat) <= m (GreatestM m P)" |
628 apply (blast dest: GreatestM_nat_lemma [THEN conjunct2, THEN spec, of P]) |
628 apply (blast dest: GreatestM_nat_lemma [THEN conjunct2, THEN spec, of P]) |