equal
deleted
inserted
replaced
719 "i ^ m dvd i ^ n \<Longrightarrow> (1::nat) < i \<Longrightarrow> m \<le> n" |
719 "i ^ m dvd i ^ n \<Longrightarrow> (1::nat) < i \<Longrightarrow> m \<le> n" |
720 apply (rule power_le_imp_le_exp, assumption) |
720 apply (rule power_le_imp_le_exp, assumption) |
721 apply (erule dvd_imp_le, simp) |
721 apply (erule dvd_imp_le, simp) |
722 done |
722 done |
723 |
723 |
|
724 lemma power2_nat_le_eq_le: |
|
725 fixes m n :: nat |
|
726 shows "m\<twosuperior> \<le> n\<twosuperior> \<longleftrightarrow> m \<le> n" |
|
727 by (auto intro: power2_le_imp_le power_mono) |
|
728 |
|
729 lemma power2_nat_le_imp_le: |
|
730 fixes m n :: nat |
|
731 assumes "m\<twosuperior> \<le> n" |
|
732 shows "m \<le> n" |
|
733 using assms by (cases m) (simp_all add: power2_eq_square) |
|
734 |
|
735 |
724 |
736 |
725 subsection {* Code generator tweak *} |
737 subsection {* Code generator tweak *} |
726 |
738 |
727 lemma power_power_power [code]: |
739 lemma power_power_power [code]: |
728 "power = power.power (1::'a::{power}) (op *)" |
740 "power = power.power (1::'a::{power}) (op *)" |