equal
deleted
inserted
replaced
396 | is_shallow_datatype_finitizable T = |
396 | is_shallow_datatype_finitizable T = |
397 case triple_lookup (type_match thy) finitizes T of |
397 case triple_lookup (type_match thy) finitizes T of |
398 SOME (SOME b) => b |
398 SOME (SOME b) => b |
399 | _ => is_type_kind_of_monotonic T |
399 | _ => is_type_kind_of_monotonic T |
400 fun is_datatype_deep T = |
400 fun is_datatype_deep T = |
401 not standard orelse T = nat_T orelse is_word_type T orelse |
401 not standard orelse T = @{typ unit} orelse T = nat_T orelse |
|
402 is_word_type T orelse |
402 exists (curry (op =) T o domain_type o type_of) sel_names |
403 exists (curry (op =) T o domain_type o type_of) sel_names |
403 val all_Ts = ground_types_in_terms hol_ctxt binarize (nondef_ts @ def_ts) |
404 val all_Ts = ground_types_in_terms hol_ctxt binarize (nondef_ts @ def_ts) |
404 |> sort Term_Ord.typ_ord |
405 |> sort Term_Ord.typ_ord |
405 val _ = |
406 val _ = |
406 if verbose andalso binary_ints = SOME true andalso |
407 if verbose andalso binary_ints = SOME true andalso |