Computing ml equality kinds using abstract interpretation

Carl A. Gunter, Elsa L. Gunter, David B. Macqueen

Research output: Contribution to journalArticlepeer-review

Abstract

The definition of Standard ML provides a form of generic equality which is inferred for certain types, called equality types, on which it is possible to define an equality relation in ML. However, the standard definition is incomplete in the sense that there are interesting and useful types which are not inferred to be equality types but for which an equality relation can be defined in ML in a uniform manner. In this paper, a refinement of the Standard ML system of equality types is introduced and is proven sound and complete with respect to the existence of a definable equality. The technique used here is based on an abstract interpretation of ML operators as monotone functions over a three point lattice. It is shown how the equality relation can be defined (as an ML program) from the definition of a type with our equality property. Finally, a sound, efficient algorithm for inferring the equality property, which corrects the limitations of the standard definition in all cases of practical interest, is demonstrated.

Original languageEnglish (US)
Pages (from-to)303-323
Number of pages21
JournalInformation and Computation
Volume107
Issue number2
DOIs
StatePublished - Dec 1993
Externally publishedYes

ASJC Scopus subject areas

  • Theoretical Computer Science
  • Information Systems
  • Computer Science Applications
  • Computational Theory and Mathematics

Fingerprint Dive into the research topics of 'Computing ml equality kinds using abstract interpretation'. Together they form a unique fingerprint.

Cite this