src/HOL/BNF/Tools/bnf_fp_def_sugar.ML
changeset 49671 61729b149397
parent 49670 c7a034d01936
child 49672 902b24e0ffb4
equal deleted inserted replaced
49670:c7a034d01936 49671:61729b149397
   279     val pre_map_defs = map map_def_of_bnf pre_bnfs;
   279     val pre_map_defs = map map_def_of_bnf pre_bnfs;
   280     val pre_set_defss = map set_defs_of_bnf pre_bnfs;
   280     val pre_set_defss = map set_defs_of_bnf pre_bnfs;
   281     val pre_rel_defs = map rel_def_of_bnf pre_bnfs;
   281     val pre_rel_defs = map rel_def_of_bnf pre_bnfs;
   282     val nested_map_comp's = map map_comp'_of_bnf nested_bnfs;
   282     val nested_map_comp's = map map_comp'_of_bnf nested_bnfs;
   283     val nested_map_ids'' = map (unfold_thms lthy @{thms id_def} o map_id_of_bnf) nested_bnfs;
   283     val nested_map_ids'' = map (unfold_thms lthy @{thms id_def} o map_id_of_bnf) nested_bnfs;
   284     val nesting_map_ids = map map_id_of_bnf nesting_bnfs;
   284     val nesting_map_ids'' = map (unfold_thms lthy @{thms id_def} o map_id_of_bnf) nesting_bnfs;
   285     val nesting_map_ids'' = map (unfold_thms lthy @{thms id_def}) nesting_map_ids;
       
   286     val nested_set_natural's = maps set_natural'_of_bnf nested_bnfs;
   285     val nested_set_natural's = maps set_natural'_of_bnf nested_bnfs;
   287     val nesting_set_natural's = maps set_natural'_of_bnf nesting_bnfs;
   286     val nesting_set_natural's = maps set_natural'_of_bnf nesting_bnfs;
   288 
   287 
   289     val live = live_of_bnf any_fp_bnf;
   288     val live = live_of_bnf any_fp_bnf;
   290 
   289 
  1000               map8 (map4 oooo mk_goal pgss) cs cpss gunfolds ns kss ctrss mss crgsss';
   999               map8 (map4 oooo mk_goal pgss) cs cpss gunfolds ns kss ctrss mss crgsss';
  1001             val corec_goalss =
  1000             val corec_goalss =
  1002               map8 (map4 oooo mk_goal phss) cs cpss hcorecs ns kss ctrss mss cshsss';
  1001               map8 (map4 oooo mk_goal phss) cs cpss hcorecs ns kss ctrss mss cshsss';
  1003 
  1002 
  1004             val unfold_tacss =
  1003             val unfold_tacss =
  1005               map3 (map oo mk_corec_like_tac unfold_defs nesting_map_ids) fp_fold_thms pre_map_defs
  1004               map3 (map oo mk_corec_like_tac unfold_defs nesting_map_ids'') fp_fold_thms
  1006                 ctr_defss;
  1005                 pre_map_defs ctr_defss;
  1007             val corec_tacss =
  1006             val corec_tacss =
  1008               map3 (map oo mk_corec_like_tac corec_defs nesting_map_ids) fp_rec_thms pre_map_defs
  1007               map3 (map oo mk_corec_like_tac corec_defs nesting_map_ids'') fp_rec_thms pre_map_defs
  1009                 ctr_defss;
  1008                 ctr_defss;
  1010 
  1009 
  1011             fun prove goal tac =
  1010             fun prove goal tac =
  1012               Skip_Proof.prove lthy [] [] goal (tac o #context) |> Thm.close_derivation;
  1011               Skip_Proof.prove lthy [] [] goal (tac o #context) |> Thm.close_derivation;
  1013 
  1012