equal
deleted
inserted
replaced
150 by (simp add: divide_inverse nonzero_inverse_minus_eq) |
150 by (simp add: divide_inverse nonzero_inverse_minus_eq) |
151 |
151 |
152 lemma nonzero_minus_divide_divide: "b \<noteq> 0 ==> (-a) / (-b) = a / b" |
152 lemma nonzero_minus_divide_divide: "b \<noteq> 0 ==> (-a) / (-b) = a / b" |
153 by (simp add: divide_inverse nonzero_inverse_minus_eq) |
153 by (simp add: divide_inverse nonzero_inverse_minus_eq) |
154 |
154 |
155 lemma divide_minus_left [simp]: "(-a) / b = - (a / b)" |
155 lemma divide_minus_left: "(-a) / b = - (a / b)" |
156 by (simp add: divide_inverse) |
156 by (simp add: divide_inverse) |
157 |
157 |
158 lemma diff_divide_distrib: "(a - b) / c = a / c - b / c" |
158 lemma diff_divide_distrib: "(a - b) / c = a / c - b / c" |
159 using add_divide_distrib [of a "- b" c] by simp |
159 using add_divide_distrib [of a "- b" c] by (simp add: divide_inverse) |
160 |
160 |
161 lemma nonzero_eq_divide_eq [field_simps]: "c \<noteq> 0 \<Longrightarrow> a = b / c \<longleftrightarrow> a * c = b" |
161 lemma nonzero_eq_divide_eq [field_simps]: "c \<noteq> 0 \<Longrightarrow> a = b / c \<longleftrightarrow> a * c = b" |
162 proof - |
162 proof - |
163 assume [simp]: "c \<noteq> 0" |
163 assume [simp]: "c \<noteq> 0" |
164 have "a = b / c \<longleftrightarrow> a * c = (b / c) * c" by simp |
164 have "a = b / c \<longleftrightarrow> a * c = (b / c) * c" by simp |
406 |
406 |
407 lemma minus_divide_right: |
407 lemma minus_divide_right: |
408 "- (a / b) = a / - b" |
408 "- (a / b) = a / - b" |
409 by (simp add: divide_inverse) |
409 by (simp add: divide_inverse) |
410 |
410 |
411 lemma divide_minus_right [simp]: |
411 lemma divide_minus_right: |
412 "a / - b = - (a / b)" |
412 "a / - b = - (a / b)" |
413 by (simp add: divide_inverse) |
413 by (simp add: divide_inverse) |
414 |
414 |
415 lemma minus_divide_divide: |
415 lemma minus_divide_divide: |
416 "(- a) / (- b) = a / b" |
416 "(- a) / (- b) = a / b" |
1043 by (force simp add: divide_strict_right_mono le_less) |
1043 by (force simp add: divide_strict_right_mono le_less) |
1044 |
1044 |
1045 lemma divide_right_mono_neg: "a <= b |
1045 lemma divide_right_mono_neg: "a <= b |
1046 ==> c <= 0 ==> b / c <= a / c" |
1046 ==> c <= 0 ==> b / c <= a / c" |
1047 apply (drule divide_right_mono [of _ _ "- c"]) |
1047 apply (drule divide_right_mono [of _ _ "- c"]) |
1048 apply auto |
1048 apply (auto simp: divide_minus_right) |
1049 done |
1049 done |
1050 |
1050 |
1051 lemma divide_left_mono_neg: "a <= b |
1051 lemma divide_left_mono_neg: "a <= b |
1052 ==> c <= 0 ==> 0 < a * b ==> c / a <= c / b" |
1052 ==> c <= 0 ==> 0 < a * b ==> c / a <= c / b" |
1053 apply (drule divide_left_mono [of _ _ "- c"]) |
1053 apply (drule divide_left_mono [of _ _ "- c"]) |
1054 apply (auto simp add: mult_commute) |
1054 apply (auto simp add: divide_minus_left mult_commute) |
1055 done |
1055 done |
1056 |
1056 |
1057 lemma inverse_le_iff: |
1057 lemma inverse_le_iff: |
1058 "inverse a \<le> inverse b \<longleftrightarrow> (0 < a * b \<longrightarrow> b \<le> a) \<and> (a * b \<le> 0 \<longrightarrow> a \<le> b)" |
1058 "inverse a \<le> inverse b \<longleftrightarrow> (0 < a * b \<longrightarrow> b \<le> a) \<and> (a * b \<le> 0 \<longrightarrow> a \<le> b)" |
1059 proof - |
1059 proof - |