LCF(ID:1178/lcf001)

Logic for Computable Functions 


for Logic of Computable Functions

Scott 1970

There are two kinds of base variables and constants in LCF. Those that range over individuals
and those that range over truth values.


People:
Related languages
LCF => Edinburgh LCF   Implementation of

References:
  • Milner, R., Logic for computable functions, description of a machine implementation Artificial Intelligence Memo No. 169,Stanford University (1972). view details
  • Milner, Robin "Implementation and applications of Scott's logic for computable functions" pp1-6 view details Extract: PURE LCF
    PURE LCF
    We reserve the name LCF (Logic for Computable Functions) for the computer implementation, and give the name PURE LCF to the translation of Scott's logic into k-calculus terms. LCF is a pollution
    of PURE LCF only in the sense that it attempts to make the process of generating proofs convenient.
          in SIGPLAN Notices 7(01) January 1972 [ACM] Proc. ACM Conf. on Proving Assertions about Programs. New Mexico State University, Las Cruces, New Mexico (1972) view details
  • Aiello, L. and Aiello, M., "Proving Program Correctness in LCF" view details
          in The Colloquium on Programming, Paris, 9-l I April 1974 view details
  • Aiello, Luigia Aiello, Mario and Weyhrauch, Richard W. "The semantics of PASCAL in LCF." CS-TR-74-447 Department of Computer Science Stanford University August 1974 view details Abstract: Report Number: CS-TR-74-447
    Institution: Stanford University, Department of Computer Science
    Title: The semantics of PASCAL in LCF.
    Author: Aiello, Luigia
    Author: Aiello, Mario
    Author: Weyhrauch, Richard W.
    Date: August 1974
    Abstract: We define a semantics for the arithmetic part of PASCAL by giving it an interpretation in LCF, a language based on the typed $\lambda$-calculus. Programs are represented in terms of their abstract syntax. We show sample proofs, using LCF, of some general properties of PASCAL and the correctness of some particular programs. A program implementing the McCarthy Airline reservation system is proved correct. pdf
          in The Colloquium on Programming, Paris, 9-l I April 1974 view details
  • Aiello, Luigia and Weyhrauch, Richard W. "LCFsmall: an implementation of LCF." CS-TR-74-446 Department of Computer Science Stanford University, August 1974 view details Abstract: Report Number: CS-TR-74-446
    Institution: Stanford University, Department of Computer Science
    Title: LCFsmall: an implementation of LCF.
    Author: Aiello, Luigia
    Author: Weyhrauch, Richard W.
    Date: August 1974
    Abstract: This is a report on a computer program implementing a simplified version of LCF. It is written (with minor exceptions) entirely in pure LISP and has none of the user oriented features of the implementation described by Milner. We attempt to represent directly in code the metamathematical notions necessary to describe LCF. We hope that the code is simple enough and the metamathematics is clear enough so that properties of this particular program (e.g. its correctness) can eventually be proved. The program is reproduced in full. pdf
          in The Colloquium on Programming, Paris, 9-l I April 1974 view details
  • Finkel, Raphael A. Taylor, Russell H. Bolles, Robert C. Paul, Richard P. Feldman, Jerome A. "AL, a programming system for automation" Report Number: CS-TR-74-456 Department of Computer Science Stanford University view details Abstract: Report Number: CS-TR-74-456
    Institution: Stanford University, Department of Computer Science
    Title: AL, a programming system for automation.
    Author: Finkel, Raphael A.
    Author: Taylor, Russell H.
    Author: Bolles, Robert C.
    Author: Paul, Richard P.
    Author: Feldman, Jerome A.
    Date: November 1974
    Abstract: AL is a high-level programming system for specification of manipulatory tasks such as assembly of an object from parts. AL includes an ALGOL-like source language, a translator for converting programs into runnable code, and a runtime system for controlling manipulators and other devices. The system includes advanced features for describing individual motions of manipulators, for using sensory information, and for describing assembly algorithms in terms of common domain-specific primitives. This document describes the design of AL, which is currently being implemented as a successor to the Stanford WAVE system.
    pdf
          in The Colloquium on Programming, Paris, 9-l I April 1974 view details
  • von Henke, Friedrich W "On the representation of data structures in LCF with applications to program generation." Report Number: CS-TR-75-520 Department of Computer Science Stanford University September 1975 view details Abstract: Report Number: CS-TR-75-520
    Institution: Stanford University, Department of Computer Science
    Title: On the representation of data structures in LCF with applications to program generation.
    Author: von Henke, Friedrich W.
    Date: September 1975
    Abstract: In this paper we discuss techniques of exploiting the obvious relationship between program structure and data structure for program generation. We develop methods of program specification that are derived from a representation of recursive data structures in the Logic for Computable Functions (LCF). As a step towards a formal problem specification language we define definitional extensions of LCF. These include a calculus for (computable) homogeneous sets and restricted quantification. Concepts that are obtained by interpreting data types as algebras are used to derive function definition schemes from an LCF term representing a data structure; they also lead to techniques for the simplification of expressions in the extended language. The specification methods are illustrated with a detailed example. pdf
          in The Colloquium on Programming, Paris, 9-l I April 1974 view details
  • Plotkin, Gordon "LCF considered as a programming language" view details
          in Theoret. Comput. Sci., 5(3) December 1977 view details
  • Jacek Leszczylowski "An Experiment with Edinburgh LCF", 5th Conference on Automated Deduction, Les Arcs, France, LNCS 87, 1980 view details External link: Online copy
          in Theoret. Comput. Sci., 5(3) December 1977 view details
  • Cohn, Avra; Milner, Robin "On using Edinburgh LCF to prove the correctness of a parsing algorithm" Technical Report UCAM-CL-TR-20 February 1982 view details External link: Online copy at UCAM
          in Theoret. Comput. Sci., 5(3) December 1977 view details
  • Paulson, Larry "Recent developments in LCF: examples of structural induction" January 1983 UCAM-CL-TR-34 view details External link: Online copy
          in Theoret. Comput. Sci., 5(3) December 1977 view details
  • Paulson, Larry "Rewriting in Cambridge LCF" UCAM-CL-TR-35 February 1983 view details Abstract: Many automatic theorem-provers rely on rewriting. Using theorems as rewrite rules helps to simplify the subgoals that arise during a proof.

    LCF is an interactive theorem-prover intended for reasoning about computation. Its implementation of rewriting is presented in detail. LCF provides a family of rewriting functions, and operators to combine them. A succession of functions is described, from pattern matching primitives to the rewriting tool that performs most inferences in LCF proofs.

    The design is highly modular. Each function performs a basic, specific task, such as recognizing a certain form of tautology. Each operator implements one method of building a rewriting function from simpler ones. These pieces can be put together in numerous ways, yielding a variety of rewriting strategies.

    The approach involves programming with higher-order functions. Rewriting functions are data values, produced by computation on other rewriting functions. The code is in daily use at Cambridge, demonstrating the practical use of functional programming. External link: Online copy Internal error
    SAYFLD: Field name [txtURL] not in current recordsetsaying value...

          in Theoret. Comput. Sci., 5(3) December 1977
    view details
  • Paulson, Lawrence "Tactics and tacticals in Cambridge LCF" Technical Report UCAM-CL-TR-39 July 1983 view details External link: Online copy
          in Theoret. Comput. Sci., 5(3) December 1977 view details
  • Paulson, Lawrence "The revised logic PPLAMBDA: A reference manual" UCAM-CL-TR-36 March 1983 view details Abstract: PPLAMBDA is the logic used in the Cambridge LCF proof assistant. It allows Natural Deduction proofs about computation, in Scott's theory of partial orderings. The logic?s syntax, axioms, primitive inference rules, derived inference rules and standard lemmas are described as are the LCF functions for building and taking apart PPLAMBDA formulas.

    PPLAMBDA?s rule of fixed-point induction admits a wide class of inductions, particularly where flat or finite types are involved. The user can express and prove these type properties in PPLAMBDA. The induction rule accepts a list of theorems, stating type properties to consider when deciding to admit an induction. External link: Online copy
          in Theoret. Comput. Sci., 5(3) December 1977 view details
  • Paulson, Lawrence "Lessons learned from LCF" UCAM-CL-TR-54 August 1984 view details External link: Online copy
          in Theoret. Comput. Sci., 5(3) December 1977 view details
  • Paulson, Lawrence "Verifying the unification algorithm in LCF" Technical Report UCAM-CL-TR-50 March 1984 view details Abstract: Manna and Waldinger?s theory of substitutions and unification has been verified using the Cambridge LCF theorem prover. A proof of the monotonicity of substitution is presented in detail, as an example of interaction with LCF. Translating the theory into LCF?s domain-theoretic logic is largely straightforward. Well-founded induction on a complex ordering is translated into nested structural inductions. Correctness of unification is expressed using predicates for such properties as idempotence and most-generality. The verification is presented as a series of lemmas. The LCF proofs are compared with the original ones, and with other approaches. It appears difficult to find a logic that is both simple and flexible, especially for proving termination. External link: Online copy Extract: Overview of LCF
    Overview of LCF
    LCF is an interactive, programmable theorem prover for Scott's Logic of Computable Functions. There are several versions of LCF. Cohn has used Edinburgh LCF to prove the equivalence of two semantic definitions of a simple programming language [10]. Mulmuley has used it to automate existence proofs for inclusive predicates, a highly technical aspect of compiler verification [20]. Gordon has extended Cambridge LCF for reasoning about hardware, and proved the correctness of a small computer [14]. This section introduces the principles; tutorials have appeared elsewhere [12, 13]. The unification proof uses Cambridge LCF.
          in Theoret. Comput. Sci., 5(3) December 1977 view details
  • Paulson, Lawrence C. "Interactive theorem proving with Cambridge LCF A user's manual" UCAM-CL-TR-80 November 1985 view details External link: Online copy
          in Theoret. Comput. Sci., 5(3) December 1977 view details
  • Paulson, LC "Lessons learned from LCF: a survey of natural deduction proofs" pp474-479 view details Abstract: The LCF project has produced a family of interactive, programmable theorem-provers, particularly intended for verifying computer hardware and software. The introduction sketches basic concepts: the metalanguage ML, the logic PPLAMBDA, backwards proof, rewriting, and theory construction. A historical section surveys some LCF proofs. Several proofs involve denotational semantics, notably for compile correctness. Functional program for parsing and unification have been verified. Digital circuits have been proved correct, and some subsequently fabricated.

    There is an extensive bibliography of work related to LCF. The most dynamic issues at present are data types, subgoaling techniques, logics of computation, and the development of ML. External link: Online copy
          in The Computer Journal 28(5) 1985 view details
  • Dan Grossman et al "Region-based Memory Management in Cyclone" view details pdf
          in ACM Conference on Programming Language Design and Implementation, Berlin, Germany, June, 2002 view details