In reply to surya_mudgal:
The two versions of your constraints are not equivalent.
a ^ (b != none_dist) ^ d is true of one operand, or all three operands are true. That is not the same as one-hot.
b can only have the values low_dist, medium_dist, or nudist. So (b != none_dist) must always be true.