equal
deleted
inserted
replaced
368 then have "x \<le> int p * (int q - 1) div 2 + (int p - 1) div 2" |
368 then have "x \<le> int p * (int q - 1) div 2 + (int p - 1) div 2" |
369 unfolding BuDuF_def using p_eq2 int_distrib(4) by auto |
369 unfolding BuDuF_def using p_eq2 int_distrib(4) by auto |
370 moreover from x have "(int p - 1) div 2 \<le> - 1 + x mod p" |
370 moreover from x have "(int p - 1) div 2 \<le> - 1 + x mod p" |
371 by (auto simp: BuDuF_def) |
371 by (auto simp: BuDuF_def) |
372 moreover have "int p * (int q - 1) div 2 = int p * ((int q - 1) div 2)" |
372 moreover have "int p * (int q - 1) div 2 = int p * ((int q - 1) div 2)" |
373 using div_mult1_eq odd_q by auto |
373 by (subst div_mult1_eq) (simp add: odd_q) |
374 then have "p * (int q - 1) div 2 = p * ((int q + 1) div 2 - 1)" |
374 then have "p * (int q - 1) div 2 = p * ((int q + 1) div 2 - 1)" |
375 by fastforce |
375 by fastforce |
376 ultimately have "x \<le> p * ((int q + 1) div 2 - 1) - 1 + x mod p" |
376 ultimately have "x \<le> p * ((int q + 1) div 2 - 1) - 1 + x mod p" |
377 by linarith |
377 by linarith |
378 then have "x div p < (int q + 1) div 2 - 1" |
378 then have "x div p < (int q + 1) div 2 - 1" |