Properties of Programs and the First-Order Predicate Calculus
Journal of the ACM (JACM)
MLISP
MLISP
Algorithmic specifications: a constructive specification method for abstract data types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proving Theorems about LISP Functions
Journal of the ACM (JACM)
The Semantics of Predicate Logic as a Programming Language
Journal of the ACM (JACM)
Semantics of the Domain of Flow Diagrams
Journal of the ACM (JACM)
Communications of the ACM
The denotational semantics of programming languages
Communications of the ACM
Fixpoint approach to the theory of computation
Communications of the ACM
Inductive methods for proving properties of programs
Communications of the ACM
A Metalanguage for interactive proof in LCF
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A mathematical approach to language design
POPL '75 Proceedings of the 2nd ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A semantic model for parallel systems with scheduling
POPL '75 Proceedings of the 2nd ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Final data type specifications: a new data type specification method
POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Definitional Interpreters for Higher-Order Programming Languages
Higher-Order and Symbolic Computation
Computer architecture for correct programming
ISCA '78 Proceedings of the 5th annual symposium on Computer architecture
On the theory of programming logics
STOC '77 Proceedings of the ninth annual ACM symposium on Theory of computing
Computability concepts for programming language semantics
STOC '75 Proceedings of seventh annual ACM symposium on Theory of computing
The current state of proving programs correct
ACM '72 Proceedings of the ACM annual conference - Volume 1
Definitional interpreters for higher-order programming languages
ACM '72 Proceedings of the ACM annual conference - Volume 2
Inductive methods for proving properties of programs
Proceedings of ACM conference on Proving assertions about programs
Correctness of a compiler for a Lisp subset
Proceedings of ACM conference on Proving assertions about programs
On the scope of static checking in definitional languages
ACM '84 Proceedings of the 1984 annual conference of the ACM on The fifth generation challenge
Ott: effective tool support for the working semanticist
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
A Hoare Logic for Call-by-Value Functional Programs
MPC '08 Proceedings of the 9th international conference on Mathematics of Program Construction
Computation of recursive programs: theory vs practice
AFIPS '72 (Spring) Proceedings of the May 16-18, 1972, spring joint computer conference
Mathematical concepts in programming language semantics
AFIPS '72 (Spring) Proceedings of the May 16-18, 1972, spring joint computer conference
A summary of progress toward proving program correctness
AFIPS '72 (Fall, part I) Proceedings of the December 5-7, 1972, fall joint computer conference, part I
A proof-checker for dynamic logic
IJCAI'77 Proceedings of the 5th international joint conference on Artificial intelligence - Volume 1
Gentzen-type formal, system representing properties of function and its implementation
IJCAI'75 Proceedings of the 4th international joint conference on Artificial intelligence - Volume 1
Proving theorems about LISP functions
IJCAI'73 Proceedings of the 3rd international joint conference on Artificial intelligence
Ott: Effective tool support for the working semanticist
Journal of Functional Programming
Survey: A survey of state vectors
Computer Science Review
Hi-index | 0.06 |
The basis for this paper is a logic designed by Dana Scott [1] in 1969 for formalizing arguments about computable functions of higher type. This logic uses typed combinators, and we give a more or less direct translation into typed &lgr;-calculus, which is an easier formalism to use, though not so easy for the metatheory because of the presence of bound variables. We then describe, by example only, a proof-checker program which has been implemented for this logic; the program is fully described in [2]. We relate the induction rule which is central to the logic to two more familiar rules - Recursion Induction and Structural Induction - showing that the former is a theorem of the logic, and that for recursively defined structures the latter is a derived rule of the logic. Finally we show how the syntax and semantics of a simple programming language may be described completely in the logic, and we give an example of a theorem which relates syntactic and semantic properties of programs and which can be stated and proved within the logic.