src/Pure/Isar/attrib.ML
changeset 19482 9f11af8f7ef9
parent 19473 d87a8838afa4
child 19798 94f12468bbba
equal deleted inserted replaced
19481:a6205c6203ea 19482:9f11af8f7ef9
   162 
   162 
   163 in
   163 in
   164 
   164 
   165 val thm = gen_thm PureThy.single_thm;
   165 val thm = gen_thm PureThy.single_thm;
   166 val multi_thm = gen_thm (K I);
   166 val multi_thm = gen_thm (K I);
   167 val thms = Scan.repeat multi_thm >> List.concat;
   167 val thms = Scan.repeat multi_thm >> flat;
   168 
   168 
   169 end;
   169 end;
   170 
   170 
   171 
   171 
   172 
   172 
   248   let
   248   let
   249     val thy = Context.theory_of generic;
   249     val thy = Context.theory_of generic;
   250     val ctxt = Context.proof_of generic;
   250     val ctxt = Context.proof_of generic;
   251 
   251 
   252     val (type_insts, term_insts) = List.partition (is_tvar o fst) (map snd mixed_insts);
   252     val (type_insts, term_insts) = List.partition (is_tvar o fst) (map snd mixed_insts);
   253     val internal_insts = term_insts |> List.mapPartial
   253     val internal_insts = term_insts |> map_filter
   254       (fn (xi, Args.Term t) => SOME (xi, t)
   254       (fn (xi, Args.Term t) => SOME (xi, t)
   255       | (_, Args.Name _) => NONE
   255       | (_, Args.Name _) => NONE
   256       | (xi, _) => error_var "Term argument expected for " xi);
   256       | (xi, _) => error_var "Term argument expected for " xi);
   257     val external_insts = term_insts |> List.mapPartial
   257     val external_insts = term_insts |> map_filter
   258       (fn (xi, Args.Name s) => SOME (xi, s) | _ => NONE);
   258       (fn (xi, Args.Name s) => SOME (xi, s) | _ => NONE);
   259 
   259 
   260 
   260 
   261     (* type instantiations *)
   261     (* type instantiations *)
   262 
   262