Skip to main content
×
Home
    • Aa
    • Aa

A certified implementation of ML with structural polymorphism and recursive types

  • JACQUES GARRIGUE (a1)
Abstract

The type system of Objective Caml has many unique features, which make ensuring the correctness of its implementation difficult. One of these features is structurally polymorphic types, such as polymorphic object and variant types, which have the extra specificity of allowing recursion. We implemented in Coq a certified interpreter for Core ML extended with structural polymorphism and recursion. Along with type soundness of evaluation, soundness and principality of type inference, and correctness of a stack-based interpreter, are also proved.

Copyright
Linked references
Hide All

This list contains references from the content that can be linked to their source. For a full set of references and notes please see the PDF or HTML where available.

B. E. Aydemir , A. Bohannon , M. Fairbairn , J. N. Foster , B. C. Pierce , P. Sewell , D. Vytiniotis , G. Washburn , S. Weirich , and S. Zdancewic (2005) Mechanized metatheory for the masses: The PoplMark challenge. In: Proceeding of the International Conference on Theorem Proving in Higher Order Logics. Springer lecture notes in computer science 3603 5065.

C. Dubois (2000) Proving ML type soundness within Coq. In: Proceeding of the International Conference on Theorem Proving in Higher Order Logics. Springer lecture notes in computer science 1869 126144.

C. Dubois and V. Ménissier-Morain . (1999) Certification of a type inference tool for ML: Damas-Milner within Coq. Journal of Automated Reasoning 23 (3) 319346.

J. Garrigue (2004) Relaxing the value restriction. In: Proceeding International Symposium on Functional and Logic Programming. Springer Lecture Notes in Computer Science 2998 196213.

J. Garrigue and D. Rémy (1999) Extending ML with semi-explicit higher order polymorphism. Information and Computation 155 134171.

W. Naraschewski and T. Nipkow (1999) Type inference verified: Algorithm W in Isabelle/HOL. Journal of Automated Reasoning 23 299318.

M. Odersky , M. Sulzmann and M. Wehr (1999) Type inference with constrained types. Theory and Practice of Object Systems 5 (1) 3555.

D. v. Oheimb and T. Nipkow (1999) Machine-checking the Java specification: Proving type-safety. In: J. Alves-Foss (ed.) Formal Syntax and Semantics of Java. Springer Lecture Notes in Computer Science 1523 119156.

A. Ohori (1995) A polymorphic record calculus and its compilation. ACM Transactions on Programming Languages and Systems 17 (6) 844895.

S. Owens (2008) A sound semantics for OCaml light. In: Proceeding European Symposium on Programming. Springer Lecture Notes in Computer Science 4960 115.

L. Paulson (1985) Verifying the unification algorithm in LCF. Science of Computer Programming 5 143169.

Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Mathematical Structures in Computer Science
  • ISSN: 0960-1295
  • EISSN: 1469-8072
  • URL: /core/journals/mathematical-structures-in-computer-science
Please enter your name
Please enter a valid email address
Who would you like to send this to? *
×

Metrics

Full text views

Total number of HTML views: 0
Total number of PDF views: 6 *
Loading metrics...

Abstract views

Total abstract views: 98 *
Loading metrics...

* Views captured on Cambridge Core between September 2016 - 27th March 2017. This data will be updated every 24 hours.