equal
deleted
inserted
replaced
1294 |
1294 |
1295 lemma nat_diff_split_asm: "P (a - b) \<longleftrightarrow> \<not> (a < b \<and> \<not> P 0 \<or> (\<exists>d. a = b + d \<and> \<not> P d))" |
1295 lemma nat_diff_split_asm: "P (a - b) \<longleftrightarrow> \<not> (a < b \<and> \<not> P 0 \<or> (\<exists>d. a = b + d \<and> \<not> P d))" |
1296 for a b :: nat |
1296 for a b :: nat |
1297 \<comment> \<open>elimination of \<open>-\<close> on \<open>nat\<close> in assumptions\<close> |
1297 \<comment> \<open>elimination of \<open>-\<close> on \<open>nat\<close> in assumptions\<close> |
1298 by (auto split: nat_diff_split) |
1298 by (auto split: nat_diff_split) |
|
1299 |
|
1300 lemmas nat_diff_splits = nat_diff_split nat_diff_split_asm |
1299 |
1301 |
1300 lemma Suc_pred': "0 < n \<Longrightarrow> n = Suc(n - 1)" |
1302 lemma Suc_pred': "0 < n \<Longrightarrow> n = Suc(n - 1)" |
1301 by simp |
1303 by simp |
1302 |
1304 |
1303 lemma add_eq_if: "m + n = (if m = 0 then n else Suc ((m - 1) + n))" |
1305 lemma add_eq_if: "m + n = (if m = 0 then n else Suc ((m - 1) + n))" |