The paper introduces a new unification algorithm for terms interpreted in semantic domains described by deterministic regular types. This reflects the intention to partition the semantic universe, similar to data types in programming languages, rather than treating it as a homogeneous collection of values.
The key highlights and insights are:
The unification algorithm can return three different results: a most general unifier, failure, or "wrong" when terms belong to disjoint domains. This "wrong" result is inspired by the notion used by Robin Milner to denote runtime type errors in functional programs.
The paper also introduces a type system for terms and the equality predicate, which is proven to be sound with respect to the semantic typing relation. The three-stage framework (semantic typing, syntactic typing, and unification algorithm) enables smooth proofs of soundness and completeness of the unification algorithm.
To Another Language
from source content
arxiv.org
Deeper Inquiries