UML accepts the enumeration stereotype, and PROPORTION_KIND is basically an enumeration.
The only need I can see of having an inheritance from DV_PROPORTION from PROPORTION_KIND is for the valid_proportion_kind method.
If DV_PROPORTION.type is a PROPORTION_KIND, and it is an enumeration, there is no need of the valid_proportion_kind method, since no invalid values can be set on DV_PROPORTION.type if it is an enumeration instead of Integer as it is right now.
1. one less method
2. remove dual inheritance
3. only valid values are allowed by the model itself by construction, no need of checking