src/Tools/Code/code_preproc.ML
changeset 61262 7bd1eb4b056e
parent 60805 4cc49ead6e75
child 62538 85ebb645b1a3
equal deleted inserted replaced
61261:ddb2da7cb2e4 61262:7bd1eb4b056e
   515       insert (op =) (c, (map (styp_of NONE) o Sign.const_typargs thy) c_ty) | _ => I) ts [];
   515       insert (op =) (c, (map (styp_of NONE) o Sign.const_typargs thy) c_ty) | _ => I) ts [];
   516     val (vardeps, (eqntab, insts)) = empty_vardeps_data
   516     val (vardeps, (eqntab, insts)) = empty_vardeps_data
   517       |> fold (ensure_fun ctxt arities eqngr) cs
   517       |> fold (ensure_fun ctxt arities eqngr) cs
   518       |> fold (ensure_rhs ctxt arities eqngr) cs_rhss;
   518       |> fold (ensure_rhs ctxt arities eqngr) cs_rhss;
   519     val arities' = fold (add_arity ctxt vardeps) insts arities;
   519     val arities' = fold (add_arity ctxt vardeps) insts arities;
   520     val algebra = Sorts.subalgebra (Context.pretty_global thy) (is_proper_class thy)
   520     val algebra = Sorts.subalgebra (Context.Theory thy) (is_proper_class thy)
   521       (AList.lookup (op =) arities') (Sign.classes_of thy);
   521       (AList.lookup (op =) arities') (Sign.classes_of thy);
   522     val (rhss, eqngr') = Symtab.fold (add_cert ctxt vardeps) eqntab ([], eqngr);
   522     val (rhss, eqngr') = Symtab.fold (add_cert ctxt vardeps) eqntab ([], eqngr);
   523     fun deps_of (c, rhs) = c :: maps (dicts_of ctxt algebra)
   523     fun deps_of (c, rhs) = c :: maps (dicts_of ctxt algebra)
   524       (rhs ~~ sortargs eqngr' c);
   524       (rhs ~~ sortargs eqngr' c);
   525     val eqngr'' = fold (fn (c, rhs) => fold
   525     val eqngr'' = fold (fn (c, rhs) => fold