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 |