posted on 2001-09-01, 00:00authored byHassan Ait-Kaci, Andreas Podelski, Seth C. Goldstein
Order-sorted feature (OSF) terms provide an adequate representation for objects as flexible
records. They are sorted, attributed, possibly nested, structures, ordered thanks to a subsort
ordering. Sort definitions offer the functionality of classes imposing structural constraints
on objects. These constraints involve variable sorting and equations among feature paths,
including self-reference. Formally, sort definitions may be seen as axioms forming an OSF
theory. OSF theory unification is the process of normalizing an OSF term, using sort-unfolding
to enforce structural constraints imposed on sorts by their definitions. It allows objects to
inherit, and thus abide by, constraints from their classes. A formal system is thus obtained
that logically models record objects with recursive class definitions accommodating multiple
inheritance. We show that OSF theory unification is undecidable in general. However, we
propose a set of confluent normalization rules which is complete for detecting inconsistency of
an object with respect to an OSF theory. These rules translate into an efficient algorithm using
structure-sharing and lazy constraint-checking. Furthermore, a subset consisting of all rules
but one is confluent and terminating. This yields a practical complete normalization strategy,
as well as an effective compilation scheme.