diff --git a/proofs/isabelle/EchidnaNat.thy b/proofs/isabelle/EchidnaNat.thy index 107e669..6647643 100644 --- a/proofs/isabelle/EchidnaNat.thy +++ b/proofs/isabelle/EchidnaNat.thy @@ -194,19 +194,19 @@ text \ \ lemma power_zero: - "n ^ 0 = 1" + "(n::nat) ^ 0 = 1" by simp lemma power_one: - "n ^ 1 = n" + "(n::nat) ^ 1 = n" by simp lemma power_add: - "n ^ (m + p) = n ^ m * n ^ p" + "(n::nat) ^ (m + p) = n ^ m * n ^ p" by (simp add: power_add) lemma power_mult: - "n ^ (m * p) = (n ^ m) ^ p" + "(n::nat) ^ (m * p) = (n ^ m) ^ p" by (simp add: power_mult) text \ @@ -214,7 +214,7 @@ text \ \ lemma power_add_inductive: - shows "n ^ (m + p) = n ^ m * n ^ p" + shows "(n::nat) ^ (m + p) = n ^ m * n ^ p" proof (induction m) case 0 show ?case by simp @@ -240,15 +240,15 @@ text \ \ lemma le_refl: - "n \ n" + "(n::nat) \ n" by simp lemma le_trans: - "m \ n \ n \ p \ m \ p" + "(m::nat) \ n \ n \ p \ m \ p" by simp lemma le_antisym: - "m \ n \ n \ m \ m = n" + "(m::nat) \ n \ n \ m \ m = n" by simp text \ @@ -256,15 +256,15 @@ text \ \ lemma less_irrefl: - "\(n < n)" + "\((n::nat) < n)" by simp lemma less_trans: - "m < n \ n < p \ m < p" + "(m::nat) < n \ n < p \ m < p" by simp lemma less_imp_le: - "m < n \ m \ n" + "(m::nat) < n \ m \ n" by simp text \ @@ -290,11 +290,11 @@ text \ \ lemma add_le_mono: - "m \ n \ m + p \ n + p" + "(m::nat) \ n \ m + p \ n + p" by simp lemma add_less_mono: - "m < n \ m + p < n + p" + "(m::nat) < n \ m + p < n + p" by simp text \ @@ -302,11 +302,11 @@ text \ \ lemma add_left_cancel: - "p + m = p + n \ m = n" + "(p::nat) + m = p + n \ m = n" by simp lemma add_right_cancel: - "m + p = n + p \ m = n" + "(m::nat) + p = n + p \ m = n" by simp section \Division and Modulo\ @@ -316,19 +316,19 @@ text \ \ lemma div_mult_self: - "n > 0 \ (m * n) div n = m" + "(n::nat) > 0 \ (m * n) div n = m" by simp lemma mod_mult_self: - "n > 0 \ (m * n) mod n = 0" + "(n::nat) > 0 \ (m * n) mod n = 0" by simp lemma div_less: - "m < n \ n > 0 \ m div n = 0" + "(m::nat) < n \ n > 0 \ m div n = 0" by simp lemma mod_less: - "m < n \ n > 0 \ m mod n = m" + "(m::nat) < n \ n > 0 \ m mod n = m" by simp text \ @@ -336,7 +336,7 @@ text \ \ lemma div_mod_equality: - "n > 0 \ (m div n) * n + m mod n = m" + "(n::nat) > 0 \ (m div n) * n + m mod n = m" by simp section \Even and Odd\ @@ -346,15 +346,15 @@ text \ \ lemma even_zero: - "even 0" + "even (0::nat)" by simp lemma even_double: - "even (2 * n)" + "even (2 * (n::nat))" by simp lemma even_succ_succ: - "even n \ even (Suc (Suc n))" + "even (n::nat) \ even (Suc (Suc n))" by simp text \ @@ -362,7 +362,7 @@ text \ \ lemma even_add: - "even m \ even n \ even (m + n)" + "even (m::nat) \ even n \ even (m + n)" by simp text \ @@ -370,7 +370,7 @@ text \ \ lemma even_mult: - "even m \ even n \ even (m * n)" + "even (m::nat) \ even n \ even (m * n)" by auto section \Strong Induction\ @@ -382,8 +382,8 @@ text \ \ lemma strong_induction_example: - assumes "\n. (\m. m < n \ P m) \ P n" - shows "P n" + assumes "\k::nat. (\m. m < k \ P m) \ P k" + shows "P (n::nat)" proof - have "\m. m \ n \ P m" proof (induction n)