Mechanizing programming logics in higher order logic

Formal reasoning about computer programs can be based directly on the semantics of the programming language, or done in a special purpose logic like Hoare logic. The advantage of the first approach is that it guarantees that the formal reasoning applies to the language being used (it is well known, for example, that Hoare’s assignment axiom fails to hold for most programming languages). The advantage of the second approach is that the proofs can be more direct and natural.

[1]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[2]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[3]  Edmund M. Clarke The characterization problem for Hoare logics , 1984 .

[4]  Michael J. C. Gordon,et al.  Programming language theory and its implementation , 1988 .

[5]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[6]  David Gries,et al.  The Science of Programming , 1981, Text and Monographs in Computer Science.

[7]  Michael J. C. Gordon,et al.  Edinburgh LCF: A mechanised logic of computation , 1979 .

[8]  H. Keisler,et al.  Handbook of mathematical logic , 1977 .

[9]  Lawrence C. Paulson,et al.  Natural Deduction as Higher-Order Resolution , 1986, J. Log. Program..

[10]  Lawrence C. Paulson,et al.  A Higher-Order Implementation of Rewriting , 1983, Sci. Comput. Program..

[11]  Narain H. Gehani,et al.  Software Specification Techniques , 1985 .

[12]  George T. Ligler A mathematical approach to language design , 1975, POPL '75.

[13]  Vaughan R. Pratt,et al.  SEMANTICAL CONSIDERATIONS ON FLOYD-HOARE LOGIC , 1976, FOCS 1976.

[14]  Peter D. Mosses Compiler Generation Using Denotational Semantics , 1976, MFCS.

[15]  Robert S. Boyer,et al.  Computational Logic , 1990, ESPRIT Basic Research Series.

[16]  Lawrence C. Paulson,et al.  Logic and computation - interactive proof with Cambridge LCF , 1987, Cambridge tracts in theoretical computer science.

[17]  Lawrence C. Paulson,et al.  Verifying the Unification Algorithm in LCF , 1985, Sci. Comput. Program..

[18]  M. Fourman The Logic of Topoi , 1977 .

[19]  R. Goldblatt Logics of Time and Computation , 1987 .

[20]  Cliff B. Jones,et al.  Systematic Program Development , 1986 .

[21]  T. Melham Automating recursive type definitions in higher order logic , 1989 .

[22]  Vaughan R. Pratt,et al.  Semantical consideration on floyo-hoare logic , 1976, 17th Annual Symposium on Foundations of Computer Science (sfcs 1976).

[23]  Jacques Loeckx,et al.  The Foundations of Program Verification , 1987 .

[24]  Robert S. Boyer,et al.  Metafunctions: Proving Them Correct and Using Them Efficiently as New Proof Procedures. , 1979 .

[25]  Gordon D. Plotkin,et al.  Dijkstras Predicate Transformers & Smyth's Power Domaine , 1979, Abstract Software Specifications.

[26]  M. Gordon HOL: A Proof Generating System for Higher-Order Logic , 1988 .

[27]  Alonzo Church,et al.  A formulation of the simple theory of types , 1940, Journal of Symbolic Logic.

[28]  J. C. Shepherdson,et al.  Mathematical Logic and Programming Languages , 1985 .

[29]  Donald I. Good,et al.  Mechanical proofs about computer programs , 1984, Philosophical Transactions of the Royal Society of London. Series A, Mathematical and Physical Sciences.