Reasoning About Data Abstraction In Contract Languages