src/HOL/Hilbert_Choice.thy
changeset 45607 16b4f5774621
parent 44921 58eef4843641
child 46950 d0181abdbdac
equal deleted inserted replaced
45606:b1e1508643b1 45607:16b4f5774621
   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])