src/HOL/BNF/Tools/bnf_fp_def_sugar.ML
changeset 54159 eb5d58c99049
parent 54145 297d1c603999
child 54171 c0b0e1ea839e
equal deleted inserted replaced
54158:0af35cebe8ca 54159:eb5d58c99049
   230 
   230 
   231 fun flat_corec_preds_predsss_gettersss [] [qss] [fss] = flat_corec_predss_getterss qss fss
   231 fun flat_corec_preds_predsss_gettersss [] [qss] [fss] = flat_corec_predss_getterss qss fss
   232   | flat_corec_preds_predsss_gettersss (p :: ps) (qss :: qsss) (fss :: fsss) =
   232   | flat_corec_preds_predsss_gettersss (p :: ps) (qss :: qsss) (fss :: fsss) =
   233     p :: flat_corec_predss_getterss qss fss @ flat_corec_preds_predsss_gettersss ps qsss fsss;
   233     p :: flat_corec_predss_getterss qss fss @ flat_corec_preds_predsss_gettersss ps qsss fsss;
   234 
   234 
   235 fun mk_tupled_fun x f xs = HOLogic.tupled_lambda x (Term.list_comb (f, xs));
       
   236 fun mk_uncurried2_fun f xss =
   235 fun mk_uncurried2_fun f xss =
   237   mk_tupled_fun (HOLogic.mk_tuple (map HOLogic.mk_tuple xss)) f (flat_rec_arg_args xss);
   236   mk_tupled_fun (HOLogic.mk_tuple (map HOLogic.mk_tuple xss)) f (flat_rec_arg_args xss);
   238 
   237 
   239 fun mk_flip (x, Type (_, [T1, Type (_, [T2, T3])])) =
   238 fun mk_flip (x, Type (_, [T1, Type (_, [T2, T3])])) =
   240   Abs ("x", T1, Abs ("y", T2, Var (x, T2 --> T1 --> T3) $ Bound 0 $ Bound 1));
   239   Abs ("x", T1, Abs ("y", T2, Var (x, T2 --> T1 --> T3) $ Bound 0 $ Bound 1));