On dual encodings for non-binary constraint programming