src/HOL/Power.thy
changeset 25874 14819a95cf75
parent 25836 f7771e4f7064
child 28131 3130d7b3149d
--- a/src/HOL/Power.thy	Wed Jan 09 10:56:35 2008 +0100
+++ b/src/HOL/Power.thy	Wed Jan 09 19:23:36 2008 +0100
@@ -45,20 +45,20 @@
 lemma power_mult_distrib: "((a::'a::{recpower,comm_monoid_mult}) * b) ^ n = (a^n) * (b^n)"
   by (induct n) (simp_all add: power_Suc mult_ac)
 
-lemma zero_less_power:
+lemma zero_less_power[simp]:
      "0 < (a::'a::{ordered_semidom,recpower}) ==> 0 < a^n"
 apply (induct "n")
 apply (simp_all add: power_Suc zero_less_one mult_pos_pos)
 done
 
-lemma zero_le_power:
+lemma zero_le_power[simp]:
      "0 \<le> (a::'a::{ordered_semidom,recpower}) ==> 0 \<le> a^n"
 apply (simp add: order_le_less)
 apply (erule disjE)
-apply (simp_all add: zero_less_power zero_less_one power_0_left)
+apply (simp_all add: zero_less_one power_0_left)
 done
 
-lemma one_le_power:
+lemma one_le_power[simp]:
      "1 \<le> (a::'a::{ordered_semidom,recpower}) ==> 1 \<le> a^n"
 apply (induct "n")
 apply (simp_all add: power_Suc)
@@ -80,7 +80,7 @@
   finally show ?thesis by simp
 qed
 
-lemma one_less_power:
+lemma one_less_power[simp]:
   "\<lbrakk>1 < (a::'a::{ordered_semidom,recpower}); 0 < n\<rbrakk> \<Longrightarrow> 1 < a ^ n"
 by (cases n, simp_all add: power_gt1_lemma power_Suc)
 
@@ -128,14 +128,14 @@
      "[|a \<le> b; (0::'a::{recpower,ordered_semidom}) \<le> a|] ==> a^n \<le> b^n"
 apply (induct "n")
 apply (simp_all add: power_Suc)
-apply (auto intro: mult_mono zero_le_power order_trans [of 0 a b])
+apply (auto intro: mult_mono order_trans [of 0 a b])
 done
 
 lemma power_strict_mono [rule_format]:
      "[|a < b; (0::'a::{recpower,ordered_semidom}) \<le> a|]
       ==> 0 < n --> a^n < b^n"
 apply (induct "n")
-apply (auto simp add: mult_strict_mono zero_le_power power_Suc
+apply (auto simp add: mult_strict_mono power_Suc
                       order_le_less_trans [of 0 a b])
 done
 
@@ -225,7 +225,7 @@
 apply (rename_tac m)
 apply (subgoal_tac "a * a^m < 1 * a^n", simp)
 apply (rule mult_strict_mono)
-apply (auto simp add: zero_le_power zero_less_one order_less_imp_le)
+apply (auto simp add: zero_less_one order_less_imp_le)
 done
 
 text{*Proof resembles that of @{text power_strict_decreasing}*}
@@ -238,7 +238,7 @@
 apply (rename_tac m)
 apply (subgoal_tac "a * a^m \<le> 1 * a^n", simp)
 apply (rule mult_mono)
-apply (auto simp add: zero_le_power zero_le_one)
+apply (auto simp add: zero_le_one)
 done
 
 lemma power_Suc_less_one:
@@ -255,7 +255,7 @@
 apply (rename_tac m)
 apply (subgoal_tac "1 * a^n \<le> a * a^m", simp)
 apply (rule mult_mono)
-apply (auto simp add: order_trans [OF zero_le_one] zero_le_power)
+apply (auto simp add: order_trans [OF zero_le_one])
 done
 
 text{*Lemma for @{text power_strict_increasing}*}
@@ -273,8 +273,7 @@
 apply (rename_tac m)
 apply (subgoal_tac "1 * a^n < a * a^m", simp)
 apply (rule mult_strict_mono)
-apply (auto simp add: order_less_trans [OF zero_less_one] zero_le_power
-                 order_less_imp_le)
+apply (auto simp add: order_less_trans [OF zero_less_one] order_less_imp_le)
 done
 
 lemma power_increasing_iff [simp]: