equal
deleted
inserted
replaced
43 |
43 |
44 lemma prime_dvd_power_two: "prime p ==> p dvd m\<twosuperior> ==> p dvd m" |
44 lemma prime_dvd_power_two: "prime p ==> p dvd m\<twosuperior> ==> p dvd m" |
45 by (rule prime_dvd_square) (simp_all add: power2_eq_square) |
45 by (rule prime_dvd_square) (simp_all add: power2_eq_square) |
46 |
46 |
47 |
47 |
48 lemma exp_eq_1:"(x::nat)^n = 1 \<longleftrightarrow> x = 1 \<or> n = 0" by (induct n, auto) |
48 lemma exp_eq_1:"(x::nat)^n = 1 \<longleftrightarrow> x = 1 \<or> n = 0" |
|
49 by (induct n, auto) |
|
50 |
49 lemma exp_mono_lt: "(x::nat) ^ (Suc n) < y ^ (Suc n) \<longleftrightarrow> x < y" |
51 lemma exp_mono_lt: "(x::nat) ^ (Suc n) < y ^ (Suc n) \<longleftrightarrow> x < y" |
50 using power_less_imp_less_base[of x "Suc n" y] power_strict_mono[of x y "Suc n"] |
52 by(metis linorder_not_less not_less0 power_le_imp_le_base power_less_imp_less_base) |
51 by auto |
53 |
52 lemma exp_mono_le: "(x::nat) ^ (Suc n) \<le> y ^ (Suc n) \<longleftrightarrow> x \<le> y" |
54 lemma exp_mono_le: "(x::nat) ^ (Suc n) \<le> y ^ (Suc n) \<longleftrightarrow> x \<le> y" |
53 by (simp only: linorder_not_less[symmetric] exp_mono_lt) |
55 by (simp only: linorder_not_less[symmetric] exp_mono_lt) |
54 |
56 |
55 lemma exp_mono_eq: "(x::nat) ^ Suc n = y ^ Suc n \<longleftrightarrow> x = y" |
57 lemma exp_mono_eq: "(x::nat) ^ Suc n = y ^ Suc n \<longleftrightarrow> x = y" |
56 using power_inject_base[of x n y] by auto |
58 using power_inject_base[of x n y] by auto |
57 |
59 |
58 |
60 |