|
ACL2 is a Computer software (or simply software) refers to one or more computer programs held in the storage of a computer for some purpose. Program software performs the function of the program it implements, either by directly providing instructions to the computer hardware or by serving as input to another piece of...
software system consisting of a A programming language or computer language is a standardized communication technique for expressing instructions to a computer. It is a set of syntactic and semantic rules used to define computer programs. A language enables a programmer to precisely specify what data a computer will act upon, how these data will...
programming language, an extensible theory in a First-order predicate calculus or first-order logic (FOL) is a theory in symbolic logic that permits the formulation of , it is the case that... or there exists a , , to represent such constants, as long as they are different from the letters used for the variable terms) predicate constants such...
first-order logic, and a mechanical Automated theorem proving (currently the most important subfield of require a human user to give hints to the system. Depending on the degree of automation, the prover can essentially be reduced to a proof checker, with the user providing the proof in a formal way, or significant proof tasks can...
theorem prover. ACL2 is designed to support automated reasoning in inductive logical theories, mostly for the purpose of Computer software (or simply software) refers to one or more computer programs held in the storage of a computer for some purpose. Program software performs the function of the program it implements, either by directly providing instructions to the computer hardware or by serving as input to another piece of...
software and Hardware comprises all of the physical parts of a computer, as distinguished from the data it contains or operates on, and the software that provides instructions for the hardware to accomplish tasks. The boundary between hardware and software is slightly blurry—firmware is software that is built-in to...
hardware verification. The input language and implementation of ACL2 are built on Common Lisp, commonly abbreviated CL (not to be confused with Combinatory logic which is also abbreviated CL), is a dialect of Lisp, standardised by ANSI X3.226-1994. Developed to standardize the divergent variants of Lisp which predated it, it is not an implementation but rather a language specification to...
Common Lisp. ACL2 is free, Open source refers to projects that are open to the public and which draw on other projects that are freely available to the general public. Openness, open content, and communal are other related topics. This article deals mostly with computer software. Open source or open-source software (OSS) is any...
open source ( Wikipedia does not yet have an article with this exact name. Start the Gpl article If you have created this page in the past few minutes and it has not yet appeared, it may not be visible due to a delay in updating the database. Please wait and check again...
GPL) software. The ACL2 programming language is an Applicative refers to a language paradigm for classifying computer programming languages. An applicative language is designed to support the development of programs as giving the result of a function of the combined variables. Successive functional transformations are applied to data to arrive at the result. Such a language, with program...
applicative (side-effect free) variant of Common LISP. ACL2 is On computer science, a datatype (often simply type) is a name or label for a set of values and some operations which can be performed on that set of values. Programming languages implicitly or explicitly support one or more datatypes; these types may act as a statically or dynamically checked...
untyped because all ACL2 In computer science, a subroutine (function, procedure, or subprogram) is a sequence of code which performs a specific task, as part of a larger program, and is grouped as one, or more, statement blocks; such code is sometimes collected into software libraries. Subroutines can be called, thus allowing programs to...
functions are In mathematics and computer science, a partial function from the domain element of its codomain, then it is termed a total function, or simply a function as traditionally understood in mathematics. Note that with this terminology, not every partial function is a true function. This above diagram does not represent...
total--that is, every function maps each object in the ACL2 In mathematics, and particularly in applications to set theory and the foundations of mathematics, a universe or universal class (or if a set, universal set) is, roughly speaking, a class that is large enough to contain (in some sense) all of the sets that one may wish to use. In...
universe to another object this universe. ACL2's base theory In epistemology, an axiom is a self-evident truth upon which other knowledge must rest, from which other knowledge is built up. Not all epistemologists agree that any axioms, understood in that sense, exist. In mathematics, an axiom is comes from the Greek word αξιωμα...
axiomatizes the In general, semantics (from the Greek while the latter pertains to the formal structure/patterns in which something is expressed (e.g. written or spoken). Several more particular senses of the word can be identified: In linguistics Semantics is a subfield of linguistics that is traditionally defined as the study...
semantics of its programming language and its built-in functions. User definitions in the programming language that satisfy a definitional principle extend the theory in a way that maintains the theory's In mathematical logic, a formal system is said to be consistent if it doesnt contain a contradiction, or, more precisely, for no proposition are both and provable. A consistency proof is a formal proof that a formal system is consistent. The early development of mathematical proof theory was driven...
logical consistency. The core of ACL2's theorem prover is based on Rewriting in mathematics, computer science and logic covers a wide range of methods of transforming strings, written in some fixed alphabet, that are not deterministic but are governed by explicit rules. This is a powerful general method for dealing with equation. A rewrite system is a set of equations that...
term rewriting, and this core is extensible in that user-discovered In mathematics, theory is used informally to refer to a body of knowledge about mathematics. This knowledge consists of axioms, definitions, theorems and computational techniques all related in some way by tradition or practice. Examples include group theory, set theory, Lebesgue integration theory and field theory. The term theory also...
theorems can be used as ad-hoc In mathematics, a proof is a demonstration that, given certain axioms, some statement of interest is necessarily true. Proofs employ logic but usually include some amount of natural language which of course admits some ambiguity. In fact, the vast majority of proofs in written mathematics can be considered as applications...
proof techniques for subsequent In mathematics, a conjecture is a mathematical statement which has been proposed as a true statement, but which no one has yet been able to prove or disprove. Once a conjecture has been proven, it becomes known as a theorem, and it joins the realm of known mathematical facts. Until...
conjectures. ACL2 is intended to be an "industrial strength" version of the Boyer-Moore theorem prover, NQTHM. Toward this goal, ACL2 has many features to support clean engineering of interesting mathematical and computational theories. ACL2 also derives efficiency from being built on Common LISP; for example, the same specification that is the basis for inductive verification can be A compiler is a computer program that translates a computer program written in one computer language (called the . Early compilers were written in assembly language. The first of languages, not languages themselves. The categorization usually reflects the most popular or widespread implementations of a language -- for instance, BASIC is thought...
compiled and run A system of codes directly understandable by a computers CPU is termed this CPUs native or machine language. Although consists of both binary numbers and simple words whereas understands the full language of CPU may not be compatible with CPU ; each of these gives a basic command to...
natively. The name ACL2 comes from two instances of the abbreviation ACL, which are expanded as A Computational Logic and Applicative Common LISP.
External link
|