As for many-sorted specifications, an atomic formula is well-formed (with respect to the current declarations) if it is well-sorted and expands to a unique atomic formula for constructing sentences of the underlying institution--but now for subsorted specifications, uniqueness is required only up to an equivalence on atomic formulae and terms. Equivalence between fully-qualified terms t, t' is the least congruence including the following cases:
The notions of when an atomic formula or term is well-sorted and of its expansion are indicated below for the various subsorting constructs. Due not only to overloading of predicate and/or function symbols, but also to implicit embeddings from subsorts into supersorts, a well-sorted atomic formula or term may have several expansions, preventing it from being well-formed. Qualifications on function and predicate symbols, or explicit sorts on terms, may be used to determine the intended expansion (up to the equivalence indicated above) and make it well-formed.
Term formation is also extended by letting a well-formed term of a
subsort s be regarded as a well-sorted term of a supersort s' as
well, which provides implicit embedding. It expands to the explicit
application of the pre-declared function symbol for embedding s into
s'. Also a SORTED-TERM expands to an explicit application of
an embedding, provided that the apparent sort of the component
TERM is a subsort of the specified SORT.
Atomic formulae ATOM are extended with a construct for testing
membership in subsorts. A membership formula is well-sorted if the
specified TERM is well-sorted for a supersort s' of the
specified SORT s. It expands to an application of the pre-declared
predicate symbol for testing s' values for membership in the
embedding of s.
ATOM ::= ... | MEMBERSHIP
MEMBERSHIP ::= membership TERM SORT
Term formation is extended too, by providing a casting construct
CAST for projections (there are no implicit casts). The cast of
the specified TERM to a SORT s is well-sorted if the term
is well-sorted for a supersort s' of s. It expands to an
application of the pre-declared function symbol for projecting from
s' to s.
TERM ::= ... | CAST
CAST ::= cast TERM SORT
CoFI Document: LanguageSummary --DRAFT, Version 0.96-- 30 April 1997.
Comments to cofi-language@brics.dk