src/HOL/BNF/Tools/bnf_fp_rec_sugar.ML
changeset 53925 9008c4806198
parent 53923 7b43d22accc3
child 54001 65fc58793ed5
equal deleted inserted replaced
53924:b19d300db73b 53925:9008c4806198
   798               |> curry betapply sel
   798               |> curry betapply sel
   799               |> rpair (abstract (List.rev fun_args) rhs_term)
   799               |> rpair (abstract (List.rev fun_args) rhs_term)
   800               |> HOLogic.mk_Trueprop o HOLogic.mk_eq
   800               |> HOLogic.mk_Trueprop o HOLogic.mk_eq
   801               |> curry Logic.list_implies (map HOLogic.mk_Trueprop prems)
   801               |> curry Logic.list_implies (map HOLogic.mk_Trueprop prems)
   802               |> curry Logic.list_all (map dest_Free fun_args);
   802               |> curry Logic.list_all (map dest_Free fun_args);
   803             val (distincts, _, _, sel_splits, sel_split_asms) = case_thms_of_term lthy [] rhs_term;
   803             val (distincts, _, sel_splits, sel_split_asms) = case_thms_of_term lthy [] rhs_term;
   804           in
   804           in
   805             mk_primcorec_sel_tac lthy def_thms distincts sel_splits sel_split_asms nested_maps
   805             mk_primcorec_sel_tac lthy def_thms distincts sel_splits sel_split_asms nested_maps
   806               nested_map_idents nested_map_comps sel_corec k m exclsss
   806               nested_map_idents nested_map_comps sel_corec k m exclsss
   807             |> K |> Goal.prove lthy [] [] t
   807             |> K |> Goal.prove lthy [] [] t
   808             |> pair sel
   808             |> pair sel