The Larch Project develops aids for formal specifications. Each Larch specification has two components: an interface containing predicates written in the LIL ( Larch Interface Language ) designed for the target language and a 'trait' containing assertions about the predicate s written in LSL, the Larch Shared Language common to all.
["The Larch Family of Specification Languages", J. Guttag et al, IEEE Trans Soft Eng 2(5):24-365 (Sep 1985)].