Reasoning with time and data abstractions