HOME

TheInfoList



OR:

Nqthm is a theorem prover sometimes referred to as the Boyer–Moore theorem prover. It was a precursor to
ACL2 ACL2 ("A Computational Logic for Applicative Common Lisp") is a software system consisting of a programming language, created by Timothy Still it was an extensible theory in a first-order logic, and an automated theorem prover. ACL2 is designed t ...
.


History

The system was developed by
Robert S. Boyer Robert Stephen Boyer is an American retired professor of computer science, mathematics, and philosophy at The University of Texas at Austin. He and J Strother Moore invented the Boyer–Moore string-search algorithm, a particularly efficie ...
and
J Strother Moore J Strother Moore (his first name is the alphabetic character "J" – not an abbreviated "J.") is a computer scientist. He is a co-developer of the Boyer–Moore string-search algorithm, Boyer–Moore majority vote algorithm, and the Boyer–M ...
, professors of computer science at the
University of Texas, Austin The University of Texas at Austin (UT Austin, UT, or Texas) is a public research university in Austin, Texas. It was founded in 1883 and is the oldest institution in the University of Texas System. With 40,916 undergraduate students, 11,075 ...
. They began work on the system in 1971 in
Edinburgh Edinburgh ( ; gd, Dùn Èideann ) is the capital city of Scotland and one of its 32 Council areas of Scotland, council areas. Historically part of the county of Midlothian (interchangeably Edinburghshire before 1921), it is located in Lothian ...
,
Scotland Scotland (, ) is a country that is part of the United Kingdom. Covering the northern third of the island of Great Britain, mainland Scotland has a border with England to the southeast and is otherwise surrounded by the Atlantic Ocean to the ...
. Their goal was to make a fully automatic, logic-based theorem prover. They used a variant of
Pure Pure may refer to: Computing * A pure function * A pure virtual function * PureSystems, a family of computer systems introduced by IBM in 2012 * Pure Software, a company founded in 1991 by Reed Hastings to support the Purify tool * Pure-FTPd, F ...
LISP as the working logic.


Definitions

Definitions are formed as totally recursive functions, the system makes extensive use of
rewriting In mathematics, computer science, and logic, rewriting covers a wide range of methods of replacing subterms of a well-formed formula, formula with other terms. Such methods may be achieved by rewriting systems (also known as rewrite systems, rewr ...
and an
induction Induction, Inducible or Inductive may refer to: Biology and medicine * Labor induction (birth/pregnancy) * Induction chemotherapy, in medicine * Induced stem cells, stem cells derived from somatic, reproductive, pluripotent or other cell t ...
heuristic that is used when rewriting and something that they called symbolic evaluation fails. The system was built on top of Lisp and had some very basic knowledge in what was called "Ground-zero", the state of the machine after
bootstrapping In general, bootstrapping usually refers to a self-starting process that is supposed to continue or grow without external input. Etymology Tall boots may have a tab, loop or handle at the top known as a bootstrap, allowing one to use fingers ...
it onto a Common Lisp implementation. This is an example of the proof of a simple arithmetic theorem. The function is part of the (called a "satellite") and is defined to be (DEFN TIMES (X Y) (IF (ZEROP X) 0 (PLUS Y (TIMES (SUB1 X) Y))))


Theorem formulation

The formulation of the theorem is also given in a Lisp-like syntax: (prove-lemma commutativity-of-times (rewrite) (equal (times x z) (times z x))) Should the theorem prove to be true, it will be added to the knowledge basis of the system and can be used as a rewrite rule for future proofs. The proof itself is given in a quasi-natural language manner. The authors randomly choose typical mathematical phrases for embedding the steps in the mathematical proof, which does actually make the proofs quite readable. There are macros for
LaTeX Latex is an emulsion (stable dispersion) of polymer microparticles in water. Latexes are found in nature, but synthetic latexes are common as well. In nature, latex is found as a milky fluid found in 10% of all flowering plants (angiosperms ...
that can transform the Lisp structure into more or less readable mathematical language. The proof of the commutativity of times continues: Give the conjecture the name *1. We will appeal to induction. Two inductions are suggested by terms in the conjecture, both of which are flawed. We limit our consideration to the two suggested by the largest number of nonprimitive recursive functions in the conjecture. Since both of these are equally likely, we will choose arbitrarily. We will induct according to the following scheme: (AND (IMPLIES (ZEROP X) (p X Z)) (IMPLIES (AND (NOT (ZEROP X)) (p (SUB1 X) Z)) (p X Z))). Linear arithmetic, the lemma COUNT-NUMBERP, and the definition of ZEROP inform us that the measure (COUNT X) decreases according to the well-founded relation LESSP in each induction step of the scheme. The above induction scheme produces the following two new conjectures: Case 2. (IMPLIES (ZEROP X) (EQUAL (TIMES X Z) (TIMES Z X))). and after winding itself through a number of induction proofs, finally concludes that Case 1. (IMPLIES (AND (NOT (ZEROP Z)) (EQUAL 0 (TIMES (SUB1 Z) 0))) (EQUAL 0 (TIMES Z 0))). This simplifies, expanding the definitions of ZEROP, TIMES, PLUS, and EQUAL, to: T. That finishes the proof of *1.1, which also finishes the proof of *1. Q.E.D. 0.0 1.2 0.5 COMMUTATIVITY-OF-TIMES


Proofs

Many proofs have been done or confirmed with the system, particularly * (1971) list concatenation * (1973) insertion sort * (1974) a binary adder * (1976) an expression compiler for a stack machine * (1978) uniqueness of prime factorizations * (1983) invertibility of the RSA encryption algorithm * (1984) unsolvability of the halting problem for Pure Lisp * (1985) FM8501 microprocessor (Warren Hunt) * (1986) Gödel's incompleteness theorem (Shankar) * (1988) CLI Stack (Bill Bevier, Warren Hunt, Matt Kaufmann, J Moore, Bill Young) * (1990) Gauss' law of quadratic reciprocity (David Russinoff) * (1992) Byzantine Generals and Clock Synchronization (Bevier and Young) * (1992) A compiler for a subset of the Nqthm language (Arthur Flatau) * (1993) bi-phase mark asynchronous communications protocol * (1993) Motorola MC68020 and Berkeley C String Library (Yuan Yu) * (1994) Paris–Harrington Ramsey theorem (
Kenneth Kunen Herbert Kenneth Kunen (August 2, 1943August 14, 2020) was a professor of mathematics at the University of Wisconsin–Madison who worked in set theory and its applications to various areas of mathematics, such as set-theoretic topology and me ...
) * (1996) The equivalence of NFSA and DFSA (
Debora Weber-Wulff Debora Racing cars is a small French car builder, popular with private racing teams, based in Besançon, France. Teams generally use their chassis to take part in Le Mans style endurance racing such as Magny Cours, Jarama and le Mans. Drivers als ...
)


PC-Nqthm

A more powerful version, called PC-Nqthm (Proof-checker Nqthm) was developed by
Matt Kaufmann Matt Kaufmann is a senior research scientist in the department of computer sciences at the University of Texas at Austin, United States. He was a recipient of the 2005 ACM Software System Award along with Robert S. Boyer and J Strother Moore ...
. This gave the proof tools that the system uses automatically to the user, so that more guidance can be given to the proof. This is a great help, as the system has an unproductive tendency to wander down infinite chains of inductive proofs.


Literature

* A Computational Logic Handbook, R.S. Boyer and J S. Moore, Academic Press (2nd Edition), 1997. * The Boyer-Moore Theorem Prover and Its Interactive Enhancement, with M. Kaufmann and R. S. Boyer, Computers and Mathematics with Applications, 29(2), 1995, pp. 27–62.


Awards

In 2005
Robert S. Boyer Robert Stephen Boyer is an American retired professor of computer science, mathematics, and philosophy at The University of Texas at Austin. He and J Strother Moore invented the Boyer–Moore string-search algorithm, a particularly efficie ...
,
Matt Kaufmann Matt Kaufmann is a senior research scientist in the department of computer sciences at the University of Texas at Austin, United States. He was a recipient of the 2005 ACM Software System Award along with Robert S. Boyer and J Strother Moore ...
, and
J Strother Moore J Strother Moore (his first name is the alphabetic character "J" – not an abbreviated "J.") is a computer scientist. He is a co-developer of the Boyer–Moore string-search algorithm, Boyer–Moore majority vote algorithm, and the Boyer–M ...
received the
ACM Software System Award The ACM Software System Award is an annual award that honors people or an organization "for developing a software system that has had a lasting influence, reflected in contributions to concepts, in commercial acceptance, or both". It is awarded b ...
for their work on the Nqthm theorem prover.
Association for Computing Machinery The Association for Computing Machinery (ACM) is a US-based international learned society for computing. It was founded in 1947 and is the world's largest scientific and educational computing society. The ACM is a non-profit professional member ...

"ACM: Press Release, March 15, 2006"
''campus.acm.org'', accessed December 27, 2007. (
English version English usually refers to: * English language * English people English may also refer to: Peoples, culture, and language * ''English'', an adjective for something of, from, or related to England ** English national ide ...
).


References

{{Reflist


External links


The Automated Reasoning System, Nqthm


* Even though the system is no longer being supported, it is still available a

* Runnable version on
GitHub GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continuous ...


Theorem proving software systems Common Lisp (programming language) software