src/HOL/BNF/Tools/bnf_ctr_sugar.ML
changeset 53210 7219c61796c0
parent 53040 e6edd7abc4ce
child 53268 de1dc709f9d4
equal deleted inserted replaced
53209:1d248d75620e 53210:7219c61796c0
   462       let
   462       let
   463         val ([exhaust_thm], (inject_thmss, half_distinct_thmss)) = (hd thmss, chop n (tl thmss));
   463         val ([exhaust_thm], (inject_thmss, half_distinct_thmss)) = (hd thmss, chop n (tl thmss));
   464 
   464 
   465         val inject_thms = flat inject_thmss;
   465         val inject_thms = flat inject_thmss;
   466 
   466 
   467         val Tinst = map (pairself (certifyT lthy)) (map Logic.varifyT_global As ~~ As);
   467         val rho_As = map (pairself (certifyT lthy)) (map Logic.varifyT_global As ~~ As);
   468 
   468 
   469         fun inst_thm t thm =
   469         fun inst_thm t thm =
   470           Drule.instantiate' [] [SOME (certify lthy t)]
   470           Drule.instantiate' [] [SOME (certify lthy t)]
   471             (Thm.instantiate (Tinst, []) (Drule.zero_var_indexes thm));
   471             (Thm.instantiate (rho_As, []) (Drule.zero_var_indexes thm));
   472 
   472 
   473         val uexhaust_thm = inst_thm u exhaust_thm;
   473         val uexhaust_thm = inst_thm u exhaust_thm;
   474 
   474 
   475         val exhaust_cases = map base_name_of_ctr ctrs;
   475         val exhaust_cases = map base_name_of_ctr ctrs;
   476 
   476