The many-sorted terms on a signature Sigma=(S,TF,PF,P) and a set of sorted variables X
[TM,DTS,AT] May variables be overloaded, i.e. can X contain x:s and x:s' with s /= s'? (Probably no, because things like forall x:s. forall x:s'. f(x)=x for f : s -> s' might be confusing. But see later comments about variables below.)
Discharged: Variables may not be overloaded.are built from:
An explicitly-sorted term is formed by attaching a sort to a fully-qualified term of that sort.1
[AH,DTS] I don't see the point of explicitly-sorted terms, as the sort of a fully-qualified term can always be derived. ([TM] This is correct: one can always infer the sort of a fully-qualified term by looking at the (result) sort of the outermost function symbol or variable. Transitivity of equality does not fail provided one always works with fully-qualified terms rather than unqualified terms. Therefore it is redundant to use explicitly-sorted terms. It is not necessary to annotate the equality sign with the sort either.)
Discharged: Explicitly-sorted terms are eliminated.
For a many-sorted signature Sigma= (S,TF,PF,P) the many-sorted sentences in Sen(Sigma) are the usual closed many-sorted first-order logic formulae, built using quantification (over sorted variables) and logical connectives from the following atomic formulae:
[DTS] Assuming that overloading of variables is forbidden (see above): when forall x':s'.phi is a Sigma-formula over X, x' cannot appear in X with any sort other than s', since phi has to be a Sigma-formula over X u {x':s'}! Is this really what we want? And should we additionally require that x':s' / e X? Similarly for other quantifiers.
Discharged: Overloading isn't allowed, but overriding is allowed in quantifications. An inner quantification makes a hole in the scope of an outer quantification of a variable with the same or different sort.
The sentences Sen(Sigma) also include sort-generation constraints. Let Sigma=(S,TF,PF, P). A sort-generation constraint consists of (S',F') with S' C S and F' C TF u PF.
[AT] Translations of sentences along signature morphisms are not defined. I would not attempt this here: first, there would be troubles with constraints; second, we do not need this for the semantics of the language.
Discharged: No change required.