Subtype polymorphism à la carte via machine learning on dependent types

The essential rationale for subtype polymorphism is adherence to the 'Open/Closed Principle' [12]: the ability to write framework code in terms of superclasses and subsequently invoke it with any subclass that exhibits 'proper subtyping' via the Liskov Substitution Principle (LSP) [11]. Formally, the LSP states that if ø(t : T) is a provable property of objects t of type T, then ø(s) should be true for objects s of subtype S of T. In practice, such properties have typically been those expressible via 'Design by Contract' [12], specifically preconditions, postconditions and invariants. Such abstraction via subtype polymorphism is intended to insulate against requirements change. However, when new requirements do necessitate a change of contract, the maintenance consequences can be severe. In the (typical) absence of explicit language or tool support, enforcement of proper subtyping is laborious and error-prone: contractual changes typically require manual inspection/repair of the class hierarchy to determine/address violations of the LSP.

[1]  Edwin Brady,et al.  IDRIS ---: systems programming meets full dependent types , 2011, PLPV '11.

[2]  Jerry Swan,et al.  Asymptotic Genetic Improvement Programming via Type Functors and Catamorphisms , 2014 .

[3]  Thibault Gauthier,et al.  Matching Concepts across HOL Libraries , 2014, CICM.

[4]  B. Liskov Keynote address - data abstraction and hierarchy , 1988, OOPSLA '87.

[5]  Geoffrey E. Hinton,et al.  Deep Learning , 2015, Nature.

[6]  Jónathan Heras,et al.  Proof-Pattern Recognition and Lemma Discovery in ACL2 , 2013, LPAR.

[7]  Jerry Swan,et al.  Genetic Programming \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{+}$$\end{document}+ Proof Search \document , 2017, Journal of Automated Reasoning.

[8]  Hideyuki Takagi,et al.  Interactive evolutionary computation: fusion of the capabilities of EC optimization and human evaluation , 2001, Proc. IEEE.

[9]  Jan de Muijnck-Hughes Type-Driven Development with Idris , 2020, J. Funct. Program..

[10]  Howard J. Hamilton,et al.  Interestingness measures for data mining: A survey , 2006, CSUR.

[11]  Jónathan Heras,et al.  Proof Mining with Dependent Types , 2017, CICM.

[12]  Barbara Liskov,et al.  Keynote address - data abstraction and hierarchy , 1988, OOPSLA '87.

[13]  Yuanyuan Zhang,et al.  Search-based software engineering: Trends, techniques and applications , 2012, CSUR.