Narrowing was originally introduced to solve equational E-unification problems. It has also been recognized as a key mechanism to unify functional and logic programming. In both ...
Interpolation is an important technique in verification and static analysis of programs. In particular, interpolants extracted from proofs of various properties are used in invar...
To improve the quality of type error messages in functional programming languages, we propose four techniques which influence the behaviour of constraint-based type inference proc...
Bastiaan Heeren, Jurriaan Hage, S. Doaitse Swierst...
Operational semantics provide a simple, high-level and elegant means of specifying interpreters for programming languages. In natural semantics, a form of operational semantics, p...
Logic languages based on the theory of rational, possibly infinite, trees have much appeal in that rational trees allow for faster unification (due to the safe omission of the occ...
Roberto Bagnara, Roberta Gori, Patricia M. Hill, E...