174 by (eres_inst_tac [("x","TVar n # a")] allE 1); |
174 by (eres_inst_tac [("x","TVar n # a")] allE 1); |
175 by (eres_inst_tac [("x","s")] allE 1); |
175 by (eres_inst_tac [("x","s")] allE 1); |
176 by (eres_inst_tac [("x","t")] allE 1); |
176 by (eres_inst_tac [("x","t")] allE 1); |
177 by (eres_inst_tac [("x","na")] allE 1); |
177 by (eres_inst_tac [("x","na")] allE 1); |
178 by (eres_inst_tac [("x","v")] allE 1); |
178 by (eres_inst_tac [("x","v")] allE 1); |
179 by (fast_tac (HOL_cs addIs [cod_app_subst] |
179 by (fast_tac (HOL_cs addSEs [allE] |
|
180 addIs [cod_app_subst] |
180 addss (!simpset addsimps [less_Suc_eq])) 1); |
181 addss (!simpset addsimps [less_Suc_eq])) 1); |
181 |
182 (** LEVEL 12 **) |
182 (* case App e1 e2 *) |
183 (* case App e1 e2 *) |
183 by (simp_tac (!simpset setloop (split_tac [expand_bind])) 1); |
184 by (simp_tac (!simpset setloop (split_tac [expand_bind])) 1); |
184 by (strip_tac 1); |
185 by (strip_tac 1); |
185 by (rename_tac "s t na sa ta nb sb sc tb m v" 1); |
186 by (rename_tac "s t na sa ta nb sb sc tb m v" 1); |
186 by (eres_inst_tac [("x","n")] allE 1); |
187 by (eres_inst_tac [("x","n")] allE 1); |
188 by (eres_inst_tac [("x","s")] allE 1); |
189 by (eres_inst_tac [("x","s")] allE 1); |
189 by (eres_inst_tac [("x","t")] allE 1); |
190 by (eres_inst_tac [("x","t")] allE 1); |
190 by (eres_inst_tac [("x","na")] allE 1); |
191 by (eres_inst_tac [("x","na")] allE 1); |
191 by (eres_inst_tac [("x","na")] allE 1); |
192 by (eres_inst_tac [("x","na")] allE 1); |
192 by (eres_inst_tac [("x","v")] allE 1); |
193 by (eres_inst_tac [("x","v")] allE 1); |
|
194 (** LEVEL 22 **) |
193 (* second case *) |
195 (* second case *) |
194 by (eres_inst_tac [("x","$ s a")] allE 1); |
196 by (eres_inst_tac [("x","$ s a")] allE 1); |
195 by (eres_inst_tac [("x","sa")] allE 1); |
197 by (eres_inst_tac [("x","sa")] allE 1); |
196 by (eres_inst_tac [("x","ta")] allE 1); |
198 by (eres_inst_tac [("x","ta")] allE 1); |
197 by (eres_inst_tac [("x","nb")] allE 1); |
199 by (eres_inst_tac [("x","nb")] allE 1); |
199 by (safe_tac (empty_cs addSIs [conjI,impI] addSEs [conjE]) ); |
201 by (safe_tac (empty_cs addSIs [conjI,impI] addSEs [conjE]) ); |
200 by (asm_full_simp_tac (!simpset addsimps [rotate_Ok,o_def]) 1); |
202 by (asm_full_simp_tac (!simpset addsimps [rotate_Ok,o_def]) 1); |
201 by (dtac W_var_geD 1); |
203 by (dtac W_var_geD 1); |
202 by (dtac W_var_geD 1); |
204 by (dtac W_var_geD 1); |
203 by ( (forward_tac [less_le_trans] 1) THEN (assume_tac 1) ); |
205 by ( (forward_tac [less_le_trans] 1) THEN (assume_tac 1) ); |
|
206 (** LEVEL 32 **) |
204 by (fast_tac (HOL_cs addDs [free_tv_comp_subst RS subsetD,sym RS mgu_free, |
207 by (fast_tac (HOL_cs addDs [free_tv_comp_subst RS subsetD,sym RS mgu_free, |
205 codD,free_tv_app_subst_te RS subsetD,free_tv_app_subst_tel RS subsetD, |
208 codD,free_tv_app_subst_te RS subsetD,free_tv_app_subst_tel RS subsetD, |
206 less_le_trans,less_not_refl2,subsetD] |
209 less_le_trans,less_not_refl2,subsetD] |
207 addEs [UnE] |
210 addEs [UnE] |
208 addss !simpset) 1); |
211 addss !simpset) 1); |
209 by (Asm_full_simp_tac 1); |
212 by (Asm_full_simp_tac 1); |
210 by (dtac (sym RS W_var_geD) 1); |
213 by (dtac (sym RS W_var_geD) 1); |
211 by (dtac (sym RS W_var_geD) 1); |
214 by (dtac (sym RS W_var_geD) 1); |
212 by ( (forward_tac [less_le_trans] 1) THEN (assume_tac 1) ); |
215 by ( (forward_tac [less_le_trans] 1) THEN (assume_tac 1) ); |
213 by (fast_tac (HOL_cs addDs [mgu_free, codD,free_tv_subst_var RS subsetD, |
216 by (fast_tac (HOL_cs addDs [mgu_free, codD,free_tv_subst_var RS subsetD, |
214 free_tv_app_subst_te RS subsetD,free_tv_app_subst_tel RS subsetD, |
217 free_tv_app_subst_te RS subsetD, |
215 less_le_trans,subsetD] |
218 free_tv_app_subst_tel RS subsetD, |
216 addEs [UnE] |
219 less_le_trans,subsetD] |
217 addss !simpset) 1); |
220 addSEs [UnE] |
|
221 addss !simpset) 1); |
218 qed_spec_mp "free_tv_W"; |
222 qed_spec_mp "free_tv_W"; |
219 |
223 |
220 |
224 |
221 (* Completeness of W w.r.t. has_type *) |
225 (* Completeness of W w.r.t. has_type *) |
222 goal thy |
226 goal thy |