src/HOL/BNF/Tools/bnf_ctr_sugar.ML
changeset 51798 ad3a241def73
parent 51797 182454c06a80
child 51809 d4c1abbb4095
equal deleted inserted replaced
51797:182454c06a80 51798:ad3a241def73
   502                   val half_pairss = mk_half_pairss (`I (ms ~~ discD_thms ~~ udiscs));
   502                   val half_pairss = mk_half_pairss (`I (ms ~~ discD_thms ~~ udiscs));
   503 
   503 
   504                   val half_goalss = map mk_goal half_pairss;
   504                   val half_goalss = map mk_goal half_pairss;
   505                   val half_thmss =
   505                   val half_thmss =
   506                     map3 (fn [] => K (K []) | [goal] => fn [(((m, discD), _), _)] =>
   506                     map3 (fn [] => K (K []) | [goal] => fn [(((m, discD), _), _)] =>
   507                         fn disc_thm => [prove (mk_half_disc_exclude_tac m discD disc_thm) goal])
   507                         fn disc_thm => [prove (mk_half_disc_exclude_tac lthy m discD disc_thm) goal])
   508                       half_goalss half_pairss (flat disc_thmss');
   508                       half_goalss half_pairss (flat disc_thmss');
   509 
   509 
   510                   val other_half_goalss = map (mk_goal o map swap) half_pairss;
   510                   val other_half_goalss = map (mk_goal o map swap) half_pairss;
   511                   val other_half_thmss =
   511                   val other_half_thmss =
   512                     map2 (map2 (prove o mk_other_half_disc_exclude_tac)) half_thmss
   512                     map2 (map2 (prove o mk_other_half_disc_exclude_tac)) half_thmss