merged
authornipkow
Fri, 06 Mar 2009 17:39:05 +0100
changeset 30315 495f51ec6ed4
parent 30312 0e0cb7ac0281 (current diff)
parent 30313 b2441b0c8d38 (diff)
child 30316 379d6f06cdb2
child 30321 be94aa3b8fdd
merged
--- a/src/HOL/Power.thy	Fri Mar 06 17:21:17 2009 +0100
+++ b/src/HOL/Power.thy	Fri Mar 06 17:39:05 2009 +0100
@@ -338,6 +338,24 @@
   by (rule dvd_trans [OF le_imp_power_dvd])
 
 
+lemma dvd_power_same:
+  "(x::'a::{comm_semiring_1,recpower}) dvd y \<Longrightarrow> x^n dvd y^n"
+by (induct n) (auto simp add: mult_dvd_mono)
+
+lemma dvd_power_le:
+  "(x::'a::{comm_semiring_1,recpower}) dvd y \<Longrightarrow> m >= n \<Longrightarrow> x^n dvd y^m"
+by(rule power_le_dvd[OF dvd_power_same])
+
+lemma dvd_power [simp]:
+  "n > 0 | (x::'a::{comm_semiring_1,recpower}) = 1 \<Longrightarrow> x dvd x^n"
+apply (erule disjE)
+ apply (subgoal_tac "x ^ n = x^(Suc (n - 1))")
+  apply (erule ssubst)
+  apply (subst power_Suc)
+  apply auto
+done
+
+
 subsection{*Exponentiation for the Natural Numbers*}
 
 instantiation nat :: recpower