src/HOL/Nat.thy
changeset 35216 7641e8d831d2
parent 35121 36c0a6dd8c6f
child 35416 d8d7d1b785af
equal deleted inserted replaced
35215:a03462cbf86f 35216:7641e8d831d2
  1354   unfolding abs_if by auto
  1354   unfolding abs_if by auto
  1355 
  1355 
  1356 end
  1356 end
  1357 
  1357 
  1358 lemma of_nat_id [simp]: "of_nat n = n"
  1358 lemma of_nat_id [simp]: "of_nat n = n"
  1359   by (induct n) (auto simp add: One_nat_def)
  1359   by (induct n) simp_all
  1360 
  1360 
  1361 lemma of_nat_eq_id [simp]: "of_nat = id"
  1361 lemma of_nat_eq_id [simp]: "of_nat = id"
  1362   by (auto simp add: expand_fun_eq)
  1362   by (auto simp add: expand_fun_eq)
  1363 
  1363 
  1364 
  1364 
  1617 lemma nat_dvd_1_iff_1 [simp]: "m dvd (1::nat) \<longleftrightarrow> m = 1"
  1617 lemma nat_dvd_1_iff_1 [simp]: "m dvd (1::nat) \<longleftrightarrow> m = 1"
  1618 by (simp add: dvd_def)
  1618 by (simp add: dvd_def)
  1619 
  1619 
  1620 lemma dvd_antisym: "[| m dvd n; n dvd m |] ==> m = (n::nat)"
  1620 lemma dvd_antisym: "[| m dvd n; n dvd m |] ==> m = (n::nat)"
  1621   unfolding dvd_def
  1621   unfolding dvd_def
  1622   by (force dest: mult_eq_self_implies_10 simp add: mult_assoc mult_eq_1_iff)
  1622   by (force dest: mult_eq_self_implies_10 simp add: mult_assoc)
  1623 
  1623 
  1624 text {* @{term "op dvd"} is a partial order *}
  1624 text {* @{term "op dvd"} is a partial order *}
  1625 
  1625 
  1626 interpretation dvd: order "op dvd" "\<lambda>n m \<Colon> nat. n dvd m \<and> \<not> m dvd n"
  1626 interpretation dvd: order "op dvd" "\<lambda>n m \<Colon> nat. n dvd m \<and> \<not> m dvd n"
  1627   proof qed (auto intro: dvd_refl dvd_trans dvd_antisym)
  1627   proof qed (auto intro: dvd_refl dvd_trans dvd_antisym)