equal
deleted
inserted
replaced
1170 show "z^(Suc n) = z * (z^n)" by simp |
1170 show "z^(Suc n) = z * (z^n)" by simp |
1171 qed |
1171 qed |
1172 |
1172 |
1173 |
1173 |
1174 lemma zpower_zmod: "((x::int) mod m)^y mod m = x^y mod m" |
1174 lemma zpower_zmod: "((x::int) mod m)^y mod m = x^y mod m" |
1175 apply (induct_tac "y", auto) |
1175 apply (induct "y", auto) |
1176 apply (rule zmod_zmult1_eq [THEN trans]) |
1176 apply (rule zmod_zmult1_eq [THEN trans]) |
1177 apply (simp (no_asm_simp)) |
1177 apply (simp (no_asm_simp)) |
1178 apply (rule zmod_zmult_distrib [symmetric]) |
1178 apply (rule zmod_zmult_distrib [symmetric]) |
1179 done |
1179 done |
1180 |
1180 |
1184 lemma zpower_zpower: "(x^y)^z = (x^(y*z)::int)" |
1184 lemma zpower_zpower: "(x^y)^z = (x^(y*z)::int)" |
1185 by (rule Power.power_mult [symmetric]) |
1185 by (rule Power.power_mult [symmetric]) |
1186 |
1186 |
1187 lemma zero_less_zpower_abs_iff [simp]: |
1187 lemma zero_less_zpower_abs_iff [simp]: |
1188 "(0 < (abs x)^n) = (x \<noteq> (0::int) | n=0)" |
1188 "(0 < (abs x)^n) = (x \<noteq> (0::int) | n=0)" |
1189 apply (induct_tac "n") |
1189 apply (induct "n") |
1190 apply (auto simp add: zero_less_mult_iff) |
1190 apply (auto simp add: zero_less_mult_iff) |
1191 done |
1191 done |
1192 |
1192 |
1193 lemma zero_le_zpower_abs [simp]: "(0::int) <= (abs x)^n" |
1193 lemma zero_le_zpower_abs [simp]: "(0::int) <= (abs x)^n" |
1194 apply (induct_tac "n") |
1194 apply (induct "n") |
1195 apply (auto simp add: zero_le_mult_iff) |
1195 apply (auto simp add: zero_le_mult_iff) |
1196 done |
1196 done |
1197 |
1197 |
1198 lemma zdiv_int: "int (a div b) = (int a) div (int b)" |
1198 lemma zdiv_int: "int (a div b) = (int a) div (int b)" |
1199 apply (subst split_div, auto) |
1199 apply (subst split_div, auto) |