equal
deleted
inserted
replaced
340 val rhs' = Morphism.term phi rhs; |
340 val rhs' = Morphism.term phi rhs; |
341 val same_shape = Term.aconv_untyped (rhs, rhs'); |
341 val same_shape = Term.aconv_untyped (rhs, rhs'); |
342 val is_plain = guess_morphism_identity (b, rhs) Morphism.identity phi; |
342 val is_plain = guess_morphism_identity (b, rhs) Morphism.identity phi; |
343 val is_canonical = guess_morphism_identity (b, rhs) phi0 phi; |
343 val is_canonical = guess_morphism_identity (b, rhs) phi0 phi; |
344 in |
344 in |
345 not (is_plain orelse is_canonical) ? Generic_Target.generic_const same_shape prmode ((b', mx), rhs') |
345 not (is_plain orelse is_canonical) ? Generic_Target.generic_const same_shape prmode ((b', NoSyn), rhs') |
346 end); |
346 end); |
347 |
347 |
348 fun dangling_params_for lthy class (type_params, term_params) = |
348 fun dangling_params_for lthy class (type_params, term_params) = |
349 let |
349 let |
350 val class_param_names = |
350 val class_param_names = |