let simplify_adaptability_cstr (Adaptability (w_x, w_y)) =
match on_computation w_x, on_computation w_y with
| (None, p_x), (None, p_y) ->
if p_x <: p_y then None
else raise Solve
| (Some c_x, p_x), (Some c_y, p_y) when c_x = c_y ->
if p_x <: p_y then None
else raise Solve
| (Some c_x, p_x), (Some c_y, p_y) ->
Some (Simpl_adaptability ((c_x, p_x), (c_y, p_y)))
| (Some _, _), (None, _) | (None, _), (Some _, _) -> assert false