202 also have "... \<longleftrightarrow> b = a * c" by (simp add: divide_inverse mult.assoc) |
202 also have "... \<longleftrightarrow> b = a * c" by (simp add: divide_inverse mult.assoc) |
203 finally show ?thesis . |
203 finally show ?thesis . |
204 qed |
204 qed |
205 |
205 |
206 lemma nonzero_neg_divide_eq_eq [field_simps]: "b \<noteq> 0 \<Longrightarrow> - (a / b) = c \<longleftrightarrow> - a = c * b" |
206 lemma nonzero_neg_divide_eq_eq [field_simps]: "b \<noteq> 0 \<Longrightarrow> - (a / b) = c \<longleftrightarrow> - a = c * b" |
207 using nonzero_divide_eq_eq[of b "-a" c] by (simp add: divide_minus_left) |
207 using nonzero_divide_eq_eq[of b "-a" c] by simp |
208 |
208 |
209 lemma nonzero_neg_divide_eq_eq2 [field_simps]: "b \<noteq> 0 \<Longrightarrow> c = - (a / b) \<longleftrightarrow> c * b = - a" |
209 lemma nonzero_neg_divide_eq_eq2 [field_simps]: "b \<noteq> 0 \<Longrightarrow> c = - (a / b) \<longleftrightarrow> c * b = - a" |
210 using nonzero_neg_divide_eq_eq[of b a c] by auto |
210 using nonzero_neg_divide_eq_eq[of b a c] by auto |
211 |
211 |
212 lemma divide_eq_imp: "c \<noteq> 0 \<Longrightarrow> b = a * c \<Longrightarrow> b / c = a" |
212 lemma divide_eq_imp: "c \<noteq> 0 \<Longrightarrow> b = a * c \<Longrightarrow> b / c = a" |
227 "z \<noteq> 0 \<Longrightarrow> x - y / z = (x * z - y) / z" |
227 "z \<noteq> 0 \<Longrightarrow> x - y / z = (x * z - y) / z" |
228 by (simp add: diff_divide_distrib nonzero_eq_divide_eq eq_diff_eq) |
228 by (simp add: diff_divide_distrib nonzero_eq_divide_eq eq_diff_eq) |
229 |
229 |
230 lemma minus_divide_add_eq_iff [field_simps]: |
230 lemma minus_divide_add_eq_iff [field_simps]: |
231 "z \<noteq> 0 \<Longrightarrow> - (x / z) + y = (- x + y * z) / z" |
231 "z \<noteq> 0 \<Longrightarrow> - (x / z) + y = (- x + y * z) / z" |
232 by (simp add: add_divide_distrib diff_divide_eq_iff divide_minus_left) |
232 by (simp add: add_divide_distrib diff_divide_eq_iff) |
233 |
233 |
234 lemma divide_diff_eq_iff [field_simps]: |
234 lemma divide_diff_eq_iff [field_simps]: |
235 "z \<noteq> 0 \<Longrightarrow> x / z - y = (x - y * z) / z" |
235 "z \<noteq> 0 \<Longrightarrow> x / z - y = (x - y * z) / z" |
236 by (simp add: field_simps) |
236 by (simp add: field_simps) |
237 |
237 |
238 lemma minus_divide_diff_eq_iff [field_simps]: |
238 lemma minus_divide_diff_eq_iff [field_simps]: |
239 "z \<noteq> 0 \<Longrightarrow> - (x / z) - y = (- x - y * z) / z" |
239 "z \<noteq> 0 \<Longrightarrow> - (x / z) - y = (- x - y * z) / z" |
240 by (simp add: divide_diff_eq_iff[symmetric] divide_minus_left) |
240 by (simp add: divide_diff_eq_iff[symmetric]) |
241 |
241 |
242 end |
242 end |
243 |
243 |
244 class division_ring_inverse_zero = division_ring + |
244 class division_ring_inverse_zero = division_ring + |
245 assumes inverse_zero [simp]: "inverse 0 = 0" |
245 assumes inverse_zero [simp]: "inverse 0 = 0" |