src/HOL/Fields.thy
changeset 59535 9e7467829db5
parent 58889 5b7a9633cfa8
child 59546 3850a2d20f19
equal deleted inserted replaced
59534:c3ca292c1484 59535:9e7467829db5
   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"