Checking Conservativity with Hets

Abstract

Conservative extension is an important notion in the theory of formal specification [8]. If we can implement a specification SP, we can implement any conservative extension of SP as well. Hence, a specification can be shown consistent by starting with a consistent specification and extending it using a number of conservative extension steps. This is important, because during a formal development, it is desirable to guarantee consistency of specifications as soon as possible. Checks for conservative extensions also arise in calculi for proofs in structured specifications [12,9]. Furthermore, consistency is a special case of conservativity: it is just conservativity over the empty specification. Moreover, using consistency, also non-consequence can be checked: an axiom does not follow from a specification if the specification augmented by the negation of the axiom is consistent. Finally, [3] puts forward the idea of simplifying the task of checking consistency of large theories by decomposing them with the help of an architectural specification [2]. In order to show that an architectural specification is consistent, it is necessary to show that a number of extensions are conservative (more precisely, the specifications of its generic units need to be conservative extensions of their argument specifications, and those of the non-generic units need to be consistent).