src/Pure/Isar/expression.ML
changeset 54878 710e8f36a917
parent 54877 0a9337337277
child 54879 a9397557da56
equal deleted inserted replaced
54877:0a9337337277 54878:710e8f36a917
   401     val ctxt4 = init_body ctxt3;
   401     val ctxt4 = init_body ctxt3;
   402     val (elems, ctxt5) = fold_map prep_elem raw_elems ctxt4;
   402     val (elems, ctxt5) = fold_map prep_elem raw_elems ctxt4;
   403     val (insts, elems', concl, ctxt6) = prep_concl raw_concl (insts', elems, ctxt5);
   403     val (insts, elems', concl, ctxt6) = prep_concl raw_concl (insts', elems, ctxt5);
   404 
   404 
   405     (* Retrieve parameter types *)
   405     (* Retrieve parameter types *)
   406     val xs = fold (fn Fixes fixes => (fn ps => ps @ map (Variable.check_name o #1) fixes)
   406     val xs = maps (fn Fixes fixes => map (Variable.check_name o #1) fixes | _ => [])
   407       | _ => fn ps => ps) (Fixes fors :: elems') [];
   407       (Fixes fors :: elems');
   408     val (Ts, ctxt7) = fold_map Proof_Context.inferred_param xs ctxt6;
   408     val (Ts, ctxt7) = fold_map Proof_Context.inferred_param xs ctxt6;
   409     val parms = xs ~~ Ts;  (* params from expression and elements *)
   409     val parms = xs ~~ Ts;  (* params from expression and elements *)
   410 
   410 
   411     val fors' = finish_fixes parms fors;
   411     val fors' = finish_fixes parms fors;
   412     val fixed = map (fn (b, SOME T, mx) => ((Binding.name_of b, T), mx)) fors';
   412     val fixed = map (fn (b, SOME T, mx) => ((Binding.name_of b, T), mx)) fors';