equal
deleted
inserted
replaced
35 by Auto_tac; |
35 by Auto_tac; |
36 by (asm_full_simp_tac (simpset() addsimps [int_0_less_mult_iff]) 1); |
36 by (asm_full_simp_tac (simpset() addsimps [int_0_less_mult_iff]) 1); |
37 qed_spec_mp "funprod_pos"; |
37 qed_spec_mp "funprod_pos"; |
38 |
38 |
39 Goal "(ALL i. k<=i & i<=(k+l) --> zgcd (mf i, mf m) = #1) --> \ |
39 Goal "(ALL i. k<=i & i<=(k+l) --> zgcd (mf i, mf m) = #1) --> \ |
40 \ #0 < mf m --> zgcd (funprod mf k l, mf m) = #1"; |
40 \ zgcd (funprod mf k l, mf m) = #1"; |
41 by (induct_tac "l" 1); |
41 by (induct_tac "l" 1); |
42 by (ALLGOALS Simp_tac); |
42 by (ALLGOALS Simp_tac); |
43 by (REPEAT (rtac impI 1)); |
43 by (REPEAT (rtac impI 1)); |
44 by (stac zgcd_zmult_cancel 1); |
44 by (stac zgcd_zmult_cancel 1); |
45 by Auto_tac; |
45 by Auto_tac; |
109 by (induct_tac "n" 1); |
109 by (induct_tac "n" 1); |
110 by (ALLGOALS Simp_tac); |
110 by (ALLGOALS Simp_tac); |
111 by (blast_tac (claset() addIs [lemma]) 1); |
111 by (blast_tac (claset() addIs [lemma]) 1); |
112 by (REPEAT (rtac impI 1)); |
112 by (REPEAT (rtac impI 1)); |
113 by (rtac zcong_zgcd_zmult_zmod 1); |
113 by (rtac zcong_zgcd_zmult_zmod 1); |
114 by (blast_tac (claset() addIs [lemma]) 3); |
114 by (blast_tac (claset() addIs [lemma]) 1); |
115 by (stac zgcd_commute 4); |
115 by (stac zgcd_commute 2); |
116 by (rtac funprod_zgcd 6); |
116 by (rtac funprod_zgcd 2); |
117 by (rtac funprod_pos 5); |
117 by (auto_tac (claset(), |
118 by (rtac funprod_pos 2); |
118 simpset() addsimps [m_cond_def,km_cond_def,lincong_sol_def])); |
119 by (rewrite_goals_tac [m_cond_def,km_cond_def,lincong_sol_def]); |
|
120 by Auto_tac; |
|
121 qed_spec_mp "zcong_funprod"; |
119 qed_spec_mp "zcong_funprod"; |
122 |
120 |
123 |
121 |
124 (* Chinese: Existence *) |
122 (* Chinese: Existence *) |
125 |
123 |
131 \ ==> EX! x. #0<=x & x<(mf i) & \ |
129 \ ==> EX! x. #0<=x & x<(mf i) & \ |
132 \ [(kf i)*(mhf mf n i)*x = bf i] (mod mf i)"; |
130 \ [(kf i)*(mhf mf n i)*x = bf i] (mod mf i)"; |
133 by (rtac zcong_lineq_unique 1); |
131 by (rtac zcong_lineq_unique 1); |
134 by (stac zgcd_zmult_cancel 2); |
132 by (stac zgcd_zmult_cancel 2); |
135 by (rewrite_goals_tac [m_cond_def,km_cond_def,mhf_def]); |
133 by (rewrite_goals_tac [m_cond_def,km_cond_def,mhf_def]); |
136 by (case_tac "i=0" 4); |
134 by (ALLGOALS Asm_simp_tac); |
137 by (case_tac "i=n" 5); |
135 by Auto_tac; |
138 by (ALLGOALS Asm_simp_tac); |
|
139 by (stac zgcd_zmult_cancel 3); |
136 by (stac zgcd_zmult_cancel 3); |
140 by (Asm_simp_tac 3); |
137 by (Asm_simp_tac 3); |
141 by (ALLGOALS (rtac funprod_zgcd)); |
138 by (ALLGOALS (rtac funprod_zgcd)); |
142 by Safe_tac; |
139 by Safe_tac; |
143 by (ALLGOALS Asm_full_simp_tac); |
140 by (ALLGOALS Asm_full_simp_tac); |