equal
deleted
inserted
replaced
102 |
102 |
103 lemma (in GAUSS) A_res: "ResSet p A" |
103 lemma (in GAUSS) A_res: "ResSet p A" |
104 apply (auto simp add: A_def ResSet_def) |
104 apply (auto simp add: A_def ResSet_def) |
105 apply (rule_tac m = p in zcong_less_eq) |
105 apply (rule_tac m = p in zcong_less_eq) |
106 apply (insert p_g_2, auto) |
106 apply (insert p_g_2, auto) |
107 apply (subgoal_tac [1-2] "(p - 1) div 2 < p") |
|
108 apply (auto, auto simp add: p_minus_one_l) |
|
109 done |
107 done |
110 |
108 |
111 lemma (in GAUSS) B_res: "ResSet p B" |
109 lemma (in GAUSS) B_res: "ResSet p B" |
112 apply (insert p_g_2 p_a_relprime p_minus_one_l) |
110 apply (insert p_g_2 p_a_relprime p_minus_one_l) |
113 apply (auto simp add: B_def) |
111 apply (auto simp add: B_def) |
253 by (auto simp add: D_def C_def B_def A_def) |
251 by (auto simp add: D_def C_def B_def A_def) |
254 |
252 |
255 lemma (in GAUSS) D_leq: "x \<in> D ==> x \<le> (p - 1) div 2" |
253 lemma (in GAUSS) D_leq: "x \<in> D ==> x \<le> (p - 1) div 2" |
256 by (auto simp add: D_eq) |
254 by (auto simp add: D_eq) |
257 |
255 |
|
256 ML {* fast_arith_split_limit := 0; *} (*FIXME*) |
|
257 |
258 lemma (in GAUSS) F_ge: "x \<in> F ==> x \<le> (p - 1) div 2" |
258 lemma (in GAUSS) F_ge: "x \<in> F ==> x \<le> (p - 1) div 2" |
259 apply (auto simp add: F_eq A_def) |
259 apply (auto simp add: F_eq A_def) |
260 proof - |
260 proof - |
261 fix y |
261 fix y |
262 assume "(p - 1) div 2 < StandardRes p (y * a)" |
262 assume "(p - 1) div 2 < StandardRes p (y * a)" |
267 also have "2 * ((p - 1) div 2) + 1 - (p - 1) div 2 = (p - 1) div 2 + 1" |
267 also have "2 * ((p - 1) div 2) + 1 - (p - 1) div 2 = (p - 1) div 2 + 1" |
268 by arith |
268 by arith |
269 finally show "p - StandardRes p (y * a) \<le> (p - 1) div 2" |
269 finally show "p - StandardRes p (y * a) \<le> (p - 1) div 2" |
270 using zless_add1_eq [of "p - StandardRes p (y * a)" "(p - 1) div 2"] by auto |
270 using zless_add1_eq [of "p - StandardRes p (y * a)" "(p - 1) div 2"] by auto |
271 qed |
271 qed |
|
272 |
|
273 ML {* fast_arith_split_limit := 9; *} (*FIXME*) |
272 |
274 |
273 lemma (in GAUSS) all_A_relprime: "\<forall>x \<in> A. zgcd(x, p) = 1" |
275 lemma (in GAUSS) all_A_relprime: "\<forall>x \<in> A. zgcd(x, p) = 1" |
274 using p_prime p_minus_one_l by (auto simp add: A_def zless_zprime_imp_zrelprime) |
276 using p_prime p_minus_one_l by (auto simp add: A_def zless_zprime_imp_zrelprime) |
275 |
277 |
276 lemma (in GAUSS) A_prod_relprime: "zgcd((setprod id A),p) = 1" |
278 lemma (in GAUSS) A_prod_relprime: "zgcd((setprod id A),p) = 1" |