Institutions: abstract model theory for specification and programming
Putting Theories Together to Make Specifications