209 by (eres_inst_tac [("x","v")] allE 1); |
209 by (eres_inst_tac [("x","v")] allE 1); |
210 by (safe_tac (empty_cs addSIs [conjI,impI] addSEs [conjE]) ); |
210 by (safe_tac (empty_cs addSIs [conjI,impI] addSEs [conjE]) ); |
211 by (asm_full_simp_tac (simpset() addsimps [rotate_Some,o_def]) 1); |
211 by (asm_full_simp_tac (simpset() addsimps [rotate_Some,o_def]) 1); |
212 by (dtac W_var_geD 1); |
212 by (dtac W_var_geD 1); |
213 by (dtac W_var_geD 1); |
213 by (dtac W_var_geD 1); |
214 by ( (forward_tac [less_le_trans] 1) THEN (assume_tac 1) ); |
214 by ( (ftac less_le_trans 1) THEN (assume_tac 1) ); |
215 by (fast_tac (HOL_cs addDs [free_tv_comp_subst RS subsetD,sym RS mgu_free, |
215 by (fast_tac (HOL_cs addDs [free_tv_comp_subst RS subsetD,sym RS mgu_free, |
216 codD,free_tv_app_subst_te RS subsetD,free_tv_app_subst_scheme_list RS subsetD, |
216 codD,free_tv_app_subst_te RS subsetD,free_tv_app_subst_scheme_list RS subsetD, |
217 less_le_trans,less_not_refl2,subsetD] |
217 less_le_trans,less_not_refl2,subsetD] |
218 addEs [UnE] |
218 addEs [UnE] |
219 addss simpset()) 1); |
219 addss simpset()) 1); |
220 by (Asm_full_simp_tac 1); |
220 by (Asm_full_simp_tac 1); |
221 by (dtac (sym RS W_var_geD) 1); |
221 by (dtac (sym RS W_var_geD) 1); |
222 by (dtac (sym RS W_var_geD) 1); |
222 by (dtac (sym RS W_var_geD) 1); |
223 by ( (forward_tac [less_le_trans] 1) THEN (assume_tac 1) ); |
223 by ( (ftac less_le_trans 1) THEN (assume_tac 1) ); |
224 by (fast_tac (HOL_cs addDs [mgu_free, codD,free_tv_subst_var RS subsetD, |
224 by (fast_tac (HOL_cs addDs [mgu_free, codD,free_tv_subst_var RS subsetD, |
225 free_tv_app_subst_te RS subsetD,free_tv_app_subst_scheme_list RS subsetD, |
225 free_tv_app_subst_te RS subsetD,free_tv_app_subst_scheme_list RS subsetD, |
226 less_le_trans,subsetD] |
226 less_le_trans,subsetD] |
227 addEs [UnE] |
227 addEs [UnE] |
228 addss (simpset() setSolver unsafe_solver)) 1); |
228 addss (simpset() setSolver unsafe_solver)) 1); |
294 by (simp_tac (HOL_ss addsimps [subst_comp_scheme_list RS sym,o_def]) 1); |
294 by (simp_tac (HOL_ss addsimps [subst_comp_scheme_list RS sym,o_def]) 1); |
295 by ((rtac (has_type_cl_sub RS spec) 1) THEN (rtac (has_type_cl_sub RS spec) 1)); |
295 by ((rtac (has_type_cl_sub RS spec) 1) THEN (rtac (has_type_cl_sub RS spec) 1)); |
296 by (asm_full_simp_tac (simpset() addsimps [eq_sym_conv]) 1); |
296 by (asm_full_simp_tac (simpset() addsimps [eq_sym_conv]) 1); |
297 by (asm_full_simp_tac (simpset() addsimps [subst_comp_scheme_list RS sym,o_def,has_type_cl_sub,eq_sym_conv]) 1); |
297 by (asm_full_simp_tac (simpset() addsimps [subst_comp_scheme_list RS sym,o_def,has_type_cl_sub,eq_sym_conv]) 1); |
298 by (rtac (has_type_cl_sub RS spec) 1); |
298 by (rtac (has_type_cl_sub RS spec) 1); |
299 by (forward_tac [new_tv_W] 1); |
299 by (ftac new_tv_W 1); |
300 by (assume_tac 1); |
300 by (assume_tac 1); |
301 by (dtac conjunct1 1); |
301 by (dtac conjunct1 1); |
302 by (dtac conjunct1 1); |
302 by (dtac conjunct1 1); |
303 by (forward_tac [new_tv_subst_scheme_list] 1); |
303 by (ftac new_tv_subst_scheme_list 1); |
304 by (rtac new_scheme_list_le 1); |
304 by (rtac new_scheme_list_le 1); |
305 by (rtac W_var_ge 1); |
305 by (rtac W_var_ge 1); |
306 by (assume_tac 1); |
306 by (assume_tac 1); |
307 by (assume_tac 1); |
307 by (assume_tac 1); |
308 by (etac thin_rl 1); |
308 by (etac thin_rl 1); |
338 by (dres_inst_tac [("x","gen ($S1 A) t1 # $ S1 A")] spec 2); |
338 by (dres_inst_tac [("x","gen ($S1 A) t1 # $ S1 A")] spec 2); |
339 by (dres_inst_tac [("x","S2")] spec 2); |
339 by (dres_inst_tac [("x","S2")] spec 2); |
340 by (dres_inst_tac [("x","t")] spec 2); |
340 by (dres_inst_tac [("x","t")] spec 2); |
341 by (dres_inst_tac [("x","n2")] spec 2); |
341 by (dres_inst_tac [("x","n2")] spec 2); |
342 by (dres_inst_tac [("x","m2")] spec 2); |
342 by (dres_inst_tac [("x","m2")] spec 2); |
343 by (forward_tac [new_tv_W] 2); |
343 by (ftac new_tv_W 2); |
344 by (assume_tac 2); |
344 by (assume_tac 2); |
345 by (dtac conjunct1 2); |
345 by (dtac conjunct1 2); |
346 by (dtac conjunct1 2); |
346 by (dtac conjunct1 2); |
347 by (forward_tac [new_tv_subst_scheme_list] 2); |
347 by (ftac new_tv_subst_scheme_list 2); |
348 by (rtac new_scheme_list_le 2); |
348 by (rtac new_scheme_list_le 2); |
349 by (rtac W_var_ge 2); |
349 by (rtac W_var_ge 2); |
350 by (assume_tac 2); |
350 by (assume_tac 2); |
351 by (assume_tac 2); |
351 by (assume_tac 2); |
352 by (etac impE 2); |
352 by (etac impE 2); |
440 by (subgoal_tac "na ~=ma" 2); |
440 by (subgoal_tac "na ~=ma" 2); |
441 by (best_tac (HOL_cs addDs [new_tv_W,sym RS W_var_geD, |
441 by (best_tac (HOL_cs addDs [new_tv_W,sym RS W_var_geD, |
442 new_tv_not_free_tv,new_tv_le]) 3); |
442 new_tv_not_free_tv,new_tv_le]) 3); |
443 by (case_tac "na:free_tv Sa" 2); |
443 by (case_tac "na:free_tv Sa" 2); |
444 (* n1 ~: free_tv S1 *) |
444 (* n1 ~: free_tv S1 *) |
445 by (forward_tac [not_free_impl_id] 3); |
445 by (ftac not_free_impl_id 3); |
446 by (Asm_simp_tac 3); |
446 by (Asm_simp_tac 3); |
447 (* na : free_tv Sa *) |
447 (* na : free_tv Sa *) |
448 by (dres_inst_tac [("A1","$ S A")] (subst_comp_scheme_list RSN (2,trans)) 2); |
448 by (dres_inst_tac [("A1","$ S A")] (subst_comp_scheme_list RSN (2,trans)) 2); |
449 by (dtac eq_subst_scheme_list_eq_free 2); |
449 by (dtac eq_subst_scheme_list_eq_free 2); |
450 by (fast_tac (HOL_cs addIs [free_tv_W,free_tv_le_new_tv] addDs [new_tv_W]) 2); |
450 by (fast_tac (HOL_cs addIs [free_tv_W,free_tv_le_new_tv] addDs [new_tv_W]) 2); |
454 by (asm_full_simp_tac (simpset() addsimps [dom_def]) 3); |
454 by (asm_full_simp_tac (simpset() addsimps [dom_def]) 3); |
455 (* na : dom Sa *) |
455 (* na : dom Sa *) |
456 by (rtac eq_free_eq_subst_te 2); |
456 by (rtac eq_free_eq_subst_te 2); |
457 by (strip_tac 2); |
457 by (strip_tac 2); |
458 by (subgoal_tac "nb ~= ma" 2); |
458 by (subgoal_tac "nb ~= ma" 2); |
459 by ((forward_tac [new_tv_W] 3) THEN (atac 3)); |
459 by ((ftac new_tv_W 3) THEN (atac 3)); |
460 by (etac conjE 3); |
460 by (etac conjE 3); |
461 by (dtac new_tv_subst_scheme_list 3); |
461 by (dtac new_tv_subst_scheme_list 3); |
462 by (fast_tac (HOL_cs addIs [new_scheme_list_le] addDs [sym RS W_var_geD]) 3); |
462 by (fast_tac (HOL_cs addIs [new_scheme_list_le] addDs [sym RS W_var_geD]) 3); |
463 by (fast_tac (set_cs addDs [new_tv_W,new_tv_not_free_tv] addss |
463 by (fast_tac (set_cs addDs [new_tv_W,new_tv_not_free_tv] addss |
464 (simpset() addsimps [cod_def,free_tv_subst])) 3); |
464 (simpset() addsimps [cod_def,free_tv_subst])) 3); |
465 by (fast_tac (set_cs addss (simpset() addsimps [cod_def,free_tv_subst])) 2); |
465 by (fast_tac (set_cs addss (simpset() addsimps [cod_def,free_tv_subst])) 2); |
466 by (Simp_tac 2); |
466 by (Simp_tac 2); |
467 by (rtac eq_free_eq_subst_te 2); |
467 by (rtac eq_free_eq_subst_te 2); |
468 by (strip_tac 2 ); |
468 by (strip_tac 2 ); |
469 by (subgoal_tac "na ~= ma" 2); |
469 by (subgoal_tac "na ~= ma" 2); |
470 by ((forward_tac [new_tv_W] 3) THEN (atac 3)); |
470 by ((ftac new_tv_W 3) THEN (atac 3)); |
471 by (etac conjE 3); |
471 by (etac conjE 3); |
472 by (dtac (sym RS W_var_geD) 3); |
472 by (dtac (sym RS W_var_geD) 3); |
473 by (fast_tac (HOL_cs addDs [new_scheme_list_le,new_tv_subst_scheme_list,new_tv_W,new_tv_not_free_tv]) 3); |
473 by (fast_tac (HOL_cs addDs [new_scheme_list_le,new_tv_subst_scheme_list,new_tv_W,new_tv_not_free_tv]) 3); |
474 by (case_tac "na: free_tv t - free_tv Sa" 2); |
474 by (case_tac "na: free_tv t - free_tv Sa" 2); |
475 (* case na ~: free_tv t - free_tv Sa *) |
475 (* case na ~: free_tv t - free_tv Sa *) |
500 by ( asm_full_simp_tac (simpset() addsimps [o_def,eq_sym_conv]) 1); |
500 by ( asm_full_simp_tac (simpset() addsimps [o_def,eq_sym_conv]) 1); |
501 by (dres_inst_tac [("s","Some ?X")] sym 1); |
501 by (dres_inst_tac [("s","Some ?X")] sym 1); |
502 by (rtac eq_free_eq_subst_scheme_list 1); |
502 by (rtac eq_free_eq_subst_scheme_list 1); |
503 by ( safe_tac HOL_cs ); |
503 by ( safe_tac HOL_cs ); |
504 by (subgoal_tac "ma ~= na" 1); |
504 by (subgoal_tac "ma ~= na" 1); |
505 by ((forward_tac [new_tv_W] 2) THEN (atac 2)); |
505 by ((ftac new_tv_W 2) THEN (atac 2)); |
506 by (etac conjE 2); |
506 by (etac conjE 2); |
507 by (dtac new_tv_subst_scheme_list 2); |
507 by (dtac new_tv_subst_scheme_list 2); |
508 by (fast_tac (HOL_cs addIs [new_scheme_list_le] addDs [sym RS W_var_geD]) 2); |
508 by (fast_tac (HOL_cs addIs [new_scheme_list_le] addDs [sym RS W_var_geD]) 2); |
509 by (forw_inst_tac [("n","m")] new_tv_W 2 THEN atac 2); |
509 by (forw_inst_tac [("n","m")] new_tv_W 2 THEN atac 2); |
510 by (etac conjE 2); |
510 by (etac conjE 2); |
540 by (rtac has_type_le_env 1); |
540 by (rtac has_type_le_env 1); |
541 by (assume_tac 1); |
541 by (assume_tac 1); |
542 by (Simp_tac 1); |
542 by (Simp_tac 1); |
543 by (rtac gen_bound_typ_instance 1); |
543 by (rtac gen_bound_typ_instance 1); |
544 by (dtac mp 1); |
544 by (dtac mp 1); |
545 by (forward_tac [new_tv_compatible_W] 1); |
545 by (ftac new_tv_compatible_W 1); |
546 by (rtac sym 1); |
546 by (rtac sym 1); |
547 by (assume_tac 1); |
547 by (assume_tac 1); |
548 by (fast_tac (claset() addDs [new_tv_compatible_gen,new_tv_subst_scheme_list,new_tv_W]) 1); |
548 by (fast_tac (claset() addDs [new_tv_compatible_gen,new_tv_subst_scheme_list,new_tv_W]) 1); |
549 by (safe_tac HOL_cs); |
549 by (safe_tac HOL_cs); |
550 by (Asm_full_simp_tac 1); |
550 by (Asm_full_simp_tac 1); |