Principles of Abstraction