src/HOL/Nat.thy
changeset 35064 1bdef0c013d3
parent 35047 1b2bae06c796
child 35121 36c0a6dd8c6f
equal deleted inserted replaced
35063:893062359bec 35064:1bdef0c013d3
   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)