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
The Automation of Proof: A Historical and Sociological Exploration
IEEE Annals of the History of Computing
The current state of proving programs correct
ACM '72 Proceedings of the ACM annual conference - Volume 1
Inductive methods for proving properties of programs
Proceedings of ACM conference on Proving assertions about programs
Verifying programs by algebraic and logical reduction
Proceedings of the international conference on Reliable software
Components of verification technology
ACM SIGSOFT Software Engineering Notes - Proceedings of VERkshop III -- a formal verification workshop
Some Domain Theory and Denotational Semantics in Coq
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
FMICS'11 Proceedings of the 16th international conference on Formal methods for industrial critical systems
Differential dynamic logics: automated theorem proving for hybrid systems
Differential dynamic logics: automated theorem proving for hybrid systems
Large-scale formal verification in practice: a process perspective
Proceedings of the 34th International Conference on Software Engineering
Proof-producing synthesis of ML from higher-order logic
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
The strategy challenge in SMT solving
Automated Reasoning and Mathematics
Practical theory extension in event-B
Theories of Programming and Formal Methods
Hi-index | 0.02 |
This paper is primarily a user''s manual for LCF, a proof-checking program for a logic of computable functions proposed by Dana Scott in 1969 but unpublished by him. We use the name LCF also for the logic itself, which is presented at the start of the paper. The proof-checking program is designed to allow the user interactively to generate formal proofs about computable functions and functionals over a variety of domains, including those of interest to the computer scientist - for example, integers, lists and computer programs and their semantics. The user''s task is alleviated by two features: a subgoaling facility and a powerful simplification mechanism. Applications include proofs of program correctness and in particular of compiler correctness; these applications are not discussed herein, but are illustrated in the papers referenced in this introduction.