dropped duplicate lemma sum_nonneg_eq_zero_iff
authorhaftmann
Mon, 04 May 2009 14:49:49 +0200
changeset 31034736f521ad036
parent 31033 c46d52fee219
child 31035 de0a20a030fd
dropped duplicate lemma sum_nonneg_eq_zero_iff
src/HOL/Library/Euclidean_Space.thy
src/HOL/Nat_Numeral.thy
src/HOL/OrderedGroup.thy
     1.1 --- a/src/HOL/Library/Euclidean_Space.thy	Mon May 04 14:49:48 2009 +0200
     1.2 +++ b/src/HOL/Library/Euclidean_Space.thy	Mon May 04 14:49:49 2009 +0200
     1.3 @@ -593,7 +593,7 @@
     1.4    from insert.prems have Fx: "f x \<ge> 0" and Fp: "\<forall> a \<in> F. f a \<ge> 0" by simp_all
     1.5    from insert.hyps Fp setsum_nonneg[OF Fp]
     1.6    have h: "setsum f F = 0 \<longleftrightarrow> (\<forall>a \<in>F. f a = 0)" by metis
     1.7 -  from sum_nonneg_eq_zero_iff[OF Fx  setsum_nonneg[OF Fp]] insert.hyps(1,2)
     1.8 +  from add_nonneg_eq_0_iff[OF Fx  setsum_nonneg[OF Fp]] insert.hyps(1,2)
     1.9    show ?case by (simp add: h)
    1.10  qed
    1.11  
     2.1 --- a/src/HOL/Nat_Numeral.thy	Mon May 04 14:49:48 2009 +0200
     2.2 +++ b/src/HOL/Nat_Numeral.thy	Mon May 04 14:49:49 2009 +0200
     2.3 @@ -127,7 +127,7 @@
     2.4  
     2.5  lemma sum_squares_eq_zero_iff:
     2.6    "x * x + y * y = 0 \<longleftrightarrow> x = 0 \<and> y = 0"
     2.7 -  by (simp add: sum_nonneg_eq_zero_iff)
     2.8 +  by (simp add: add_nonneg_eq_0_iff)
     2.9  
    2.10  lemma sum_squares_le_zero_iff:
    2.11    "x * x + y * y \<le> 0 \<longleftrightarrow> x = 0 \<and> y = 0"
     3.1 --- a/src/HOL/OrderedGroup.thy	Mon May 04 14:49:48 2009 +0200
     3.2 +++ b/src/HOL/OrderedGroup.thy	Mon May 04 14:49:49 2009 +0200
     3.3 @@ -637,27 +637,6 @@
     3.4  lemma le_iff_diff_le_0: "a \<le> b \<longleftrightarrow> a - b \<le> 0"
     3.5  by (simp add: algebra_simps)
     3.6  
     3.7 -lemma sum_nonneg_eq_zero_iff:
     3.8 -  assumes x: "0 \<le> x" and y: "0 \<le> y"
     3.9 -  shows "(x + y = 0) = (x = 0 \<and> y = 0)"
    3.10 -proof -
    3.11 -  have "x + y = 0 \<Longrightarrow> x = 0"
    3.12 -  proof -
    3.13 -    from y have "x + 0 \<le> x + y" by (rule add_left_mono)
    3.14 -    also assume "x + y = 0"
    3.15 -    finally have "x \<le> 0" by simp
    3.16 -    then show "x = 0" using x by (rule antisym)
    3.17 -  qed
    3.18 -  moreover have "x + y = 0 \<Longrightarrow> y = 0"
    3.19 -  proof -
    3.20 -    from x have "0 + y \<le> x + y" by (rule add_right_mono)
    3.21 -    also assume "x + y = 0"
    3.22 -    finally have "y \<le> 0" by simp
    3.23 -    then show "y = 0" using y by (rule antisym)
    3.24 -  qed
    3.25 -  ultimately show ?thesis by auto
    3.26 -qed
    3.27 -
    3.28  text{*Legacy - use @{text algebra_simps} *}
    3.29  lemmas group_simps[noatp] = algebra_simps
    3.30