src/Pure/type.ML
changeset 21934 ba683b0b2456
parent 21858 05f57309170c
child 23178 07ba6b58b3d2
equal deleted inserted replaced
21933:819ef284720b 21934:ba683b0b2456
   113   let
   113   let
   114     val log_types =
   114     val log_types =
   115       Symtab.fold (fn (c, (LogicalType n, _)) => cons (c, n) | _ => I) (snd types) []
   115       Symtab.fold (fn (c, (LogicalType n, _)) => cons (c, n) | _ => I) (snd types) []
   116       |> Library.sort (Library.int_ord o pairself snd) |> map fst;
   116       |> Library.sort (Library.int_ord o pairself snd) |> map fst;
   117     val witness =
   117     val witness =
   118       (case Sorts.witness_sorts classes log_types [] [Sorts.classes classes] of
   118       (case Sorts.witness_sorts classes log_types [] [Sorts.minimal_classes classes] of
   119         [w] => SOME w | _ => NONE);
   119         [w] => SOME w | _ => NONE);
   120   in make_tsig ((space, classes), default, types, log_types, witness) end;
   120   in make_tsig ((space, classes), default, types, log_types, witness) end;
   121 
   121 
   122 fun map_tsig f (TSig {classes, default, types, log_types = _, witness = _}) =
   122 fun map_tsig f (TSig {classes, default, types, log_types = _, witness = _}) =
   123   build_tsig (f (classes, default, types));
   123   build_tsig (f (classes, default, types));