src/HOL/Integ/IntDiv.thy
changeset 15251 bb6f072c8d10
parent 15234 ec91a90c604e
child 15320 dfc2654eea9f
equal deleted inserted replaced
15250:217bececa2bd 15251:bb6f072c8d10
  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)