Author: Richard J. Waldinger

  • Tablog: The Deductive-Tableau Programming Language

    TABLOG (Tableau Logic Programming Language) is a language based on first-order predicate logic with equality that combines functional and logic programming. TABLOG incorporate advantages of LISP and PROLOG.

  • Deductive Synthesis Of The Unification Algorithm

    The task of deriving a unification algorithm automatically is beyond the power of existing program synthesis systems. We will identify some of the capabilities required of a theorem-proving system to perform this derivation automatically.

  • A Deductive Approach To Program Synthesis

    This approach regards program synthesis as a theorem-proving task and relies on a theorem-proving method that combines the features of transformation rules, unification, and mathematical induction within a single framework.

  • The Logic Of Computer Programming

    Techniques derived from mathematical logic promise to provide an alternative to the conventional methodology for constructing, debugging, and optimizing computer programs. This paper provides a unified tutorial exposition of the logical techniques, illustrating each with examples.

  • Is “Sometimes” Sometimes Better Than “Always”? Intermittent Assertion In Proving Program Correctness

    This approach, which we call the intermittent-assertion method, involves documenting the program with assertions that must be true at some time when control is passing through the corresponding point, but that need not be true every time.

  • Qlisp: A Language For The Interactive Development Of Complex Systems

    This paper presents a functional overview of the features and capabilities of QLISP, one of the newest of the current generation of very high level languages developed for use in artificial intelligence (AI) research.

  • QLISP Reference Manual

    QLISP permits free intermingling of advanced language constructs with those of INTERLISP. It provides an associative data base, viewed from perspectives controlled by a powerful context mechanism.

  • Achieving Several Goals Simultaneously

    This paper develops the following strategy: to achieve two goals simultaneously, develop a plan to achieve one of them and then modify that plan to achieve the second as well. A systematic program modification technique is presented to support this strategy.

  • Knowledge and Reasoning In Program Synthesis

    We describe some of the reasoning and programming capabilities of a projected synthesis system with special attention paid to the introduction of conditional tests, loops, and instructions with wide effects in the program being constructed.

  • Reasoning About Programs

    This paper describes a theorem prover that embodies knowledge about programming constructs, such as numbers, arrays, lists, and expressions. The program can reason about these concepts and is used as part of a program verification system that uses the Floyd-Naur explication of program semantics.

  • QA4: A Procedural Calculus For Intuitive Reasoning

    This report presents a language, called QA4, designed to facilitate the construction of problem-solving systems used for robot planning, theorem proving, and automatic program synthesis and verification.

  • QA4 Language Applied to Robot Planning

    This paper introduces the first implemented version of the problem solving language QA4 and illustrates the application of this language to some simple robot planning problems.