Behavioural Coherence in Object-Oriented Algebraic Specification