src/HOL/Nat.thy
changeset 22845 5f9138bcb3d7
parent 22744 5cbe966d67a2
child 22920 0dbcb73bf9bf
equal deleted inserted replaced
22844:91c05f4b509e 22845:5f9138bcb3d7
    62   Zero_nat_def: "0 == Abs_Nat Zero_Rep"
    62   Zero_nat_def: "0 == Abs_Nat Zero_Rep"
    63   One_nat_def [simp]: "1 == Suc 0"
    63   One_nat_def [simp]: "1 == Suc 0"
    64   less_def: "m < n == (m, n) : pred_nat^+"
    64   less_def: "m < n == (m, n) : pred_nat^+"
    65   le_def:   "m \<le> (n::nat) == ~ (n < m)" ..
    65   le_def:   "m \<le> (n::nat) == ~ (n < m)" ..
    66 
    66 
    67 lemmas [code nofunc] = less_def le_def
    67 lemmas [code func del] = less_def le_def
    68 
    68 
    69 text {* Induction *}
    69 text {* Induction *}
    70 
    70 
    71 lemma Rep_Nat': "Nat (Rep_Nat x)"
    71 lemma Rep_Nat': "Nat (Rep_Nat x)"
    72   by (rule Rep_Nat [simplified mem_Collect_eq])
    72   by (rule Rep_Nat [simplified mem_Collect_eq])
  1097     "(n\<Colon>nat) < Suc m \<longleftrightarrow> n \<le> m"
  1097     "(n\<Colon>nat) < Suc m \<longleftrightarrow> n \<le> m"
  1098   using Suc_le_eq less_Suc_eq_le by simp_all
  1098   using Suc_le_eq less_Suc_eq_le by simp_all
  1099 
  1099 
  1100 
  1100 
  1101 subsection {* Further Arithmetic Facts Concerning the Natural Numbers *}
  1101 subsection {* Further Arithmetic Facts Concerning the Natural Numbers *}
       
  1102 
       
  1103 lemma subst_equals:
       
  1104   assumes 1: "t = s" and 2: "u = t"
       
  1105   shows "u = s"
       
  1106   using 2 1 by (rule trans)
  1102 
  1107 
  1103 use "arith_data.ML"
  1108 use "arith_data.ML"
  1104 setup arith_setup
  1109 setup arith_setup
  1105 
  1110 
  1106 text{*The following proofs may rely on the arithmetic proof procedures.*}
  1111 text{*The following proofs may rely on the arithmetic proof procedures.*}