the separation between specification of a data object and its implementation
the separation of a data type's logical properties from its implementation
well defined function from a sample space to the set of real numbers