src/HOL/Groups.thy
changeset 54148 c8cc5ab4a863
parent 54147 97a8ff4e4ac9
child 54230 b1d955791529
equal deleted inserted replaced
54147:97a8ff4e4ac9 54148:c8cc5ab4a863
   515 lemma diff_diff_eq[algebra_simps, field_simps]: "(a - b) - c = a - (b + c)"
   515 lemma diff_diff_eq[algebra_simps, field_simps]: "(a - b) - c = a - (b + c)"
   516 by (simp add: diff_minus add_ac)
   516 by (simp add: diff_minus add_ac)
   517 
   517 
   518 (* FIXME: duplicates right_minus_eq from class group_add *)
   518 (* FIXME: duplicates right_minus_eq from class group_add *)
   519 (* but only this one is declared as a simp rule. *)
   519 (* but only this one is declared as a simp rule. *)
   520 lemma diff_eq_0_iff_eq [simp, no_atp]: "a - b = 0 \<longleftrightarrow> a = b"
   520 lemma diff_eq_0_iff_eq [simp]: "a - b = 0 \<longleftrightarrow> a = b"
   521   by (rule right_minus_eq)
   521   by (rule right_minus_eq)
   522 
   522 
   523 lemma add_diff_cancel_left: "(c + a) - (c + b) = a - b"
   523 lemma add_diff_cancel_left: "(c + a) - (c + b) = a - b"
   524   by (simp add: diff_minus add_ac)
   524   by (simp add: diff_minus add_ac)
   525 
   525 
   894 qed
   894 qed
   895 
   895 
   896 lemma minus_le_iff: "- a \<le> b \<longleftrightarrow> - b \<le> a"
   896 lemma minus_le_iff: "- a \<le> b \<longleftrightarrow> - b \<le> a"
   897 by (auto simp add: le_less minus_less_iff)
   897 by (auto simp add: le_less minus_less_iff)
   898 
   898 
   899 lemma diff_less_0_iff_less [simp, no_atp]:
   899 lemma diff_less_0_iff_less [simp]:
   900   "a - b < 0 \<longleftrightarrow> a < b"
   900   "a - b < 0 \<longleftrightarrow> a < b"
   901 proof -
   901 proof -
   902   have "a - b < 0 \<longleftrightarrow> a + (- b) < b + (- b)" by (simp add: diff_minus)
   902   have "a - b < 0 \<longleftrightarrow> a + (- b) < b + (- b)" by (simp add: diff_minus)
   903   also have "... \<longleftrightarrow> a < b" by (simp only: add_less_cancel_right)
   903   also have "... \<longleftrightarrow> a < b" by (simp only: add_less_cancel_right)
   904   finally show ?thesis .
   904   finally show ?thesis .
   922 by (auto simp add: le_less diff_less_eq diff_add_cancel add_diff_cancel)
   922 by (auto simp add: le_less diff_less_eq diff_add_cancel add_diff_cancel)
   923 
   923 
   924 lemma le_diff_eq[algebra_simps, field_simps]: "a \<le> c - b \<longleftrightarrow> a + b \<le> c"
   924 lemma le_diff_eq[algebra_simps, field_simps]: "a \<le> c - b \<longleftrightarrow> a + b \<le> c"
   925 by (auto simp add: le_less less_diff_eq diff_add_cancel add_diff_cancel)
   925 by (auto simp add: le_less less_diff_eq diff_add_cancel add_diff_cancel)
   926 
   926 
   927 lemma diff_le_0_iff_le [simp, no_atp]:
   927 lemma diff_le_0_iff_le [simp]:
   928   "a - b \<le> 0 \<longleftrightarrow> a \<le> b"
   928   "a - b \<le> 0 \<longleftrightarrow> a \<le> b"
   929   by (simp add: algebra_simps)
   929   by (simp add: algebra_simps)
   930 
   930 
   931 lemmas le_iff_diff_le_0 = diff_le_0_iff_le [symmetric]
   931 lemmas le_iff_diff_le_0 = diff_le_0_iff_le [symmetric]
   932 
   932 
  1229 qed
  1229 qed
  1230 
  1230 
  1231 lemma abs_zero [simp]: "\<bar>0\<bar> = 0"
  1231 lemma abs_zero [simp]: "\<bar>0\<bar> = 0"
  1232 by simp
  1232 by simp
  1233 
  1233 
  1234 lemma abs_0_eq [simp, no_atp]: "0 = \<bar>a\<bar> \<longleftrightarrow> a = 0"
  1234 lemma abs_0_eq [simp]: "0 = \<bar>a\<bar> \<longleftrightarrow> a = 0"
  1235 proof -
  1235 proof -
  1236   have "0 = \<bar>a\<bar> \<longleftrightarrow> \<bar>a\<bar> = 0" by (simp only: eq_ac)
  1236   have "0 = \<bar>a\<bar> \<longleftrightarrow> \<bar>a\<bar> = 0" by (simp only: eq_ac)
  1237   thus ?thesis by simp
  1237   thus ?thesis by simp
  1238 qed
  1238 qed
  1239 
  1239