2007 · 14 citations · 9 references
EngineeringType TheoryLinear-time Unification AlgorithmComputational ComplexityGraphical PresentationFormal VerificationSyntaxData ScienceGeneric ProgrammingDependently Typed ProgrammingComputational LinguisticsLanguage StudiesSystem SfType InstanceData TypeAbstract InterpretationComputer ScienceType SystemAutomated ReasoningMlf TypesFormal MethodsUnification Grammar
MLF is a language that extends ML and System SF and combines the benefits of both. We propose a dag representation of MLF types that superposes a term-dag, encoding the underlying term-structure with sharing, and a binding tree encoding the binding-structure. Compared to the original definition, this representation is more canonical as it factors out most of the notational details; it is also closely related to first-order terms. Moreover, it permits a simpler and more direct definition of type instance that combines type instance on first-order term-dags, simple operations on dags, and a control that allows or rejects potential instances. Using this representation, we build a linear-time unification algorithm for MLF types, which we prove sound and complete with respect to the specification.
9
Principal type-schemes for functional programs
Robin Milner · 1982 · 1.1K citations
Mathematical Programming, Principal Type-schemes, Engineering +12
Mike Paterson, Mark N. Wegman · Journal of Computer and System Sciences · 1978 · 279 citations
Didier Le Botlan, Didier Rémy · ACM SIGPLAN Notices · 2014 · 72 citations
Didier Le Botlan, Didier Rémy · 2003 · 59 citations