We extend the coalgebraic account of specification and refinement of objects and classes in object-oriented programming given by Reichel and Jacobs to (generalised) binary methods. These are methods that take more than one parameter of a class type. Class types include products, sums and powerset type constructors. To allow for class constructors, we model classes as bialgebras. We study and compare two solutions for modelling generalised binary methods, which use purely covariant functors.
In the first solution, which applies when we already have a class implementation, we reduce the behaviour of a generalised binary method to that of a bunch of unary methods. These are obtained by freezing the types of the extra class parameters to constant types. If all parameter types are finitary, the bisimilarity equivalence induced on objects by this model yields the greatest congruence with respect to method application.
In the second solution, we treat binary methods as graphs instead of functions, thus turning contravariant occurrences in the functor into covariant ones.
We show the existence of final coalgebras in both cases.
Email your librarian or administrator to recommend adding this journal to your organisation's collection.