equal
deleted
inserted
replaced
345 fun is_type_fundamentally_monotonic T = |
345 fun is_type_fundamentally_monotonic T = |
346 (is_datatype ctxt stds T andalso not (is_quot_type ctxt T) andalso |
346 (is_datatype ctxt stds T andalso not (is_quot_type ctxt T) andalso |
347 (not (is_pure_typedef ctxt T) orelse is_univ_typedef ctxt T)) orelse |
347 (not (is_pure_typedef ctxt T) orelse is_univ_typedef ctxt T)) orelse |
348 is_number_type ctxt T orelse is_bit_type T |
348 is_number_type ctxt T orelse is_bit_type T |
349 fun is_type_actually_monotonic T = |
349 fun is_type_actually_monotonic T = |
350 formulas_monotonic hol_ctxt binarize 3 T (nondef_ts, def_ts) |
350 formulas_monotonic hol_ctxt binarize T (nondef_ts, def_ts) |
351 fun is_type_kind_of_monotonic T = |
351 fun is_type_kind_of_monotonic T = |
352 case triple_lookup (type_match thy) monos T of |
352 case triple_lookup (type_match thy) monos T of |
353 SOME (SOME false) => false |
353 SOME (SOME false) => false |
354 | _ => is_type_actually_monotonic T |
354 | _ => is_type_actually_monotonic T |
355 fun is_type_monotonic T = |
355 fun is_type_monotonic T = |