src/HOL/Lambda/Type.ML
changeset 9283 04f1b522cb11
parent 9148 4e06543e8b82
child 9555 e8b05a2a4b72
equal deleted inserted replaced
9282:0181ac100520 9283:04f1b522cb11
   352 by (eres_inst_tac [("x", "e")] allE 1);
   352 by (eres_inst_tac [("x", "e")] allE 1);
   353 by (eres_inst_tac [("x", "Ts =>> T")] allE 1);
   353 by (eres_inst_tac [("x", "Ts =>> T")] allE 1);
   354 by (eres_inst_tac [("x", "a[u/i]")] allE 1);
   354 by (eres_inst_tac [("x", "a[u/i]")] allE 1);
   355 by (eres_inst_tac [("x", "0")] allE 1);
   355 by (eres_inst_tac [("x", "0")] allE 1);
   356 by (etac impE 1);
   356 by (etac impE 1);
   357 by (Simp_tac 1);
       
   358 by (rtac typing.APP 1);
   357 by (rtac typing.APP 1);
   359 by (subgoal_tac "(%j. if j = 0 then Ta else e (j - 1)) =  \
   358 by (etac lift_type' 1);
   360  \  (%j. if j < 0 then e j else if j = 0 then Ta else e (j - 1))" 1);
       
   361 byev [etac ssubst 1, rtac lift_type' 1];
       
   362 by (assume_tac 1);
       
   363 by (rtac ext 1);
       
   364 by (case_tac "j" 1);
       
   365 by (Asm_simp_tac 1);
       
   366 by (Asm_simp_tac 1);
       
   367 by (rtac typing.VAR 1);
   359 by (rtac typing.VAR 1);
   368 by (Simp_tac 1);
   360 by (Simp_tac 1);
   369 by (fast_tac (claset() addSIs [subst_lemma]) 1);
   361 by (fast_tac (claset() addSIs [subst_lemma]) 1);
   370 (** n~=i **)
   362 (** n~=i **)
   371 by (dtac list_app_typeD 1);
   363 by (dtac list_app_typeD 1);