equal
deleted
inserted
replaced
174 show "0 + n = n" by simp |
174 show "0 + n = n" by simp |
175 qed |
175 qed |
176 |
176 |
177 end |
177 end |
178 |
178 |
179 hide (open) fact add_0_right |
179 hide (open) fact add_0 add_0_right diff_0 |
180 |
180 |
181 instantiation nat :: comm_semiring_1_cancel |
181 instantiation nat :: comm_semiring_1_cancel |
182 begin |
182 begin |
183 |
183 |
184 definition |
184 definition |
1489 text {* Simplification of relational expressions involving subtraction *} |
1489 text {* Simplification of relational expressions involving subtraction *} |
1490 |
1490 |
1491 lemma diff_diff_eq: "[| k \<le> m; k \<le> (n::nat) |] ==> ((m-k) - (n-k)) = (m-n)" |
1491 lemma diff_diff_eq: "[| k \<le> m; k \<le> (n::nat) |] ==> ((m-k) - (n-k)) = (m-n)" |
1492 by (simp split add: nat_diff_split) |
1492 by (simp split add: nat_diff_split) |
1493 |
1493 |
|
1494 hide (open) fact diff_diff_eq |
|
1495 |
1494 lemma eq_diff_iff: "[| k \<le> m; k \<le> (n::nat) |] ==> (m-k = n-k) = (m=n)" |
1496 lemma eq_diff_iff: "[| k \<le> m; k \<le> (n::nat) |] ==> (m-k = n-k) = (m=n)" |
1495 by (auto split add: nat_diff_split) |
1497 by (auto split add: nat_diff_split) |
1496 |
1498 |
1497 lemma less_diff_iff: "[| k \<le> m; k \<le> (n::nat) |] ==> (m-k < n-k) = (m<n)" |
1499 lemma less_diff_iff: "[| k \<le> m; k \<le> (n::nat) |] ==> (m-k < n-k) = (m<n)" |
1498 by (auto split add: nat_diff_split) |
1500 by (auto split add: nat_diff_split) |