“…More recently, in [6], all these notions of morphism were investigated in more detail by observing how the direction of the arrows modify its interpretation. In this section we will concentrate only on extending the results presented by Tarlecki in [5], focussing on institution morphisms and comorphisms, since these notions have been used to formalise several concepts arising in software engineering: they are used as the main vehicle for borrowing proofs along logic translation in [5]; for defining heterogeneous development environments for software specifications and designs in [10,51], which provides the foundations of tools like HETS [14] and CafeOBJ [11]; for providing structured specifications in general in [7], and for specific formal languages in [52,53]; for defining proof systems for structured specifications [54,55,56]; and for formalising data and specification refinements in [33,57,52], just to give a few examples.…”