src/HOL/Tools/BNF/bnf_util.ML
changeset 56640 0a35354137a5
parent 56635 b07c8ad23010
child 56648 2ffa440b3074
equal deleted inserted replaced
56639:c9d6b581bd3b 56640:0a35354137a5
   213       (x9::x9s) (x10::x10s) (x11::x11s) (x12::x12s) (x13::x13s) (x14::x14s) (x15::x15s) =
   213       (x9::x9s) (x10::x10s) (x11::x11s) (x12::x12s) (x13::x13s) (x14::x14s) (x15::x15s) =
   214     f x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 ::
   214     f x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 ::
   215       map15 f x1s x2s x3s x4s x5s x6s x7s x8s x9s x10s x11s x12s x13s x14s x15s
   215       map15 f x1s x2s x3s x4s x5s x6s x7s x8s x9s x10s x11s x12s x13s x14s x15s
   216   | map15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ = raise ListPair.UnequalLengths;
   216   | map15 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ = raise ListPair.UnequalLengths;
   217 
   217 
   218 
       
   219 fun fold_map4 _ [] [] [] [] acc = ([], acc)
   218 fun fold_map4 _ [] [] [] [] acc = ([], acc)
   220   | fold_map4 f (x1::x1s) (x2::x2s) (x3::x3s) (x4::x4s) acc =
   219   | fold_map4 f (x1::x1s) (x2::x2s) (x3::x3s) (x4::x4s) acc =
   221     let
   220     let
   222       val (x, acc') = f x1 x2 x3 x4 acc;
   221       val (x, acc') = f x1 x2 x3 x4 acc;
   223       val (xs, acc'') = fold_map4 f x1s x2s x3s x4s acc';
   222       val (xs, acc'') = fold_map4 f x1s x2s x3s x4s acc';