src/HOL/Real/HahnBanach/Aux.thy
changeset 9374 153853af318b
parent 9256 f9a6670427fb
child 9379 21cfeae6659d
equal deleted inserted replaced
9373:78a11a353473 9374:153853af318b
    15 lemmas chainE2 = chainD2 [elimify]
    15 lemmas chainE2 = chainD2 [elimify]
    16 
    16 
    17 text_raw {* \medskip *}
    17 text_raw {* \medskip *}
    18 text{* Lemmas about sets. *}
    18 text{* Lemmas about sets. *}
    19 
    19 
    20 lemma Int_singletonD: "[| A Int B = {v}; x:A; x:B |] ==> x = v"
    20 lemma Int_singletonD: "[| A \<inter> B = {v}; x \<in> A; x \<in> B |] ==> x = v"
    21   by (fast elim: equalityE)
    21   by (fast elim: equalityE)
    22 
    22 
    23 lemma set_less_imp_diff_not_empty: "H < E ==> EX x0:E. x0 ~: H"
    23 lemma set_less_imp_diff_not_empty: "H < E ==> \<exists>x0 \<in> E. x0 \<notin> H"
    24  by (force simp add: psubset_eq)
    24  by (force simp add: psubset_eq)
    25 
    25 
    26 text_raw {* \medskip *}
    26 text_raw {* \medskip *}
    27 text{* Some lemmas about orders. *}
    27 text{* Some lemmas about orders. *}
    28 
    28 
    29 lemma lt_imp_not_eq: "x < (y::'a::order) ==> x ~= y" 
    29 lemma lt_imp_not_eq: "x < (y::'a::order) ==> x \<noteq> y" 
    30   by (rule order_less_le[RS iffD1, RS conjunct2])
    30   by (rule order_less_le[RS iffD1, RS conjunct2])
    31 
    31 
    32 lemma le_noteq_imp_less: 
    32 lemma le_noteq_imp_less: 
    33   "[| x <= (r::'a::order); x ~= r |] ==> x < r"
    33   "[| x <= (r::'a::order); x \<noteq> r |] ==> x < r"
    34 proof -
    34 proof -
    35   assume "x <= (r::'a::order)" and ne:"x ~= r"
    35   assume "x <= r" and ne:"x \<noteq> r"
    36   hence "x < r | x = r" by (simp add: order_le_less)
    36   hence "x < r | x = r" by (simp add: order_le_less)
    37   with ne show ?thesis by simp
    37   with ne show ?thesis by simp
    38 qed
    38 qed
    39 
    39 
    40 text_raw {* \medskip *}
    40 text_raw {* \medskip *}
   114   have "0 < x"; by simp;
   114   have "0 < x"; by simp;
   115   hence "0 < rinv x"; by (rule real_rinv_gt_zero);
   115   hence "0 < rinv x"; by (rule real_rinv_gt_zero);
   116   thus ?thesis; by simp;
   116   thus ?thesis; by simp;
   117 qed;
   117 qed;
   118 
   118 
   119 lemma real_mult_inv_right1: "x ~= #0 ==> x*rinv(x) = #1"
   119 lemma real_mult_inv_right1: "x \<noteq> #0 ==> x*rinv(x) = #1"
   120    by simp
   120    by simp
   121 
   121 
   122 lemma real_mult_inv_left1: "x ~= #0 ==> rinv(x)*x = #1"
   122 lemma real_mult_inv_left1: "x \<noteq> #0 ==> rinv(x) * x = #1"
   123    by simp
   123    by simp
   124 
   124 
   125 lemma real_le_mult_order1a: 
   125 lemma real_le_mult_order1a: 
   126       "[| (#0::real) <= x; #0 <= y |] ==> #0 <= x * y"
   126       "[| (#0::real) <= x; #0 <= y |] ==> #0 <= x * y"
   127 proof -
   127 proof -