equal
deleted
inserted
replaced
307 shows "c = a - b" |
307 shows "c = a - b" |
308 proof - |
308 proof - |
309 from assms have "(b + c) - (b + 0) = a - b" by (simp add: add.commute) |
309 from assms have "(b + c) - (b + 0) = a - b" by (simp add: add.commute) |
310 then show "c = a - b" by simp |
310 then show "c = a - b" by simp |
311 qed |
311 qed |
|
312 |
|
313 lemma add_cancel_right_right [simp]: |
|
314 "a = a + b \<longleftrightarrow> b = 0" (is "?P \<longleftrightarrow> ?Q") |
|
315 proof |
|
316 assume ?Q then show ?P by simp |
|
317 next |
|
318 assume ?P then have "a - a = a + b - a" by simp |
|
319 then show ?Q by simp |
|
320 qed |
|
321 |
|
322 lemma add_cancel_right_left [simp]: |
|
323 "a = b + a \<longleftrightarrow> b = 0" |
|
324 using add_cancel_right_right [of a b] by (simp add: ac_simps) |
|
325 |
|
326 lemma add_cancel_left_right [simp]: |
|
327 "a + b = a \<longleftrightarrow> b = 0" |
|
328 by (auto dest: sym) |
|
329 |
|
330 lemma add_cancel_left_left [simp]: |
|
331 "b + a = a \<longleftrightarrow> b = 0" |
|
332 by (auto dest: sym) |
312 |
333 |
313 end |
334 end |
314 |
335 |
315 class comm_monoid_diff = cancel_comm_monoid_add + |
336 class comm_monoid_diff = cancel_comm_monoid_add + |
316 assumes zero_diff [simp]: "0 - a = 0" |
337 assumes zero_diff [simp]: "0 - a = 0" |