Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Robert S. Boyer is active.

Publication


Featured researches published by Robert S. Boyer.


Communications of The ACM | 1977

A fast string searching algorithm

Robert S. Boyer; J Strother Moore

An algorithm is presented that searches for the location, “<italic>i</italic>l” of the first occurrence of a character string, “<italic>pat</italic>,” in another string, “<italic>string</italic>.” During the search operation, the characters of <italic>pat</italic> are matched starting with the last character of <italic>pat</italic>. The information gained by starting the match at the end of the pattern often allows the algorithm to proceed in large jumps through the text being searched. Thus the algorithm has the unusual property that, in most cases, not all of the first <italic>i</italic> characters of <italic>string</italic> are inspected. The number of characters actually inspected (on the average) decreases as a function of the length of <italic>pat</italic>. For a random English pattern of length 5, the algorithm will typically inspect <italic>i</italic>/4 characters of <italic>string</italic> before finding a match at <italic>i</italic>. Furthermore, the algorithm has been implemented so that (on the average) fewer than <italic>i</italic> + <italic>patlen</italic> machine instructions are executed. These conclusions are supported with empirical evidence and a theoretical analysis of the average behavior of the algorithm. The worst case behavior of the algorithm is linear in <italic>i</italic> + <italic>patlen</italic>, assuming the availability of array space for tables linear in <italic>patlen</italic> plus the size of the alphabet. 3~


Sigplan Notices | 1975

SELECT—a formal system for testing and debugging programs by symbolic execution

Robert S. Boyer; Bernard Elspas; Karl N. Levitt

SELECT is an experimental system for assisting in the formal systematic debugging of programs. It is intended to be a compromise between an automated program proving system and the current ad hoc debugging practice, and is similar to a system being developed by King et al. of IBM. SELECT systematically handles the paths of programs written in a LISP subset that includes arrays. For each execution path SELECT returns simplified conditions on input variables that cause the path to be executed, and simplified symbolic values for program variables at the path output. For conditions which form a system of linear equalities and inequalities SELECT will return input variable values that can serve as sample test data. The user can insert constraint conditions, at any point in the program including the output, in the form of symbolically executable assertions. These conditions can induce the system to select test data in user-specified regions. SELECT can also determine if the path is correct with respect to an output assertion. We present four examples demonstrating the various modes of system operation and their effectiveness in finding bugs. In some examples, SELECT was successful in automatically finding useful test data. In others, user interaction was required in the form of output assertions. SELECT appears to be a useful tool for rapidly revealing program errors, but for the future there is a need to expand its expressive and deductive power.


Journal of the ACM | 1975

Proving Theorems about LISP Functions

Robert S. Boyer; J Strother Moore

We describe some simple heuristics combining evaluation and mathematical induction which we have implemented in a program that automatically proves a wide variety of theorems about recursive LISP functions. The method the program uses to generate induction formulas is described at length. The theorems proved by the program include that REVERSE is its own inverse and that a particular SORT program is correct. Appendix B contains a list of the theorems proved by the program.


ACM Transactions on Programming Languages and Systems | 1989

Efficient implementation of lattice operations

Hassan Aït-Kaci; Robert S. Boyer; Patrick Lincoln; Roger Nasr

Lattice operations such as greatest lower bound (GLB), least upper bound (LUB), and relative complementation (BUTNOT) are becoming more and more important in programming languages supporting object inheritance. We present a general technique for the efficient implementation of such operations based on an encoding method. The effect of the encoding is to plunge the given ordering into a boolean lattice of binary words, leading to an almost constant time complexity of the lattice operations. A first method is described based on a transitive closure approach. Then a more space-efficient method minimizing code-word length is described. Finally a powerful grouping technique called modulation is presented, which drastically reduces code space while keeping all three lattice operations highly efficient. This technique takes into account idiosyncrasies of the topology of the poset being encoded that are quite likely to occur in practice. All methods are formally justified. We see this work as an original contribution towards using semantic (vz., in this case, taxonomic) information in the engineering pragmatics of storage and retrieval of (vz., partially or quasi-ordered) information.


the international conference | 1975

SELECT---a formal system for testing and debugging programs by symbolic execution

Robert S. Boyer; Bernard Elspas; Karl N. Levitt

SELECT is an experimental system for assisting in the formal systematic debugging of programs. It is intended to be a compromise between an automated program proving system and the current ad hoc debugging practice, and is similar to a system being developed by King et al. of IBM. SELECT systematically handles the paths of programs written in a LISP subset that includes arrays. For each execution path SELECT returns simplified conditions on input variables that cause the path to be executed, and simplified symbolic values for program variables at the path output. For conditions which form a system of linear equalities and inequalities SELECT will return input variable values that can serve as sample test data. The user can insert constraint conditions, at any point in the program including the output, in the form of symbolically executable assertions. These conditions can induce the system to select test data in user-specified regions. SELECT can also determine if the path is correct with respect to an output assertion. We present four examples demonstrating the various modes of system operation and their effectiveness in finding bugs. In some examples, SELECT was successful in automatically finding useful test data. In others, user interaction was required in the form of output assertions. SELECT appears to be a useful tool for rapidly revealing program errors, but for the future there is a need to expand its expressive and deductive power.


Automated Reasoning: Essays in Honor of Woody Bledsoe | 1991

MJRTY - A Fast Majority Vote Algorithm.

Robert S. Boyer; J Strother Moore

A new algorithm is presented for determining which, if any, of an arbitrary number of candidates has received a majority of the votes cast in an election. The number of comparisons required is at most twice the number of votes. Furthermore, the algorithm uses storage in a way that permits an efficient use of magnetic tape. A Fortran version of the algorithm is exhibited. The Fortran code has been proved correct by a mechanical verification system for Fortran. The system and the proof are discussed.


Journal of the ACM | 1996

Automated proofs of object code for a widely used microprocessor

Robert S. Boyer; Yuan Yu

Computing devices can be specified and studied mathematically. Formal specification of computing devices has many advantages--it provides a precise characterization of the computational model and allows for mathematical reasoning about models of the computing devices and programs executed on them. While there has been a large body of research on program proving, work has almost exclusively focused on programs written in high level programming languages. This thesis addresses the very important but largely ignored problem of machine code program proving. In this thesis we have formally described a substantial subset of the MC68020, a widely used microprocessor built by Motorola, within the mathematical logic of the automated reasoning system Nqthm, a.k.a. the Boyer-Moore Theorem Proving System. Based on this formal model, we have mechanized a mathematical theory to facilitate automated reasoning about object code programs. We then have mechanically checked the correctness of MC68020 object code programs for binary search, Hoares Quick Sort, the Berkeley Unix C string library, and other well-known algorithms. The object code for these examples was generated using the Gnu C, the Verdix Ada, and the AKCL Common Lisp compilers.


Computers & Mathematics With Applications | 1995

The Boyer-Moore theorem prover and its interactive enhancement

Robert S. Boyer; Matt Kaufmann; J. S. Moore

Abstract The so-called Boyer-Moore Theorem Prover (otherwise known as Nqthm) has been used to perform a variety of verification tasks for two decades. We give an overview of both this system and an interactive enhancement of it, Pc-Nqthm, from a number of perspectives. First, we introduce the logic in which theorems are proved. Then, we briefly describe the two mechanized theorem proving systems. Next, we present a simple but illustrative example in some detail in order to give an impression of how these systems may be used successfully. Finally, we give extremely short descriptions of a large number of applications of these systems, in order to give an idea of the breadth of their uses. This paper is intended as an informal introduction to systems that have been described in detail and similarly summarized in many other books and papers; no new results are reported here. Our intention here is to present Nqthm to a new audience.


Journal of Automated Reasoning | 1986

Set theory in first-order logic: clauses for Go¨del's axioms

Robert S. Boyer; Ewing L. Lusk; William McCune; Ross Overbeek; Mark E. Stickel; Larry Wos

In this paper we present a set of clauses for set theory, thus developing a foundation for the expression of most theorems of mathematics in a form acceptable to a resolution-based automated theoren prover. Because Gödels formulation of set theory permits presentation in a finite number of first-orde formulas, we employ it rather than that of Zermelo-Fraenkel. We illustrate the expressive power of thi formulation by providing statements of some well-known open questions in number theory, and give some intuition about how the axioms are used by including some sample proofs. A small set of challeng problems is also given.


conference on automated deduction | 1990

A Theorem Prover for a Computational Logic

Robert S. Boyer; J. Strolther Moore

We briefly review a mechanical theorem-prover for a logic of recursive functions over finitely generated objects including the integers, ordered pairs, and symbols. The prover, known both as NQTHM and as the Boyer-Moore prover, contains a mechanized principle of induction and implementations of linear resolution, rewriting, and arithmetic decision procedures. We describe some applications of the prover, including a proof of the correct implementation of a higher level language on a microprocessor defined at the gate level. We also describe the ongoing project of recoding the entire prover as an applicative function within its own logic.

Collaboration


Dive into the Robert S. Boyer's collaboration.

Top Co-Authors

Avatar

J Strother Moore

University of Texas at Austin

View shared research outputs
Top Co-Authors

Avatar

James Moore

Information Sciences Institute

View shared research outputs
Top Co-Authors

Avatar

J. S. Moore

University of Texas at Austin

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

W. W. Bledsoe

University of Texas at Austin

View shared research outputs
Top Co-Authors

Avatar

Warren A. Hunt

University of Texas at Austin

View shared research outputs
Top Co-Authors

Avatar

Yuan Yu

University of Texas at Austin

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Larry Wos

Argonne National Laboratory

View shared research outputs
Top Co-Authors

Avatar

Matt Kaufmann

University of Texas at Austin

View shared research outputs
Researchain Logo
Decentralizing Knowledge