Specification techniques for data abstractions | Synapse