206 fun eq_sort (TSig {classes, ...}) = Sorts.sort_eq (#2 classes); |
206 fun eq_sort (TSig {classes, ...}) = Sorts.sort_eq (#2 classes); |
207 fun subsort (TSig {classes, ...}) = Sorts.sort_le (#2 classes); |
207 fun subsort (TSig {classes, ...}) = Sorts.sort_le (#2 classes); |
208 fun of_sort (TSig {classes, ...}) = Sorts.of_sort (#2 classes); |
208 fun of_sort (TSig {classes, ...}) = Sorts.of_sort (#2 classes); |
209 fun inter_sort (TSig {classes, ...}) = Sorts.inter_sort (#2 classes); |
209 fun inter_sort (TSig {classes, ...}) = Sorts.inter_sort (#2 classes); |
210 |
210 |
211 fun cert_class (TSig {classes, ...}) = Sorts.certify_class (#2 classes); |
211 fun cert_class (TSig {classes = (_, algebra), ...}) c = |
212 fun cert_sort (TSig {classes, ...}) = Sorts.certify_sort (#2 classes); |
212 if can (Graph.get_entry (Sorts.classes_of algebra)) c then c |
|
213 else raise TYPE ("Undeclared class: " ^ quote c, [], []); |
|
214 |
|
215 val cert_sort = map o cert_class; |
|
216 |
213 fun minimize_sort (TSig {classes, ...}) = Sorts.minimize_sort (#2 classes); |
217 fun minimize_sort (TSig {classes, ...}) = Sorts.minimize_sort (#2 classes); |
214 |
218 |
215 fun witness_sorts (TSig {classes, log_types, ...}) = |
219 fun witness_sorts (TSig {classes, log_types, ...}) = |
216 Sorts.witness_sorts (#2 classes) log_types; |
220 Sorts.witness_sorts (#2 classes) log_types; |
217 |
221 |